X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=bam.h;h=a3305e3cf4b758edaaeaf201ea4fbc87ab8f919b;hb=50be08b2de946accc4c15aab2ec45ac86f30b09f;hp=df345b6e47afcbcbdf545e9f954277b78825272b;hpb=543a9fc2055575dcc17a7bb9c83ecca17a32cec6;p=samtools.git diff --git a/bam.h b/bam.h index df345b6..a3305e3 100644 --- a/bam.h +++ b/bam.h @@ -40,7 +40,7 @@ @copyright Genome Research Ltd. */ -#define BAM_VERSION "0.1.18-dev (r982:310)" +#define BAM_VERSION "0.1.18-r580" #include #include @@ -168,7 +168,6 @@ typedef struct { @abstract Structure for core alignment information. @field tid chromosome ID, defined by bam_header_t @field pos 0-based leftmost coordinate - @field strand strand; 0 for forward and 1 otherwise @field bin bin calculated by bam_reg2bin() @field qual mapping quality @field l_qname length of the query name @@ -193,13 +192,15 @@ typedef struct { @field l_aux length of auxiliary data @field data_len current length of bam1_t::data @field m_data maximum length of bam1_t::data - @field data all variable-length data, concatenated; structure: cigar-qname-seq-qual-aux + @field data all variable-length data, concatenated; structure: qname-cigar-seq-qual-aux @discussion Notes: 1. qname is zero tailing and core.l_qname includes the tailing '\0'. 2. l_qseq is calculated from the total length of an alignment block on reading or from CIGAR. + 3. cigar data is encoded 4 bytes per CIGAR operation. + 4. seq is nybble-encoded according to bam_nt16_table. */ typedef struct { bam1_core_t core; @@ -772,9 +773,21 @@ static inline int bam_aux_type2size(int x) { if (x == 'C' || x == 'c' || x == 'A') return 1; else if (x == 'S' || x == 's') return 2; - else if (x == 'I' || x == 'i' || x == 'f') return 4; + else if (x == 'I' || x == 'i' || x == 'f' || x == 'F') return 4; else return 0; } +/********************************* + *** Compatibility with htslib *** + *********************************/ + +typedef bam_header_t bam_hdr_t; + +#define bam_get_qname(b) bam1_qname(b) +#define bam_get_cigar(b) bam1_cigar(b) + +#define bam_hdr_read(fp) bam_header_read(fp) +#define bam_hdr_write(fp, h) bam_header_write(fp, h) +#define bam_hdr_destroy(fp) bam_header_destroy(fp) #endif