samtools 0.1.1 → 0.1.2
raw patch · 3 files changed
+19/−6 lines, 3 filesdep ~base
Dependency ranges changed: base
Files
- samtools.cabal +4/−4
- src/Bio/SamTools/Bam.hs +14/−1
- src/Bio/SamTools/Cigar.hs +1/−1
samtools.cabal view
@@ -1,5 +1,5 @@ Name: samtools-Version: 0.1.1+Version: 0.1.2 Synopsis: Binding to the C samtools library Description: Binding to the C samtools library, which reads and writes SAM format alignments, both binary and tab-@@ -10,7 +10,7 @@ License-file: LICENSE Author: Nicholas Ingolia Maintainer: nick@ingolia.org-Category: Bio+Category: Bioinformatics Homepage: http://www.ingolia-lab.org/software/samtools/ Build-type: Simple@@ -33,7 +33,7 @@ Exposed-modules: Bio.SamTools.Bam, Bio.SamTools.Cigar, Bio.SamTools.BamIndex, Bio.SamTools.FaIdx Other-modules: Bio.SamTools.LowLevel, Bio.SamTools.Internal, C2HS- Build-depends: base >= 4.3 && < 5, bytestring, haskell98, vector >= 0.7, seqloc+ Build-depends: base >= 4.2 && < 5, bytestring, haskell98, vector >= 0.7, seqloc Hs-Source-Dirs: src Build-tools: c2hs Include-dirs: samtools-0.1.13, include@@ -63,7 +63,7 @@ Other-modules: Bio.SamTools.Bam, Bio.SamTools.Cigar, Bio.SamTools.BamIndex, Bio.SamTools.FaIdx, Bio.SamTools.LowLevel, Bio.SamTools.Internal, C2HS- Build-depends: base >= 4.3 && < 5, bytestring, haskell98, vector >= 0.7, seqloc, process, filepath+ Build-depends: base >= 4.2 && < 5, bytestring, haskell98, vector >= 0.7, seqloc, process, filepath Hs-Source-Dirs: src, test Build-tools: c2hs Include-dirs: samtools-0.1.13, include
src/Bio/SamTools/Bam.hs view
@@ -26,7 +26,7 @@ , targetID, targetName, targetLen, position , isPaired, isProperPair, isUnmap, isMateUnmap, isReverse, isMateReverse , isRead1, isRead2, isSecondary, isQCFail, isDup- , cigars, queryName, queryLength, querySeq+ , cigars, queryName, queryLength, querySeq, queryQual , mateTargetID, mateTargetName, mateTargetLen, matePosition, insertSize , nMismatch, nHits, matchDesc @@ -52,6 +52,7 @@ import Control.Exception import Control.Monad import Data.Bits+import qualified Data.ByteString as BSW import qualified Data.ByteString.Char8 as BS import Foreign hiding (new) import Foreign.C.Types@@ -164,6 +165,18 @@ | otherwise = return $! Just $! BS.pack [ seqiToChar . bam1Seqi seqarr $ i | i <- [0..((fromIntegral l)-1)] ] in getLQSeq p >>= getQSeq+ +-- | 'Just' the query qualities, or 'Nothing' when it is+-- unavailable. These are returned in ASCII format, i.e., /q/ + 33.+queryQual :: Bam1 -> Maybe BS.ByteString+queryQual b = unsafePerformIO $ withForeignPtr (ptrBam1 b) $ \p ->+ let getQQual l | l < 1 = return Nothing+ | otherwise = do q0 <- peek $! bam1Qual p+ if q0 == 0xff+ then return Nothing+ else liftM (Just . BSW.map (+ 33)) $!+ BS.packCStringLen (castPtr $! bam1Qual p, fromIntegral l)+ in getLQSeq p >>= getQQual seqiToChar :: CUChar -> Char seqiToChar = (chars V.!) . fromIntegral
src/Bio/SamTools/Cigar.hs view
@@ -75,7 +75,7 @@ entry start (Cigar SoftClip _len) = (start, Nothing) entry start (Cigar HardClip _len) = (start, Nothing) entry start (Cigar Pad _len) = (start, Nothing)- contig start len = Just $! Loc.fromStartEnd (fromIntegral start) (fromIntegral $ start + len - 1)+ contig start len = Just $! Loc.fromBoundsStrand (fromIntegral start) (fromIntegral $ start + len - 1) Fwd mergeAdj :: Loc.ContigLoc -> [Loc.ContigLoc] -> [Loc.ContigLoc] mergeAdj cprev [] = [cprev]