slynx 0.6.0.0 → 0.6.1.0
raw patch · 19 files changed
+96/−32 lines, 19 filesdep +aesonPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: aeson
API changes (from Hackage documentation)
- SLynx.Options: Arguments :: GlobalArguments -> a -> Arguments a
- SLynx.Options: [global] :: Arguments a -> GlobalArguments
- SLynx.Options: [local] :: Arguments a -> a
- SLynx.Options: data Arguments a
- SLynx.Options: parseArguments :: Reproducible a => IO (Arguments a)
Files
- ChangeLog.md +7/−0
- README.md +12/−6
- slynx.cabal +3/−2
- src/SLynx/Concatenate/Concatenate.hs +2/−1
- src/SLynx/Concatenate/Options.hs +3/−1
- src/SLynx/Examine/Examine.hs +3/−1
- src/SLynx/Examine/Options.hs +3/−1
- src/SLynx/Filter/Filter.hs +7/−1
- src/SLynx/Filter/Options.hs +3/−1
- src/SLynx/Options.hs +6/−8
- src/SLynx/SLynx.hs +2/−1
- src/SLynx/Simulate/Options.hs +4/−1
- src/SLynx/Simulate/PhyloModel.hs +2/−1
- src/SLynx/Simulate/Simulate.hs +22/−1
- src/SLynx/SubSample/Options.hs +4/−1
- src/SLynx/SubSample/SubSample.hs +4/−1
- src/SLynx/Tools.hs +2/−1
- src/SLynx/Translate/Options.hs +4/−2
- src/SLynx/Translate/Translate.hs +3/−1
ChangeLog.md view
@@ -5,6 +5,13 @@ ## Unreleased changes +## Version 0.6.1.0++- Split `ELynx.Tools` into separate modules because the package will be reduced.+- Remove the following modules from `ELynx.Tools`: `Concurrent`,+ `LinearAlgebra`, `List`, `Misc`, and `Numeric`.++ ## Version 0.6.0.0 - **elynx-tree:** remove parallel folds with layers (`parBranchFoldMapWithLayer`
README.md view
@@ -69,13 +69,13 @@ # Get help -For example:-- slynx --help+ cabal exec slynx -- --help+ # OR: stack exec slynx -- --help+ # OR: slynx --help ELynx Suite version 0.6.0.0. Developed by Dominik Schrempf.- Compiled on September 3, 2021, at 20:56 pm, UTC.+ Compiled on September 4, 2021, at 12:58 pm, UTC. Usage: slynx [-v|--verbosity VALUE] [-o|--output-file-basename NAME] [-f|--force] [--no-elynx-file] COMMAND@@ -113,6 +113,7 @@ - ProteinX (amino acids; including gaps) - ProteinS (amino acids; including gaps, and translation stops) - ProteinI (amino acids; including gaps, translation stops, and IUPAC codes)+ ELynx ----- A Haskell library and tool set for computational biology. The goal of ELynx is@@ -126,6 +127,9 @@ tlynx Analyze, modify, and simulate phylogenetic trees. elynx Validate and redo past analyses. + Get help for commands:+ slynx --help+ Get help for sub commands: slynx examine --help @@ -134,11 +138,13 @@ The documentation of sub commands can be accessed separately: - slynx simulate --help+ cabal exec slynx -- simulate --help+ # OR: stack exec slynx -- simulate --help+ # OR: slynx simulate --help ELynx Suite version 0.6.0.0. Developed by Dominik Schrempf.- Compiled on September 3, 2021, at 20:56 pm, UTC.+ Compiled on September 4, 2021, at 12:58 pm, UTC. Usage: slynx simulate (-t|--tree-file Name) [-s|--substitution-model MODEL] [-m|--mixture-model MODEL] [-e|--edm-file NAME]
slynx.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.2 name: slynx-version: 0.6.0.0+version: 0.6.1.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@@ -46,7 +46,8 @@ hs-source-dirs: src ghc-options: -Wall -Wunused-packages build-depends:- attoparsec+ aeson+ , attoparsec , base >=4.7 && <5 , bytestring , containers
src/SLynx/Concatenate/Concatenate.hs view
@@ -20,7 +20,8 @@ import Control.Monad.Trans.Reader import qualified ELynx.Data.Sequence.Sequence as S import ELynx.Export.Sequence.Fasta-import ELynx.Tools+import ELynx.Tools.ELynx+import ELynx.Tools.Environment import SLynx.Concatenate.Options import SLynx.Tools
src/SLynx/Concatenate/Options.hs view
@@ -18,8 +18,10 @@ where import Control.Applicative+import Data.Aeson import ELynx.Data.Alphabet.Alphabet-import ELynx.Tools+import ELynx.Tools.Reproduction+import GHC.Generics import Options.Applicative import SLynx.Tools
src/SLynx/Examine/Examine.hs view
@@ -27,7 +27,9 @@ import qualified ELynx.Data.Sequence.Alignment as M import qualified ELynx.Data.Sequence.Distance as D import qualified ELynx.Data.Sequence.Sequence as Seq-import ELynx.Tools+import ELynx.Tools.ByteString+import ELynx.Tools.ELynx+import ELynx.Tools.Environment import SLynx.Examine.Options import SLynx.Tools import qualified Statistics.Sample as Sm
src/SLynx/Examine/Options.hs view
@@ -17,8 +17,10 @@ ) where +import Data.Aeson import ELynx.Data.Alphabet.Alphabet-import ELynx.Tools+import ELynx.Tools.Reproduction+import GHC.Generics import Options.Applicative import SLynx.Tools
src/SLynx/Filter/Filter.hs view
@@ -25,9 +25,15 @@ import qualified ELynx.Data.Sequence.Alignment as M import qualified ELynx.Data.Sequence.Sequence as S import ELynx.Export.Sequence.Fasta-import ELynx.Tools+import ELynx.Tools.ELynx+import ELynx.Tools.Environment+import ELynx.Tools.Logger import SLynx.Filter.Options import SLynx.Tools++-- Chain a list of functions together. See https://wiki.haskell.org/Compose.+compose :: [a -> a] -> a -> a+compose = foldl (flip (.)) id filterRows :: Maybe Int -> Maybe Int -> Bool -> [S.Sequence] -> BL.ByteString filterRows ml ms std ss = sequencesToFasta $ compose filters ss
src/SLynx/Filter/Options.hs view
@@ -20,8 +20,10 @@ where import Control.Applicative+import Data.Aeson import ELynx.Data.Alphabet.Alphabet-import ELynx.Tools+import ELynx.Tools.Reproduction+import GHC.Generics import Options.Applicative import SLynx.Tools
src/SLynx/Options.hs view
@@ -11,15 +11,13 @@ -- Portability : portable -- -- Creation date: Sat Sep 7 18:55:03 2019.-module SLynx.Options- ( Arguments (..),- CommandArguments (..),- parseArguments,- )-where+module SLynx.Options (CommandArguments (..)) where +import Data.Aeson import ELynx.Data.Alphabet.Alphabet-import ELynx.Tools+import ELynx.Tools.Options+import ELynx.Tools.Reproduction+import GHC.Generics import Options.Applicative import SLynx.Concatenate.Options import SLynx.Examine.Options@@ -88,7 +86,7 @@ where toListItem = (" - " ++) fs = map toListItem ["FASTA"]- as = map (toListItem . alphabetDescription) (allValues :: [Alphabet])+ as = map (toListItem . alphabetDescription) ([minBound ..] :: [Alphabet]) instance FromJSON CommandArguments
src/SLynx/SLynx.hs view
@@ -15,7 +15,8 @@ ) where -import ELynx.Tools+import ELynx.Tools.ELynx+import ELynx.Tools.Options import SLynx.Concatenate.Concatenate import SLynx.Examine.Examine import SLynx.Filter.Filter
src/SLynx/Simulate/Options.hs view
@@ -40,11 +40,14 @@ ) where +import Data.Aeson import Data.Maybe ( fromMaybe, maybeToList, )-import ELynx.Tools+import ELynx.Tools.Options+import ELynx.Tools.Reproduction+import GHC.Generics import Options.Applicative -- | Number of gamma rate categories and alpha parameter.
src/SLynx/Simulate/PhyloModel.hs view
@@ -33,7 +33,8 @@ import ELynx.Import.MarkovProcess.EDMModelPhylobayes ( EDMComponent, )-import ELynx.Tools+import ELynx.Tools.Equality+import ELynx.Tools.InputOutput import Numeric.LinearAlgebra ( norm_1, size,
src/SLynx/Simulate/Simulate.hs view
@@ -44,13 +44,30 @@ import ELynx.Import.MarkovProcess.EDMModelPhylobayes import ELynx.Import.MarkovProcess.SiteprofilesPhylobayes import ELynx.Simulate.MarkovProcessAlongTree-import ELynx.Tools+import ELynx.Tools.ByteString+import ELynx.Tools.Definitions+import ELynx.Tools.ELynx+import ELynx.Tools.Environment+import ELynx.Tools.InputOutput+import ELynx.Tools.Logger+import ELynx.Tools.Options+import ELynx.Tools.Reproduction import ELynx.Tree+import qualified Numeric.LinearAlgebra as L import SLynx.Simulate.Options import SLynx.Simulate.PhyloModel import System.Random.MWC import Text.Printf +-- Display a vector with given precision.+dispv :: Int -> VS.Vector L.R -> String+dispv p v = head $ tail $ lines $ L.dispf p (L.asRow v)++-- Display a matrix with given precision and indent.+dispmi :: Int -> Int -> L.Matrix L.R -> String+dispmi p i m =+ intercalate "\n" $ map (replicate i ' ' ++) $ tail $ lines $ L.dispf p m+ getDistLine :: Int -> MR.StationaryDistribution -> BB.Builder getDistLine i d = BB.intDec i@@ -156,6 +173,10 @@ h = height t h' = sum (distancesOriginLeaves t) / fromIntegral n b = totalBranchLength t++-- Round double to a given precision.+roundN :: Int -> Double -> Double+roundN n v = fromInteger (round $ v * (10 ^ n)) / (10.0 ^^ n) -- Summarize a substitution model; lines to be printed to screen or log. summarizeSM :: MS.SubstitutionModel -> [BL.ByteString]
src/SLynx/SubSample/Options.hs view
@@ -18,12 +18,15 @@ ) where +import Data.Aeson import qualified Data.Text as T import qualified Data.Text.Lazy as LT import qualified Data.Text.Lazy.Builder as LT import qualified Data.Text.Lazy.Builder.Int as LT import ELynx.Data.Alphabet.Alphabet-import ELynx.Tools+import ELynx.Tools.Options+import ELynx.Tools.Reproduction+import GHC.Generics import Options.Applicative import SLynx.Tools
src/SLynx/SubSample/SubSample.hs view
@@ -22,7 +22,10 @@ import Control.Monad.Trans.Reader (ask) import qualified ELynx.Data.Sequence.Alignment as M import ELynx.Export.Sequence.Fasta-import ELynx.Tools+import ELynx.Tools.ELynx+import ELynx.Tools.Environment+import ELynx.Tools.Logger+import ELynx.Tools.Reproduction import SLynx.SubSample.Options import SLynx.Tools import System.Random.MWC
src/SLynx/Tools.hs view
@@ -25,7 +25,8 @@ import ELynx.Data.Alphabet.Alphabet import ELynx.Data.Sequence.Sequence import ELynx.Import.Sequence.Fasta-import ELynx.Tools+import ELynx.Tools.InputOutput+import ELynx.Tools.Logger import Options.Applicative -- | Read sequences of given alphabet from file or standard input.
src/SLynx/Translate/Options.hs view
@@ -17,10 +17,12 @@ ) where +import Data.Aeson import Data.List import ELynx.Data.Alphabet.Alphabet import ELynx.Data.Character.Codon-import ELynx.Tools+import ELynx.Tools.Reproduction+import GHC.Generics import Options.Applicative import SLynx.Tools @@ -69,7 +71,7 @@ <> help ("universal code; one of: " ++ codeStr ++ ".") where- codes = allValues :: [UniversalCode]+ codes = [minBound ..] :: [UniversalCode] codeWords = map show codes codeStr = intercalate ", " codeWords
src/SLynx/Translate/Translate.hs view
@@ -22,7 +22,9 @@ import ELynx.Data.Sequence.Sequence import ELynx.Data.Sequence.Translate import ELynx.Export.Sequence.Fasta-import ELynx.Tools+import ELynx.Tools.ELynx+import ELynx.Tools.Environment+import ELynx.Tools.Logger import SLynx.Tools import SLynx.Translate.Options