slynx 0.5.0 → 0.5.0.1
raw patch · 5 files changed
+117/−128 lines, 5 filesdep ~asyncdep ~attoparsecdep ~bytestringPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: async, attoparsec, bytestring, containers, elynx-markov, elynx-seq, elynx-tools, elynx-tree, hmatrix, monad-logger, mwc-random, optparse-applicative, statistics, text, transformers, vector
API changes (from Hackage documentation)
Files
- ChangeLog.md +9/−2
- README.md +37/−54
- slynx.cabal +68/−69
- src/SLynx/Examine/Examine.hs +1/−1
- src/SLynx/Simulate/Simulate.hs +2/−2
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
slynx.cabal view
@@ -1,79 +1,78 @@-cabal-version: 2.2-name: slynx-version: 0.5.0-synopsis: Handle molecular sequences-description: Examine, modify, and simulate molecular sequences 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: slynx+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 molecular sequences+description:+ Examine, modify, and simulate molecular sequences 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:- SLynx.Concatenate.Concatenate- SLynx.Concatenate.Options- SLynx.Examine.Examine- SLynx.Examine.Options- SLynx.Filter.Filter- SLynx.Filter.Options- SLynx.Options- SLynx.Simulate.Options- SLynx.Simulate.PhyloModel- SLynx.Simulate.Simulate- SLynx.SLynx- SLynx.SubSample.Options- SLynx.SubSample.SubSample- SLynx.Tools- SLynx.Translate.Options- SLynx.Translate.Translate- other-modules:- Paths_slynx- autogen-modules:- Paths_slynx- hs-source-dirs:- src- ghc-options: -Wall- build-depends:- async- , attoparsec- , base >=4.7 && <5- , bytestring- , containers- , elynx-markov- , elynx-seq- , elynx-tools- , elynx-tree- , hmatrix- , monad-logger- , mwc-random- , optparse-applicative- , statistics- , text- , transformers- , vector- default-language: Haskell2010+ exposed-modules:+ SLynx.Concatenate.Concatenate+ SLynx.Concatenate.Options+ SLynx.Examine.Examine+ SLynx.Examine.Options+ SLynx.Filter.Filter+ SLynx.Filter.Options+ SLynx.Options+ SLynx.Simulate.Options+ SLynx.Simulate.PhyloModel+ SLynx.Simulate.Simulate+ SLynx.SLynx+ SLynx.SubSample.Options+ SLynx.SubSample.SubSample+ SLynx.Tools+ SLynx.Translate.Options+ SLynx.Translate.Translate + hs-source-dirs: src+ other-modules: Paths_slynx+ autogen-modules: Paths_slynx+ default-language: Haskell2010+ ghc-options: -Wall -Wunused-packages+ build-depends:+ async >=2.2.2 && <2.3,+ attoparsec >=0.13.2.4 && <0.14,+ base >=4.7 && <5,+ bytestring >=0.10.10.0 && <0.11,+ containers >=0.6.2.1 && <0.7,+ elynx-markov >=0.5.0.1 && <0.6,+ elynx-seq >=0.5.0.1 && <0.6,+ elynx-tools >=0.5.0.1 && <0.6,+ elynx-tree >=0.5.0.1 && <0.6,+ hmatrix >=0.20.0.0 && <0.21,+ monad-logger >=0.3.35 && <0.4,+ mwc-random >=0.14.0.0 && <0.15,+ optparse-applicative >=0.15.1.0 && <0.16,+ 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 slynx- main-is: Main.hs- other-modules:- Paths_slynx- hs-source-dirs:- app- ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N- build-depends:- base >=4.7 && <5- , slynx- default-language: Haskell2010+ main-is: Main.hs+ hs-source-dirs: app+ other-modules: Paths_slynx+ default-language: Haskell2010+ ghc-options:+ -Wall -Wunused-packages -threaded -rtsopts -with-rtsopts=-N++ build-depends:+ base >=4.7 && <5,+ slynx -any
src/SLynx/Examine/Examine.hs view
@@ -143,7 +143,7 @@ if perSiteFlag then BL.unlines- [ BL.pack "Effective number of used states per site:",+ [ BL.pack "Effective number of used states per site (measured using entropy):", BL.pack . show $ kEffs ] else BL.empty
src/SLynx/Simulate/Simulate.hs view
@@ -61,7 +61,7 @@ -- Simulate a 'Alignment' for a given phylogenetic model, -- phylogenetic tree, and alignment length. simulateAlignment ::- (Measurable e, Named a) =>+ (HasLength e, HasName a) => P.PhyloModel -> Tree e a -> Int ->@@ -135,7 +135,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"