學(xué)生信的那些事兒之十六 - 生信技能樹(shù)VCF格式文件的shell小練習(xí)

開(kāi)始做題前需要生成vcf文件先:

# 先生成BAM文件炫隶,用bowtie2
bowtie2 -x ../index/lambda_virus -1 reads_1.fq -2 reads_2.fq | samtools sort -@ 5 -o test2.bam

# 然后生成vcf文件铁追,用bcftools憎兽,當(dāng)然了前提的前提是安裝了bcftools軟件
bcftools mpileup -f ../reference/lambda_virus.fa test2.bam | bcftools call -vm > test2.vcf

想要順利的把題目做完撑蚌,基礎(chǔ)的Linux命令當(dāng)然需要熟練運(yùn)用,更關(guān)鍵的是對(duì) vcf 文件格式和內(nèi)容的了解刽肠。

  1. 把突變記錄的vcf文件區(qū)分成 INDEL和SNP條目
# 網(wǎng)上有幾種答案溃肪,我比較傾向于這一種。如果是SNP,那么第四列和第五列都應(yīng)該只有一個(gè)字符音五,否則就是InDel
less test2.vcf | grep -v '^#'| awk '{if(length($4)==1 && length($5)==1) print}' | less -S   #SNP
less test2.vcf | grep -v '^#'| awk '{if(length($4)!=1 && length($5)!=1) print}' | less -S

# 實(shí)際操作后我發(fā)現(xiàn)上面的代碼也有問(wèn)題惫撰,因?yàn)樯厦鎯尚写a的值分別為36和29下面代碼的行數(shù)是106,理論上兩者之和應(yīng)該等于106,然而明顯不是躺涝。
less test2.vcf | grep -v '^#'| wc

# 經(jīng)過(guò)對(duì)三種情況的對(duì)比后發(fā)現(xiàn)厨钻,第一行代碼沒(méi)問(wèn)題,問(wèn)題在于第二行,邏輯是有問(wèn)題的夯膀,因?yàn)楫?dāng)?shù)?列不等于1時(shí)诗充,第5列可能等于1,且為InDel诱建,所以正確的代碼應(yīng)該是:
less test2.vcf | grep -v '^#'| awk '{if(length($4)!=1) print}' | less -S   #INDEL
  1. 統(tǒng)計(jì)INDEL和SNP條目的各自的平均測(cè)序深度
# 非常樸素的想法:把對(duì)應(yīng)的部分拿出來(lái)然后加和求平均值
less test2.vcf | grep -v '^#'| awk '{if(length($4)!=1) print}' | cut -f 8 | cut -d ";" -f 4 | cut -d "=" -f 2 | awk '{sum+=$1}END{print sum}' #INDEL總測(cè)序深度

less test2.vcf | grep -v '^#'| awk '{if(length($4)==1 && length($5)==1) print}' | cut -f 8 | cut -d ";" -f 1 | cut -d "=" -f 2 | awk '{sum+=$1}END{print sum}'  #SNP總測(cè)序深度
  1. 把INDEL條目再區(qū)分成insertion和deletion情況
# 如果是insert其障,那么第5列比第4列字符數(shù)多;如果是deletion涂佃,那么第5列比第4列字符數(shù)少
less test2.vcf | grep -v '^#'| awk '{if(length($4)!=1) print}' | awk '{if(length($4)<length($5)) print}' | less -S   # insert

less test2.vcf | grep -v '^#'| awk '{if(length($4)!=1) print}' | awk '{if(length($4)>length($5)) print}' | less -S   # deletion
  1. 統(tǒng)計(jì)SNP條目的突變組合分布頻率
# 說(shuō)實(shí)話(huà)一開(kāi)始沒(méi)看懂問(wèn)題是什么意思...  意思就是看下SNP的突變類(lèi)型有哪些,各種類(lèi)型的比例是多少蜈敢。

less test2.vcf | grep -v '^#'| awk '{if(length($4)==1 && length($5)==1) print}' | cut -f 4,5 | sort | uniq -c  #可以看都有哪些突變類(lèi)型以及每種突變類(lèi)型的數(shù)量
  1. 找到基因型不是 1/1 的條目以及個(gè)數(shù)
# 先找到條目有哪些
less test2.vcf | grep -v "1/1" | grep -v "^#"

# 計(jì)數(shù)
less test2.vcf | grep -v "1/1" | grep -v "^#" | wc
  1. 篩選測(cè)序深度大于20的條目
# 即DP>20的條目, 反其道而行之辜荠,如下:
less test2.vcf | grep -v "DP=[1-20]" | grep -v "^#" | less -S
  1. 篩選變異位點(diǎn)質(zhì)量值大于30的條目
# 質(zhì)量值在第6列
less test2.vcf | grep -v "^#" | awk '{if($6>30) print}' | less -S
  1. 組合篩選變異位點(diǎn)質(zhì)量值大于30并且深度大于20的條目
# 篩選第6列,且滿(mǎn)足第7題條件
less test2.vcf | grep -v "^#" | awk '{if($6>30) print}' | grep -v "DP=[1-20]" | less -S
  1. 理解DP4=4,7,11,18 這樣的字段,就是 Number of high-quality ref-forward , ref-reverse, alt-forward and alt-reverse bases 計(jì)算每個(gè)變異位點(diǎn)的 AF
