ViennaRNAParser 1.2.6 → 1.2.7
raw patch · 6 files changed
+164/−9 lines, 6 filesdep +transformersPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: transformers
API changes (from Hackage documentation)
- Bio.RNAalifoldData: alignmentConsensusDotBracket :: RNAalifold -> String
- Bio.RNAalifoldData: alignmentConsensusEnergyCovarianceContributions :: RNAalifold -> Double
- Bio.RNAalifoldData: alignmentConsensusInitialMinimumFreeEnergy :: RNAalifold -> Double
- Bio.RNAalifoldData: alignmentConsensusMinimumFreeEnergy :: RNAalifold -> Double
- Bio.RNAalifoldData: alignmentConsensusSequence :: RNAalifold -> String
- Bio.RNAalifoldData: instance Eq RNAalifold
- Bio.RNAalifoldData: instance Show RNAalifold
- Bio.RNAcofoldData: coFoldSecondaryStructure1 :: RNAcofold -> String
- Bio.RNAcofoldData: coFoldSecondaryStructure2 :: RNAcofold -> String
- Bio.RNAcofoldData: coFoldSequence1 :: RNAcofold -> String
- Bio.RNAcofoldData: coFoldSequence2 :: RNAcofold -> String
- Bio.RNAcofoldData: coFoldingEnergy :: RNAcofold -> Double
- Bio.RNAcofoldData: instance Eq RNAcofold
- Bio.RNAcofoldData: instance Show RNAcofold
- Bio.RNAdistanceData: instance Eq RNAdistance
- Bio.RNAdistanceData: instance Show RNAdistance
- Bio.RNAdistanceData: secondaryStructureDistance :: RNAdistance -> Int
- Bio.RNAfoldData: foldSecondaryStructure :: RNAfold -> String
- Bio.RNAfoldData: foldSequence :: RNAfold -> String
- Bio.RNAfoldData: foldingEnergy :: RNAfold -> Double
- Bio.RNAfoldData: instance Eq RNAfold
- Bio.RNAfoldData: instance Show RNAfold
- Bio.RNAfoldData: sequenceIdentifier :: RNAfold -> String
- Bio.RNAplexData: duplexEnergy :: RNAplexInteraction -> Double
- Bio.RNAplexData: duplexEnergyWithoutAccessiblity :: RNAplexInteraction -> Maybe Double
- Bio.RNAplexData: instance Eq RNAplexInteraction
- Bio.RNAplexData: instance Show RNAplexInteraction
- Bio.RNAplexData: plexSecondaryStructure :: RNAplexInteraction -> String
- Bio.RNAplexData: queryAccessiblity :: RNAplexInteraction -> Maybe Double
- Bio.RNAplexData: queryDuplexBegin :: RNAplexInteraction -> Int
- Bio.RNAplexData: queryDuplexEnd :: RNAplexInteraction -> Int
- Bio.RNAplexData: queryIdentifier :: RNAplexInteraction -> String
- Bio.RNAplexData: targetAccessibility :: RNAplexInteraction -> Maybe Double
- Bio.RNAplexData: targetDuplexBegin :: RNAplexInteraction -> Int
- Bio.RNAplexData: targetDuplexEnd :: RNAplexInteraction -> Int
- Bio.RNAplexData: targetIdentifier :: RNAplexInteraction -> String
- Bio.RNAupData: instance Eq RNAupInteraction
- Bio.RNAupData: instance Eq RNAupInteractionRegion
- Bio.RNAupData: instance Show RNAupInteraction
- Bio.RNAupData: instance Show RNAupInteractionRegion
- Bio.RNAupData: upDuplexEnergy :: RNAupInteractionRegion -> Double
- Bio.RNAupData: upDuplexEnergyWithoutAccessiblity :: RNAupInteractionRegion -> Maybe Double
- Bio.RNAupData: upInteractions :: RNAupInteraction -> [RNAupInteractionRegion]
- Bio.RNAupData: upOutputFileName :: RNAupInteractionRegion -> Maybe String
- Bio.RNAupData: upQueryAccessiblity :: RNAupInteractionRegion -> Maybe Double
- Bio.RNAupData: upQueryDuplexBegin :: RNAupInteractionRegion -> Int
- Bio.RNAupData: upQueryDuplexEnd :: RNAupInteractionRegion -> Int
- Bio.RNAupData: upQueryIdentifier :: RNAupInteraction -> String
- Bio.RNAupData: upQuerySequence :: RNAupInteractionRegion -> String
- Bio.RNAupData: upSecondaryStructure :: RNAupInteractionRegion -> String
- Bio.RNAupData: upTargetAccessibility :: RNAupInteractionRegion -> Maybe Double
- Bio.RNAupData: upTargetDuplexBegin :: RNAupInteractionRegion -> Int
- Bio.RNAupData: upTargetDuplexEnd :: RNAupInteractionRegion -> Int
- Bio.RNAupData: upTargetIdentifier :: RNAupInteraction -> String
- Bio.RNAupData: upTargetSequence :: RNAupInteractionRegion -> String
- Bio.RNAzData: backgroundModel :: RNAz -> String
- Bio.RNAzData: columnNumber :: RNAz -> Int
- Bio.RNAzData: combinationsPair :: RNAz -> Double
- Bio.RNAzData: consensusDotBracket :: RNAzConsensus -> String
- Bio.RNAzData: consensusMinimumFreeEnergy :: RNAz -> Double
- Bio.RNAzData: consensusSequence :: RNAzConsensus -> String
- Bio.RNAzData: covarianceContribution :: RNAz -> Double
- Bio.RNAzData: decisionModel :: RNAz -> String
- Bio.RNAzData: dotBracket :: RNAzResult -> String
- Bio.RNAzData: energyContribution :: RNAz -> Double
- Bio.RNAzData: gcContent :: RNAz -> Double
- Bio.RNAzData: header :: RNAzResult -> String
- Bio.RNAzData: instance Eq RNAz
- Bio.RNAzData: instance Eq RNAzConsensus
- Bio.RNAzData: instance Eq RNAzResult
- Bio.RNAzData: instance Show RNAz
- Bio.RNAzData: instance Show RNAzConsensus
- Bio.RNAzData: instance Show RNAzResult
- Bio.RNAzData: meanPairwiseIdentity :: RNAz -> Double
- Bio.RNAzData: meanSingleSequenceMinimumFreeEnergy :: RNAz -> Double
- Bio.RNAzData: meanZScore :: RNAz -> Double
- Bio.RNAzData: minimumFreeEnergy :: RNAzResult -> Double
- Bio.RNAzData: prediction :: RNAz -> String
- Bio.RNAzData: readingDirection :: RNAz -> String
- Bio.RNAzData: resultSequence :: RNAzResult -> String
- Bio.RNAzData: rnazConsensus :: RNAz -> RNAzConsensus
- Bio.RNAzData: rnazResults :: RNAz -> [RNAzResult]
- Bio.RNAzData: sequenceNumber :: RNAz -> Int
- Bio.RNAzData: shannonEntropy :: RNAz -> Double
- Bio.RNAzData: structureConservationIndex :: RNAz -> Double
- Bio.RNAzData: svmDecisionValue :: RNAz -> Double
- Bio.RNAzData: svmRNAClassProbability :: RNAz -> Double
- Bio.RNAzData: version :: RNAz -> String
- Bio.RNAzData: zScore :: RNAzResult -> Double
- Bio.RNAzData: zscoreCalculationApproach :: RNAzResult -> Char
+ Bio.RNAalifoldData: [alignmentConsensusDotBracket] :: RNAalifold -> String
+ Bio.RNAalifoldData: [alignmentConsensusEnergyCovarianceContributions] :: RNAalifold -> Double
+ Bio.RNAalifoldData: [alignmentConsensusInitialMinimumFreeEnergy] :: RNAalifold -> Double
+ Bio.RNAalifoldData: [alignmentConsensusMinimumFreeEnergy] :: RNAalifold -> Double
+ Bio.RNAalifoldData: [alignmentConsensusSequence] :: RNAalifold -> String
+ Bio.RNAalifoldData: instance GHC.Classes.Eq Bio.RNAalifoldData.RNAalifold
+ Bio.RNAalifoldData: instance GHC.Show.Show Bio.RNAalifoldData.RNAalifold
+ Bio.RNAcodeData: RNAcode :: [RNAcodeHit] -> Maybe Int -> Maybe Double -> Maybe Int -> Maybe Double -> Maybe Double -> Maybe Double -> Maybe Double -> RNAcode
+ Bio.RNAcodeData: RNAcodeHit :: Int -> Double -> Int -> Int -> Int -> String -> Int -> Int -> Double -> Double -> RNAcodeHit
+ Bio.RNAcodeData: [end] :: RNAcodeHit -> Int
+ Bio.RNAcodeData: [frame] :: RNAcodeHit -> Double
+ Bio.RNAcodeData: [from] :: RNAcodeHit -> Int
+ Bio.RNAcodeData: [hss] :: RNAcodeHit -> Int
+ Bio.RNAcodeData: [length] :: RNAcodeHit -> Int
+ Bio.RNAcodeData: [name] :: RNAcodeHit -> String
+ Bio.RNAcodeData: [pvalue] :: RNAcodeHit -> Double
+ Bio.RNAcodeData: [rcAlignmentNumber] :: RNAcode -> Maybe Int
+ Bio.RNAcodeData: [rcBigOmega] :: RNAcode -> Maybe Double
+ Bio.RNAcodeData: [rcDelta] :: RNAcode -> Maybe Double
+ Bio.RNAcodeData: [rcSampleNumber] :: RNAcode -> Maybe Int
+ Bio.RNAcodeData: [rcSmallOmega] :: RNAcode -> Maybe Double
+ Bio.RNAcodeData: [rcStopPenalty] :: RNAcode -> Maybe Double
+ Bio.RNAcodeData: [rcTime] :: RNAcode -> Maybe Double
+ Bio.RNAcodeData: [rnacodeHits] :: RNAcode -> [RNAcodeHit]
+ Bio.RNAcodeData: [score] :: RNAcodeHit -> Double
+ Bio.RNAcodeData: [start] :: RNAcodeHit -> Int
+ Bio.RNAcodeData: [to] :: RNAcodeHit -> Int
+ Bio.RNAcodeData: data RNAcode
+ Bio.RNAcodeData: data RNAcodeHit
+ Bio.RNAcodeData: instance GHC.Classes.Eq Bio.RNAcodeData.RNAcode
+ Bio.RNAcodeData: instance GHC.Classes.Eq Bio.RNAcodeData.RNAcodeHit
+ Bio.RNAcodeData: instance GHC.Show.Show Bio.RNAcodeData.RNAcode
+ Bio.RNAcodeData: instance GHC.Show.Show Bio.RNAcodeData.RNAcodeHit
+ Bio.RNAcodeParser: parseRNAcode :: String -> Either ParseError RNAcode
+ Bio.RNAcodeParser: parseRNAcodeTabular :: String -> Either ParseError RNAcode
+ Bio.RNAcodeParser: readRNAcode :: String -> IO (Either ParseError RNAcode)
+ Bio.RNAcodeParser: readRNAcodeTabular :: String -> IO (Either ParseError RNAcode)
+ Bio.RNAcodeParser: systemRNAcode :: String -> String -> String -> IO ExitCode
+ Bio.RNAcofoldData: [coFoldSecondaryStructure1] :: RNAcofold -> String
+ Bio.RNAcofoldData: [coFoldSecondaryStructure2] :: RNAcofold -> String
+ Bio.RNAcofoldData: [coFoldSequence1] :: RNAcofold -> String
+ Bio.RNAcofoldData: [coFoldSequence2] :: RNAcofold -> String
+ Bio.RNAcofoldData: [coFoldingEnergy] :: RNAcofold -> Double
+ Bio.RNAcofoldData: instance GHC.Classes.Eq Bio.RNAcofoldData.RNAcofold
+ Bio.RNAcofoldData: instance GHC.Show.Show Bio.RNAcofoldData.RNAcofold
+ Bio.RNAdistanceData: [secondaryStructureDistance] :: RNAdistance -> Int
+ Bio.RNAdistanceData: instance GHC.Classes.Eq Bio.RNAdistanceData.RNAdistance
+ Bio.RNAdistanceData: instance GHC.Show.Show Bio.RNAdistanceData.RNAdistance
+ Bio.RNAfoldData: [foldSecondaryStructure] :: RNAfold -> String
+ Bio.RNAfoldData: [foldSequence] :: RNAfold -> String
+ Bio.RNAfoldData: [foldingEnergy] :: RNAfold -> Double
+ Bio.RNAfoldData: [sequenceIdentifier] :: RNAfold -> String
+ Bio.RNAfoldData: instance GHC.Classes.Eq Bio.RNAfoldData.RNAfold
+ Bio.RNAfoldData: instance GHC.Show.Show Bio.RNAfoldData.RNAfold
+ Bio.RNAplexData: [duplexEnergyWithoutAccessiblity] :: RNAplexInteraction -> Maybe Double
+ Bio.RNAplexData: [duplexEnergy] :: RNAplexInteraction -> Double
+ Bio.RNAplexData: [plexSecondaryStructure] :: RNAplexInteraction -> String
+ Bio.RNAplexData: [queryAccessiblity] :: RNAplexInteraction -> Maybe Double
+ Bio.RNAplexData: [queryDuplexBegin] :: RNAplexInteraction -> Int
+ Bio.RNAplexData: [queryDuplexEnd] :: RNAplexInteraction -> Int
+ Bio.RNAplexData: [queryIdentifier] :: RNAplexInteraction -> String
+ Bio.RNAplexData: [targetAccessibility] :: RNAplexInteraction -> Maybe Double
+ Bio.RNAplexData: [targetDuplexBegin] :: RNAplexInteraction -> Int
+ Bio.RNAplexData: [targetDuplexEnd] :: RNAplexInteraction -> Int
+ Bio.RNAplexData: [targetIdentifier] :: RNAplexInteraction -> String
+ Bio.RNAplexData: instance GHC.Classes.Eq Bio.RNAplexData.RNAplexInteraction
+ Bio.RNAplexData: instance GHC.Show.Show Bio.RNAplexData.RNAplexInteraction
+ Bio.RNAupData: [upDuplexEnergyWithoutAccessiblity] :: RNAupInteractionRegion -> Maybe Double
+ Bio.RNAupData: [upDuplexEnergy] :: RNAupInteractionRegion -> Double
+ Bio.RNAupData: [upInteractions] :: RNAupInteraction -> [RNAupInteractionRegion]
+ Bio.RNAupData: [upOutputFileName] :: RNAupInteractionRegion -> Maybe String
+ Bio.RNAupData: [upQueryAccessiblity] :: RNAupInteractionRegion -> Maybe Double
+ Bio.RNAupData: [upQueryDuplexBegin] :: RNAupInteractionRegion -> Int
+ Bio.RNAupData: [upQueryDuplexEnd] :: RNAupInteractionRegion -> Int
+ Bio.RNAupData: [upQueryIdentifier] :: RNAupInteraction -> String
+ Bio.RNAupData: [upQuerySequence] :: RNAupInteractionRegion -> String
+ Bio.RNAupData: [upSecondaryStructure] :: RNAupInteractionRegion -> String
+ Bio.RNAupData: [upTargetAccessibility] :: RNAupInteractionRegion -> Maybe Double
+ Bio.RNAupData: [upTargetDuplexBegin] :: RNAupInteractionRegion -> Int
+ Bio.RNAupData: [upTargetDuplexEnd] :: RNAupInteractionRegion -> Int
+ Bio.RNAupData: [upTargetIdentifier] :: RNAupInteraction -> String
+ Bio.RNAupData: [upTargetSequence] :: RNAupInteractionRegion -> String
+ Bio.RNAupData: instance GHC.Classes.Eq Bio.RNAupData.RNAupInteraction
+ Bio.RNAupData: instance GHC.Classes.Eq Bio.RNAupData.RNAupInteractionRegion
+ Bio.RNAupData: instance GHC.Show.Show Bio.RNAupData.RNAupInteraction
+ Bio.RNAupData: instance GHC.Show.Show Bio.RNAupData.RNAupInteractionRegion
+ Bio.RNAzData: [backgroundModel] :: RNAz -> String
+ Bio.RNAzData: [columnNumber] :: RNAz -> Int
+ Bio.RNAzData: [combinationsPair] :: RNAz -> Double
+ Bio.RNAzData: [consensusDotBracket] :: RNAzConsensus -> String
+ Bio.RNAzData: [consensusMinimumFreeEnergy] :: RNAz -> Double
+ Bio.RNAzData: [consensusSequence] :: RNAzConsensus -> String
+ Bio.RNAzData: [covarianceContribution] :: RNAz -> Double
+ Bio.RNAzData: [decisionModel] :: RNAz -> String
+ Bio.RNAzData: [dotBracket] :: RNAzResult -> String
+ Bio.RNAzData: [energyContribution] :: RNAz -> Double
+ Bio.RNAzData: [gcContent] :: RNAz -> Double
+ Bio.RNAzData: [header] :: RNAzResult -> String
+ Bio.RNAzData: [meanPairwiseIdentity] :: RNAz -> Double
+ Bio.RNAzData: [meanSingleSequenceMinimumFreeEnergy] :: RNAz -> Double
+ Bio.RNAzData: [meanZScore] :: RNAz -> Double
+ Bio.RNAzData: [minimumFreeEnergy] :: RNAzResult -> Double
+ Bio.RNAzData: [prediction] :: RNAz -> String
+ Bio.RNAzData: [readingDirection] :: RNAz -> String
+ Bio.RNAzData: [resultSequence] :: RNAzResult -> String
+ Bio.RNAzData: [rnazConsensus] :: RNAz -> RNAzConsensus
+ Bio.RNAzData: [rnazResults] :: RNAz -> [RNAzResult]
+ Bio.RNAzData: [sequenceNumber] :: RNAz -> Int
+ Bio.RNAzData: [shannonEntropy] :: RNAz -> Double
+ Bio.RNAzData: [structureConservationIndex] :: RNAz -> Double
+ Bio.RNAzData: [svmDecisionValue] :: RNAz -> Double
+ Bio.RNAzData: [svmRNAClassProbability] :: RNAz -> Double
+ Bio.RNAzData: [version] :: RNAz -> String
+ Bio.RNAzData: [zScore] :: RNAzResult -> Double
+ Bio.RNAzData: [zscoreCalculationApproach] :: RNAzResult -> Char
+ Bio.RNAzData: instance GHC.Classes.Eq Bio.RNAzData.RNAz
+ Bio.RNAzData: instance GHC.Classes.Eq Bio.RNAzData.RNAzConsensus
+ Bio.RNAzData: instance GHC.Classes.Eq Bio.RNAzData.RNAzResult
+ Bio.RNAzData: instance GHC.Show.Show Bio.RNAzData.RNAz
+ Bio.RNAzData: instance GHC.Show.Show Bio.RNAzData.RNAzConsensus
+ Bio.RNAzData: instance GHC.Show.Show Bio.RNAzData.RNAzResult
Files
- README.md +1/−1
- ViennaRNAParser.cabal +7/−5
- changelog +4/−2
- src/Bio/RNAcodeData.hs +35/−0
- src/Bio/RNAcodeParser.hs +112/−0
- src/Bio/ViennaRNAParser.hs +5/−1
README.md view
@@ -1,7 +1,7 @@ ViennaRNAParser [](https://hackage.haskell.org/package/ViennaRNAParser) [](https://travis-ci.org/eggzilla/ViennaRNAParser) ============= -Currently contains parsers and datatypes for: RNAalifold, RNAdistance, RNAcofold, RNAfold, RNAplex, RNAup, RNAz.+Currently contains parsers and datatypes for: RNAalifold, RNAcode ,RNAdistance, RNAcofold, RNAfold, RNAplex, RNAup, RNAz. For more information on the ViennaRNA package refer to <http://www.tbi.univie.ac.at/RNA/>.
ViennaRNAParser.cabal view
@@ -5,9 +5,9 @@ -- PVP summary: +-+------- breaking API changes -- | | +----- non-breaking API additions -- | | | +--- code changes with no API change-version: 1.2.6+version: 1.2.7 synopsis: Libary for parsing ViennaRNA package output-description: Currently contains parsers and datatypes for: RNAalifold, RNAdistance, RNAcofold, RNAfold, RNAplex, RNAup, RNAz.+description: Currently contains parsers and datatypes for: RNAalifold, RNAcode, RNAdistance, RNAcofold, RNAfold, RNAplex, RNAup, RNAz. . For more information on the ViennaRNA package refer to <http://www.tbi.univie.ac.at/RNA/>. .@@ -30,13 +30,15 @@ source-repository this type: git- location: https://github.com/eggzilla/ViennaRNAParser/tree/1.2.6- tag: 1.2.6+ location: https://github.com/eggzilla/ViennaRNAParser/tree/1.2.7+ tag: 1.2.7 library -- Modules exported by the library. exposed-modules: Bio.ViennaRNAParser Bio.ViennaRNAParserLibrary+ Bio.RNAcodeData+ Bio.RNAcodeParser Bio.RNAcofoldData Bio.RNAcofoldParser Bio.RNAfoldData@@ -56,7 +58,7 @@ ghc-options: -Wall -O2 -fno-warn-unused-do-bind -- Other library packages from which modules are imported.- build-depends: base >=4.5 && <5, parsec>=3.1.9, process+ build-depends: base >=4.5 && <5, parsec>=3.1.9, process, transformers -- Directories containing source files. hs-source-dirs: src
changelog view
@@ -1,7 +1,9 @@ -*-change-log-*--+1.2.7 Florian Eggenhofer <florian.eggenhofer@univie.ac.at> 4. January 2016+ * Added RNAcode parser+ * Added stackage yaml file 1.2.6 Florian Eggenhofer <florian.eggenhofer@univie.ac.at> 7. September 2015- * Added a options argument to RNAz systemcall function+ * Added options to RNAz syscall function 1.2.5 Florian Eggenhofer <florian.eggenhofer@univie.ac.at> 9. July 2015 * Fixed parsing of multiple warning fields and optional whitespaces in RNAz consensus energy
+ src/Bio/RNAcodeData.hs view
@@ -0,0 +1,35 @@+-- | This module contains a hierarchical data structure for+-- RNAcode output+-- For more information on RNAcode consult: <http://wash.github.io/rnacode/>++module Bio.RNAcodeData where+ +-- | All elements of RNAcode output are contained in this datatype +data RNAcode = RNAcode+ { + rnacodeHits :: [RNAcodeHit],+ rcAlignmentNumber :: Maybe Int,+ rcTime :: Maybe Double,+ rcSampleNumber :: Maybe Int,+ rcDelta :: Maybe Double,+ rcBigOmega :: Maybe Double,+ rcSmallOmega :: Maybe Double,+ rcStopPenalty :: Maybe Double+ }+ deriving (Show, Eq)++-- | RNAcode Hit+data RNAcodeHit = RNAcodeHit+ { + hss :: Int,+ frame :: Double,+ length :: Int,+ from :: Int,+ to :: Int,+ name :: String,+ start :: Int,+ end :: Int,+ score :: Double,+ pvalue :: Double+ }+ deriving (Show, Eq)
+ src/Bio/RNAcodeParser.hs view
@@ -0,0 +1,112 @@+-- | Parse RNAcode output+-- For more information on RNAcode consult: <http://wash.github.io/rnacode/>+++module Bio.RNAcodeParser (+ systemRNAcode,+ parseRNAcode,+ readRNAcode,+ parseRNAcodeTabular,+ readRNAcodeTabular,+ module Bio.RNAcodeData+ ) where+import Data.Functor.Identity+import Bio.RNAcodeData+import Text.ParserCombinators.Parsec+import System.Process+import System.Exit+import Text.Parsec.Token+import qualified Control.Exception.Base as CE+import Text.Parsec.Language (haskell)+import Control.Applicative ((<*>),(<$>),(<$),pure)++-- | Run external RNAcode command and read the output into the corresponding datatype+systemRNAcode :: String -> String -> String -> IO ExitCode+systemRNAcode options inputFilePath outputFilePath = system ("RNAcode " ++ options ++ " " ++ inputFilePath ++ " >" ++ outputFilePath)++-- | Parse the tabular input as RNAcode datatype+genParseRNAcodeTabular :: GenParser Char st RNAcode+genParseRNAcodeTabular = do+ _rnacodeHits <- many1 genParseRNAcodeTabularHit+ return $ RNAcode _rnacodeHits Nothing Nothing Nothing Nothing Nothing Nothing Nothing++-- | Parse the input as RNAcodeHit+genParseRNAcodeTabularHit :: GenParser Char st RNAcodeHit+genParseRNAcodeTabularHit = do+ _hss <- natural haskell+ _frame <- integer haskell+ _length <- natural haskell+ _from <- natural haskell+ _to <- natural haskell+ _name <- identifier haskell+ _start <- natural haskell+ _end <- natural haskell+ _score <- float haskell+ _pvalue <- float haskell+ return $ RNAcodeHit (fromInteger _hss) (fromInteger _frame) (fromInteger _length) (fromInteger _from) (fromInteger _to) _name (fromInteger _start) (fromInteger _end) _score _pvalue +++-- | Parse the input as RNAcode datatype+genParseRNAcode :: GenParser Char st RNAcode+genParseRNAcode = do+ many1 (oneOf " \n")+ string "HSS # Frame Length From To Name Start End Score P"+ newline+ string "======================================================================================"+ newline+ _rnacodeHits <- many1 (try genParseRNAcodeHit)+ newline+ _alignmentnumber <- natural haskell+ string "alignment(s) scored in "+ _time <- float haskell+ string "seconds. Parameters used:"+ newline+ string "N="+ _samples <- natural haskell+ string ", Delta="+ --_delta <- float haskell+ _delta <- (try (negate <$ char '-') <|> pure id) <*> float haskell+ string ", Omega="+ _bigomega <- (try (negate <$ char '-') <|> pure id) <*> float haskell+ string ", omega="+ _smallomega <- (try (negate <$ char '-') <|> pure id) <*> float haskell+ string ", stop penalty="+ _stopPenalty <- (try (negate <$ char '-') <|> pure id) <*> float haskell+ return $ RNAcode _rnacodeHits (Just (fromInteger _alignmentnumber)) (Just _time) (Just (fromInteger _samples)) (Just _delta) (Just _bigomega) (Just _smallomega) (Just _stopPenalty)++-- | Parse the input as RNAcodeHit+genParseRNAcodeHit :: GenParser Char st RNAcodeHit+genParseRNAcodeHit = do+ many (char ' ')+ _hss <- natural haskell+ _frame <- integer haskell+ _length <- natural haskell+ _from <- natural haskell+ _to <- natural haskell+ _name <- identifier haskell+ _start <- natural haskell+ _end <- natural haskell+ _score <- float haskell+ _pvalue <- many1 (try (choice [digit,char '.']))+ newline+ return $ RNAcodeHit (fromInteger _hss) (fromInteger _frame) (fromInteger _length) (fromInteger _from) (fromInteger _to) _name (fromInteger _start) (fromInteger _end) _score (read _pvalue :: Double)++-- | parse RNAcode from input string+parseRNAcode :: String -> Either ParseError RNAcode+parseRNAcode = parse genParseRNAcode "parseRNAcode"++-- | parse RNAcode from input filePath +readRNAcode :: String -> IO (Either ParseError RNAcode) +readRNAcode filePath = do + parsedFile <- parseFromFile genParseRNAcode filePath+ CE.evaluate parsedFile++-- | parse RNAcode from input string+parseRNAcodeTabular :: String -> Either ParseError RNAcode+parseRNAcodeTabular = parse genParseRNAcodeTabular "parseRNAcode" ++-- | parse RNAcode from input filePath +readRNAcodeTabular :: String -> IO (Either ParseError RNAcode) +readRNAcodeTabular filePath = do + parsedFile <- parseFromFile genParseRNAcodeTabular filePath+ CE.evaluate parsedFile
src/Bio/ViennaRNAParser.hs view
@@ -3,7 +3,9 @@ -- For more information on the Vienna RNAPackage consult: <http://www.tbi.univie.ac.at/~ivo/RNA/> -- or the homepage of the current maintainer: <http://www.tbi.univie.ac.at/~ronny/RNA/index.html> -module Bio.ViennaRNAParser ( +module Bio.ViennaRNAParser (+ module Bio.RNAcodeData,+ module Bio.RNAcodeParser, module Bio.RNAcofoldData, module Bio.RNAcofoldParser, module Bio.RNAplexData,@@ -19,6 +21,8 @@ module Bio.RNAupData, module Bio.RNAupParser ) where+import Bio.RNAcodeData+import Bio.RNAcodeParser import Bio.RNAcofoldData import Bio.RNAcofoldParser import Bio.RNAplexData