ViennaRNAParser 1.2.9 → 1.3.0
raw patch · 4 files changed
+37/−21 lines, 4 filesdep +ParsecToolsPVP ok
version bump matches the API change (PVP)
Dependencies added: ParsecTools
API changes (from Hackage documentation)
+ Bio.RNAplexData: [prefilterEnergy] :: RNAplexInteraction -> Maybe Double
+ Bio.RNAplexData: [prefilterStart] :: RNAplexInteraction -> Maybe Int
+ Bio.RNAplexData: [prefilterStop] :: RNAplexInteraction -> Maybe Int
- Bio.RNAplexData: RNAplexInteraction :: String -> String -> String -> Int -> Int -> Int -> Int -> Double -> Maybe Double -> Maybe Double -> Maybe Double -> RNAplexInteraction
+ Bio.RNAplexData: RNAplexInteraction :: String -> String -> String -> Int -> Int -> Int -> Int -> Double -> Maybe Double -> Maybe Double -> Maybe Double -> Maybe Int -> Maybe Int -> Maybe Double -> RNAplexInteraction
Files
- ViennaRNAParser.cabal +4/−4
- changelog +2/−0
- src/Bio/RNAplexData.hs +4/−1
- src/Bio/RNAplexParser.hs +27/−16
ViennaRNAParser.cabal view
@@ -5,7 +5,7 @@ -- PVP summary: +-+------- breaking API changes -- | | +----- non-breaking API additions -- | | | +--- code changes with no API change-version: 1.2.9+version: 1.3.0 synopsis: Libary for parsing ViennaRNA package output description: Currently contains parsers and datatypes for: RNAalifold, RNAcode, RNAdistance, RNAcofold, RNAfold, RNAplex, RNAup, RNAz. .@@ -30,8 +30,8 @@ source-repository this type: git- location: https://github.com/eggzilla/ViennaRNAParser/tree/1.2.9- tag: 1.2.9+ location: https://github.com/eggzilla/ViennaRNAParser/tree/1.3.0+ tag: 1.3.0 library -- Modules exported by the library.@@ -58,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, transformers+ build-depends: base >=4.5 && <5, parsec>=3.1.9, process, transformers, ParsecTools -- Directories containing source files. hs-source-dirs: src
changelog view
@@ -1,4 +1,6 @@ -*-change-log-*-+1.3.0 Florian Eggenhofer <egg@informatik.uni-freiburg.de> 6. September 2016+ * Added support for new prefilter fields in RNAplex output 1.2.8 Florian Eggenhofer <florian.eggenhofer@univie.ac.at> 11. February 2016 * Fixed special character parsing of identifiers in RNAcode 1.2.7 Florian Eggenhofer <florian.eggenhofer@univie.ac.at> 4. January 2016
src/Bio/RNAplexData.hs view
@@ -17,6 +17,9 @@ duplexEnergy :: Double, duplexEnergyWithoutAccessiblity :: Maybe Double, queryAccessiblity :: Maybe Double,- targetAccessibility :: Maybe Double+ targetAccessibility :: Maybe Double,+ prefilterStart :: Maybe Int,+ prefilterStop :: Maybe Int,+ prefilterEnergy :: Maybe Double } deriving (Show, Eq)
src/Bio/RNAplexParser.hs view
@@ -9,7 +9,8 @@ import Bio.RNAplexData import Bio.ViennaRNAParserLibrary-import Text.ParserCombinators.Parsec +import Text.ParserCombinators.Parsec+import Text.Parsec.Numbers import Control.Monad -- | Parse the input as list of RNAplexInteraction datatype@@ -30,34 +31,44 @@ newline _secondaryStructure <- many1 (oneOf "&().,") many1 space- _targetDuplexBegin <- many1 digit+ _targetDuplexBegin <- parseIntegral char ','- _targetDuplexEnd <- many1 digit+ _targetDuplexEnd <- parseIntegral many1 space char ':' many1 space- _queryDuplexBegin <- many1 digit+ _queryDuplexBegin <- parseIntegral char ','- _queryDuplexEnd <- many1 digit+ _queryDuplexEnd <- parseIntegral many1 space char '('- optional space- _duplexEnergy <- many1 (noneOf (" )"))- optional space+ optional (string " ")+ _duplexEnergy <- parseFloat+ optional (string " ") optional (char '=')- optional space- _duplexEnergyWithoutAccessiblity <- optionMaybe (try (many1 (noneOf (" )"))))- optional space + optional (string " ")+ _duplexEnergyWithoutAccessiblity <- optionMaybe (try parseFloat)+ optional (string " ") optional (char '+')- optional (many1 space)- _queryAccessiblity <- optionMaybe (try (many1 (noneOf (" )")))) - optional space + optional (many1 (string " "))+ _queryAccessiblity <- optionMaybe (try parseFloat) + optional (string " ") optional (char '+') optional (many1 space)- _targetAccessibility <- optionMaybe (try (many1 (noneOf (")"))))+ _targetAccessibility <- optionMaybe (try parseFloat) char ')'+ many (oneOf " ")+ optional (string "i:")+ _prefilterStart <- optionMaybe (try parseIntegral)+ optional (string ",")+ optional (string "j:")+ _prefilterEnd <- optionMaybe (try parseIntegral)+ many (oneOf " ")+ optional (string "<")+ _prefilterEnergy <- optionMaybe (try parseFloat)+ optional (string ">") newline- return $ RNAplexInteraction _targetIdentifier _queryIdentifier _secondaryStructure (readInt _targetDuplexBegin) (readInt _targetDuplexEnd) (readInt _queryDuplexBegin) (readInt _queryDuplexEnd) (readDouble _duplexEnergy) (liftM readDouble _duplexEnergyWithoutAccessiblity) (liftM readDouble _queryAccessiblity) (liftM readDouble _targetAccessibility)+ return $ RNAplexInteraction _targetIdentifier _queryIdentifier _secondaryStructure _targetDuplexBegin _targetDuplexEnd _queryDuplexBegin _queryDuplexEnd _duplexEnergy _duplexEnergyWithoutAccessiblity _queryAccessiblity _targetAccessibility _prefilterStart _prefilterEnd _prefilterEnergy -- | parse RNAplexOutput from input string parseRNAplex :: [Char] -> Either ParseError [RNAplexInteraction]