samtools 工具

參考文章:https://www.cnblogs.com/xiaofeiIDO/p/6805373.html
1、view
主要功能:sam和bam文件之間相互轉(zhuǎn)換,針對(duì)bam文件進(jìn)行相關(guān)操作。bam文件是sam文件的二進(jìn)制格式,占據(jù)內(nèi)存較小且運(yùn)算速度快。
-b:輸出bam格式,用于后續(xù)分析

-C:輸出CRAM文件

-1:快速壓縮(需要-b)

-u:輸出未壓縮的bam文件,節(jié)約時(shí)間,占據(jù)較多磁盤空間(需要-b)

-h:默認(rèn)輸出sam文件不帶表頭,該參數(shù)設(shè)定后輸出帶表頭信息

-H:僅僅輸出表頭信息

-c:僅打印匹配數(shù)

-o:輸出文件(stdout標(biāo)準(zhǔn)輸出)

-U:輸出沒(méi)有經(jīng)過(guò)過(guò)濾選擇的reads

-t:制表分隔符文件(需要提供額外的參考數(shù)據(jù),比如參考基因組的索引)

-L:僅包括和bed文件有重疊的reads

-r:僅輸出在STR讀段組中的reads

-R:僅輸出特定reads

-q:定位的質(zhì)量大于INT[默認(rèn)0]

-l:僅輸出在STR 庫(kù)中的reads

-F:獲得比對(duì)上(mapped)的過(guò)濾設(shè)置[默認(rèn)0]

-f:獲得未必對(duì)上(unmapped)的過(guò)濾設(shè)置[默認(rèn)0]

-T:使用fasta格式的參考序列
實(shí)例演示:

bam文件轉(zhuǎn)換為sam文件

samtools view -h smallNA06985 > test.sam

sam文件轉(zhuǎn)換為bam文件

samtools view -bS -1 test.sam > test.bam

提取比對(duì)到參考基因組上的數(shù)據(jù)

samtools view -bF 4 test.bam > test.F.bam

提取沒(méi)有比對(duì)到參考基因組上的數(shù)據(jù)

samtools view -bf 4 test.bam > test.f.bam

雙端reads都比對(duì)到參考基因組上的數(shù)據(jù)

samtools view -bF 12 test.bam > test.12.bam

單端reads1比對(duì)到參考基因組上的數(shù)據(jù)

samtools view -bF 4 -f 8 test .bam > test1.bam

單端reads2比對(duì)到參考基因組上的數(shù)據(jù)

samtools view -bF 8 -f 4 test.bam > test2.bam

2、sort

主要功能:對(duì)bam文件進(jìn)行排序(不能對(duì)sam文件進(jìn)行排序)
主要參數(shù)釋義:

-l:設(shè)置文件壓縮等級(jí),0不壓縮,9壓縮最高

-m:每個(gè)線程運(yùn)行內(nèi)存大小(可使用K M G表示)

-n:按照read名稱進(jìn)行排序

-o:排序后的輸出文件

-T:PREFIX臨時(shí)文件前綴

-@:設(shè)置排序和壓縮的線程數(shù),默認(rèn)單線程

用法:

samtools sort -l 9 -m 90M -n -o test.sort.bam -T sorted -@ 2 test.bam

上述含義是:壓縮最高級(jí)9、每一個(gè)線程內(nèi)存90Mb、輸出文件名test.sort.bam、臨時(shí)文件前綴sorted、線程數(shù)2。

當(dāng)然,最簡(jiǎn)單命令:

samtools sort test.bam -o test.sort.bam

3、index

主要功能:對(duì)bam文件建立索引,但在此之前必須進(jìn)行排序(sort),生成后綴是.bai的文件。
參數(shù)釋義:

-b:創(chuàng)建一個(gè).bai格式的索引文件(默認(rèn))

-c:創(chuàng)建.csi格式的索引文件

-m:創(chuàng)建.csi文件,索引的最小間隔值

用法:

samtools index test.sort.bam

4、merge

功能:合并多個(gè)已經(jīng)sort的bam文件

當(dāng)有多個(gè)樣本的bam文件時(shí),可以使用samtools的merge命令將這些bam文件合并為一個(gè)排序的且保持所有輸入記錄并保持現(xiàn)有排序順序的bam文件。
主要參數(shù)釋義:

-n:輸入根據(jù)read排序的文件

-r:RG標(biāo)簽添加到每個(gè)比對(duì)文件上,標(biāo)簽值來(lái)自文件名

-u:輸出未壓縮的bam文件

-f:覆蓋同名文件

-1:壓縮等級(jí)1

-l:壓縮等級(jí)0-9

-R:合并輸入文件的指定區(qū)域

-h:FILE 指定FILE內(nèi)的’@’頭復(fù)制到輸出bam文件中并替換輸出文件的文件頭

-c:多個(gè)輸入文件包含相同的@RG頭ID時(shí),只保留第一個(gè)到合并后輸出的文件

-p:合并的每一個(gè)文件中的@PG ID只保留第一個(gè)文件中的@PG

-s:覆蓋隨機(jī)種子

-b:文件列表,一行一個(gè)

用法:

samtools merge merge.bam smallNA06985.sort smallNA06994.sort
5、faidx

功能:對(duì)fasta格式的文件建立索引,后綴名.fai。根據(jù)索引文件和序列文件,可以快速提取任意區(qū)域的序列文件。

fasta序列格式要求:每條序列,除了最后一行外,其他行的長(zhǎng)度必須相同!

為了方便,我們?cè)贜CBI上下載水稻NIP基因組的序列,進(jìn)行演示:

地址:https://www.ncbi.nlm.nih.gov/genome/?term=rice

然后,進(jìn)行解壓縮,重命名為seuence.fa

用法:

samtools faidx sequence.fa

