ViennaRNAParser-1.2.9: src/Bio/RNAdistanceParser.hs
-- | Parse RNAdistance output
-- For more information on RNAdistance consult: <<http://www.tbi.univie.ac.at/RNA/RNAdistance.html>
module Bio.RNAdistanceParser (
parseRNAdistance,
readRNAdistance,
module Bio.RNAdistanceData
) where
import Bio.RNAdistanceData
import Bio.ViennaRNAParserLibrary
import Text.ParserCombinators.Parsec
-- | Parse the consenus of RNAz results
genParserRNAdistance :: GenParser Char st RNAdistance
genParserRNAdistance = do
oneOf "fhwcFHWCP"
string (": ")
distance <- many1 (noneOf " ")
optional (many1 space)
eof
return $ RNAdistance (readInt distance)
-- | parse RNAdistance output from input string
parseRNAdistance :: [Char] -> Either ParseError RNAdistance
parseRNAdistance input = parse genParserRNAdistance "genParseRNAdistance" input
-- | parse RNAdistance output from input filePath
readRNAdistance :: String -> IO (Either ParseError RNAdistance)
readRNAdistance filePath = parseFromFile genParserRNAdistance filePath