如何使用SAMtool htslib库来读取可选信息字段

时间:2016-06-30 23:11:36

标签: bioinformatics samtools

我有一个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读取可选字段?

1 个答案:

答案 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]);