我有一个BAM文件:
ERR174327.487900 99 chr9 80320323 60 101M = 80320752 530 AGGGACATTGGTCCAAAAGGTTTTAATTAACCATACACCCTGCTCTACAAATCTAAAAAACTGTAGGACAGTATTTTGAGTCTCCAAGTATCCAGTGATAA CCCFFFFFHHHHFIJJJJJJGIJJJJJJJJJJJJJJJJIJIJJJJJIIJJJIJIJJJJJJJGICEHIHFHH=BFFADFFDCCCDCDDDCCCDADC@>ADC@ NM:i:0 AS:i:101 XS:i:0 RG:Z:group1
我需要阅读C ++代码中的可选字段NM:i:0 AS:i:101 XS:i:0 RG:Z:group1
。我可以使用htslib
库来读取除可选字段之外的所有内容。
htsib库的源文件是Github上的here。不幸的是,我无法找到能够读取这些字段的函数。
问:如何使用htslib读取可选字段?
答案 0 :(得分:1)
在bam.h
/*!
@abstract Retrieve data of a tag
@param b pointer to an alignment struct
@param tag two-character tag to be retrieved
@return pointer to the type and data. The first character is the
type that can be 'iIsScCdfAZH'.
*/
static inline uint8_t *bam_aux_get_core(bam1_t *b, const char tag[2]);