最后生成一個(gè)sequence.fa.fai索引文件,一共5列,每列之間tab分割。
第一列:序列的名稱

第二列:序列長(zhǎng)度

第三列:第一個(gè)堿基的偏移量,從0開始計(jì)數(shù)

第四列:除了最后一行外,序列中每行的堿基數(shù)

第五列:除了最后一行外,序列中每行的長(zhǎng)度(包括換行符)

從中呢,我們可以有目的的提取序列:

提取水稻第一染色體:

samtools faidx sequence.fa Chr1 > Chr1.fa

提取水稻第一染色體100-200bp的序列:

samtools faidx sequence.fa Chr1:100-200 > Chr1_100_200.fa
6、tview

作用:直觀顯示reads比對(duì)到基因組的情況,和基因組瀏覽器有點(diǎn)類似。
-d:輸出類型

-p:直接定位給定位置

-s:reads顯示

當(dāng)給出參考基因組的時(shí)候,會(huì)在第一排給出參考基因組的序列,否則第一排全用N表示。

首先利用sort進(jìn)行排序后,在利用index建立索引后,用下面命令:

samtools tview test.sort.bam
7、flagstat

作用:reads的比對(duì)情況統(tǒng)計(jì)

Usage: samtools flagstat [--input-fmt-option OPT=VAL] <in.bam>

用法:

samtools flagstat test.sort.bam
8、depth

作用:每個(gè)堿基位點(diǎn)的測(cè)序深度
-a:輸出所有的堿基深度(包括0)

-b/-r:控制深度的范圍(后面跟染色體)

-f:bam文件名字

-l:設(shè)置read長(zhǎng)度閾值

-d/-m:最大覆蓋深度

-q:堿基質(zhì)量閾值

-Q:比對(duì)質(zhì)量閾值

samtools depth -a -r 3 test.sort.bam

9、mpileup

作用:對(duì)參考基因組每個(gè)位點(diǎn)做堿基堆積,用于call SNP和INDEL。主要是生成BCF、VCF文件或者pileup一個(gè)或多個(gè)bam文件。比對(duì)記錄以在@RG中的樣本名作為區(qū)分標(biāo)識(shí)符。如果樣本標(biāo)識(shí)符缺失,那么每一個(gè)輸入文件則視為一個(gè)樣本
主要參數(shù)釋義:

-A:在檢測(cè)變異中,不忽略異常的reads對(duì)

-C:用于調(diào)節(jié)比對(duì)質(zhì)量的系數(shù),如果reads中含有過(guò)多的錯(cuò)配,不能設(shè)置為零

-D:輸出每個(gè)樣本的reads深度

-l:BED文件或者包含區(qū)域位點(diǎn)的位置列表文件

注意:位置文件包含兩列,染色體和位置,從1開始計(jì)數(shù)。BED文件至少包含3列,染色體、起始和終止位置,開始端從0開始計(jì)數(shù)。

-r:在指定區(qū)域產(chǎn)生pileup,需已建立索引的bam文件,通常和-l參數(shù)一起使用

-o/g/v:輸出文件類型(標(biāo)準(zhǔn)格式文件或者VCF、BCF文件)

-t:設(shè)置FORMAT和INFO的列表內(nèi)容,以逗號(hào)分割

-u:生成未壓縮的VCF和BCF文件

-I:跳過(guò)INDEL檢測(cè)

-m:候選INDEL的最小間隔的reads

-f:輸入有索引文件的fasta參考序列

-F :含有間隔reads的最小片段
用法:

生成一個(gè)簡(jiǎn)單的vcf文件

samtools mpileup -vu test.sort.bam

如果有參考基因組的話

samtools mpileup -vuf genome.fasta test.sort.bam
10、dict

作用:建立參考基因組字典
用法:

samtools dict test.sort.bam sequences.fa

11、fastq

作用:bam文件轉(zhuǎn)換為fastq
用法:

samtools fastq test.bam
12、fasta

作用:bam文件轉(zhuǎn)換為fasta
用法:

samtools fasta test.bam
13、idxstats

作用:檢索和打印與輸入文件相對(duì)應(yīng)的index file里的統(tǒng)計(jì)信息

Usage: samtools idxstats <in.bam>

用法:

samtools idxstats test.sort.bam

結(jié)果返回一個(gè)表格,4列。
第一列:序列名

第二列:序列長(zhǎng)度

第三列:比對(duì)上的reads數(shù)

第四列:未必對(duì)數(shù)目

14、stats

作用:對(duì)bam文件做詳細(xì)統(tǒng)計(jì),其統(tǒng)計(jì)結(jié)果可用mics/plot-bamstats作圖
用法:
samtools stats test.bam
輸出的信息比較多,部分如下:
Summary Numbers,raw total sequences,filtered sequences, reads mapped, reads mapped and paired,reads properly paired等信息
Fragment Qualitites:根據(jù)cycle統(tǒng)計(jì)每個(gè)位點(diǎn)上的堿基質(zhì)量分布
Coverage distribution:深度為1,2,3,,,的堿基數(shù)目
ACGT content per cycle:ACGT在每個(gè)cycle中的比例
Insert sizes:插入長(zhǎng)度的統(tǒng)計(jì)
Read lengths:read的長(zhǎng)度分布

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,401評(píng)論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,011評(píng)論 3 413
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,263評(píng)論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,543評(píng)論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,323評(píng)論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,874評(píng)論 1 321
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,968評(píng)論 3 439
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,095評(píng)論 0 286
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,605評(píng)論 1 331
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,551評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,720評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,242評(píng)論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 43,961評(píng)論 3 345
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,358評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,612評(píng)論 1 280
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,330評(píng)論 3 390
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,690評(píng)論 2 370

推薦閱讀更多精彩內(nèi)容