module ELynx.Export.Sequence.Fasta
( sequenceToFasta
, sequencesToFasta
) where
import Control.Lens
import qualified Data.ByteString.Lazy.Char8 as L
import ELynx.Data.Sequence.Sequence
fastaHeader :: L.ByteString -> L.ByteString
fastaHeader i = L.singleton '>' <> i
sequenceToFasta :: Sequence -> L.ByteString
sequenceToFasta s = L.unlines [ fastaHeader $ s^.name , fromCharacters $ s^.characters ]
sequencesToFasta :: [Sequence] -> L.ByteString
sequencesToFasta ss = L.concat $ map sequenceToFasta ss