WGS分析筆記(4)—— Call SNVs/indels

??最近一直忙期末匯報(bào)和腳本編寫,沒來的及接著往下寫文章惜姐,年前把這一塊寫了剪撬,然后再往下的分析流程就比較特異性了,做一步寫一步那種漓穿,相對于這種已經(jīng)常規(guī)化的流程(除了一些細(xì)節(jié)上的差異嗤军,別的都是大同小異的了),再往下的可能就不是很常規(guī)的分析手段了晃危,不同的實(shí)驗(yàn)室有不同的分析方法叙赚,希望能夠有大佬提點(diǎn)意見,多多交流僚饭。


“突變”區(qū)別

??對于WGS的數(shù)據(jù)震叮,在處理完bam文件以后,就是call variations了鳍鸵,之后所有的工作其實(shí)都是針對variations進(jìn)行分析苇瓣,那么說到變異呢,其實(shí)中文的“變異”在英文里對應(yīng)多個(gè)單詞偿乖,經(jīng)郴髯铮看到傻傻分不清,這里稍微區(qū)別一下贪薪。
??mutation:核苷酸序列的永久性改變(來源于ACMG)媳禁,在人群中小于1%或5%(來源于北大生物信息學(xué)公開課)
??polymorphism:在人群中頻率超過1%(來源于ACMG),或超過5%(來源于北大生物信息學(xué)公開課)
??variation/variant:以上兩個(gè)的總和(來源于北大生物信息學(xué)公開課)

變異類型

??我們一般所說的variations主要有四大類:SNV画切,INDEL竣稽,SV,CNV。
????SNV即單核苷酸位點(diǎn)變異(single nucleotide variants)
????INDEL即小片段插入缺失(insertion and deletion)
????SV即結(jié)構(gòu)變異(structural variation)
????CNV即拷貝數(shù)變異(copy number variation)

SNV與SNP

??說到SNV丧枪,可能大家也經(jīng)常看到SNP(single nucleotide polymorphism)庞萍,同樣是混淆使用拧烦,這倆其實(shí)還是有一些區(qū)別的,看到上面對變異的區(qū)分钝计,其實(shí)也能看出這倆的區(qū)別來:
??一般SNP是二態(tài)的恋博,SNV沒有這樣的限制,如果在一個(gè)物種中該單堿基變異的頻率達(dá)到一定水平(1%)就叫SNP私恬,而頻率未知(比如僅僅在一個(gè)個(gè)體中發(fā)現(xiàn))就叫SNV债沮,SNV包含SNP。

變異簡述

??人基因組通常有4.1~5.0M的變異本鸣,但是99.9%都是由SNV和short indel造成疫衩。
??通常,一個(gè)人全基因組內(nèi)會有約 3.6~4.4 M 個(gè) SNVs荣德,絕大數(shù)(大于 95%)的高頻(群體中等位基因頻率大于 5%)的 SNP 在 dbSNP中有記錄闷煤,高頻的SNP一般都不是致病的主要突變位點(diǎn)。
??通常涮瞻,一個(gè)人全基因組內(nèi)會有約 600K 的 Indel(<50bp的插入缺失為small indel)鲤拿。
??編碼區(qū)或剪接位點(diǎn)處發(fā)生的插入缺失都可能會改變蛋白的翻譯。

SV

??結(jié)構(gòu)變異指的是在基因組上一些大的結(jié)構(gòu)性的變異署咽,比如大片段丟失(deletion)近顷、大片段插入(insertion)、大片段重復(fù)(duplication)宁否、拷貝數(shù)變異(copy number variants)窒升、倒位(inversion)、易位(translocation)家淤。一般來說异剥,結(jié)構(gòu)變異涉及的序列長度在1kb到3Mb之間。結(jié)構(gòu)變異普遍存在于人類基因組中絮重,是個(gè)人差異和一些疾病易感性的來源冤寿。結(jié)構(gòu)變異還可能導(dǎo)致融合基因的發(fā)生,一些癌癥已經(jīng)證實(shí)和結(jié)構(gòu)變異導(dǎo)致的基因融合事件有關(guān)青伤。

