在具有多个RG的BAM文件上运行GATK DepthOfCoverage

时间:2014-07-08 10:25:29

标签: java samtools

我正在尝试在一些BAM文件上运行GATK DepthOfCoverage,这些文件是我从两个原始文件合并的(同一个样本在两个通道上排序以最大化读取次数)。我意识到我的合并文件读取了不同的读取组(由每次读取的RG字段反映),并且我的两个原始文件的标题在@RG字段中不同。

我试过运行samtools reheader在标头中添加一个新的@RG字段,但是当我合并这两个文件时,每个读取组都基于两个BAM文件的名称,而不是基于@RG的名称。 标题两个BAM文件。

例如,我的两个起始样本是:

27163.pe.markdup.bam
27091.pe.markdup.bam

但是当我使用samtools merge合并它们时

samtools merge merged.bam 27163.pe.markdup.bam 27091.pe.markdup.bam 

生成的merged.bam在标题中只有两个中的一个有相同的@RG字段,并且每个读取都有一个基于它来自的文件名称的读取名称:

阅读1

RG:Z:27091.pe.markdup

阅读2

RG:Z:27163.pe.markdup

等。对于BAM中的其余读取

我做错了吗?我应该在合并之前重新获取每个原始文件吗?或者只是在合并到与GATK兼容的东西之后重新开始?似乎无论标头中的@RG字段在合并之前是什么,合并的文件总是会根据两个输入文件的名称读取不同的RG。

我也不确定GATK DepthOfCoverage在读取组方面的输入是什么。它是否需要一个RG用于所有读取?在那种情况下,我应该使用不同于samtools合并的东西吗?

提前感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:0)

为了将来参考,请在此处查看已解决的解决方案:

https://www.biostars.org/p/105787/#107970

基本上正确的程序是使用Picard而不是samtools进行合并,根据bam文件读取组词汇表,它提供与GATK兼容的输出。