packages feed

HsHTSLib 1.3.2.0 → 1.3.2.1

raw patch · 4 files changed

+61/−175 lines, 4 filesdep ~inline-c

Dependency ranges changed: inline-c

Files

HsHTSLib.cabal view
@@ -1,5 +1,5 @@ name:                HsHTSLib-version:             1.3.2.0+version:             1.3.2.1 synopsis:            High level bindings to htslib. description:         This package provides high level bindings to htslib, a library                      for processing high throughput DNA sequencing data.@@ -7,7 +7,7 @@ license-file:        LICENSE author:              Kai Zhang maintainer:          kai@kzhang.org-copyright:           (c) 2016 Kai Zhang+copyright:           (c) 2016-2017 Kai Zhang category:            Bio build-type:          Simple cabal-version:       >=1.10@@ -29,7 +29,7 @@     , bytestring-lexing     , containers     , conduit-combinators-    , inline-c+    , inline-c >=0.6 && <0.7     , mtl     , template-haskell @@ -39,8 +39,6 @@       htslib-1.3.2    c-sources:-      src/Bio/HTS.c-       htslib-1.3.2/bgzf.c       htslib-1.3.2/bgzip.c       htslib-1.3.2/faidx.c
− src/Bio/HTS.c
@@ -1,167 +0,0 @@--#include "htslib/sam.h"--int inline_c_Bio_HTS_0_0efc6161c1b66bc79e862910b9e93f1d32ddc02d(htsFile * fp_inline_c_0, bam1_t * b_inline_c_1) {-return ( bam_write1(fp_inline_c_0->fp.bgzf, b_inline_c_1) );-}---int inline_c_Bio_HTS_1_0c54bc94ad2e32d428064e2a5c26a7036890b9a6(htsFile * fp_inline_c_0, bam_hdr_t * hdr_inline_c_1) {-return (-                        bam_hdr_write(fp_inline_c_0->fp.bgzf, hdr_inline_c_1) );-}---htsFile * inline_c_Bio_HTS_2_07f3fede9c57363b6e41738becd5a00d64df9d5c(char * fn_27_inline_c_0) {-return ( hts_open(fn_27_inline_c_0, "r") );-}---htsFile * inline_c_Bio_HTS_3_4af84655e4829571c79edc68791d221a719c60ab(char * fn_27_inline_c_0) {-return ( hts_open(fn_27_inline_c_0, "wb") );-}---void inline_c_Bio_HTS_4_d667db7c61cb0de3c96f1d806701fe63606a1af0(htsFile * h_inline_c_0) {- hts_close(h_inline_c_0) ;-}---bam_hdr_t * inline_c_Bio_HTS_5_9a30278929e5b8570bc58dc24e83fd868ec2513f(htsFile * h_inline_c_0) {-return ( bam_hdr_read(h_inline_c_0->fp.bgzf) );-}---char * inline_c_Bio_HTS_6_5a31ba58a253c55850867b8802710825075bca03(bam_hdr_t * hdr_inline_c_0) {-return ( hdr_inline_c_0->text );-}---bam1_t * inline_c_Bio_HTS_7_25f5b2f49b2eac08644b77f5a1c27030b81e5dc3(int * r_inline_c_0, htsFile * h_inline_c_1) {--            bam1_t *b = bam_init1();-            *r_inline_c_0 = bam_read1(h_inline_c_1->fp.bgzf, b);-            return b;-        -}---int32_t inline_c_Bio_HTS_8_8e12d9d09c24fcc6b41593e5bc03c97f756f6da1(bam1_t * b_inline_c_0) {-return ( b_inline_c_0->core.tid );-}---char * inline_c_Bio_HTS_9_31676430ec791ba4f73764dc21c992d6d39307fc(bam_hdr_t * h_inline_c_0, int32_t i_inline_c_1) {-return ( h_inline_c_0->target_name[i_inline_c_1] );-}---int32_t inline_c_Bio_HTS_10_c89b42fc83db79c1cd226594b3a86cd92b81f38b(bam1_t * b_inline_c_0) {-return ( b_inline_c_0->core.pos );-}---int32_t inline_c_Bio_HTS_11_cc329ca55a7e13133af0b3dbb6abb3edc854b65e(bam1_t * b_inline_c_0) {-return ( bam_endpos(b_inline_c_0) );-}---int32_t inline_c_Bio_HTS_12_6fb2dbf3d90d4141663e524757f874dcf05a03e4(bam1_t * b_inline_c_0) {-return ( b_inline_c_0->core.l_qseq );-}---int inline_c_Bio_HTS_13_44d7a287b2cc95c82e760427675196e1ba7261a1(bam1_t * b_inline_c_0) {-return (bam_is_rev(b_inline_c_0) );-}---uint16_t inline_c_Bio_HTS_14_12453aaa173031b617539dcd57698955b11bd327(bam1_t * b_inline_c_0) {-return ( b_inline_c_0->core.flag );-}---uint8_t inline_c_Bio_HTS_15_49728fef988bc0954110504a26677faa43ce6ce9(bam1_t * b_inline_c_0) {-return ( b_inline_c_0->core.qual );-}---int32_t inline_c_Bio_HTS_16_6fb2dbf3d90d4141663e524757f874dcf05a03e4(bam1_t * b_inline_c_0) {-return ( b_inline_c_0->core.l_qseq );-}---void inline_c_Bio_HTS_17_ed1829c64b8823aa1711ba319219f175ed965ce4(bam1_t * b_inline_c_0, int32_t l_inline_c_1, char * str_inline_c_2) {--                        int32_t i;-                        uint8_t *s = bam_get_seq(b_inline_c_0);-                        for (i = 0; i < l_inline_c_1; ++i)-                            str_inline_c_2[i] = "=ACMGRSVTWYHKDBN"[bam_seqi(s, i)];-                    -}---char * inline_c_Bio_HTS_18_7083ac4175bb445932400343a035586aa327afa8(bam1_t * b_inline_c_0) {-return (bam_get_qname(b_inline_c_0) );-}---int32_t inline_c_Bio_HTS_19_6fb2dbf3d90d4141663e524757f874dcf05a03e4(bam1_t * b_inline_c_0) {-return ( b_inline_c_0->core.l_qseq );-}---int8_t inline_c_Bio_HTS_20_ff7eee4e1210259019f9cd0f9e269fdcf8ed1666(bam1_t * b_inline_c_0) {--                        uint8_t *s = bam_get_qual(b_inline_c_0);-                        return (s[0] == 0xff);-                     -}---void inline_c_Bio_HTS_21_4b537c6c8c081040b4dd320c93ee949f58ac34df(bam1_t * b_inline_c_0, int32_t l_inline_c_1, char * str_inline_c_2) {--                                int32_t i;-                                uint8_t *s = bam_get_qual(b_inline_c_0);-                                for (i = 0; i < l_inline_c_1; ++i)-                                    str_inline_c_2[i] = s[i];-                            -}---uint16_t inline_c_Bio_HTS_22_ba4509ac6cfa51e21b3315e1bc0c79664332c151(bam1_t * b_inline_c_0) {-return ( b_inline_c_0->core.n_cigar );-}---void inline_c_Bio_HTS_23_04238a6d67efdaba04e6fe62c62067daa422dedb(bam1_t * b_inline_c_0, uint16_t n_inline_c_1, int * num_inline_c_2, char * str_inline_c_3) {--                            uint16_t i;-                            uint32_t *cigar = bam_get_cigar(b_inline_c_0);-                            for (i = 0; i < n_inline_c_1; ++i) {-                                num_inline_c_2[i] = bam_cigar_oplen(cigar[i]);-                                str_inline_c_3[i] = bam_cigar_opchr(cigar[i]);-                            }-                         -}---int32_t inline_c_Bio_HTS_24_a6dc5594b24fbf473396136e59bcee0228785fc4(bam1_t * b_inline_c_0) {-return ( b_inline_c_0->core.mtid );-}---char * inline_c_Bio_HTS_25_31676430ec791ba4f73764dc21c992d6d39307fc(bam_hdr_t * h_inline_c_0, int32_t i_inline_c_1) {-return ( h_inline_c_0->target_name[i_inline_c_1] );-}---int32_t inline_c_Bio_HTS_26_54a6e402cf38aa9b617612b54be97e879e2b17b7(bam1_t * b_inline_c_0) {-return ( b_inline_c_0->core.mpos );-}---int32_t inline_c_Bio_HTS_27_14020e59f59859519591c231f45ae2ab8f85c395(bam1_t * b_inline_c_0) {-return ( b_inline_c_0->core.isize );-}-
src/Bio/HTS.hs view
@@ -7,6 +7,7 @@ import           Conduit import           Control.Monad import           Control.Monad.State+import           Data.Bits                (testBit) import qualified Data.ByteString.Char8    as B import           Data.Int import           Data.Monoid              ((<>))@@ -84,9 +85,11 @@     BamHeader <$> [CU.exp| bam_hdr_t* { bam_hdr_read($(htsFile* h)->fp.bgzf) } |]  showBamHeader :: FileHeader -> B.ByteString-showBamHeader (BamHeader hdr) = unsafePerformIO $ join $ B.packCString <$>-    [CU.exp| char* { $(bam_hdr_t* hdr)->text } |]-showBamHeader _ = ""+showBamHeader (BamHeader hdr) = unsafePerformIO $ do+    ptr <- [CU.exp| char* { $(bam_hdr_t* hdr)->text } |]+    l <- [CU.exp| uint32_t { $(bam_hdr_t* hdr)->l_text } |]+    B.packCStringLen (ptr, fromIntegral l)+showBamHeader _ = error "No Bam Header was found."  data SortOrder = Unknown                | Unsorted@@ -289,3 +292,51 @@ bamToSam :: Ptr BamHdr -> Bam -> Sam bamToSam h b = Sam (qName b) (flag b) (getChr h b) (position b) (mapq b)     (cigar b) (mateChr h b) (matePos b) (tLen b) (getSeq b) (quality b)++-- | Template having multiple segments in sequencing+hasMultiSegments :: Word16 -> Bool+hasMultiSegments f = testBit f 1++-- | Each segment properly aligned according to the aligner+isProperAligned :: Word16 -> Bool+isProperAligned f = testBit f 2++-- | Segment unmapped+isUnmapped :: Word16 -> Bool+isUnmapped f = testBit f 3++-- | Next segment in the template unmapped+isNextUnmapped :: Word16 -> Bool+isNextUnmapped f = testBit f 4++-- | SEQ being reverse complemented+isRC :: Word16 -> Bool+isRC f = testBit f 5++-- | SEQ of the next segment in the template being reverse complemented+isNextRC :: Word16 -> Bool+isNextRC f = testBit f 6++-- | The first segment in the template+isFirstSegment :: Word16 -> Bool+isFirstSegment f = testBit f 7++-- | The last segment in the template+isLastSegment :: Word16 -> Bool+isLastSegment f = testBit f 8++-- | Secondary alignment+isSecondary :: Word16 -> Bool+isSecondary f = testBit f 9++-- | Not passing filters, such as platform/vendor quality controls+isBadQual :: Word16 -> Bool+isBadQual f = testBit f 10++-- | PCR or optical duplicate+isDup :: Word16 -> Bool+isDup f = testBit f 11++-- | Supplementary alignment+isSupplementary :: Word16 -> Bool+isSupplementary f = testBit f 12
src/Bio/HTS/Types.hs view
@@ -11,6 +11,7 @@     , Bam     , Bam'     , Sam(..)+    , Flag(..)     , showSam     ) where @@ -37,6 +38,9 @@  data HTSFile newtype BamFileHandle = BamFileHandle (Ptr HTSFile)++-- | SAM record flag+newtype Flag = Flag Word16  htsCtx :: C.Context htsCtx = mempty