samtools merge命令的功能描述:
當(dāng)有多個(gè)樣本的bam文件時(shí),可以使用samtools的merge命令將這些bam文件進(jìn)行合并為一個(gè)bam文件。Merge命令將多個(gè)已經(jīng)排序后的bam文件合并成為一個(gè)排序的且保持所有輸入記錄并保持現(xiàn)有排序順序的bam文件。
若使用-h參數(shù),則將輸入文件的@SQ文件頭合并到指定的文件頭中。否則,所有的文件頭都被合并。如果在合并以按照坐標(biāo)排序的輸入文件@SQ行時(shí),可能在順序上發(fā)生沖突。結(jié)果輸出文件將被重新按照以前的順序排列。
待合并的bam文件,必須有與其對(duì)應(yīng)的index文件。
merge命令格式:
samtools merge [-nur1f] [-h inh.sam] [-R reg] [-b <list>] <out.bam> <in1.bam> [<in2.bam><in3.bam>…<inN.bam]
參數(shù):
-l 指定壓縮等級(jí);
-b FILE 輸入文件列表,一個(gè)文件一行;
-f 強(qiáng)制覆蓋同名輸出文件;
-h FILE 指定FILE內(nèi)的’@’頭復(fù)制到輸出bam文件中并替換輸出文件的文件頭。否則,輸出文件的文件頭將從第一個(gè)輸入文件復(fù)制過(guò)來(lái);
-n 設(shè)定輸入比對(duì)文件是以read名進(jìn)行排序的而不是以染色體坐標(biāo)排序的;
-R STRING 合并輸入文件的指定區(qū)域;
-r 使RG標(biāo)簽添加到每一個(gè)比對(duì)文件上,標(biāo)簽值來(lái)自文件名;
-u 輸出的bam文件不壓縮;
-c 當(dāng)多個(gè)輸入文件包含相同的@RG頭ID時(shí),只保留第一個(gè)到合并后輸出的文件。當(dāng)合并多個(gè)相同樣本的不同文件時(shí),非常有用。
-p 與-c參數(shù)類似,對(duì)于要合并的每一個(gè)文件中的@PG ID只保留第一個(gè)文件中的@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文件中的指定區(qū)域chr7
samtools merge -h test.sam \
-R chr7
test_L1_L2.bam \
test_L1.sorted.bam \
test_L2.sroted.bam