samtools及bam文件的相關(guān)知識(shí)
找到一個(gè)bam文件并輸入如下命令查看title信息
samtools view *.bam -H|less
(chipseq) [ ~ dum]$ samtools view RNAPII_S5P.merge.rmdup.bam -H|less
@HD VN:1.0 SO:coordinate
@SQ SN:chr1 LN:195471971
@SQ SN:chr2 LN:182113224
@SQ SN:chr3 LN:160039680
@SQ SN:chr4 LN:156508116
@SQ SN:chr5 LN:151834684
@SQ SN:chr6 LN:149736546
@SQ SN:chr7 LN:145441459
@SQ SN:chr8 LN:129401213
@SQ SN:chr9 LN:124595110
@SQ SN:chr10 LN:130694993
@SQ SN:chr11 LN:122082543
@SQ SN:chr12 LN:120129022
@SQ SN:chr13 LN:120421639
@SQ SN:chr14 LN:124902244
@SQ SN:chr15 LN:104043685
@SQ SN:chr16 LN:98207768
@SQ SN:chr17 LN:94987271
@SQ SN:chr18 LN:90702639
@SQ SN:chr19 LN:61431566
@SQ SN:chrX LN:171031299
@SQ SN:chrY LN:91744698
@SQ SN:chrM LN:16299
@SQ SN:chr1_GL456210_random LN:169725
@SQ SN:chr1_GL456211_random LN:241735
@SQ SN:chr1_GL456212_random LN:153618
@SQ SN:chr1_GL456213_random LN:39340
@SQ SN:chr1_GL456221_random LN:206961
@SQ SN:chr4_GL456216_random LN:66673
@SQ SN:chr4_GL456350_random LN:227966
@SQ SN:chr4_JH584292_random LN:14945
@SQ SN:chr4_JH584293_random LN:207968
@SQ SN:chr4_JH584294_random LN:191905
@SQ SN:chr4_JH584295_random LN:1976
@SQ SN:chr5_GL456354_random LN:195993
@SQ SN:chr5_JH584296_random LN:199368
@SQ SN:chr5_JH584297_random LN:205776
@SQ SN:chr5_JH584298_random LN:184189
@SQ SN:chr5_JH584299_random LN:953012
@SQ SN:chr7_GL456219_random LN:175968
@SQ SN:chrX_GL456233_random LN:336933
@SQ SN:chrY_JH584300_random LN:182347
@SQ SN:chrY_JH584301_random LN:259875
@SQ SN:chrY_JH584302_random LN:155838
可以看到bam文件的header有如下幾個(gè)部分組成
@HD 標(biāo)題行(The header line)主要用于版本號(hào),是否排序等標(biāo)注
@SQ 參考序列字典(Reference sequence dictionary)注意它們的順序決定了排序的優(yōu)先級(jí)
@RQ read group主要記錄了一文件的描述信息炭玫,例如樣本信息怔球,文庫編號(hào)等
@PG program主要記錄比對(duì)的軟件等代碼信息
@CO comments一行評(píng)論
-F 過濾 ## -F 4 過濾掉沒有mapping上的reads纤垂,也就是說提取出mapping上的reads
(chipseq) [yangjy@GSCG01 dum]$ samtools view -F 4 RNAPII_S5P.merge.rmdup.bam|less
SRR391032.11913822 0 chr1 3003566 42 50M * 0 0 TCTGCATGCTGATCTGCGCAGACTGTTCTCAGAGGGATCTGGCAGACAAG BCCCBBCBBCCBCBBCBBABCB@BB?@:@=AB??@A8@:???=?@?6<=< AS:i:0 XN:i:0 XM:i:0 XO:i:0 XG:i:0 NM:i:0 MD:Z:50 YT:Z:UU
SRR391033.8486314 0 chr1 3006117 42 51M * 0 0 AAGTAAATTCCTCACTTTTCATCCAGGAAACCTCTCTTCCCAACAAAGAGA BBBABBBCBCCCCCCCCCCCCCCBBCBBBBBABBBBBBBBBBBBBA1>@B@ AS:i:0 XN:i:0 XM:i:0 XO:i:0 XG:i:0 NM:i:0 MD:Z:51 YT:Z:UU
參考:https://www.bioinfo-scrounger.com/archives/245/
samtoolsview命令簡介
處理對(duì)象主要是BAM文件
bam文件是sam文件的二進(jìn)制格式,更加節(jié)省存儲(chǔ)空間而且操作速度更快蛾茉。
samtools view [options] in.sam | in.bam | in.cram[region...]
如果沒有指定option和region選項(xiàng)兑障,則會(huì)在屏幕中顯示sam格式的文件將比對(duì)后的sam文件轉(zhuǎn)換為bam文件 ---利用samtools view的-b參數(shù)就能把sam文件轉(zhuǎn)為bam文件。
sam 和 bam 格式轉(zhuǎn)換
1 BAM轉(zhuǎn)換為SAM
samtools view -h -o out.sam out.bam
2 SAM轉(zhuǎn)換為BAM
samtools view -bS out.sam >out.bam
-b 意思使輸出使BAM format
-S 意思使輸入使SAM
samtools rmdup
NGS上機(jī)測(cè)序前需要進(jìn)行PCR一步片拍,使一個(gè)模板擴(kuò)增出一簇,從而在上機(jī)測(cè)序的時(shí)候表現(xiàn)出為1個(gè)點(diǎn)寨躁,即一個(gè)reads。若一個(gè)模板擴(kuò)增出了多簇牙勘,結(jié) 果得到了多個(gè)reads职恳,這些reads的坐標(biāo)(coordinates)是相近的。在進(jìn)行了reads比對(duì)后需要將這些由PCR duplicates獲得的reads去掉方面,并只保留最高比對(duì)質(zhì)量的read放钦。使用rmdup命令即可完成.
Usage: samtools rmdup [-sS]
-s 對(duì)single-end reads。默認(rèn)情況下恭金,只對(duì)paired-end reads
-S 將Paired-end reads作為single-end reads處理操禀。
$ samtools input.sorted.bam output.bam
其他參考文件:
https://www.bioinfo-scrounger.com/archives/245/
Usage: samtools sort [options...] [in.bam]
Options:
-l INT Set compression level, from 0 (uncompressed) to 9 (best)
-u Output uncompressed data (equivalent to -l 0)
-m INT Set maximum memory per thread; suffix K/M/G recognized [768M]
-M Use minimiser for clustering unaligned/unplaced reads
-K INT Kmer size to use for minimiser [20]
-n Sort by read name (not compatible with samtools index command)
-t TAG Sort by value of TAG. Uses position as secondary index (or read name if -n is set)
-o FILE Write final output to FILE rather than standard output
-T PREFIX Write temporary files to PREFIX.nnnn.bam
--no-PG do not add a PG line
--input-fmt-option OPT[=VAL]
Specify a single input file format option in the form
of OPTION or OPTION=VALUE
-O, --output-fmt FORMAT[,OPT[=VAL]]...
Specify output format (SAM, BAM, CRAM)
--output-fmt-option OPT[=VAL]
Specify a single output file format option in the form
of OPTION or OPTION=VALUE
--reference FILE
Reference sequence FASTA FILE [null]
-@, --threads INT
Number of additional threads to use [0]
--verbosity INT
Set level of verbosity