biohazard 1.0.1 → 1.0.2
raw patch · 12 files changed
+40/−31 lines, 12 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Bio.Iteratee.Builder: TkLnString :: {-# UNPACK #-} !ByteString -> BgzfTokens -> BgzfTokens
+ Bio.Bam.Header: flagSecondary :: Int
+ Bio.Bam.Header: flagSupplementary :: Int
+ Bio.Bam.Rec: isSecondary :: BamRec -> Bool
+ Bio.Bam.Rec: isSupplementary :: BamRec -> Bool
Files
- biohazard.cabal +2/−2
- src/Bio/Bam/Fastq.hs +2/−0
- src/Bio/Bam/Header.hs +7/−2
- src/Bio/Bam/Rec.hs +7/−2
- src/Bio/Bam/Writer.hs +2/−1
- src/Bio/Iteratee.hs +2/−2
- src/Bio/Iteratee/Base.hs +2/−2
- src/Bio/Iteratee/Builder.hs +10/−14
- src/Bio/Iteratee/IO.hs +2/−2
- src/Bio/Iteratee/Iteratee.hs +2/−2
- src/Bio/Iteratee/List.hs +1/−1
- src/Bio/TwoBit.hs +1/−1
biohazard.cabal view
@@ -1,5 +1,5 @@ Name: biohazard-Version: 1.0.1+Version: 1.0.2 Synopsis: bioinformatics support library Description: This is a collection of modules I separated from various bioinformatics tools.@@ -58,7 +58,7 @@ Build-depends: async >= 2.0 && < 2.3, attoparsec >= 0.10 && < 0.14, base >= 4.7 && < 4.12,- base-prelude == 1.2.*,+ base-prelude == 1.2.0.*, bytestring >= 0.10.2 && < 0.11, containers == 0.5.*, exceptions >= 0.6 && < 0.9,
src/Bio/Bam/Fastq.hs view
@@ -10,6 +10,8 @@ import Bio.Prelude hiding ( isSpace ) import Bio.Iteratee import Data.Attoparsec.ByteString.Char8+ ( char, skipSpace, satisfy, inClass, skipWhile, takeTill+ , scan, isSpace, isSpace_w8, (<?>) ) import qualified Data.Attoparsec.ByteString.Char8 as P import qualified Data.ByteString as B
src/Bio/Bam/Header.hs view
@@ -34,8 +34,10 @@ flagFirstMate, flagSecondMate, flagAuxillary,+ flagSecondary, flagFailsQC, flagDuplicate,+ flagSupplementary, eflagTrimmed, eflagMerged, eflagAlternative,@@ -50,7 +52,7 @@ import Bio.Prelude hiding ( uncons ) import Data.ByteString ( uncons )-import Data.ByteString.Builder+import Data.ByteString.Builder ( Builder, byteString, char7, intDec, word16LE ) import Data.Sequence ( (><), (|>) ) import qualified Data.Attoparsec.ByteString.Char8 as P@@ -301,7 +303,8 @@ flagPaired, flagProperlyPaired, flagUnmapped, flagMateUnmapped, flagReversed, flagMateReversed, flagFirstMate, flagSecondMate,- flagAuxillary, flagFailsQC, flagDuplicate :: Int+ flagAuxillary, flagSecondary, flagFailsQC, flagDuplicate,+ flagSupplementary :: Int flagPaired = 0x1 flagProperlyPaired = 0x2@@ -312,8 +315,10 @@ flagFirstMate = 0x40 flagSecondMate = 0x80 flagAuxillary = 0x100+flagSecondary = 0x100 flagFailsQC = 0x200 flagDuplicate = 0x400+flagSupplementary = 0x800 eflagTrimmed, eflagMerged, eflagAlternative, eflagExactIndex :: Int eflagTrimmed = 0x1
src/Bio/Bam/Rec.hs view
@@ -35,8 +35,10 @@ isFirstMate, isSecondMate, isAuxillary,+ isSecondary, isFailsQC, isDuplicate,+ isSupplementary, isTrimmed, isMerged, isAlternative,@@ -342,8 +344,9 @@ isPaired, isProperlyPaired, isUnmapped, isMateUnmapped, isReversed,- isMateReversed, isFirstMate, isSecondMate, isAuxillary, isFailsQC,- isDuplicate, isTrimmed, isMerged, isAlternative, isExactIndex :: BamRec -> Bool+ isMateReversed, isFirstMate, isSecondMate, isAuxillary, isSecondary,+ isFailsQC, isDuplicate, isSupplementary,+ isTrimmed, isMerged, isAlternative, isExactIndex :: BamRec -> Bool isPaired = flip testBit 0 . b_flag isProperlyPaired = flip testBit 1 . b_flag@@ -354,8 +357,10 @@ isFirstMate = flip testBit 6 . b_flag isSecondMate = flip testBit 7 . b_flag isAuxillary = flip testBit 8 . b_flag+isSecondary = flip testBit 8 . b_flag isFailsQC = flip testBit 9 . b_flag isDuplicate = flip testBit 10 . b_flag+isSupplementary = flip testBit 11 . b_flag isTrimmed = flip testBit 0 . extAsInt 0 "FF" isMerged = flip testBit 1 . extAsInt 0 "FF"
src/Bio/Bam/Writer.hs view
@@ -113,7 +113,8 @@ {-# INLINE pushBamRaw #-} pushBamRaw :: BamRaw -> BgzfTokens -> BgzfTokens-pushBamRaw = TkLnString . raw_data+pushBamRaw r = TkWord32 (fromIntegral $ B.length $ raw_data r) .+ TkString (raw_data r) -- | Writes BAM encoded stuff to a file. writeBamFile :: IsBamRec r => FilePath -> BamMeta -> Iteratee [r] IO ()
src/Bio/Iteratee.hs view
@@ -57,8 +57,8 @@ import Bio.Util.Numeric ( showNum ) import Control.Concurrent.Async ( Async, async, wait, cancel ) import Control.Monad.Catch ( MonadMask(..) )-import Control.Monad.IO.Class-import Control.Monad.Trans.Class+import Control.Monad.IO.Class ( MonadIO(..) )+import Control.Monad.Trans.Class ( MonadTrans(..) ) import System.IO ( hIsTerminalDevice ) import qualified Control.Monad.Catch as CMC
src/Bio/Iteratee/Base.hs view
@@ -35,8 +35,8 @@ import Bio.Prelude import Control.Monad.Catch as CIO-import Control.Monad.IO.Class-import Control.Monad.Trans.Class+import Control.Monad.IO.Class ( MonadIO(..) )+import Control.Monad.Trans.Class ( MonadTrans(..) ) import qualified Control.Exception as E import qualified Data.ByteString as B
src/Bio/Iteratee/Builder.hs view
@@ -55,7 +55,6 @@ | TkDouble {-# UNPACK #-} !Double BgzfTokens -- a double | TkString {-# UNPACK #-} !B.ByteString BgzfTokens -- a raw string | TkDecimal {-# UNPACK #-} !Int BgzfTokens -- roughly ':%d'- | TkLnString {-# UNPACK #-} !B.ByteString BgzfTokens -- a length-prefixed string -- lotsa stuff might be missing here | TkSetMark BgzfTokens -- sets the first mark@@ -128,10 +127,18 @@ flush_blocks tk bb k | min (mark bb) (used bb) - off bb < maxBlockSize = case tk of TkEnd -> liftI $ go bb k+ _ -> expandBuffer (2 * size bb) bb `ioBind` \bb' ->+ go1 bb' k tk++ | otherwise = flush_blocks1 tk bb k++ flush_blocks1 tk bb k+ | min (mark bb) (used bb) - off bb < maxBlockSize =+ case tk of TkEnd -> liftI $ go bb k _ -> go1 bb k tk | otherwise =- eneeCheckIfDone (flush_blocks tk bb { off = off bb + maxBlockSize }) $+ eneeCheckIfDone (flush_blocks1 tk bb { off = off bb + maxBlockSize }) $ k $ Chunk [compressChunk' lv (buffer bb) (off bb) maxBlockSize] final_flush bb mx k@@ -175,7 +182,7 @@ TkString s tk' -- Too big, can't handle. We will get progressively bigger -- buffers and eventually handle it.- | B.length s > size bb - use -> return (bb { used = use },tk')+ | B.length s > size bb - use -> return (bb { used = use },tk1) | otherwise -> do let ln = B.length s B.unsafeUseAsCString s $ \q ->@@ -184,17 +191,6 @@ TkDecimal x tk' -> do ln <- int_loop (p `plusPtr` use) x go_fast p bb (use + ln) tk'-- TkLnString s tk'- -- Too big, can't handle. We will get progressively bigger- -- buffers and eventually handle it.- | B.length s > size bb - use - 4 -> return (bb { used = use },tk')-- | otherwise -> do let ln = B.length s- pokeByteOff p use (fromIntegral ln :: Word32)- B.unsafeUseAsCString s $ \q ->- copyBytes (p `plusPtr` (use + 4)) q ln- go_fast p bb (use + ln + 4) tk' TkSetMark tk' -> go_slowish p bb { used = use + 4, mark = use } tk'
src/Bio/Iteratee/IO.hs view
@@ -16,8 +16,8 @@ import Bio.Iteratee.Iteratee import Bio.Prelude hiding ( bracket, loop )-import Control.Monad.Catch-import Control.Monad.IO.Class+import Control.Monad.Catch ( MonadMask, bracket )+import Control.Monad.IO.Class ( MonadIO(..) ) import System.IO (SeekMode(..)) import qualified Data.ByteString as B
src/Bio/Iteratee/Iteratee.hs view
@@ -64,8 +64,8 @@ import Bio.Iteratee.Base import Bio.Prelude hiding (loop)-import Control.Monad.IO.Class-import Control.Monad.Trans.Class+import Control.Monad.IO.Class (MonadIO(..))+import Control.Monad.Trans.Class (MonadTrans(..)) -- exception helpers excDivergent :: SomeException
src/Bio/Iteratee/List.hs view
@@ -63,7 +63,7 @@ import Bio.Iteratee.Iteratee import Bio.Prelude-import Control.Monad.Trans.Class+import Control.Monad.Trans.Class (MonadTrans(..)) -- import qualified Data.ByteString as B
src/Bio/TwoBit.hs view
@@ -36,7 +36,7 @@ import Bio.Prelude hiding ( left, right, chr ) import Bio.Util.MMap import Bio.Util.Storable-import Control.Monad.Trans.State+import Control.Monad.Trans.State ( StateT(..), get, evalStateT ) import qualified Data.ByteString as B import qualified Data.ByteString.Unsafe as B import qualified Data.IntMap.Strict as I