BSA分析(四)——序列比對及比對信息統(tǒng)計

拿到質(zhì)控后的數(shù)據(jù)就可以開始進行數(shù)據(jù)的比對了。(這里復習一下)需要確定好參考基因組儿倒,參考基因組選擇標準:質(zhì)量高晾嘶、完整拐揭、和某一親本相近(是親本之一的基因組當然更好了)

比對軟件

由于轉(zhuǎn)錄組存在可變剪切,所以和DNA重測序數(shù)據(jù)還是有區(qū)別的火脉。簡單來說就是DNA重測序數(shù)據(jù)包含基因組所有的堿基信息(內(nèi)含子外顯子都有)牵舵,但是RNA數(shù)據(jù)只有表達數(shù)據(jù)(外顯子,同時存在可變剪切)倦挂。所以比對時要注意這一點畸颅。DNA數(shù)據(jù)一般使用BWA,RNA除了BWA還可以使用Hisat2等方援。

BWA

下載安裝

wget http://superb-sea2.dl.sourceforge.net/project/bio-bwa/bwa-0.7.12.tar.bz2
tar jxf bwa-0.7.12.tar.bz2
cd bwa-0.7.12 && make

#編譯完成后將軟件寫入環(huán)境變量中
echo 'PATH=$PATH:~/softwarepath/bwa-0.7.12/setup' >> ~/.bashrc && source ~/.bashrc

#測試是否安裝好
bwa 
Program: bwa (alignment via Burrows-Wheeler transformation)
Version: 0.7.12
Contact: Heng Li <lh3@sanger.ac.uk>

Usage:   bwa <command> [options]

Command: index         index sequences in the FASTA format
         mem           BWA-MEM algorithm
         fastmap       identify super-maximal exact matches
         pemerge       merge overlapping paired ends (EXPERIMENTAL)
         aln           gapped/ungapped alignment
         samse         generate alignment (single ended)
         sampe         generate alignment (paired ended)
         bwasw         BWA-SW for long queries

         fa2pac        convert FASTA to PAC format
         pac2bwt       generate BWT from PAC
         pac2bwtgen    alternative algorithm for generating BWT
         bwtupdate     update .bwt to the new format
         bwt2sa        generate SA from BWT and Occ