# 在vcf文件中確實(shí)可以找到DP4這個(gè)tag抓狭,但是到目前為止查詢(xún)的教程都沒(méi)有關(guān)于這個(gè)的解釋?zhuān)瑐X筋伯病。。否过。
  1. 在前面步驟的bam文件里面找到這個(gè)vcf文件的某一個(gè)突變位點(diǎn)的測(cè)序深度表明的那些reads午笛,并且在IGV里面可視化bam和vcf定位到該變異位點(diǎn)。

其他思考題

  1. vcf的全稱(chēng)是什么苗桂?是用來(lái)記錄什么信息的標(biāo)準(zhǔn)格式的文本药磺?

? 全稱(chēng)是variant call format,是用來(lái)記錄SNP,INDEL和SV變異信息的文本

  1. 一般選用哪個(gè)指令查看vcf文件煤伟,為什么不用vim?

? 一般用cat, less就行癌佩;vim可以對(duì)文本進(jìn)行編輯,有誤操作文件的風(fēng)險(xiǎn)

  1. vcf文件以’##’開(kāi)頭的是什么信息便锨?請(qǐng)認(rèn)真查看這些信息围辙。’#’開(kāi)頭的是什么信息放案?

? 解釋說(shuō)明的信息

  1. Vcf文件除頭信息姚建,每行有多少列,請(qǐng)?jiān)敿?xì)敘述每行的含義吱殉!請(qǐng)準(zhǔn)確記憶掸冤。

? 每行固定的是8列,后面還有其他列可以添加

? CHROM 和 POS:參考序列名和variant的位置考婴;如果是INDEL的話(huà)贩虾,位置是INDEL的第一個(gè)堿基位置。

? ID:variant的ID沥阱。比如在dbSNP中有該SNP的id缎罢,則會(huì)在此行給出;若沒(méi)有,則用’."表示其為一個(gè)novel variant策精。

? REF 和 ALT:參考序列的堿基 和 Variant的堿基舰始。

? QUAL:Phred格式(Phred_scaled)的質(zhì)量值,表 示在該位點(diǎn)存在variant的可能性咽袜;該值越高丸卷,則variant的可能性越大;計(jì)算方法:

? Phred值 = -10 * log (1-p) p為variant存在的概率; 通過(guò)計(jì)算公式可以看出值為10的表示錯(cuò)誤概率為0.1询刹,該位點(diǎn)為variant的概率為90%谜嫉。

? FILTER:使用上一個(gè)QUAL值來(lái)進(jìn)行過(guò)濾的話(huà),是不夠的凹联。GATK能使用其它的方法來(lái)進(jìn)行過(guò)濾沐兰,過(guò)濾結(jié)果中通過(guò)則該值為”P(pán)ASS”;

? 若variant不可靠,則該項(xiàng)不為”P(pán)ASS”或”.”蔽挠。

? INFO:這一行是variant的詳細(xì)信息住闯,內(nèi)容很多,以下再具體詳述澳淑。

? FORMAT 和 TTG11B:這兩行合起來(lái)提供了’TTG11B′這個(gè)sample的基因型的信息比原。’TTG11B′代表這該名稱(chēng)的樣品杠巡,是由BAM文件中的@RG下的

? SM 標(biāo)簽決定的量窘。

  1. 理解format列和樣本列的對(duì)應(yīng)關(guān)系以及GT AD DP的含義。

? GT:樣品的基因型(genotype),兩個(gè)數(shù)字中間用’/"分 開(kāi)氢拥,這兩個(gè)數(shù)字表示雙倍體的sample的基因型绑改。0 表示樣品中有ref的allele; 1 表示樣品中variant的allele兄一; 2表示有第二個(gè)variant的allele厘线。因此: 0/0 表示sample中該位點(diǎn)為純合的,和ref一致出革; 0/1 表示sample中該位點(diǎn)為雜合的造壮,有ref和variant兩個(gè)基因型; 1/1 表示sample中該位點(diǎn)為純合的骂束,和variant一致耳璧。

? AD:AD(Allele Depth)為sample中每一種allele的reads覆蓋度,在diploid中則是用逗號(hào)分割的兩個(gè)值,前者對(duì)應(yīng)ref基因型展箱,后者對(duì)應(yīng)variant基因型.

? DP:Depth,為sample中該位點(diǎn)的覆蓋度

  1. Vcf文件第三列如果不是’.’旨枯,出現(xiàn)的rs號(hào)的id是什么?

? dbSNP數(shù)據(jù)庫(kù)的編號(hào)

  1. Vcf文件的ref混驰,alt列和樣本列的0/1 1/1 或者1/2的聯(lián)系攀隔?

? 可部分參考第5題答案

  1. Vcf文件一般用什么軟件生成皂贩?請(qǐng)至少說(shuō)出兩個(gè)軟件。請(qǐng)注意不同軟件生成的vcf格式的稍有不同的地方昆汹。