CNV

??拷貝數(shù)變異指的是基因組上大片段序列拷貝數(shù)的增加或者減少督怜,可分為缺失(deletion)和重復(fù)(duplication)兩種類型,是一種重要的分子機(jī)制狠角。CNV能夠?qū)е旅系聽栠z傳病與罕見疾病, 同時(shí)與包括癌癥在內(nèi)的復(fù)雜疾病相關(guān)号杠,因此對于染色體水平的缺失、擴(kuò)增的研究已經(jīng)成為疾病研究熱點(diǎn)。

以上數(shù)據(jù)在不同的數(shù)據(jù)庫或文獻(xiàn)上可能有所差異姨蟋,但相去不遠(yuǎn)屉凯,具體的變異分類以及分布就不詳述,可參考一些文獻(xiàn)眼溶,下面說說怎么進(jìn)行其中的SNV和indel的檢測悠砚。


??以下我將提供兩種分析方式的腳本(DeepVariant以及bcftools)和流程,為啥沒有GATK堂飞?因?yàn)槲矣X得黃老師的這篇GATK分析流程寫得已經(jīng)很好了灌旧,大家可以參考一下。

Bcftools

??與舊版的samtools+bcftools不同绰筛,作者為了避免bcftools和samtools的版本不同導(dǎo)致的不兼容枢泰,新版的bcftools可以自己完成call snv/indel的工作。
??使用bcftools進(jìn)行變異檢測铝噩,一般分為三部曲衡蚂,分別為三個(gè)模塊mpileup、call薄榛、filter讳窟,當(dāng)然,我們一般也不會分三步進(jìn)行操作敞恋,而是使用管道(pipeline)進(jìn)行編寫腳本丽啡,這樣能減少產(chǎn)生一些不必要的過程文件,同時(shí)提高自動化和效率硬猫,下面是我的實(shí)際使用腳本补箍。

$ bcftools mpileup --threads 12 -q 20 -Q 20 -Ou -f /your/path/of/reference /your/bamfile/after/sorted.merged.markdup | bcftools call --threads 12 -vm -Ov | bcftools filter --threads 12 -s FILTER -g 10 -G 10 -i "%QUAL>20 && DP>6 && MQ>50 && (DP4[2]+DP4[3])>4" > raw.tmp.vcf
## bcftools mpileup檢測變異;
# --threads線程數(shù)
# -q表示reads比對質(zhì)量選擇,MAPQ啸蜜,默認(rèn)0;
# -Q表示reads堿基對質(zhì)量選擇坑雅,默認(rèn)13
# -O表示輸出格式,u表示未壓縮bcf格式;
# -f參考序列位置
## bcftools call參數(shù)
# --threads線程;
# -v只輸出變異位點(diǎn);
# m為克服-c調(diào)用模型中已知的局限性(與-c沖突)而設(shè)計(jì)的多等位和罕見變異調(diào)用的替代模型;
# -O輸出文件格式v未壓縮vcf;
## bcftools filter篩選變異;-i只保留后面條件的;-s對不符合的變異打上標(biāo)簽
$ awk -F "\t" '{if($1~/#/){print}else if($7~/PASS/){print}}' raw.tmp.vcf > var.flt.vcf
# 將標(biāo)為低質(zhì)量的變異去掉

