1 samtools
? SAM全稱是Sequence Alignment/Map, 是目前最常用的存放比對(duì)或聯(lián)配數(shù)據(jù)的格式。無(wú)論是重測(cè)序麻裳,還是轉(zhuǎn)錄組,還是表觀組器钟, 幾乎所有流程都會(huì)產(chǎn)生SAM/BAM文件作為中間步驟津坑,然后是后續(xù)專門的分析過程。
? 顧名思義samtools就是用于處理sam與bam格式的工具軟件傲霸,能夠?qū)崿F(xiàn)二進(jìn)制查看疆瑰、格式轉(zhuǎn)換、排序及合并等功能昙啄,結(jié) 合sam格式中的flag穆役、tag等信息,還可以完成比對(duì)結(jié)果的統(tǒng)計(jì)匯總梳凛。同時(shí)利用linux中的grep耿币、awk等操作命令, 還可以大大擴(kuò)展samtools的使用范圍與功能韧拒。比如結(jié)構(gòu)變異淹接,基因融合,SNP/INDEL calling檢測(cè)等
其中第二列是常用的基因比對(duì)情況打分
這里需要注意叛溢,計(jì)算比對(duì)情況時(shí)每次都需要使用總值減去可以減的最大值塑悼,最后得到的結(jié)果即是序列的比對(duì)情況
#view功能可查看sam文件或者進(jìn)行bam文件轉(zhuǎn)化
/software/samtools-1.3/samtools view /home/tech/NGS-example/AS_example/231ESRP.25K.rep-1.bam |less -s
#提取比對(duì)到參考序列上的比對(duì)結(jié)果
samtools view -bF 4 abc.bam > abc.F.bam
#提取paired reads中兩條reads都比對(duì)到參考序列上的比對(duì)結(jié)果,只需要把兩個(gè)4+8的值#12作為過濾參數(shù)即可
samtools view -bF 12 abc.bam > abc.F12.bam
#提取沒有比對(duì)到參考序列上的比對(duì)結(jié)果
samtools view -bf 4 abc.bam > abc.f.bam
#提取bam文件中比對(duì)到caffold1上的比對(duì)結(jié)果楷掉,并保存到sam文件格式
samtools view abc.bam scaffold1 > scaffold1.sam
#提取scaffold1上能比對(duì)到30k到100k區(qū)域的比對(duì)結(jié)果 samtools view abc.bam scaffold1:30000-100000 > scaffold1_30k-100k.sam
#統(tǒng)計(jì)bam文件中的比對(duì)flag信息厢蒜,并輸出比對(duì)統(tǒng)計(jì)結(jié)果
/software/samtools-1.3/samtools flagstat toy.bam
#一般sam轉(zhuǎn)換bam直接用sort函數(shù),排序之后輸出bam文件
/software/samtools-1.3/samtools sort -o toy.bam toy.sam
#對(duì)排序后的bam文件建立index,并輸出為bai文件郭怪,用于快速隨機(jī)處理支示。
/software/samtools-1.3/samtools index toy.bam
#統(tǒng)計(jì)reads數(shù)
samtools idxstats toy.bam | awk '{s+=$3+$4}'END'{print s}'
2 bedtools
? bedtools的功能非常強(qiáng)大,試圖解決你所遇到的所有和基因組位置運(yùn)算的問題以及周邊問題:基因組運(yùn)算鄙才,多文件比較颂鸿,PE數(shù)據(jù)操作,格式轉(zhuǎn)換攒庵,F(xiàn)asta數(shù)據(jù)操作嘴纺,BAM工具,統(tǒng)計(jì)學(xué)相關(guān)工具浓冒,其他小工具
? bedtools總共有二三十個(gè)工具/命令來(lái)處理基因組數(shù)據(jù)栽渴。比較典型而且常用的功能舉例如下:格式轉(zhuǎn)換,bam轉(zhuǎn)bed(bamToBed)稳懒,bed轉(zhuǎn)其他格式(bedToBam闲擦,bedToIgv);對(duì)基因組坐標(biāo)的邏輯運(yùn)算场梆,包括:交集(intersectBed墅冷,windowBed),”鄰集“(closestBed)或油,補(bǔ)集(complementBed)寞忿,并集(mergeBed),差集(subtractBed);計(jì)算覆蓋度(coverage)(coverageBed顶岸,genomeCoverageBed)
? bedtools的核心是基因組運(yùn)算腔彰,所謂的基因組運(yùn)算,就是看看看自己手頭拿到的區(qū)域和你感興趣的區(qū)域的關(guān)系如何辖佣。 bedtools提供了如下工具做一系列你想到或者你想不到的事情霹抛。
? bed格式一般主要包含了基因的染色體定位信息,包括染色體定位卷谈,起始位點(diǎn)以及終止位點(diǎn)等信息杯拐,便于對(duì)整條染色體的基因覆蓋情況進(jìn)行了解
#取交集
bedtools intersect -a a.bed -b b.bed
chr1 100 101 a2 2 -
chr1 100 110 a2 2 -
#輸出overlap中a的序列
bedtools intersect -a a.bed -b b.bed -wa
#輸出overlap中b的序列
bedtools intersect -a a.bed -b b.bed -wb
#輸出兩段序列中重復(fù)的部分
bedtools intersect -a a.bed -b b.bed -wa -wb
bedtools window命令,顧名思義雏搂,是擴(kuò)展一個(gè)窗口藕施;功能與intersect相似,是對(duì)A文件中每個(gè)元素 的位置坐標(biāo)擴(kuò)展凸郑,捕獲B文件中與A有overlap的元素裳食;如,尋找lncRNA的順式靶基因
bedtools window -a a.bed -b b.bed
chr1 10 20 a1 1 + chr1 20 30 b1 1 +
chr1 10 20 a1 1 + chr1 90 101 b2 2 -
chr1 10 20 a1 1 + chr1 100 110 b3 3 +
chr1 10 20 a1 1 + chr1 200 210 b4 4 +
chr1 100 200 a2 2 - chr1 20 30 b1 1 +
chr1 100 200 a2 2 - chr1 90 101 b2 2 -
chr1 100 200 a2 2 - chr1 100 110 b3 3 +
chr1 100 200 a2 2 - chr1 200 210 b4 4 +