1

我有一个 bam 文件并使用 bioperl (Bio::DB::Sam) 来处理它。现在我想问一下是否有可能在这个文件的对齐中添加标签?

我用

    my $iterator     = $bam->features(-iterator => 1,
                                      -flags    => {M_UNMAPPED=>0});

    while (my $align = $iterator->next_seq) { 
        ...
    }

循环通过对齐的读取。现在我正在搜索类似的东西

    $align->addTag(key=>value)

再见

4

2 回答 2

1

BedTools 有一种注释 BAM 文件的方法,称为 TagBam

http://biostar.stackexchange.com/questions/9552/basic-bam-file-annotation

https://github.com/arq5x/bedtools

于 2011-07-08T19:05:13.747 回答
0

简短的回答,不。

可以对原始 SAM 执行此操作,然后将其转换回 BAM。我最近一直在为 BAM 编写 C++ api,我自己也遇到了这个问题。问题是表示此信息的底层 c 结构都是紧密字节打包的,并占用特定数量的内存。有时他们可能比他们需要的多一点,但有时他们的数量恰到好处。在大多数情况下,添加到这些结构中会超出它们的可用内存。

所以,如果我是你,我会写出一个新的 SAM 文件,里面有你的附加标签,然后使用 samtools 将其转换为 BAM

于 2011-06-07T11:12:17.530 回答