cobot-io 0.1.3.14 → 0.1.3.15
raw patch · 4 files changed
+28/−15 lines, 4 files
Files
- ChangeLog.md +4/−0
- cobot-io.cabal +2/−2
- src/Bio/GB/Parser.hs +15/−13
- test/GBParserSpec.hs +7/−0
ChangeLog.md view
@@ -2,6 +2,10 @@ ## [Unreleased] +## [0.1.3.15] - 2021-02-16+### Fixed+- Unknown fields in GB.+ ## [0.1.3.14] - 2021-02-10 ### Changed - Added ability to parse modifications in Fasta.
cobot-io.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: b4805dfc259e39022dd3313837d29888036016ead10be1b3b52215e16a76f7a7+-- hash: 41de9b4b3a1a9916fe78ee831e4e9811e27725529c468f9b43d3378b25a5bc5b name: cobot-io-version: 0.1.3.14+version: 0.1.3.15 synopsis: Biological data file formats and IO description: Please see the README on GitHub at <https://github.com/biocad/cobot-io#readme> category: Bio
src/Bio/GB/Parser.hs view
@@ -4,17 +4,18 @@ ( genBankP ) where -import Bio.GB.Type (Feature (..), Form (..), GenBankSequence (..), Locus (..), Meta (..),- Reference (..), Source (..), Version (..))-import Bio.Sequence (MarkedSequence, Range, markedSequence)-import Control.Applicative ((<|>))-import Data.Attoparsec.Text (Parser, char, decimal, digit, endOfInput, endOfLine, letter, many',- many1', satisfy, string, takeWhile, takeWhile1)-import Data.Bifunctor (bimap)-import Data.Char (isAlphaNum, isSpace, isUpper)-import Data.Functor (($>))-import Data.Text (Text, intercalate, pack, splitOn, unpack)-import Prelude hiding (takeWhile)+import Bio.GB.Type (Feature (..), Form (..), GenBankSequence (..), Locus (..),+ Meta (..), Reference (..), Source (..), Version (..))+import Bio.Sequence (MarkedSequence, Range, markedSequence)+import Control.Applicative ((<|>))+import Data.Attoparsec.Combinator (manyTill)+import Data.Attoparsec.Text (Parser, char, decimal, digit, endOfInput, endOfLine, letter,+ many', many1', satisfy, string, takeWhile, takeWhile1)+import Data.Bifunctor (bimap)+import Data.Char (isAlphaNum, isSpace, isUpper)+import Data.Functor (($>))+import Data.Text (Text, intercalate, pack, splitOn, unpack)+import Prelude hiding (takeWhile) -- | Parser of .gb file. --@@ -55,7 +56,7 @@ textP = takeWhile1 $ not . isSpace formP :: Parser Form- formP = (string "linear" $> Linear) <|> (string "circular" *> pure Circular)+ formP = (string "linear" $> Linear) <|> (string "circular" $> Circular) definitionP :: Parser Text definitionP = string "DEFINITION" *> space *> (emptyP <|> someLinesP)@@ -104,7 +105,8 @@ -------------------------------------------------------------------------------- featuresP :: Parser [(Feature, Range)]-featuresP = string "FEATURES" *> space+featuresP = manyTill (textWithSpacesP <* eolSpaceP) (string "FEATURES") *> space+ -- ^ skip unknown fields and stop on line with "FEATURES" *> textWithSpacesP <* eolSpaceP *> many1' featureP
test/GBParserSpec.hs view
@@ -13,6 +13,7 @@ pAAVGFPSpecP "test/GB/pAAV-GFP-CellBioLab.gb" pAAVCMVSpecP "test/GB/pAAV_CMV_RPE65_PolyA_linkers.gb" dottedMetaSpecP "test/GB/pAAV-GFP-CellBioLab-dots.gb"+ unknownFieldsSpecP "test/GB/pIntA-TRBV.gb" pAAVGFPSpecP :: FilePath -> Spec pAAVGFPSpecP path = describe "pAAVGFP" $ do@@ -39,6 +40,12 @@ it "correctly parses meta information with all info set to dots" $ do mt <- meta <$> fromFile path mt `shouldBe` dottedMeta++unknownFieldsSpecP :: FilePath -> Spec+unknownFieldsSpecP path = describe "Unknown fields" $ do+ it "correctly parses and skip unknown fields before FEATURES" $ do+ mt <- meta <$> fromFile path+ name (locus mt) `shouldBe` "P2-32_pIntA-TRBV5-1_J1-1-Fc-lama-knob-EPEA" pAAVGFPMeta :: Meta