tlynx 0.5.0 → 0.5.0.1
raw patch · 6 files changed
+128/−132 lines, 6 filesdep ~aesondep ~attoparsecdep ~bytestringPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: aeson, attoparsec, bytestring, comonad, containers, elynx-tools, elynx-tree, gnuplot, lifted-async, monad-logger, mwc-random, optparse-applicative, parallel, statistics, text, transformers, vector
API changes (from Hackage documentation)
Files
- ChangeLog.md +9/−2
- README.md +37/−54
- src/TLynx/Examine/Examine.hs +2/−2
- src/TLynx/Parsers.hs +11/−4
- src/TLynx/Simulate/Simulate.hs +1/−1
- tlynx.cabal +68/−69
ChangeLog.md view
@@ -1,11 +1,18 @@ -# Changelog for ELynx+# Revision history for ELynx ## Unreleased changes +- Improve rooting functions.+- Improve `Topology` data type (but still a lot to do).+- Various additions to the documentation.+- Rename `Measurable` to `HasLength`, `Supported` to `HasSupport`, and `Named`+ to `HasLength`.+- Cabal and stack file changes. -## Version 0.5.0++## Version 0.5.0.1 - `modLen`, `modSup`. - Newtype wrappers for branch length, branch support, and node name. Those data
README.md view
@@ -2,7 +2,7 @@ # The ELynx Suite -Version: 0.5.0.+Version: 0.5.0.1. Reproducible evolution made easy. <p align="center"><img src="https://travis-ci.org/dschrempf/elynx.svg?branch=master"/></p>@@ -19,18 +19,20 @@ The library packages are: -- **elynx-nexus:** Nexus file support.-- **elynx-markov:** Simulate multi sequence alignments along phylogenetic trees.-- **elynx-seq:** Handle evolutionary sequences and multi sequence alignments.-- **elynx-tools:** Tools for the provided executables.-- **elynx-tree:** Handle phylogenetic trees.+- **[elynx-nexus](https://hackage.haskell.org/package/elynx-nexus):** Nexus file support.+- **[elynx-markov](https://hackage.haskell.org/package/elynx-markov):** Simulate multi sequence alignments along phylogenetic trees.+- **[elynx-seq](https://hackage.haskell.org/package/elynx-seq):** Handle evolutionary sequences and multi sequence alignments.+- **[elynx-tools](https://hackage.haskell.org/package/elynx-tools):** Tools for the provided executables.+- **[elynx-tree](https://hackage.haskell.org/package/elynx-tree):** Handle phylogenetic trees. The executables are: -- **slynx:** Analyze, modify, and simulate evolutionary sequences.-- **tlynx:** Analyze, modify, and simulate phylogenetic trees.-- **elynx:** Validate and redo past analyses.+- **[slynx](https://hackage.haskell.org/package/slynx):** Analyze, modify, and simulate evolutionary sequences.+- **[tlynx](https://hackage.haskell.org/package/tlynx):** Analyze, modify, and simulate phylogenetic trees.+- **[elynx](https://hackage.haskell.org/package/elynx):** Validate and redo past analyses. +Documentation is available on [Hackage](https://hackage.haskell.org/) (use direct links above).+ **ELynx is actively developed. We happily receive comments, ideas, feature requests, and pull requests!** @@ -65,34 +67,15 @@ [PATH](https://en.wikipedia.org/wiki/PATH_(variable)) environment variable. Then, they can be used directly. -# Documentation--Documentation is available on [Hackage](https://hackage.haskell.org/).--Libraries:--- [elynx-nexus](https://hackage.haskell.org/package/elynx-nexus)-- [elynx-markov](https://hackage.haskell.org/package/elynx-markov)-- [elynx-seq](https://hackage.haskell.org/package/elynx-seq)-- [elynx-tools](https://hackage.haskell.org/package/elynx-tools)-- [elynx-tree](https://hackage.haskell.org/package/elynx-tree)--Executables:--- [elynx](https://hackage.haskell.org/package/elynx)-- [slynx](https://hackage.haskell.org/package/slynx)-- [tlynx](https://hackage.haskell.org/package/tlynx)-- # SLynx Handle evolutionary sequences. slynx --help | head -n -16 - ELynx Suite version 0.5.0.+ ELynx Suite version 0.5.0.1. Developed by Dominik Schrempf.- Compiled on November 10, 2020, at 14:29 pm, UTC.+ Compiled on December 18, 2020, at 10:14 am, UTC. Usage: slynx [-v|--verbosity VALUE] [-o|--output-file-basename NAME] [-f|--force] [--no-elynx-file] COMMAND@@ -137,9 +120,9 @@ slynx concatenate --help - ELynx Suite version 0.5.0.+ ELynx Suite version 0.5.0.1. Developed by Dominik Schrempf.- Compiled on November 10, 2020, at 14:29 pm, UTC.+ Compiled on December 18, 2020, at 10:14 am, UTC. Usage: slynx concatenate (-a|--alphabet NAME) INPUT-FILE Concatenate sequences found in input files.@@ -158,9 +141,9 @@ slynx examine --help - ELynx Suite version 0.5.0.+ ELynx Suite version 0.5.0.1. Developed by Dominik Schrempf.- Compiled on November 10, 2020, at 14:29 pm, UTC.+ Compiled on December 18, 2020, at 10:14 am, UTC. Usage: slynx examine (-a|--alphabet NAME) INPUT-FILE [--per-site] Examine sequences. If data is a multi sequence alignment, additionally analyze columns.@@ -180,9 +163,9 @@ slynx filter-rows --help - ELynx Suite version 0.5.0.+ ELynx Suite version 0.5.0.1. Developed by Dominik Schrempf.- Compiled on November 10, 2020, at 14:29 pm, UTC.+ Compiled on December 18, 2020, at 10:14 am, UTC. Usage: slynx filter-rows (-a|--alphabet NAME) INPUT-FILE [--longer-than LENGTH] [--shorter-than LENGTH] [--standard-characters]@@ -203,9 +186,9 @@ slynx filter-columns --help - ELynx Suite version 0.5.0.+ ELynx Suite version 0.5.0.1. Developed by Dominik Schrempf.- Compiled on November 10, 2020, at 14:29 pm, UTC.+ Compiled on December 18, 2020, at 10:14 am, UTC. Usage: slynx filter-columns (-a|--alphabet NAME) INPUT-FILE [--standard-chars DOUBLE]@@ -227,9 +210,9 @@ slynx simulate --help - ELynx Suite version 0.5.0.+ ELynx Suite version 0.5.0.1. Developed by Dominik Schrempf.- Compiled on November 10, 2020, at 14:29 pm, UTC.+ Compiled on December 18, 2020, at 10:14 am, UTC. Usage: slynx simulate (-t|--tree-file Name) [-s|--substitution-model MODEL] [-m|--mixture-model MODEL] [-e|--edm-file NAME] @@ -306,9 +289,9 @@ slynx sub-sample --help - ELynx Suite version 0.5.0.+ ELynx Suite version 0.5.0.1. Developed by Dominik Schrempf.- Compiled on November 10, 2020, at 14:29 pm, UTC.+ Compiled on December 18, 2020, at 10:14 am, UTC. Usage: slynx sub-sample (-a|--alphabet NAME) INPUT-FILE (-n|--number-of-sites INT)@@ -336,9 +319,9 @@ slynx translate --help - ELynx Suite version 0.5.0.+ ELynx Suite version 0.5.0.1. Developed by Dominik Schrempf.- Compiled on November 10, 2020, at 14:29 pm, UTC.+ Compiled on December 18, 2020, at 10:14 am, UTC. Usage: slynx translate (-a|--alphabet NAME) INPUT-FILE (-r|--reading-frame INT) (-u|--universal-code CODE)@@ -361,9 +344,9 @@ tlynx --help | head -n -16 - ELynx Suite version 0.5.0.+ ELynx Suite version 0.5.0.1. Developed by Dominik Schrempf.- Compiled on November 10, 2020, at 14:29 pm, UTC.+ Compiled on December 18, 2020, at 10:14 am, UTC. Usage: tlynx [-v|--verbosity VALUE] [-o|--output-file-basename NAME] [-f|--force] [--no-elynx-file] COMMAND@@ -401,9 +384,9 @@ tlynx compare --help - ELynx Suite version 0.5.0.+ ELynx Suite version 0.5.0.1. Developed by Dominik Schrempf.- Compiled on November 10, 2020, at 14:29 pm, UTC.+ Compiled on December 18, 2020, at 10:14 am, UTC. Usage: tlynx compare [-n|--normalize] [-b|--bipartitions] [-t|--intersect] [-f|--newick-format FORMAT] NAMES@@ -430,9 +413,9 @@ tlynx examine --help - ELynx Suite version 0.5.0.+ ELynx Suite version 0.5.0.1. Developed by Dominik Schrempf.- Compiled on November 10, 2020, at 14:29 pm, UTC.+ Compiled on December 18, 2020, at 10:14 am, UTC. Usage: tlynx examine INPUT-FILE [-f|--newick-format FORMAT] Compute summary statistics of phylogenetic trees.@@ -454,9 +437,9 @@ tlynx simulate --help - ELynx Suite version 0.5.0.+ ELynx Suite version 0.5.0.1. Developed by Dominik Schrempf.- Compiled on November 10, 2020, at 14:29 pm, UTC.+ Compiled on December 18, 2020, at 10:14 am, UTC. Usage: tlynx simulate (-t|--nTrees INT) (-n|--nLeaves INT) PROCESS [-u|--sub-sample DOUBLE] [-s|--summary-statistics] @@ -491,9 +474,9 @@ elynx --help | head -n -16 - ELynx Suite version 0.5.0.+ ELynx Suite version 0.5.0.1. Developed by Dominik Schrempf.- Compiled on November 10, 2020, at 14:29 pm, UTC.+ Compiled on December 18, 2020, at 10:14 am, UTC. Usage: elynx COMMAND Validate and redo past ELynx analyses
src/TLynx/Examine/Examine.hs view
@@ -44,7 +44,7 @@ v = BL.pack val -- | Examine branches of a tree.-summarizeLengths :: Measurable e => Tree e a -> BL.ByteString+summarizeLengths :: HasLength e => Tree e a -> BL.ByteString summarizeLengths t = BL.intercalate "\n"@@ -64,7 +64,7 @@ nf <- argsNewickFormat . local <$> ask liftIO $ parseTrees nf fp -examineTree :: Named a => Handle -> Tree Phylo a -> IO ()+examineTree :: HasName a => Handle -> Tree Phylo a -> IO () examineTree h t = do hPutStrLn h $ "Number of leaves: " ++ show (length lvs) let l = phyloToLengthTree t
src/TLynx/Parsers.hs view
@@ -10,8 +10,7 @@ -- -- Creation date: Wed Apr 22 13:34:35 2020. module TLynx.Parsers- (- parseTree,+ ( parseTree, parseTrees, NewickFormat, newickFormat,@@ -69,13 +68,21 @@ <> short 'f' <> metavar "FORMAT" <> value Standard- <> help ("Newick tree format: " ++ nwlist ++ "; default: Standard; for detailed help, see 'tlynx --help'")+ <> help+ ( "Newick tree format: "+ ++ nwlist+ ++ "; default: Standard; for detailed help, see 'tlynx --help'"+ ) where nwfs = map show (allValues :: [NewickFormat]) nwlist = intercalate ", " (init nwfs) <> ", or " <> last nwfs -- | Help for different 'NewickFormat's. newickHelp :: [String]-newickHelp = map (toListItem . description) (allValues :: [NewickFormat]) ++ ["- Nexus file including Newick trees"]+newickHelp =+ map+ (toListItem . describeNewickFormat)+ (allValues :: [NewickFormat])+ ++ ["- Nexus file including Newick trees"] where toListItem = ("- Newick " ++)
src/TLynx/Simulate/Simulate.hs view
@@ -231,7 +231,7 @@ BB.intDec n <> BB.char8 ' ' <> BB.doubleDec (fromLength l) <> BB.char8 '\n' -- Compute NChilSumStat for a phylogenetic tree.-toNChildSumStat :: Measurable e => Tree e a -> NChildSumStat+toNChildSumStat :: HasLength e => Tree e a -> NChildSumStat toNChildSumStat (Node br _ []) = [(getLen br, 1)] toNChildSumStat (Node br _ ts) = (getLen br, sumCh) : concat nChSS where
tlynx.cabal view
@@ -1,79 +1,78 @@-cabal-version: 2.2-name: tlynx-version: 0.5.0-synopsis: Handle phylogenetic trees-description: Examine, compare, and simulate phylogenetic trees in a reproducible way. Please see the README on GitHub at <https://github.com/dschrempf/elynx>.-category: Bioinformatics-homepage: https://github.com/dschrempf/elynx#readme-bug-reports: https://github.com/dschrempf/elynx/issues-author: Dominik Schrempf-maintainer: dominik.schrempf@gmail.com-copyright: Dominik Schrempf (2020)-license: GPL-3.0-or-later-license-file: LICENSE-build-type: Simple+cabal-version: 2.2+name: tlynx+version: 0.5.0.1+license: GPL-3.0-or-later+license-file: LICENSE+copyright: Dominik Schrempf (2020)+maintainer: dominik.schrempf@gmail.com+author: Dominik Schrempf+homepage: https://github.com/dschrempf/elynx#readme+bug-reports: https://github.com/dschrempf/elynx/issues+synopsis: Handle phylogenetic trees+description:+ Examine, compare, and simulate phylogenetic trees in a reproducible way. Please see the README on GitHub at <https://github.com/dschrempf/elynx>. +category: Bioinformatics+build-type: Simple extra-source-files: README.md ChangeLog.md source-repository head- type: git- location: https://github.com/dschrempf/elynx+ type: git+ location: https://github.com/dschrempf/elynx library- exposed-modules:- TLynx.Compare.Compare- TLynx.Compare.Options- TLynx.Connect.Connect- TLynx.Connect.Options- TLynx.Distance.Distance- TLynx.Distance.Options- TLynx.Examine.Examine- TLynx.Examine.Options- TLynx.Options- TLynx.Parsers- TLynx.Shuffle.Options- TLynx.Shuffle.Shuffle- TLynx.Simulate.Options- TLynx.Simulate.Simulate- TLynx.TLynx- other-modules:- Paths_tlynx- autogen-modules:- Paths_tlynx- hs-source-dirs:- src- ghc-options: -Wall- build-depends:- aeson- , attoparsec- , base >=4.7 && <5- , bytestring- , comonad- , containers- , elynx-tools- , elynx-tree- , gnuplot- , lifted-async- , monad-logger- , mwc-random- , optparse-applicative- , parallel- , statistics- , text- , transformers- , vector- default-language: Haskell2010+ exposed-modules:+ TLynx.Compare.Compare+ TLynx.Compare.Options+ TLynx.Connect.Connect+ TLynx.Connect.Options+ TLynx.Distance.Distance+ TLynx.Distance.Options+ TLynx.Examine.Examine+ TLynx.Examine.Options+ TLynx.Options+ TLynx.Parsers+ TLynx.Shuffle.Options+ TLynx.Shuffle.Shuffle+ TLynx.Simulate.Options+ TLynx.Simulate.Simulate+ TLynx.TLynx + hs-source-dirs: src+ other-modules: Paths_tlynx+ autogen-modules: Paths_tlynx+ default-language: Haskell2010+ ghc-options: -Wall -Wunused-packages+ build-depends:+ aeson >=1.5.4.1 && <1.6,+ attoparsec >=0.13.2.4 && <0.14,+ base >=4.7 && <5,+ bytestring >=0.10.10.0 && <0.11,+ comonad >=5.0.6 && <5.1,+ containers >=0.6.2.1 && <0.7,+ elynx-tools >=0.5.0.1 && <0.6,+ elynx-tree >=0.5.0.1 && <0.6,+ gnuplot >=0.5.6.1 && <0.6,+ lifted-async >=0.10.1.2 && <0.11,+ monad-logger >=0.3.35 && <0.4,+ mwc-random >=0.14.0.0 && <0.15,+ optparse-applicative >=0.15.1.0 && <0.16,+ parallel >=3.2.2.0 && <3.3,+ statistics >=0.15.2.0 && <0.16,+ text >=1.2.3.2 && <1.3,+ transformers >=0.5.6.2 && <0.6,+ vector >=0.12.1.2 && <0.13+ executable tlynx- main-is: Main.hs- other-modules:- Paths_tlynx- hs-source-dirs:- app- ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N- build-depends:- base >=4.7 && <5- , tlynx- default-language: Haskell2010+ main-is: Main.hs+ hs-source-dirs: app+ other-modules: Paths_tlynx+ default-language: Haskell2010+ ghc-options:+ -Wall -Wunused-packages -threaded -rtsopts -with-rtsopts=-N++ build-depends:+ base >=4.7 && <5,+ tlynx -any