packages feed

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 view
@@ -1,7 +1,7 @@ ViennaRNAParser [![Hackage](https://img.shields.io/hackage/v/ViennaRNAParser.svg)](https://hackage.haskell.org/package/ViennaRNAParser) [![Build Status](https://travis-ci.org/eggzilla/ViennaRNAParser.svg)](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