ClustalParser 1.2.1 → 1.2.2
raw patch · 3 files changed
+20/−8 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- ClustalParser.cabal +5/−5
- changelog +3/−0
- src/Bio/ClustalParser.hs +12/−3
ClustalParser.cabal view
@@ -5,7 +5,7 @@ -- PVP summary: +-+------- breaking API changes -- | | +----- non-breaking API additions -- | | | +--- code changes with no API change-version: 1.2.1+version: 1.2.2 synopsis: Libary for parsing Clustal tools output description: Currently contains parsers and datatypes for: clustalw2, clustalo, mlocarna, cmalign .@@ -18,10 +18,10 @@ Cmalign is a multiple sequence alignment program based on RNA family models and produces ,among others, clustal output. It is part of infernal <http://infernal.janelia.org/>. -license: GPL-3.0+license: GPL-3 license-file: LICENSE author: Florian Eggenhofer-maintainer: egg@tbi.univie.ac.at+maintainer: egg@informatik.uni-freiburg.de -- copyright: category: Bioinformatics build-type: Simple@@ -36,8 +36,8 @@ source-repository this type: git- location: https://github.com/eggzilla/ClustalParser/tree/1.2.1- tag: 1.2.1+ location: https://github.com/eggzilla/ClustalParser/tree/1.2.2+ tag: 1.2.2 library -- Modules exported by the library.
changelog view
@@ -1,4 +1,7 @@ -*-change-log-*-+1.2.2 Florian Eggenhofer <egg@cs.uni-freiburg.de> 07. March 2018+ * Clustal parser can now parse alignments with missing consensus+ annotation 1.2.1 Florian Eggenhofer <egg@cs.uni-freiburg.de> 06. February 2017 * Structural alignment parser now works with multiline consensus structures 1.2.0 Florian Eggenhofer <egg@cs.uni-freiburg.de> 07. January 2017
src/Bio/ClustalParser.hs view
@@ -140,15 +140,24 @@ entrySlices' <- many1 genParserClustalEntrySlice --extract length of identifier and spacer to determine offset of conservation track let offsetLenght = length (entrySequenceSliceIdentifier (head entrySlices')) + spacerLength (head entrySlices')+ conservationTrackSlice <- choice [(lookAhead (string "\n")), (try (genParserConservationTrackSlice offsetLenght))]+ --spacerAndConservationTrackSlice <- many1 (noneOf "\n")+ --let conservationTrackSlice' = drop offsetLenght spacerAndConservationTrackSlice+ --newline+ let conservationTrackSlice' = if (conservationTrackSlice == "\n") then "" else conservationTrackSlice+ optional newline+ return $ ClustalAlignmentSlice entrySlices' conservationTrackSlice'++genParserConservationTrackSlice :: Int -> GenParser Char st String+genParserConservationTrackSlice offsetLenght = do spacerAndConservationTrackSlice <- many1 (noneOf "\n") let conservationTrackSlice' = drop offsetLenght spacerAndConservationTrackSlice newline- optional newline- return $ ClustalAlignmentSlice entrySlices' conservationTrackSlice'+ return $ conservationTrackSlice' genParserClustalEntrySlice :: GenParser Char st ClustalAlignmentEntrySlice genParserClustalEntrySlice = do- sliceIdentifier <- many1 (noneOf " ")+ sliceIdentifier <- many1 (noneOf " \n") spacer <- many1 (char ' ') sliceSequence <- parseNucleotideAlignmentEntry newline