packages feed

HsHTSLib 1.3.2.3 → 1.3.2.4

raw patch · 3 files changed

+57/−3 lines, 3 filesdep +HsHTSLibdep +tastydep +tasty-goldendep ~basedep ~conduitPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies added: HsHTSLib, tasty, tasty-golden, tasty-hunit, vector

Dependency ranges changed: base, conduit

API changes (from Hackage documentation)

- Bio.HTS: inline_c_ffi_6989586621679077971 :: Ptr HTSFile -> Ptr Bam' -> IO CInt
- Bio.HTS: inline_c_ffi_6989586621679078141 :: Ptr HTSFile -> Ptr BamHdr -> IO CInt
- Bio.HTS: inline_c_ffi_6989586621679078167 :: Ptr CChar -> IO (Ptr HTSFile)
- Bio.HTS: inline_c_ffi_6989586621679078175 :: Ptr CChar -> IO (Ptr HTSFile)
- Bio.HTS: inline_c_ffi_6989586621679078185 :: Ptr HTSFile -> IO (Ptr BamHdr)
- Bio.HTS: inline_c_ffi_6989586621679078194 :: Ptr HTSFile -> IO ()
- Bio.HTS: inline_c_ffi_6989586621679078222 :: Ptr BamHdr -> IO (Ptr CChar)
- Bio.HTS: inline_c_ffi_6989586621679078231 :: Ptr BamHdr -> IO Word32
- Bio.HTS: inline_c_ffi_6989586621679078421 :: Ptr CInt -> Ptr HTSFile -> IO (Ptr Bam')
- Bio.HTS: inline_c_ffi_6989586621679078433 :: Ptr Bam' -> IO Int32
- Bio.HTS: inline_c_ffi_6989586621679078446 :: Ptr BamHdr -> Int32 -> IO (Ptr CChar)
- Bio.HTS: inline_c_ffi_6989586621679078456 :: Ptr Bam' -> IO Int32
- Bio.HTS: inline_c_ffi_6989586621679078466 :: Ptr Bam' -> IO Int32
- Bio.HTS: inline_c_ffi_6989586621679078476 :: Ptr Bam' -> IO Int32
- Bio.HTS: inline_c_ffi_6989586621679078486 :: Ptr Bam' -> IO CInt
- Bio.HTS: inline_c_ffi_6989586621679078497 :: Ptr Bam' -> IO Word16
- Bio.HTS: inline_c_ffi_6989586621679078507 :: Ptr Bam' -> IO Word8
- Bio.HTS: inline_c_ffi_6989586621679078517 :: Ptr Bam' -> IO Int32
- Bio.HTS: inline_c_ffi_6989586621679078531 :: Ptr Bam' -> Int32 -> Ptr CChar -> IO ()
- Bio.HTS: inline_c_ffi_6989586621679078541 :: Ptr Bam' -> IO (Ptr CChar)
- Bio.HTS: inline_c_ffi_6989586621679078551 :: Ptr Bam' -> IO Int32
- Bio.HTS: inline_c_ffi_6989586621679078560 :: Ptr Bam' -> IO Int8
- Bio.HTS: inline_c_ffi_6989586621679078574 :: Ptr Bam' -> Int32 -> Ptr CChar -> IO ()
- Bio.HTS: inline_c_ffi_6989586621679078584 :: Ptr Bam' -> IO Word16
- Bio.HTS: inline_c_ffi_6989586621679078601 :: Ptr Bam' -> Word16 -> Ptr CInt -> Ptr CChar -> IO ()
- Bio.HTS: inline_c_ffi_6989586621679078613 :: Ptr Bam' -> IO Int32
- Bio.HTS: inline_c_ffi_6989586621679078626 :: Ptr BamHdr -> Int32 -> IO (Ptr CChar)
- Bio.HTS: inline_c_ffi_6989586621679078636 :: Ptr Bam' -> IO Int32
- Bio.HTS: inline_c_ffi_6989586621679078646 :: Ptr Bam' -> IO Int32
+ Bio.HTS: inline_c_ffi_6989586621679079184 :: Ptr HTSFile -> Ptr Bam' -> IO CInt
+ Bio.HTS: inline_c_ffi_6989586621679079386 :: Ptr HTSFile -> Ptr BamHdr -> IO CInt
+ Bio.HTS: inline_c_ffi_6989586621679079412 :: Ptr CChar -> IO (Ptr HTSFile)
+ Bio.HTS: inline_c_ffi_6989586621679079420 :: Ptr CChar -> IO (Ptr HTSFile)
+ Bio.HTS: inline_c_ffi_6989586621679079430 :: Ptr HTSFile -> IO (Ptr BamHdr)
+ Bio.HTS: inline_c_ffi_6989586621679079439 :: Ptr HTSFile -> IO ()
+ Bio.HTS: inline_c_ffi_6989586621679079467 :: Ptr BamHdr -> IO (Ptr CChar)
+ Bio.HTS: inline_c_ffi_6989586621679079476 :: Ptr BamHdr -> IO Word32
+ Bio.HTS: inline_c_ffi_6989586621679079679 :: Ptr CInt -> Ptr HTSFile -> IO (Ptr Bam')
+ Bio.HTS: inline_c_ffi_6989586621679079691 :: Ptr Bam' -> IO Int32
+ Bio.HTS: inline_c_ffi_6989586621679079704 :: Ptr BamHdr -> Int32 -> IO (Ptr CChar)
+ Bio.HTS: inline_c_ffi_6989586621679079714 :: Ptr Bam' -> IO Int32
+ Bio.HTS: inline_c_ffi_6989586621679079724 :: Ptr Bam' -> IO Int32
+ Bio.HTS: inline_c_ffi_6989586621679079734 :: Ptr Bam' -> IO Int32
+ Bio.HTS: inline_c_ffi_6989586621679079744 :: Ptr Bam' -> IO CInt
+ Bio.HTS: inline_c_ffi_6989586621679079755 :: Ptr Bam' -> IO Word16
+ Bio.HTS: inline_c_ffi_6989586621679079765 :: Ptr Bam' -> IO Word8
+ Bio.HTS: inline_c_ffi_6989586621679079775 :: Ptr Bam' -> IO Int32
+ Bio.HTS: inline_c_ffi_6989586621679079789 :: Ptr Bam' -> Int32 -> Ptr CChar -> IO ()
+ Bio.HTS: inline_c_ffi_6989586621679079799 :: Ptr Bam' -> IO (Ptr CChar)
+ Bio.HTS: inline_c_ffi_6989586621679079809 :: Ptr Bam' -> IO Int32
+ Bio.HTS: inline_c_ffi_6989586621679079818 :: Ptr Bam' -> IO Int8
+ Bio.HTS: inline_c_ffi_6989586621679079832 :: Ptr Bam' -> Int32 -> Ptr CChar -> IO ()
+ Bio.HTS: inline_c_ffi_6989586621679079842 :: Ptr Bam' -> IO Word16
+ Bio.HTS: inline_c_ffi_6989586621679079859 :: Ptr Bam' -> Word16 -> Ptr CInt -> Ptr CChar -> IO ()
+ Bio.HTS: inline_c_ffi_6989586621679079871 :: Ptr Bam' -> IO Int32
+ Bio.HTS: inline_c_ffi_6989586621679079884 :: Ptr BamHdr -> Int32 -> IO (Ptr CChar)
+ Bio.HTS: inline_c_ffi_6989586621679079894 :: Ptr Bam' -> IO Int32
+ Bio.HTS: inline_c_ffi_6989586621679079904 :: Ptr Bam' -> IO Int32
+ Bio.HTS: qualityS :: Bam -> Maybe ByteString
- Bio.HTS.Types: BamFileHandle :: (Ptr HTSFile) -> BamFileHandle
+ Bio.HTS.Types: BamFileHandle :: Ptr HTSFile -> BamFileHandle
- Bio.HTS.Types: BamHeader :: (Ptr BamHdr) -> FileHeader
+ Bio.HTS.Types: BamHeader :: Ptr BamHdr -> FileHeader
- Bio.HTS.Types: Sam :: !ByteString -> !Word16 -> !(Maybe ByteString) -> !Int32 -> !Word8 -> !(Maybe [(Int, Char)]) -> !(Maybe ByteString) -> !Int32 -> !Int32 -> !(Maybe ByteString) -> !(Maybe ByteString) -> Sam
+ Bio.HTS.Types: Sam :: !ByteString -> !Word16 -> !Maybe ByteString -> !Int32 -> !Word8 -> !Maybe [(Int, Char)] -> !Maybe ByteString -> !Int32 -> !Int32 -> !Maybe ByteString -> !Maybe ByteString -> Sam
- Bio.HTS.Types: [samCigar] :: Sam -> !(Maybe [(Int, Char)])
+ Bio.HTS.Types: [samCigar] :: Sam -> !Maybe [(Int, Char)]
- Bio.HTS.Types: [samQual] :: Sam -> !(Maybe ByteString)
+ Bio.HTS.Types: [samQual] :: Sam -> !Maybe ByteString
- Bio.HTS.Types: [samRname] :: Sam -> !(Maybe ByteString)
+ Bio.HTS.Types: [samRname] :: Sam -> !Maybe ByteString
- Bio.HTS.Types: [samRnext] :: Sam -> !(Maybe ByteString)
+ Bio.HTS.Types: [samRnext] :: Sam -> !Maybe ByteString
- Bio.HTS.Types: [samSeq] :: Sam -> !(Maybe ByteString)
+ Bio.HTS.Types: [samSeq] :: Sam -> !Maybe ByteString

Files

HsHTSLib.cabal view
@@ -1,5 +1,5 @@ name:                HsHTSLib-version:             1.3.2.3+version:             1.3.2.4 synopsis:            High level bindings to htslib. description:         This package provides high level bindings to htslib, a library                      for processing high throughput DNA sequencing data.@@ -34,7 +34,7 @@     , template-haskell    hs-source-dirs:      src-  extra-libraries: pthread+  extra-libraries: pthread z   include-dirs:       htslib-1.3.2 @@ -75,11 +75,28 @@       htslib-1.3.2/cram/thread_pool.c       htslib-1.3.2/cram/vlen.c       htslib-1.3.2/cram/zfio.c-       -- htslib-1.3.2/tabix.c       -- htslib-1.3.2/htsfile.c    default-language:    Haskell2010++test-suite tests+  type: exitcode-stdio-1.0+  hs-source-dirs: tests+  main-is: Main.hs+  other-modules:++  default-language:    Haskell2010+  build-depends:+      base+    , HsHTSLib+    , bytestring+    , vector+    , tasty+    , tasty-golden+    , tasty-hunit+    , conduit+    , mtl  source-repository  head   type: git
src/Bio/HTS.hs view
@@ -9,6 +9,7 @@ import           Control.Monad.Reader import           Data.Bits                (testBit) import qualified Data.ByteString.Char8    as B+import qualified Data.ByteString as BS import           Data.Int import           Data.Monoid              ((<>)) import           Data.Word@@ -212,6 +213,11 @@         [CU.exp| char* {bam_get_qname($(bam1_t* b)) } |] {-# INLINE qName #-} +-- | Human readable quality score which is (Phred base quality + 33).+qualityS :: Bam -> Maybe B.ByteString+qualityS = fmap (BS.map (+33)) . quality++-- | Phred base quality (a sequence of 0xFF if absent). quality :: Bam -> Maybe B.ByteString quality = unsafePerformIO . flip withForeignPtr fn   where
+ tests/Main.hs view
@@ -0,0 +1,31 @@+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE FlexibleContexts #-}+import Test.Tasty+import           Test.Tasty.Golden+import Conduit+import Control.Monad.Reader++import Bio.HTS+import Bio.HTS.Types++main :: IO ()+main = defaultMain $ testGroup "Main"+    [ tests ]++tests :: TestTree+tests = goldenVsFile "BAM Read/Write Test" expect output $+    bamFileToSamFile input output+  where+    input = "tests/data/example.bam"+    output = "tests/data/output.sam"+    expect = "tests/data/example.sam"++bamFileToSamFile :: FilePath  -- ^ Input bam file+                 -> FilePath  -- ^ Output Sam file+                 -> IO ()+bamFileToSamFile input output = withBamFile input $ \fl ->+    runConduit $ readBam fl .| mapMC f .| unlinesAsciiC .| sinkFile output+  where+    f bam = do+        lift ask >>= \case+            BamHeader hdr -> return $ showSam $ bamToSam hdr bam