Note: To use BWA, you need to first index the genome with `bwa index'.
      There are three alignment algorithms in BWA: `mem', `bwasw', and
      `aln/samse/sampe'. If you are not sure which to use, try `bwa mem'
      first. Please `man ./bwa.1' for the manual.

使用

bwa使用手冊

bwa包含三種算法:

BWA-backtrack: 比對Illumina 序列没炒,read length: ≤100bp。

BWA-SW: 比對 long read犯戏,也支持剪切比對送火。read length:70bp-1Mbp。

BWA-MEM: 比對 long read先匪,也支持剪切比對种吸。read length:70bp-1Mbp。(該算法更新呀非,準確性和速度都更優(yōu))

一般使用步驟:

#ref.fa即為參考基因組坚俗,genome為建立索引庫的前綴,不加-p genome岸裙,默認建立索引以ref.fa為前綴
bwa index ref.fa -p genome

#因為BSA分析中的重測序數(shù)據(jù)大多是150 PE猖败,這里就直接介紹mem算法的用法,別的算法不再詳細介紹
bwa mem [-aCHMpP] [-t nThreads] [-k minSeedLen] [-w bandWidth] [-d zDropoff] \
        [-r seedSplitRatio] [-c maxOcc] [-A matchScore] [-B mmPenalty] [-O gapOpenPen] \
        [-E gapExtPen] [-L clipPen] [-U unpairPen] [-R RGline] [-v verboseLevel] \
        db.prefix reads.fq [mates.fq]

常用參數(shù)注釋:
-t INT  線程數(shù)降允,默認是1恩闻。
-M      將 shorter split hits 標記為次優(yōu),以兼容 Picard’s markDuplicates 軟件拟糕。
-p      若無此參數(shù):輸入文件只有1個判呕,則進行單端比對;若輸入文件有2個送滞,則作為paired reads進行比對侠草。若加入此參數(shù):則僅以第1個文件作為輸入(輸入的文件若有2個,則忽略之)犁嗅,該文件必須是read1.fq和read2.fa進行reads交叉的數(shù)據(jù)边涕。
-R STR  完整的read group的頭部,可以用 '\t' 作為分隔符,sam文件會識別功蜓。需要指定RG表頭是因為同一樣品可包括多個不同lane园爷、不同文庫的測序結(jié)果,此外不同樣品比對結(jié)果合并時式撼,也需要通過RG進行標記區(qū)分童社。
-T INT  當比對的分值比 INT 小時,不輸出該比對結(jié)果著隆,這個參數(shù)只影響輸出的結(jié)果扰楼,不影響比對的過程。
-a      將所有的比對結(jié)果都輸出美浦,包括 single-end 和 unpaired paired-end的 reads弦赖,但是這些比對的結(jié)果會被標記為次優(yōu)。

SE(單):
bwa aln [options] ref.fa read.fq > aln_sa.sai
bwa samse [options] ref.fa aln_sa.sai read.fq > aln-se.sam
PE(雙):
bwa aln [options] ref.fa read1.fq > aln_sa1.sai
bwa aln [options] ref.fa read2.fq > aln_sa2.sai
bwa sampe [options] ref.fa aln_sa1.sai aln_sa2.sai read1.fq read2.fq > aln-pe.sam

#實例(雙端)浦辨,sam文件即為我們的比對結(jié)果文件蹬竖。
##不指定樣品名
bwa mem ref.fa read1.fq read2.fq > out.sam
##指定樣品名,sample即為樣品名
bwa mem -M -R "@RG\tID:sample\tLB:sample\tSM:sample"  ref.fa read1.fastq read2.fastq > out.sam 2> out.sam.log

當我們想要提高比對的速率的時候流酬,可以直接使用shell的基本命令split币厕,或者寫python腳本對測序數(shù)據(jù)進行分割再并行比對(每四行為一組),最后再將比對文件合并起來康吵。

注意:1劈榨、因為涉及到后面的變異檢測,所以當基因組存在染色體長度大于500M時晦嵌,一定要對染色體拆分成小于500M的序列再進行比對同辣,在變異檢測完畢后再進行合并(拆分基因組的腳本我會放在流程腳本里,這里不再詳細記錄)惭载;2旱函、一定不能是基因組拆分進行比對,因為數(shù)據(jù)是無序的描滔,且涉及到多重比對的問題0舴痢!含长!

比對結(jié)果格式解讀

@HD VN:1.5  SO:coordinate
@SQ SN:Chr01    LN:91897250
@RG ID:sample   LB:sample   SM:sample 
@PG     ID:bwa  CL:~/softwarepath/bwa-0.7.12/setup/bwa mem -M -R "@RG\tID:sample\tLB:sample\tSM:sample"  ref.fa read1.fastq read2.fastq > out.sam 2> out.sam.log      PN:bwa  VN:0.7.17-r1188
E150015117L1C019R0062820889     433     Chr01       186     0       72M78H  ChrD02_S6       89876638        0       AAAAACCCTAAACCCTAAACCCTAAACCCTAAACCCTAAACCCTAAACCCTAAACCCTAAACCCTAAACCTA        ?A+<80-?C5-@A5BC<7>A<@CC-2A9CCB67@2BCC/;8:@CCC=66@CCA<>=BCCCAB68B@C<?<=C        NM:i:0  MD:Z:72 MC:Z:150M       AS:i:72 XS:i:72 RG:Z:CY619      SA:Z:ChrD05_S5,59252485,-,51S99M,0,1;
E150015079L1C036R0342398185     161     Chr01       361     2       6S14M1I86M1I14M4D28M    ChrD02_S1       14286   0       CCTAAAAAACCCTAAACCCTAAAACCCTAAACCCTAAACCCTAAACCCTAAACCCAAAAAACCCTAAAAAAACCCTAAACCCTAAACCCTAAACCCTAAACCATAAACCCCTAAACCCTAAAAAACCCTAAACCCTAAACCCTAAACCCT  B-AB<CBA/65@=5B<.C96C4:B<#AB2=8);18B7/;=??C86>)@AB<8C4<CCA2<C69@>=?2A=A76=6/867/C=4>A--=(2B=A1;@@/9.#@'4C>).@?92<C421AAC(B2@99-C6#=&'<<9@4C2'B.B$B/CC%  NM:i:7  MD:Z:95C18^CCCT28       MC:Z:147M3S     AS:i:113        XS:i:109        RG:Z:CY619
E150015079L1C003R0260125142     81      Chr01       368     0       38M1D112M       ChrD03  10858   0       AAACCGTAAACCCTAAAGCCTAAATCCTAAACCCTAAAGCAAAAAACCCTAAAAAAACCCTAAACCCTAAACCCTAAACCCTAAACCCTAAACCCTAAACCCTAAACCCTAAACCCTAAAAGCTAAACCCTAAACGCTAAACCCTAAACC  @2C;15CCCC26<BCAB$?BCBC>/<.@@CB9C.C?CC#CBBA6BC:C6ACCBCC>CC=@CCCA7A>CACAC6CCACC?1?CCC=B9CCCCC.2-CCC<;C4CCCC;5?CCCCC-CCCAC&(CCC;A*C5CAC7C'9BBCCC?7CCC>8B  NM:i:8  MD:Z:5C11C6C13^C0C81C0C13C14    MC:Z:3M1D147M   AS:i:108        XS:i:106        RG:Z:CY619

#@開頭的列都是表頭信息行券腔,不能少
HD:(排序類型)
頭部區(qū)第一行:VN是格式版本;SO表示比對排序的類型拘泞,有unknown(default)纷纫,unsorted,queryname和coordinate幾種陪腌。
SQ:染色體號\t染色體長度
RG:樣本信息
PG: 比對命令行辱魁,可以直接由此查到比對方式烟瞧,參考基因組,測序數(shù)據(jù)染簇,樣本名等信息

#比對內(nèi)容行每列內(nèi)容注釋:
第一列:QNAME参滴。比對的序列名稱,類似于E150015117L1C019R0062820889锻弓。
第二列:FLAG Bwise FLAG砾赔,比對類型:paring,strand弥咪,mate strand等过蹂。(這個值需要進行計算)
第三列:RENAME 比對上的參考序列名,類似于Chr01
第四列:POS 1-Based的比對起始物理位置
第五列:MAPQ 比對質(zhì)量
第六列:CIGAR Extended CIGAR string(操作符:MIDNPSH=X)比對結(jié)果信息聚至,包含數(shù)字和字符。
第七列:MRNM 相匹配的另外一條序列本橙,比對上的參考序列名扳躬,“=”:比對到一個位置;“*”:無匹配甚亭;染色體號:比對多個位置贷币。
第八列:MPOS 1-Based leftmost Mate Position 與該reads對應的mate pair reads的比對位置
第九列:ISIZE 插入片段長度
第十列:SEQ 和參考序列在同一個鏈上比對的序列(若比對結(jié)果在負義鏈上,則序列是其反向重復序列亏狰,反向互補序列)
第十一列:QUAL 比對序列的質(zhì)量(ASCII-33=Phred base quality)reads堿基質(zhì)量值
可選列:以TAG:TYPE:VALUE的形式提供額外的信息役纹。

比對文件格式處理

samtools

下載安裝

# 建議直接conda安裝
conda create -n samtools
conda activate samtools 
conda install -c bioconda samtools -y

#測試是否安裝成功
samtools 

Program: samtools (Tools for alignments in the SAM format)
Version: 1.3.1 (using htslib 1.3.1)

Usage:   samtools <command> [options]

Commands:
  -- Indexing
     dict           create a sequence dictionary file
     faidx          index/extract FASTA
     index          index alignment

  -- Editing
     calmd          recalculate MD/NM tags and '=' bases
     fixmate        fix mate information
     reheader       replace BAM header
     rmdup          remove PCR duplicates
     targetcut      cut fosmid regions (for fosmid pool only)
     addreplacerg   adds or replaces RG tags

  -- File operations
     collate        shuffle and group alignments by name
     cat            concatenate BAMs
     merge          merge sorted alignments
     mpileup        multi-way pileup
     sort           sort alignment file
     split          splits a file by read group
     quickcheck     quickly check if SAM/BAM/CRAM file appears intact
     fastq          converts a BAM to a FASTQ
     fasta          converts a BAM to a FASTA

  -- Statistics
     bedcov         read depth per BED region
     depth          compute the depth
     flagstat       simple stats
     idxstats       BAM index stats
     phase          phase heterozygotes
     stats          generate stats (former bamcheck)

  -- Viewing
     flags          explain BAM flags
     tview          text alignment viewer
     view           SAM<->BAM<->CRAM conversion
     depad          convert padded BAM to unpadded BAM

使用

這里主要介紹如何將sam文件處理成二進制bam文件,建立索引暇唾,排序促脉,去重,以及統(tǒng)計比對信息

#sam文件查看
less -S out.sam
#bam文件查看
samtools view -hS out.sort.rmdup.bam |less -S 
##以上二者區(qū)別就是是否為二進制文件

#sam轉(zhuǎn)bam
samtools view -hb out.sam >out.bam

#拆分并行比對后會涉及到bam合并的問題,merge也可以合并
samtools cat 1.bam 2.bam ... -o out.bam

#bam排序,先建索引(生成*.bam.bai文件策州,當染色體長度過長時則會出現(xiàn)索引無法建立的情況)再排序
samtools index out.bam
samtools sort out.bam -o out.sort.bam

#去重瘸味,s:SE,S:PE,默認雙端
samtools rmdup -S out.sort.bam out.sort.rmdup.bam 

#統(tǒng)計比對信息
samtools flagstat out.sort.rmdup.bam >  flagstat.txt

#flagstat.txt文件內(nèi)容
7524 + 0 in total (QC-passed reads + QC-failed reads)
0 + 0 secondary
0 + 0 supplementary
0 + 0 duplicates
7523 + 0 mapped (99.99% : N/A)
7524 + 0 paired in sequencing
3760 + 0 read1
3764 + 0 read2
7510 + 0 properly paired (99.81% : N/A)
7522 + 0 with itself and mate mapped
1 + 0 singletons (0.01% : N/A)
12 + 0 with mate mapped to a different chr
0 + 0 with mate mapped to a different chr (mapQ>=5)

第一行:QC pass的reads的數(shù)量為7514,未通過QC的reads數(shù)量為0够挂,意味著一共有7524*2條reads旁仿;
第四行:重復reads的數(shù)量泥彤,QC pass和failed锯厢,這里都是0條
*第五行:比對到參考基因組上的reads數(shù)量,這里是共7523條比對上了參考基因組昆咽,比對率為99.99%办悟;
第六行:paired reads數(shù)據(jù)數(shù)量尘奏,這里是7524對;
第七行:read1比對上的數(shù)量誉尖;
第八行:read2比對上的數(shù)量罪既;
*第九行:雙端都正確匹配到參考序列的reads數(shù)量,這里是7510,比對率為99.81%琢感;
第十行:雙端都匹配到了參考序列上的reads數(shù)量(但是并不一定比對到同一條染色體上)丢间;
*第十一行:雙端中只有一條與參考序列相匹配的數(shù)量;
*第十二行:雙端比對到不同染色體的數(shù)量驹针;
第十三行:雙端比對到不同染色體的且比對質(zhì)量值大于5的數(shù)量烘挫。
## *為主要數(shù)據(jù)關注行

#覆蓋率統(tǒng)計
/work1/Software/samtools-1.4/setup/bin/samtools depth -a out.sort.rmdup.bam > out_depth.txt 2>out_depth.statlog
#out_depth.txt文件內(nèi)容
#染色體號   物理位置    覆蓋堿基數(shù)
Chr01      1       0
Chr01      2       10
Chr01      3       0
Chr01      4       0

## a為有堿基覆蓋的位點總長度
a=`awk '$3!=0' out_depth.txt|wc -l `
## b是基因組總長度
samtools faidx ref.fa
b=`awk '{sum+=$2}END{print sum} ref.fai`
## a/b 即為覆蓋率了

