Taxonomy 1.0.2 → 1.0.3
raw patch · 3 files changed
+20/−22 lines, 3 filesdep ~fgldep ~graphvizPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: fgl, graphviz
API changes (from Hackage documentation)
- Bio.TaxonomyData: instance Data.Aeson.Types.ToJSON.ToJSON (Data.Graph.Inductive.PatriciaTree.Gr Bio.TaxonomyData.SimpleTaxon GHC.Types.Double)
+ Bio.TaxonomyData: instance Data.Aeson.Types.ToJSON.ToJSON (Data.Graph.Inductive.Tree.Gr Bio.TaxonomyData.SimpleTaxon GHC.Types.Double)
- Bio.Taxonomy: safeNodePath :: Maybe Node -> Gr SimpleTaxon Double -> Maybe Node -> Either String [Node]
+ Bio.Taxonomy: safeNodePath :: Maybe Node -> Gr SimpleTaxon Double -> Maybe Node -> Either String Path
Files
- Taxonomy.cabal +6/−12
- src/Bio/Taxonomy.hs +11/−9
- src/Bio/TaxonomyData.hs +3/−1
Taxonomy.cabal view
@@ -1,11 +1,5 @@ name: Taxonomy--- The package version. See the Haskell package versioning policy (PVP) --- for standards guiding when and how versions should be incremented.--- http://www.haskell.org/haskellwiki/Package_versioning_policy--- PVP summary: +-+------- breaking API changes--- | | +----- non-breaking API additions--- | | | +--- code changes with no API change-version: 1.0.2+version: 1.0.3 synopsis: Libary for parsing, processing and vizualization of taxonomy data description: Haskell cabal Taxonomy libary contains tools, parsers, datastructures and visualisation for the NCBI (National Center for Biotechnology Information) Taxonomy datasources.@@ -33,25 +27,25 @@ category: Bioinformatics build-type: Simple cabal-version: >=1.8-+Tested-With: GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.2, GHC == 8.2.1 source-repository head type: git location: https://github.com/eggzilla/Taxonomy source-repository this type: git- location: https://github.com/eggzilla/Taxonomy/tree/v1.0.2- tag: v1.0.2+ location: https://github.com/eggzilla/Taxonomy/tree/v1.0.3+ tag: v1.0.3 library -- Modules exported by the library. exposed-modules: Bio.TaxonomyData, Bio.Taxonomy -- compiler-options:- ghc-options: -Wall -O2 -fno-warn-unused-do-bind+ ghc-options: -Wall -fno-warn-unused-do-bind -- Other library packages from which modules are imported.- build-depends: base >=4.5 && <5, parsec, either-unwrap, fgl, text, graphviz, bytestring, aeson, vector+ build-depends: base >=4.5 && <5, parsec, either-unwrap, fgl>=5.5.4.0, text, graphviz>=2999.12.0.4, bytestring, aeson, vector -- Directories containing source files. hs-source-dirs: src
src/Bio/Taxonomy.hs view
@@ -61,15 +61,17 @@ import qualified Data.Vector as V import Data.Maybe import qualified Data.Either.Unwrap as E-import Data.Graph.Inductive+import Data.Graph.Inductive.Graph+import Data.Graph.Inductive.Query.SP (sp)+import Data.Graph.Inductive.Query.BFS (level)+import Data.Graph.Inductive.Tree+import Data.Graph.Inductive.Basic import qualified Data.GraphViz as GV import qualified Data.GraphViz.Printing as GVP import qualified Data.GraphViz.Attributes.Colors as GVAC import qualified Data.GraphViz.Attributes.Complete as GVA---import qualified Data.Text.Lazy as TL---import qualified Data.ByteString.Char8 as B import qualified Data.ByteString.Lazy.Char8 as L-import qualified Data.Aeson.Encode as AE+import qualified Data.Aeson as AE import qualified Data.Text.Lazy as T -------------------------------------------------------- @@ -441,15 +443,15 @@ taxonomySubTree = mkGraph filteredLNodes filteredledges :: Gr SimpleTaxon Double getVectorPath :: Node -> Gr SimpleTaxon Double -> Node -> V.Vector Node-getVectorPath root graph node = V.fromList (sp node root graph)+getVectorPath root graph node = maybe V.empty V.fromList (sp node root graph) getPath :: Node -> Gr SimpleTaxon Double -> Node -> Path-getPath root graph node = sp node root graph+getPath root graph node = maybe [] id (sp node root graph) -- | Extract parent node with specified Rank getParentbyRank :: Node -> Gr SimpleTaxon Double -> Maybe Rank -> Maybe (Node, SimpleTaxon) getParentbyRank inputNode graph requestedRank = filteredLNode- where path = sp (inputNode :: Node) (1 :: Node) graph+ where path = maybe [] id (sp (inputNode :: Node) (1 :: Node) graph) nodeContext = map (context graph) path lnode = map labNode' nodeContext filteredLNode = findNodeByRank requestedRank lnode@@ -490,9 +492,9 @@ noRankNodes = filter (\(_,t) -> simpleRank t == Norank) inputNodes -- | Returns path between 2 maybe nodes. Used in TreeDistance tool.-safeNodePath :: Maybe Node -> Gr SimpleTaxon Double -> Maybe Node -> Either String [Node]+safeNodePath :: Maybe Node -> Gr SimpleTaxon Double -> Maybe Node -> Either String Path safeNodePath nodeid1 graphOutput nodeid2- | isJust nodeid1 && isJust nodeid2 = Right (sp (fromJust nodeid1) (fromJust nodeid2) (undir graphOutput))+ | isJust nodeid1 && isJust nodeid2 = Right (maybe [] id (sp (fromJust nodeid1) (fromJust nodeid2) (undir graphOutput))) | otherwise = Left "Both taxonomy ids must be provided for distance computation" ---------------------------------------
src/Bio/TaxonomyData.hs view
@@ -8,7 +8,9 @@ --import qualified Data.ByteString as B import qualified Data.Aeson as A import qualified Data.Vector as V-import Data.Graph.Inductive+--import Data.Graph.Inductive+import Data.Graph.Inductive.Graph+import Data.Graph.Inductive.Tree import qualified Data.Text as T import qualified Data.Text.Lazy as TL --import qualified Data.Text.Encoding