? bcftools軟件明刷、GATK軟件

  1. Vcf文件一般都比較大,壓縮后的.gz文件用什么指令直接查看而不用解壓后查看满粗?

? 用zcat命令

  1. 了解gvcf是什么格式辈末,gvcf全稱(chēng)是什么?他與vcf有什么前后聯(lián)系映皆?

? gVCF全稱(chēng)是:Genome Variant Call Format file挤聘。 gVCF和VCF的最大區(qū)別是在于gVCF文件會(huì)記錄所有的點(diǎn),包括哪些沒(méi)有突變的點(diǎn)捅彻。

  1. 把a(bǔ)lt列出現(xiàn)’,’的行提取出來(lái)

? 是我沒(méi)理解么檬洞,ALT列不全都是堿基么,怎么會(huì)有‘沟饥,’?

  1. 請(qǐng)將chrid湾戳、postion贤旷、ref、alt砾脑、format幼驶、樣本列切割出來(lái)生成一個(gè)文本
# 相當(dāng)于提取出第1,2韧衣,4盅藻,5,9畅铭,10列
less test2.vcf | grep -v "^#" | awk '{print $1,$2,$4,$5,$9,$10}' > tmp.txt
  1. 將一個(gè)含snp,indel信息的vcf拆成一個(gè)只含snp,一個(gè)只含indel信息的2個(gè)vcf文件(可借鑒軟件)

? 參考上面第1題代碼氏淑,直接結(jié)果輸出到一個(gè)新文件即可

  1. 用指令操作indel的vcf文件,提取indel長(zhǎng)度>4的變異行數(shù)硕噩,存成一個(gè)文本假残。
# 生成indel的vcf文件先
less test2.vcf | grep -v '^#'| awk '{if(length($4)!=1) print}' > InDel.vcf

# 篩選indel長(zhǎng)度大于4的行
cat InDel.vcf | awk '{if(length($5)>4)print}' | less -S
  1. 用Vcftools過(guò)濾vcf文件,如maf 設(shè)置成0.05炉擅, depth設(shè)置成5-20辉懒,統(tǒng)計(jì)過(guò)濾前后的變異位點(diǎn)的總個(gè)數(shù)
# 如果沒(méi)有需要先下載安裝vcftools軟件,然后--help或者看網(wǎng)上教程學(xué)習(xí)相關(guān)參數(shù):https://vcftools.github.io/man_latest.html

vcftools --vcf test2.vcf --maf 0.05 --keep-INFO DP=[5-20] --out mtest.vcf

# 運(yùn)行了一下谍失,總是報(bào)錯(cuò)眶俩,我還沒(méi)找到解決辦法暫時(shí)。快鱼。颠印。
  1. 利用vcftools提取每個(gè)樣本每一個(gè)位點(diǎn)的變異信息和深度信息纲岭,生成一個(gè)矩陣的文件,至少含義以下信息

? 這部分需要學(xué)一點(diǎn)R語(yǔ)言知識(shí)嗽仪,等學(xué)了再來(lái)搞它

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末荒勇,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子闻坚,更是在濱河造成了極大的恐慌沽翔,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,682評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件窿凤,死亡現(xiàn)場(chǎng)離奇詭異仅偎,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)雳殊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)橘沥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人夯秃,你說(shuō)我怎么就攤上這事座咆。” “怎么了仓洼?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,083評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵介陶,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我色建,道長(zhǎng)哺呜,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,763評(píng)論 1 295
  • 正文 為了忘掉前任箕戳,我火速辦了婚禮某残,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘陵吸。我一直安慰自己玻墅,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布壮虫。 她就那樣靜靜地躺著椭豫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪旨指。 梳的紋絲不亂的頭發(fā)上赏酥,一...
    開(kāi)封第一講書(shū)人閱讀 51,624評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音谆构,去河邊找鬼真竖。 笑死烫沙,一個(gè)胖子當(dāng)著我的面吹牛茫多,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播魏保,決...
    沈念sama閱讀 40,358評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼摸屠!你這毒婦竟也來(lái)了谓罗?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,261評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤季二,失蹤者是張志新(化名)和其女友劉穎檩咱,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體胯舷,經(jīng)...
    沈念sama閱讀 45,722評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡刻蚯,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了桑嘶。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片炊汹。...
    茶點(diǎn)故事閱讀 40,030評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖逃顶,靈堂內(nèi)的尸體忽然破棺而出讨便,到底是詐尸還是另有隱情,我是刑警寧澤以政,帶...
    沈念sama閱讀 35,737評(píng)論 5 346
  • 正文 年R本政府宣布霸褒,位于F島的核電站,受9級(jí)特大地震影響妙蔗,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜疆瑰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評(píng)論 3 330
  • 文/蒙蒙 一眉反、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧穆役,春花似錦寸五、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,941評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至淹接,卻和暖如春十性,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背塑悼。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,057評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工劲适, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人厢蒜。 一個(gè)月前我還...
    沈念sama閱讀 48,237評(píng)論 3 371
  • 正文 我出身青樓霞势,卻偏偏與公主長(zhǎng)得像烹植,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子愕贡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評(píng)論 2 355

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