cobot-io-0.1.2.0: src/Bio/FASTA.hs
module Bio.FASTA
( module T
, fromFile
, toFile
, fastaP
) where
import Bio.FASTA.Parser
import Bio.FASTA.Type as T
import Bio.FASTA.Writer (fastaToText)
import Control.Monad.IO.Class (MonadIO, liftIO)
import Data.Attoparsec.Text (parseOnly)
import Data.Text.IO (readFile, writeFile)
import Prelude hiding (writeFile, readFile)
-- | Reads 'FastaSequence' from given file.
--
fromFile :: MonadIO m => FilePath -> m (Fasta Char)
fromFile f = liftIO (readFile f) >>= either fail pure . parseOnly fastaP
-- | Writes 'FastaSequence' to file.
--
toFile :: MonadIO m => Fasta Char -> FilePath -> m ()
toFile s f = liftIO $ writeFile f $ fastaToText s