若使用-h参数,则将输入文件的@SQ文件头合并到指定的文件头中。否则,所有的文件头都被合并。如果在合并以按照坐标排序的输入文件@SQ行时,可能在顺序上发生冲突。结果输出文件将被重新按照以前的顺序排列。
待合并的bam文件,必须有与其对应的index文件。
merge命令格式:
samtools merge [-nur1f] [-h inh.sam] [-R reg] [-b 参数: -l 指定压缩等级; -b FILE 输入文件列表,一个文件一行; -f 强制覆盖同名输出文件; -h FILE 指定FILE内的’@’头复制到输出bam文件中并替换输出文件的文件头。否则,输出文件的文件头将从第一个输入文件复制过来; -n 设定输入比对文件是以read名进行排序的而不是以染色体坐标排序的; -R STRING 合并输入文件的指定区域; -r 使RG标签添加到每一个比对文件上,标签值来自文件名; -u 输出的bam文件不压缩; -c 当多个输入文件包含相同的@RG头ID时,只保留第一个到合并后输出的文件。当合并多个相同样本的不同文件时,非常有用。 -p 与-c参数类似,对于要合并的每一个文件中的@PG ID只保留第一个文件中的@PG。]
#! /bin/bash
#合并test_L1.bam和test_L2.bam文件
samtools merge -h test.sam \
test_L1_L2.bam \
test_L1.sorted.bam \
test_L2.sroted.bam
#合并test_L1.bam和test_L2.bam文件中的指定区域chr7
samtools merge -h test.sam \
-R chr7
test_L1_L2.bam \
test_L1.sorted.bam \
test_L2.sroted.bam