{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TemplateHaskell #-}
module SLynx.Concatenate.Concatenate
( concatenateCmd,
)
where
import Control.Monad.Logger
import Control.Monad.Trans.Reader (ask)
import qualified ELynx.Data.Sequence.Sequence as S
import ELynx.Export.Sequence.Fasta
import ELynx.Tools
import SLynx.Concatenate.Options
import SLynx.Tools
concatenateCmd :: ELynx ConcatenateArguments ()
concatenateCmd = do
(ConcatenateArguments al fps) <- local <$> ask
$(logInfo) "Command: Concatenate sequences."
sss <- mapM (readSeqs al) fps
let result = sequencesToFasta $ S.concatSequences sss
out "concatenated multi sequence alignment " result ".fasta"