??有幾個(gè)點(diǎn)值得討論一下,首先是mpileup的-q參數(shù)衬横,這個(gè)和之前提到的samtools view的-q是一樣的裹粤,前面的文章有大篇幅說過這個(gè)MAPQ的數(shù)值,20翻譯過來的意思其實(shí)就是比對正確率99%蜂林。
??filter中的-s是軟過濾的意思遥诉,就是把不符合后面條件的variations打上標(biāo)簽,但不過濾掉噪叙;-g矮锈,-G這對參數(shù)是說,indel附近的indel或snp是不準(zhǔn)確的睁蕾,大多是假陽性苞笨,過濾掉债朵,這里我設(shè)的10bp,這個(gè)值還是比較合理的瀑凝;-i是保留后面符合條件的變異序芦,剛好和-e相反,兩者選其一粤咪,我這里用的-i編寫過濾表達(dá)式
????QUAL:基于Phred格式的表示ALT的質(zhì)量芝加,也可以理解為可靠性;可以理解為所call出來的變異位點(diǎn)的質(zhì)量值射窒。Q=-10lgP,Q表示質(zhì)量值将塑;P表示這個(gè)位點(diǎn)發(fā)生錯(cuò)誤的概率脉顿。因此,如果想把錯(cuò)誤率從控制在90%以上点寥,P的閾值就是1/10艾疟,那lg(1/10)=-1,Q=(-10)*(-1)=10敢辩。同理蔽莱,當(dāng)Q=20時(shí),錯(cuò)誤率就控制在了0.01戚长。這個(gè)參數(shù)其實(shí)和mpileup的-Q是重復(fù)的盗冷。
????DP是堿基的覆蓋深度,一般很多公司和課題組會選擇10同廉,但我這里選擇的是6仪糖,本著寬進(jìn)嚴(yán)出的原則,保留更多的陽性variations迫肖,10也是沒有關(guān)系的锅劝。

????MQ不同于MAPQ,是RMS Mapping Quality蟆湖,公式定義如下:q指的是比對到這個(gè)參考基因組堿基上的比對質(zhì)量故爵,即MAPQ。參考之前說的隅津,MAPQ設(shè)置為20诬垂,假設(shè)每個(gè)堿基的MAPQ都是20,則MQ為20饥瓷。
MQ

????參考上一篇里的MAPQ分布可以看到剥纷,使用bwa mem后,其實(shí)大多數(shù)的reads的MAPQ都在60呢铆,這樣的話晦鞋,MQ最好也就是60,但是在40有一個(gè)小突起,對于MQ的篩選悠垛,大家的選擇可以酌情而定线定,50是一個(gè)大家使用較多的閾值點(diǎn)。
MAPQ分布圖

MAPQ累積分布曲線

????DP4分別是正反鏈上REF和ALT的深度确买,我用“DP4[2]+DP4[3]>4”篩選ALT的深度至少是5的variations斤讥。

??那么,以上的腳本其實(shí)是符合單個(gè)樣本進(jìn)行分析的湾趾,但如果是家系樣本進(jìn)行分析芭商,其實(shí)是有問題的,因?yàn)樵赾all這一步的時(shí)候用-v參數(shù)只輸出變異位點(diǎn)搀缠,在獲得了三個(gè)人的vcf文件進(jìn)行merge的時(shí)候铛楣,對于一些變異(這些變異只存在于三個(gè)人的某一個(gè)或某兩個(gè)),你就不知道不存在的那個(gè)人身上艺普,是因?yàn)闊o變異還是沒有覆蓋到reads簸州。這不利于做trio分析。那么要克服這個(gè)問題只需要去掉-v參數(shù)即可歧譬。

??然后進(jìn)行merge岸浑,是在完成了一個(gè)家系的call snp/indel以后。

$ bgzip -c -f -@ 12 var.flt.vcf > var.vcf.gz
# 進(jìn)行文件壓縮;-c不改變內(nèi)容; -f強(qiáng)制輸出瑰步,存在就覆蓋;-@線程數(shù)
$ bcftools index -t var.vcf.gz
# 建立索引矢洲,merge需要; -t建立tbi格式索引
$ bcftools merge -Ov --force-samples -l file.list -o merge.var.vcf 
# 進(jìn)行合成,-O輸出文件格式,v表示vcf格式文件;
# --force-samples缩焦,對于重名樣本強(qiáng)制合成;-o輸出文件
# -l包含文件名的文件兵钮,一行一個(gè)文件名,將先證者放在第一位

??之后可以用bcftools對結(jié)果做一下統(tǒng)計(jì)處理

