packages feed

elynx-markov 0.5.0 → 0.5.0.1

raw patch · 5 files changed

+126/−138 lines, 5 filesdep ~asyncdep ~attoparsecdep ~bytestringPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: async, attoparsec, bytestring, containers, elynx-seq, elynx-tools, hmatrix, hspec, integration, math-functions, mwc-random, parallel, primitive, statistics, vector

API changes (from Hackage documentation)

Files

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
elynx-markov.cabal view
@@ -1,18 +1,19 @@-cabal-version:  2.2-name:           elynx-markov-version:        0.5.0-synopsis:       Simulate molecular sequences along trees-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:               elynx-markov+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:           Simulate molecular sequences along trees+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@@ -22,69 +23,67 @@     data/HSSPSingle.siteprofiles  source-repository head-  type: git-  location: https://github.com/dschrempf/elynx+    type:     git+    location: https://github.com/dschrempf/elynx  library-  exposed-modules:-      ELynx.Data.MarkovProcess.AminoAcid-      ELynx.Data.MarkovProcess.CXXModels-      ELynx.Data.MarkovProcess.CXXModelsData-      ELynx.Data.MarkovProcess.GammaRateHeterogeneity-      ELynx.Data.MarkovProcess.MixtureModel-      ELynx.Data.MarkovProcess.Nucleotide-      ELynx.Data.MarkovProcess.PhyloModel-      ELynx.Data.MarkovProcess.RateMatrix-      ELynx.Data.MarkovProcess.SubstitutionModel-      ELynx.Import.MarkovProcess.EDMModelPhylobayes-      ELynx.Import.MarkovProcess.SiteprofilesPhylobayes-      ELynx.Simulate.MarkovProcess-      ELynx.Simulate.MarkovProcessAlongTree-  other-modules:-      Paths_elynx_markov-  autogen-modules:-      Paths_elynx_markov-  hs-source-dirs:-      src-  ghc-options: -Wall-  build-depends:-      async-    , attoparsec-    , base >=4.7 && <5-    , bytestring-    , containers-    , elynx-seq-    , hmatrix-    , integration-    , math-functions-    , mwc-random-    , parallel-    , primitive-    , statistics-    , vector-  default-language: Haskell2010+    exposed-modules:+        ELynx.Data.MarkovProcess.AminoAcid+        ELynx.Data.MarkovProcess.CXXModels+        ELynx.Data.MarkovProcess.CXXModelsData+        ELynx.Data.MarkovProcess.GammaRateHeterogeneity+        ELynx.Data.MarkovProcess.MixtureModel+        ELynx.Data.MarkovProcess.Nucleotide+        ELynx.Data.MarkovProcess.PhyloModel+        ELynx.Data.MarkovProcess.RateMatrix+        ELynx.Data.MarkovProcess.SubstitutionModel+        ELynx.Import.MarkovProcess.EDMModelPhylobayes+        ELynx.Import.MarkovProcess.SiteprofilesPhylobayes+        ELynx.Simulate.MarkovProcess+        ELynx.Simulate.MarkovProcessAlongTree +    hs-source-dirs:   src+    other-modules:    Paths_elynx_markov+    autogen-modules:  Paths_elynx_markov+    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-seq >=0.5.0.1 && <0.6,+        hmatrix >=0.20.0.0 && <0.21,+        integration >=0.2.1 && <0.3,+        math-functions >=0.3.4.1 && <0.4,+        mwc-random >=0.14.0.0 && <0.15,+        parallel >=3.2.2.0 && <3.3,+        primitive >=0.7.1.0 && <0.8,+        statistics >=0.15.2.0 && <0.16,+        vector >=0.12.1.2 && <0.13+ test-suite markov-test-  type: exitcode-stdio-1.0-  main-is: Spec.hs-  other-modules:-      ELynx.Data.MarkovProcess.AminoAcidSpec-      ELynx.Data.MarkovProcess.NucleotideSpec-      ELynx.Data.MarkovProcess.RateMatrixSpec-      ELynx.Import.MarkovProcess.EDMModelPhylobayesSpec-      ELynx.Import.MarkovProcess.SiteprofilesPhylobayesSpec-      ELynx.Simulate.MarkovProcessAlongTreeSpec-      Paths_elynx_markov-  hs-source-dirs:-      test-  ghc-options: -Wall-  build-depends:-      base >=4.7 && <5-    , containers-    , elynx-markov-    , elynx-tools-    , hmatrix-    , hspec-    , mwc-random-    , vector-  default-language: Haskell2010+    type:             exitcode-stdio-1.0+    main-is:          Spec.hs+    hs-source-dirs:   test+    other-modules:+        ELynx.Data.MarkovProcess.AminoAcidSpec+        ELynx.Data.MarkovProcess.NucleotideSpec+        ELynx.Data.MarkovProcess.RateMatrixSpec+        ELynx.Import.MarkovProcess.EDMModelPhylobayesSpec+        ELynx.Import.MarkovProcess.SiteprofilesPhylobayesSpec+        ELynx.Simulate.MarkovProcessAlongTreeSpec+        Paths_elynx_markov++    default-language: Haskell2010+    ghc-options:      -Wall -Wunused-packages+    build-depends:+        base >=4.7 && <5,+        containers >=0.6.2.1 && <0.7,+        elynx-markov -any,+        elynx-tools >=0.5.0.1 && <0.6,+        hmatrix >=0.20.0.0 && <0.21,+        hspec >=2.7.4 && <2.8,+        mwc-random >=0.14.0.0 && <0.15,+        vector >=0.12.1.2 && <0.13
src/ELynx/Simulate/MarkovProcess.hs view
@@ -41,12 +41,10 @@   | otherwise = expm $ scale t q  -- | Move from a given state to a new one according to a transition probability--- matrix (for performance reasons this probability matrix needs to be given as--- a list of generators, see--- https://hackage.haskell.org/package/distribution-1.1.0.0/docs/Data-Distribution-Sample.html).+-- matrix .+-- -- This function is the bottleneck of the simulator and takes up most of the--- computation time. However, I was not able to find a faster implementation--- than the one from Data.Distribution.+-- computation time. jump :: (PrimMonad m) => State -> ProbMatrix -> Gen (PrimState m) -> m State jump i p = categorical (p ! i) 
src/ELynx/Simulate/MarkovProcessAlongTree.hs view
@@ -71,7 +71,8 @@   simulateAndFlatten' is pt g  -- This is the heart of the simulation. Take a tree and a list of root states.--- Recursively jump down the branches to the leafs. Forget states at internal.+-- Recursively jump down the branches to the leafs. Forget states at internal+-- nodes. simulateAndFlatten' ::   (PrimMonad m) =>   [State] ->