介绍两种更改bam文件header的方法:
1. Samtools工具的reheader方法;
2. Picard软件的AddOrReplaceReadGroups方法;
两种方法有什么区别呢?Samtools仅能修改header信息,但是picard不仅能修改header信息,还可以用户自定义添加read group信息。所以如果你没有什么高级的需求用samtools就可以(因为速度更快)。
最近测试svaba的时候发现,如果bam文件header的染色体顺序和reference的染色体顺序不一致的话软件会报错,因此需要对输入的bam进行reheader操作。
第一种方法:Samtools reheader
有两种写法,可以给它一个拥有你想要的header的bam文件(下面示例是in.header.bam),这样软件会把输入的in.bam文件的header改成模板bam的header;
samtools reheader -i in.header.bam in.bam > out.bam
另一种方法是以sam的格式直接提供需要的header;
samtools reheader header.sam in.bam > out.bam
第二种方法:picard AddOrReplaceReadGroups
java -jar picard.jar AddOrReplaceReadGroups \
I=input.bam \
O=output.bam \
RGID=4 \
RGLB=library1 \
RGPL=illumina \
RGPU=unit1 \
SORT_ORDER=coordinate \
RGSM=sample1
更多生信小知识关注: