ViennaRNAParser-1.0.1: src/Bio/RNAdistanceParser.hs
-- | Parse RNAdistance output
-- For more information on RNAdistance consult: <>
module Bio.RNAdistanceParser (
parseRNAdistance,
readRNAdistance,
module Bio.RNAdistanceData
) where
import Bio.RNAdistanceData
import Text.ParserCombinators.Parsec
readInt :: String -> Int
readInt = read
-- | Parse the consenus of RNAz results
genParserRNAdistance :: GenParser Char st RNAdistance
genParserRNAdistance = do
string ("f: ")
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