往期回顧

BSA分析(一)——原理及發(fā)展史

BSA分析(二)——分析準備工作

BSA分析(三)——測序數(shù)據(jù)的質(zhì)控

參考資料

https://blog.csdn.net/genome_denovo/article/details/78712972

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市柬甥,隨后出現(xiàn)的幾起案子饮六,更是在濱河造成了極大的恐慌,老刑警劉巖苛蒲,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件卤橄,死亡現(xiàn)場離奇詭異,居然都是意外死亡臂外,警方通過查閱死者的電腦和手機窟扑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來漏健,“玉大人嚎货,你說我怎么就攤上這事∧杞” “怎么了殖属?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長瓦盛。 經(jīng)常有香客問我洗显,道長,這世上最難降的妖魔是什么谭溉? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任墙懂,我火速辦了婚禮,結(jié)果婚禮上扮念,老公的妹妹穿的比我還像新娘损搬。我一直安慰自己,他們只是感情好柜与,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布巧勤。 她就那樣靜靜地躺著,像睡著了一般弄匕。 火紅的嫁衣襯著肌膚如雪颅悉。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天迁匠,我揣著相機與錄音剩瓶,去河邊找鬼驹溃。 笑死,一個胖子當著我的面吹牛延曙,可吹牛的內(nèi)容都是我干的豌鹤。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼枝缔,長吁一口氣:“原來是場噩夢啊……” “哼布疙!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起愿卸,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤灵临,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后趴荸,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體儒溉,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年赊舶,在試婚紗的時候發(fā)現(xiàn)自己被綠了睁搭。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡笼平,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出舔痪,到底是詐尸還是另有隱情寓调,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布锄码,位于F島的核電站夺英,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏滋捶。R本人自食惡果不足惜痛悯,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望重窟。 院中可真熱鬧载萌,春花似錦、人聲如沸巡扇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽厅翔。三九已至乖坠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間刀闷,已是汗流浹背熊泵。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工仰迁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人顽分。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓徐许,卻偏偏與公主長得像,于是被迫代替她去往敵國和親怯邪。 傳聞我的和親對象是個殘疾皇子绊寻,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

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