參考文章:https://www.cnblogs.com/xiaofeiIDO/p/6805373.html
1、view
主要功能:sam和bam文件之間相互轉(zhuǎn)換歪沃,針對bam文件進(jìn)行相關(guān)操作嫌松。bam文件是sam文件的二進(jìn)制格式萎羔,占據(jù)內(nèi)存較小且運算速度快。
-b:輸出bam格式贾陷,用于后續(xù)分析
-C:輸出CRAM文件
-1:快速壓縮(需要-b)
-u:輸出未壓縮的bam文件髓废,節(jié)約時間,占據(jù)較多磁盤空間(需要-b)
-h:默認(rèn)輸出sam文件不帶表頭顶燕,該參數(shù)設(shè)定后輸出帶表頭信息
-H:僅僅輸出表頭信息
-c:僅打印匹配數(shù)
-o:輸出文件(stdout標(biāo)準(zhǔn)輸出)
-U:輸出沒有經(jīng)過過濾選擇的reads
-t:制表分隔符文件(需要提供額外的參考數(shù)據(jù)蒋譬,比如參考基因組的索引)
-L:僅包括和bed文件有重疊的reads
-r:僅輸出在STR讀段組中的reads
-R:僅輸出特定reads
-q:定位的質(zhì)量大于INT[默認(rèn)0]
-l:僅輸出在STR 庫中的reads
-F:獲得比對上(mapped)的過濾設(shè)置[默認(rèn)0]
-f:獲得未必對上(unmapped)的過濾設(shè)置[默認(rèn)0]
-T:使用fasta格式的參考序列
實例演示:
bam文件轉(zhuǎn)換為sam文件
samtools view -h smallNA06985 > test.sam
sam文件轉(zhuǎn)換為bam文件
samtools view -bS -1 test.sam > test.bam
提取比對到參考基因組上的數(shù)據(jù)
samtools view -bF 4 test.bam > test.F.bam
提取沒有比對到參考基因組上的數(shù)據(jù)
samtools view -bf 4 test.bam > test.f.bam
雙端reads都比對到參考基因組上的數(shù)據(jù)
samtools view -bF 12 test.bam > test.12.bam
單端reads1比對到參考基因組上的數(shù)據(jù)
samtools view -bF 4 -f 8 test .bam > test1.bam
單端reads2比對到參考基因組上的數(shù)據(jù)
samtools view -bF 8 -f 4 test.bam > test2.bam
2犯助、sort
主要功能:對bam文件進(jìn)行排序(不能對sam文件進(jìn)行排序)
主要參數(shù)釋義:
-l:設(shè)置文件壓縮等級,0不壓縮剂买,9壓縮最高
-m:每個線程運行內(nèi)存大小(可使用K M G表示)
-n:按照read名稱進(jìn)行排序
-o:排序后的輸出文件
-T:PREFIX臨時文件前綴
-@:設(shè)置排序和壓縮的線程數(shù)婚肆,默認(rèn)單線程
用法:
samtools sort -l 9 -m 90M -n -o test.sort.bam -T sorted -@ 2 test.bam
上述含義是:壓縮最高級9较性、每一個線程內(nèi)存90Mb、輸出文件名test.sort.bam赞咙、臨時文件前綴sorted攀操、線程數(shù)2。
當(dāng)然速和,最簡單命令:
samtools sort test.bam -o test.sort.bam
3颠放、index
主要功能:對bam文件建立索引,但在此之前必須進(jìn)行排序(sort)慈迈,生成后綴是.bai的文件痒留。
參數(shù)釋義:
-b:創(chuàng)建一個.bai格式的索引文件(默認(rèn))
-c:創(chuàng)建.csi格式的索引文件
-m:創(chuàng)建.csi文件蠢沿,索引的最小間隔值
用法:
samtools index test.sort.bam
4、merge
功能:合并多個已經(jīng)sort的bam文件
當(dāng)有多個樣本的bam文件時恤磷,可以使用samtools的merge命令將這些bam文件合并為一個排序的且保持所有輸入記錄并保持現(xiàn)有排序順序的bam文件野宜。
主要參數(shù)釋義:
-n:輸入根據(jù)read排序的文件
-r:RG標(biāo)簽添加到每個比對文件上,標(biāo)簽值來自文件名
-u:輸出未壓縮的bam文件
-f:覆蓋同名文件
-1:壓縮等級1
-l:壓縮等級0-9
-R:合并輸入文件的指定區(qū)域
-h:FILE 指定FILE內(nèi)的’@’頭復(fù)制到輸出bam文件中并替換輸出文件的文件頭
-c:多個輸入文件包含相同的@RG頭ID時河胎,只保留第一個到合并后輸出的文件
-p:合并的每一個文件中的@PG ID只保留第一個文件中的@PG
-s:覆蓋隨機(jī)種子
-b:文件列表虎敦,一行一個
用法:
samtools merge merge.bam smallNA06985.sort smallNA06994.sort
5政敢、faidx
功能:對fasta格式的文件建立索引喷户,后綴名.fai访锻。根據(jù)索引文件和序列文件,可以快速提取任意區(qū)域的序列文件河哑。
fasta序列格式要求:每條序列哭懈,除了最后一行外,其他行的長度必須相同睬罗!
為了方便旭斥,我們在NCBI上下載水稻NIP基因組的序列,進(jìn)行演示:
地址:https://www.ncbi.nlm.nih.gov/genome/?term=rice
然后花盐,進(jìn)行解壓縮菇爪,重命名為seuence.fa
用法:
samtools faidx sequence.fa
最后生成一個sequence.fa.fai索引文件,一共5列熙揍,每列之間tab分割氏涩。
第一列:序列的名稱
第二列:序列長度
第三列:第一個堿基的偏移量,從0開始計數(shù)
第四列:除了最后一行外意系,序列中每行的堿基數(shù)
第五列:除了最后一行外饺汹,序列中每行的長度(包括換行符)
從中呢,我們可以有目的的提取序列:
提取水稻第一染色體:
samtools faidx sequence.fa Chr1 > Chr1.fa
提取水稻第一染色體100-200bp的序列:
samtools faidx sequence.fa Chr1:100-200 > Chr1_100_200.fa
6作郭、tview
作用:直觀顯示reads比對到基因組的情況夹攒,和基因組瀏覽器有點類似。
-d:輸出類型
-p:直接定位給定位置
-s:reads顯示
當(dāng)給出參考基因組的時候咏尝,會在第一排給出參考基因組的序列编检,否則第一排全用N表示。
首先利用sort進(jìn)行排序后允懂,在利用index建立索引后蕾总,用下面命令:
samtools tview test.sort.bam
7、flagstat
作用:reads的比對情況統(tǒng)計
Usage: samtools flagstat [--input-fmt-option OPT=VAL] <in.bam>
用法:
samtools flagstat test.sort.bam
8递雀、depth
作用:每個堿基位點的測序深度
-a:輸出所有的堿基深度(包括0)
-b/-r:控制深度的范圍(后面跟染色體)
-f:bam文件名字
-l:設(shè)置read長度閾值
-d/-m:最大覆蓋深度
-q:堿基質(zhì)量閾值
-Q:比對質(zhì)量閾值
samtools depth -a -r 3 test.sort.bam
9蚀浆、mpileup
作用:對參考基因組每個位點做堿基堆積,用于call SNP和INDEL杨凑。主要是生成BCF摆昧、VCF文件或者pileup一個或多個bam文件。比對記錄以在@RG中的樣本名作為區(qū)分標(biāo)識符。如果樣本標(biāo)識符缺失勇吊,那么每一個輸入文件則視為一個樣本
主要參數(shù)釋義:
-A:在檢測變異中窍仰,不忽略異常的reads對
-C:用于調(diào)節(jié)比對質(zhì)量的系數(shù),如果reads中含有過多的錯配针史,不能設(shè)置為零
-D:輸出每個樣本的reads深度
-l:BED文件或者包含區(qū)域位點的位置列表文件
注意:位置文件包含兩列,染色體和位置婚陪,從1開始計數(shù)频祝。BED文件至少包含3列,染色體沽一、起始和終止位置漓糙,開始端從0開始計數(shù)。
-r:在指定區(qū)域產(chǎn)生pileup蝗蛙,需已建立索引的bam文件为狸,通常和-l參數(shù)一起使用
-o/g/v:輸出文件類型(標(biāo)準(zhǔn)格式文件或者VCF、BCF文件)
-t:設(shè)置FORMAT和INFO的列表內(nèi)容病曾,以逗號分割
-u:生成未壓縮的VCF和BCF文件
-I:跳過INDEL檢測
-m:候選INDEL的最小間隔的reads
-f:輸入有索引文件的fasta參考序列
-F :含有間隔reads的最小片段
用法:
生成一個簡單的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
作用:檢索和打印與輸入文件相對應(yīng)的index file里的統(tǒng)計信息
Usage: samtools idxstats <in.bam>
用法:
samtools idxstats test.sort.bam
結(jié)果返回一個表格陕截,4列。
第一列:序列名
第二列:序列長度
第三列:比對上的reads數(shù)
第四列:未必對數(shù)目
14农曲、stats
作用:對bam文件做詳細(xì)統(tǒng)計,其統(tǒng)計結(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)計每個位點上的堿基質(zhì)量分布
Coverage distribution:深度為1形葬,2合呐,3,笙以,淌实,的堿基數(shù)目
ACGT content per cycle:ACGT在每個cycle中的比例
Insert sizes:插入長度的統(tǒng)計
Read lengths:read的長度分布