## 統(tǒng)計(jì)結(jié)果plot-vcfstats
$ bcftools stats -F/your/path/of/reference -s - merge.var.vcf >  merge.var.vcf.stats && \
$ plot-vcfstats merge.var.vcf.stats -p vars_output
# plot-vcfstats程序在bcftools下的misc目錄中

DeepVariant

??谷歌提供了分別適用于WGS和WES的腳本舌界,可供大家參考掘譬。我親測了一下這個(gè)軟件,速度有點(diǎn)慢……完全沒有谷歌自己描述的那么快呻拌,做為嘗鮮吧葱轩,把當(dāng)時(shí)的腳本放上來,這里要特別感謝師姐的指導(dǎo)藐握!雖然最后我也沒打算用這個(gè)軟件完成我的課題吧靴拱。
????https://github.com/google/deepvariant/tree/r0.7/scripts
??Deepvariant無需安裝,直接拉docker下來就行猾普,不然要是安裝袜炕,這個(gè)環(huán)境配置怕是要折磨死人的。

# docker安裝初家,僅針對ubuntu用戶
    $ sudo apt-get install apt-transport-https ca-certificates curl software-properties-common 
    $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    $ sudo apt-key fingerprint 0EBFCD88
    $ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    $ sudo apt-get update
    $ sudo apt-get install docker-ce
    $ sudo docker run hello-world
    $ sudo usermod -aG docker $USER

??拉取一下docker就可以使用deepvariant了

$ sudo docker pull dajunluo/deepvariant
$ sudo docker images
$ sudo docker run -it dajunluo/deepvariant:latest
$ sudo docker run -it --name deepvariant -v /you/path/of/refrence/dir/:/home/ref_hg19 -v /home/biowork/:/home/biowork dajunluo/deepvariant
# -v是把我本地的數(shù)據(jù)對接到docker環(huán)境里偎窘,這個(gè)請自行根據(jù)需要對接
$ nohup python /home/bin/make_examples.zip --mode calling --ref /you/path/of/refrence --reads //you/path/of/bam --examples example.gz > 1.log &
$ nohup python /home/bin/call_variants.zip --outfile call_variants_output.gz --examples example.gz --checkpoint /home/models/model.ckpt > 2.log &
$ nohup python /home/bin/postprocess_variants.zip --ref /you/path/of/refrence --infile call_variants_output.gz  --outfile output.vcf.gz > 3.log &

??之后便可以用bcftools或者gatk進(jìn)行merge乌助,對于這一步可以參考上面的gatk鏈接或者bcftools步驟。


??到了這一步就可以完了么陌知?顯然不是他托,你用上述兩個(gè)方法或者參考黃老師的腳本用gatk得到的結(jié)果,如果你仔細(xì)看仆葡,就會發(fā)現(xiàn)赏参。


vcf示例

??這是什么鬼,這又是什么鬼沿盅,為什么有那么多的多等位位點(diǎn)把篓,你要是去統(tǒng)計(jì),會發(fā)現(xiàn)這樣的多等位位點(diǎn)還挺多的腰涧,所以你還不能直接過濾纸俭。對于這些變異我們一般是不會考慮嵌合的,因?yàn)槠骄?0X的WGS是沒法檢測出嵌合體的南窗。那么對于這樣的位點(diǎn)怎么去考慮分析呢?
??比較便捷的方法就是用bcftools里面的norm工具了郎楼。

$ bgzip -c -f -@ 12 merge.var.vcf > merge.var.vcf.gz
# 進(jìn)行文件壓縮;-c不改變內(nèi)容; -f強(qiáng)制輸出万伤,存在就覆蓋;-@線程數(shù)
$ bcftools index -t merge.var.vcf.gz
# 建立索引, -t建立tbi格式索引
$ bcftools norm -Ov -m-any -f /you/path/of/refrence merge.var.vcf.gz > norm.vcf

