module ELynx.Export.Sequence.Fasta
( sequenceToFasta,
sequencesToFasta,
)
where
import qualified Data.ByteString.Lazy.Char8 as BL
import ELynx.Data.Sequence.Sequence
fastaHeader :: BL.ByteString -> BL.ByteString -> BL.ByteString
fastaHeader n d =
BL.singleton '>' <> n <> if BL.null d then BL.empty else BL.pack " " <> d
sequenceToFasta :: Sequence -> BL.ByteString
sequenceToFasta s =
BL.unlines [fastaHeader (name s) (description s), toByteString $ characters s]
sequencesToFasta :: [Sequence] -> BL.ByteString
sequencesToFasta ss = BL.concat $ map sequenceToFasta ss