cobot-io-0.1.2.0: src/Bio/FASTA/Writer.hs
module Bio.FASTA.Writer
( fastaToText
) where
import Bio.FASTA.Type (Fasta, FastaItem(..))
import Bio.Sequence (BareSequence, sequ)
import Control.Lens ((^.))
import Data.Text (Text, pack)
import Data.List.Split (chunksOf)
import Data.Vector (Vector, toList)
import Prelude hiding (drop)
fastaToText :: Fasta Char -> Text
fastaToText f = mconcat $ map writeItem f
writeItem :: FastaItem Char -> Text
writeItem (FastaItem name s) = ">" <> name <> "\n" <> seq2Text s
seq2Text :: BareSequence Char -> Text
seq2Text s = pack $ vector2Text $ s ^. Bio.Sequence.sequ
vector2Text :: Vector Char -> String
vector2Text v = concatMap (++ "\n") $ chunksOf 80 $ toList v