??這樣,多等位位點(diǎn)就變成了二等位位點(diǎn)了呜袁,便于后續(xù)的分析敌买。今天的內(nèi)容就到這里了,下一篇就是注釋以及各種過濾了阶界。


??水平有限虹钮,要是存在什么錯(cuò)誤請?jiān)u論指出!請大家多多批評指正膘融,相互交流芙粱,共同成長,謝謝Q跤场4号稀!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末岛都,一起剝皮案震驚了整個(gè)濱河市律姨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌臼疫,老刑警劉巖择份,帶你破解...
    沈念sama閱讀 206,013評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異烫堤,居然都是意外死亡荣赶,警方通過查閱死者的電腦和手機(jī)凤价,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來讯壶,“玉大人料仗,你說我怎么就攤上這事》茫” “怎么了立轧?”我有些...
    開封第一講書人閱讀 152,370評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長躏吊。 經(jīng)常有香客問我氛改,道長,這世上最難降的妖魔是什么比伏? 我笑而不...
    開封第一講書人閱讀 55,168評論 1 278
  • 正文 為了忘掉前任胜卤,我火速辦了婚禮,結(jié)果婚禮上赁项,老公的妹妹穿的比我還像新娘葛躏。我一直安慰自己,他們只是感情好悠菜,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,153評論 5 371
  • 文/花漫 我一把揭開白布舰攒。 她就那樣靜靜地躺著,像睡著了一般悔醋。 火紅的嫁衣襯著肌膚如雪摩窃。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,954評論 1 283
  • 那天芬骄,我揣著相機(jī)與錄音猾愿,去河邊找鬼。 笑死账阻,一個(gè)胖子當(dāng)著我的面吹牛蒂秘,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播淘太,決...
    沈念sama閱讀 38,271評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼材彪,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了琴儿?” 一聲冷哼從身側(cè)響起段化,我...
    開封第一講書人閱讀 36,916評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎造成,沒想到半個(gè)月后显熏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,382評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡晒屎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,877評論 2 323
  • 正文 我和宋清朗相戀三年喘蟆,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了缓升。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,989評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蕴轨,死狀恐怖港谊,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情橙弱,我是刑警寧澤歧寺,帶...
    沈念sama閱讀 33,624評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站棘脐,受9級特大地震影響斜筐,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蛀缝,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,209評論 3 307
  • 文/蒙蒙 一顷链、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧屈梁,春花似錦嗤练、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至真朗,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間僧诚,已是汗流浹背遮婶。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留湖笨,地道東北人旗扑。 一個(gè)月前我還...
    沈念sama閱讀 45,401評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像慈省,于是被迫代替她去往敵國和親臀防。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,700評論 2 345

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

  • 轉(zhuǎn)自:http://www.360doc.com/content/18/0208/11/19913717_7285...
    oddxix閱讀 17,369評論 2 164
  • 劉小澤寫于18.8.10致燥,補(bǔ)充于18.8.14-15這之間經(jīng)歷了第一期授課結(jié)課,(回中山辦購房手續(xù))遙墻機(jī)場讀了1...
    劉小澤閱讀 9,273評論 6 41
  • Part0背景知識 Q:什么是外顯子測序呢排截?A:外顯子組測序是指利用序列捕獲或者靶向技術(shù)將全基因組外顯子區(qū)域DNA...
    天秤座的機(jī)器狗閱讀 10,302評論 5 63
  • 【我愛競賽網(wǎng)】 這是一個(gè)關(guān)注大學(xué)生競賽的網(wǎng)站嫌蚤,在此會發(fā)布各種適合大家參賽的活動辐益,感興趣的同學(xué)可以百度上官網(wǎng)查看。 ...
    坐井觀天娃閱讀 293評論 0 0
  • 從咖啡館回來和同學(xué)約好太陽落山后去取我的藥脱吱。 同學(xué)在醫(yī)院婦產(chǎn)科工作智政,畢業(yè)后職業(yè)的不同導(dǎo)致我們能湊一個(gè)剛剛好的時(shí)間出...
    靚小寶閱讀 273評論 0 1