改bam文件的样本id

6 篇文章 0 订阅
3 篇文章 0 订阅

问题描述:有时经常遇到重测序的数据加测的问题,或者NCBI上下载的数据中一个样本测了几个库,这个时候一个样本就会有两对或多对fastq文件。如果你把每个样本分别比对,使用了不同的ID,那么合并之后的ID就需要重新修改成样本名,才能进行后续的call SNP的工作。干这个事儿的主要有两个工具,samtools和picard。
输入数据:使用samtools merge合并之后的bam文件

samtools view -h Dongbu102.realn.bam | less

@HD     VN:1.5  SO:coordinate
@SQ     SN:R1   LN:32890249
@SQ     SN:R2   LN:47789304
@SQ     SN:R3   LN:39559458
@SQ     SN:R4   LN:57813992
@SQ     SN:R5   LN:46156245
@SQ     SN:R6   LN:57212458
@SQ     SN:R7   LN:33292243
@SQ     SN:R8   LN:36191323
@SQ     SN:R9   LN:45435172
@RG     ID:ERR1022716      SM:ERR1022716   PL:illumina
@RG     ID:ERR1022717      SM:ERR1022717   PL:illumina

可以看到合并之前的两个ID为:ERR1022716、 ERR1022717 ,我们要做的就是让bam文件中的RG的ID变成Dongbu102。

操作
1.samtools addreplacerg

i=Dongbu102
samtools addreplacerg -r "@RG\tID:${i}\tSM:${i}\tPL:$platform" -o tmp/${i}.merge2.bam tmp/${i}.merge.bam

@HD     VN:1.5  SO:coordinate
@SQ     SN:R1   LN:32890249
@SQ     SN:R2   LN:47789304
@SQ     SN:R3   LN:39559458
@SQ     SN:R4   LN:57813992
@SQ     SN:R5   LN:46156245
@SQ     SN:R6   LN:57212458
@SQ     SN:R7   LN:33292243
@SQ     SN:R8   LN:36191323
@SQ     SN:R9   LN:45435172
@RG     ID:RRCC_ERR1022716      SM:ERR1022716   PL:illumina
@RG     ID:RRCC_ERR1022717      SM:ERR1022717   PL:illumina
...
@RG     ID:Dongbu102        SM:Dongbu102    PL:illumina

我们发现修改之后的bam文件只是增加了一个RG,原来的RG还在bam文件头里面

2.picard

i=Dongbu102
java -jar ~/software/picard.jar AddOrReplaceReadGroups I=${i}.realn.bam O=${i}.bam RGID=${i} RGLB=${i} RGPL=illumina RGSM=${i} RGPU=unit1

@HD     VN:1.6  SO:coordinate
@SQ     SN:R1   LN:32890249
@SQ     SN:R2   LN:47789304
@SQ     SN:R3   LN:39559458
@SQ     SN:R4   LN:57813992
@SQ     SN:R5   LN:46156245
@SQ     SN:R6   LN:57212458
@SQ     SN:R7   LN:33292243
@SQ     SN:R8   LN:36191323
@SQ     SN:R9   LN:45435172
@RG     ID:Dongbu102    LB:Dongbu102    PL:illumina     SM:Dongbu102    PU:unit1

输出文件中只有修改之后的样本ID,搞定!

总结:改bam文件的样本ID就用picard吧!

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值