這篇文章主要介紹“vcf格式文件基礎知識與編輯操作的方法是什么”,在日常操作中,相信很多人在vcf格式文件基礎知識與編輯操作的方法是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”vcf格式文件基礎知識與編輯操作的方法是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
1. VCF文件基礎知識介紹:
VCF文件介紹:
做過DNA重測序,群體遺傳進化,BSA,GWAS等項目的人都會遇到VCF文件,這個文件記錄了所有樣品基因組中所有位置變異(主要包括SNP和InDel)信息。后續幾乎所有的分析內容都是基于此文件,比如進化樹分析、群體結構分析、PCA分析、GWAS關聯分析等等。因此了解VCF文件格式及其記錄結果的意義非常重要。VCF文件其實是文本文件,可以用Windows當中文本編輯器軟件打開,比如editplus等。由于VCF文件往往很大(通常超過1G),在Windows系統下直接打開會消耗大量內存進而造成卡死的現象。如果想順利打開的話,這里建議使用pilotedit。
下面是一個典型VCF文件的部分示例(可左右拖動):
##fileformat=VCFv4.0 ##fileDate=20090805 ##source=myImputationProgramV3.1 ##reference=1000GenomesPilot-NCBI36 ##phasing=partial ##INFO=<ID=NS,Number=1,Type=Integer,Description="Number of Samples With Data"> ##INFO=<ID=DP,Number=1,Type=Integer,Description="Total Depth"> ##INFO=<ID=AF,Number=.,Type=Float,Description="Allele Frequency"> ##INFO=<ID=AA,Number=1,Type=String,Description="Ancestral Allele"> ##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP membership, build 129"> ##INFO=<ID=H2,Number=0,Type=Flag,Description="HapMap2 membership"> ##FILTER=<ID=q10,Description="Quality below 10"> ##FILTER=<ID=s50,Description="Less than 50% of samples have data"> ##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype"> ##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality"> ##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Read Depth"> ##FORMAT=<ID=HQ,Number=2,Type=Integer,Description="Haplotype Quality"> #CHROM POS ID REF ALT QUAL FILTER INFO FORMAT NA00001 NA00002 NA00003 20 14370 rs6054257 G A 29 PASS NS=3;DP=14;AF=0.5;DB;H2 GT:GQ:DP:HQ 0|0:48:1:51,51 1|0:48:8:51,51 1/1:43:5:.,. 20 17330 . T A 3 q10 NS=3;DP=11;AF=0.017 GT:GQ:DP:HQ 0|0:49:3:58,50 0|1:3:5:65,3 0/0:41:3 20 1110696 rs6040355 A G,T 67 PASS NS=2;DP=10;AF=0.333,0.667;AA=T;DB GT:GQ:DP:HQ 1|2:21:6:23,27 2|1:2:0:18,2 2/2:35:4 20 1230237 . T . 47 PASS NS=3;DP=13;AA=T GT:GQ:DP:HQ 0|0:54:7:56,60 0|0:48:4:51,51 0/0:61:2 20 1234567 microsat1 GTCT G,GTACT 50 PASS NS=3;DP=9;AA=G GT:GQ:DP 0/1:35:4 0/2:17:2 1/1:40:3
VCF文件的開頭是整體注釋信息,通常以##作為起始,其后一般接以FILTER,INFO,FORMAT等字樣。
例如:以##FILTER開頭的行,表示注釋VCF文件當中第7列中縮寫詞的說明,比如q10為Quality below 10;##INFO開頭的行注釋VCF第8列中的縮寫字母說明,比如AF代表Allele Frequency也就是等位基因頻率;##FILTER開頭的行注釋VCF第9列中的縮寫字母說明;另外還有其他的一些信息,文件版本"fileformat=VCFv4.0"等等。
各列之間用tab空白隔開;前面9列為固定列,第10列開始為樣品信息列,可以無限多個;
#CHROM
POS
ID
REF
ALT
QUAL
FILTER
INFO
FORMAT
后面的列都為樣品基因型信息列
CHROM 記錄染色體編號
POS 記錄染色體位置信息
ID SNP/INDEL的dbSNP編號通常以rs開頭,一般只有人類基因組才有dbSNP編號
REF 參考基因組堿基類型,必須是A,C,G,T,N且都大寫。
ALT 變異堿基類型,必須是A,C,G,T,N,. 且都大寫,多個用逗號分割。"."表示這個地方沒有reads覆蓋為缺失。
QUAL 變異信息的檢測質量值,越高越可靠。
FILTER 標記過濾結果的列,通常我們把VCF文件中的變異信息進行質控,過濾掉低質量的變異位點,如果該位點通過過濾標準那么我們可以在該列標記為"PASS",說明該列質量值高。標記完之后我們就可以用其他工具,把標記為"PASS"的列給篩選出來,這樣方便后續分析。如果沒有應用缺失值"."代替。
INFO 為附加信息列,一般以=;形式添加額外的注釋信息列,常見的如DP=18 表示該位點測序深度為18X;AF=0.1表示等位基因頻率為0.1;
FORMAT 為后面10列信息的說明列,通常以":"隔開各個縮寫詞。不同的變異檢測軟件可能會有差異,以下用GATK的檢測結果為例:
10列(包含)以后為樣品基因型列,各信息以":"分隔與FORMAT列一一對應;
GT 表示genotype,通常用”/” or “|”分隔兩個數字,“|”phase過也就是雜合的兩個等位基因知道哪個等位基因來自哪條染色體;0代表參考基因組的堿基類型;1代表ALT堿基類型的第一個堿基(多個堿基用","分隔),2代表ALT第二個堿基,以此類推;比如 REF列為:A, ALT列為G,T;那么0/1基因型為AG 雜合,1/1基因型為GG純合SNP;1/2代表GT基因型;./.表示缺失;
AD 兩種堿基各自支持的堿基數量,用","分開兩個數據,分別代表兩個等位基因的深度;
DP 該樣品該變異位點的測序深度總和,也就是AD兩個數字的和;
PL 歸一化后各基因型的可能性,通常有三個數字用','隔開,順序對應AA,AB,BB基因型,A代表REF,B代表ALT(也就是0/0, 0/1, and 1/1),由于是歸一化之后,數值越小代表基因型越可靠;那么最小的數字對應的基因型判讀為該樣品的最可能的基因型;
GQ 針對PL的判讀得到的基因型的質量值,此值越大基因型質量值越好。由于PL歸一化之后通常最小的數字為0;那么基因型的質量值取PL中第二小的數字,如果第二小的數字大于99,我們只取99,因為在GATK中再大的值是沒有意義的,第二小的數大于99的話一般說明基因型的判讀是很可靠的,只有當第二小的數小于99的時候,才有必要懷疑基因型的可靠性。
介紹到這里,大家應該對VCF文件有了一個初步理解,如有其他問題請下方留言。
2. VCF文件處理工具介紹:
篩選特定條件下的SNP/Indel信息是比較常見的個性化分析需求,不過VCF文件通常比較大,不建議在Windows當中處理。那么我們怎么篩選處理VCF文件呢?這里介紹一個Linux中非常好用的vcf處理工具,vcftools http://vcftools.sourceforge.net/man_latest.html。這是他的幫助鏈接; 功能非常豐富;vcftools是一款處理vcf文件的工具,體積小、運行速度快,可以按位點信息、堿基位置等信息篩選特定條件下的變異信息,也可以比較兩個vcf文件之間變異信息的差異,還可以對VCF文件拆分,格式轉換,質量過濾篩選等等功能;強烈推薦使用;這里介紹一下我在工作中用過的一些命令選項。
vcf文件中可能會同時包含snp以及indel兩種變異類型,vcftools可以很快的將兩者進行分離。
使用方法:
過濾掉indel,只保留snp,用到的命令選項:--remove-indels。
執行以下命令:
vcftools --remove-indels --recode --recode-INFO-all --vcf raw.vcf --stdout >raw.snp.vcf
過濾掉snp,只保留indel,用到的命令選項:--keep-only-indels。
執行以下命令:
vcftools --keep-only-indels --recode --recode-INFO-all --vcf raw.vcf --stdout >raw.indel.vcf
這樣,就可以分別得到只包含snp和indel的vcf文件。
vcftools還可以挑選出基因組上某些區域的變異信息。
使用方法:
vcftools --vcf Variants.snp.unknown_multianno.vcf --chr A03 --from-bp 577700 --to-bp 607700 --out out_prefix --recode --recode-INFO-all
這里解釋一下各個參數:
--vcf:后面跟的是vcf文件
--chr:后面跟篩選區域所在的染色體
--form-bp:后跟篩選區域的起始位置
--to-bp:后跟篩選區域的終止位置
--out:輸出文件的前綴
--recode:沒有此參數則不會輸出
vcf 文件中很多snp在某些樣品中是缺失的,也就是基因型為 "./." 。如果缺失率較高,這種snp位點在很多分析中是不能用的,需要去掉。這里用到的選項是 --max-missing。
使用方法:
vcftools --vcf snp.vcf --recode --recode-INFO-all --stdout --max-missing 1 > snp.new.vcf
--max-missing 后跟的值為 0-1 ,1代表不允許缺失,0代表允許全部缺失。
vcftools中有兩個參數可以計算vcf文件中snp的缺失率。
分別是:
--missing-indv:生成一個文件,報告每個樣品的缺失情況,該文件的后綴為“.imiss”。
--missing-site:生成一個文件,報告每個snp位點的缺失情況,該文件的后綴為“.lmiss”。
使用方法:
vcftools --vcf snp.vcf. --missing-site
運行以上命令后會在當前目錄生成一個 out.lmiss 文件,其格式如下:
CHR POS N_DATA N_GENOTYPE_FILTERED N_MISS F_MISS chr01 194921 988 0 368 0.37247 chr01 384714 988 0 204 0.206478 chr01 384719 988 0 202 0.204453 chr01 518438 988 0 488 0.493927 chr01 518473 988 0 452 0.45749 chr01 518579 988 0 418 0.423077 chr01 518635 988 0 428 0.433198 chr01 680786 988 0 346 0.350202 chr01 680834 988 0 412 0.417004
前兩列為snp所在位置,第三列為等位基因總數,第5列為缺失的總數,最后一列為缺失率。
vcftools --vcf snp.vcf. --missing-indv
運行以上命令后會在當前目錄生成一個 out.imiss 文件,其格式如下:
INDV N_DATA N_GENOTYPES_FILTERED N_MISS F_MISS 1 8747 0 3632 0.415228 10 8747 0 1264 0.144507 102 8747 0 2016 0.230479 105 8747 0 6322 0.722762 106 8747 0 2365 0.270378 107 8747 0 4376 0.500286 108 8747 0 5682 0.649594 109 8747 0 1877 0.214588 11 8747 0 1039 0.118784
第一列為樣品名稱,第二列為總的snp數,第4列為缺失的總數,最后一列為缺失率。
vcftools可以隨機抽取指定個樣品的vcf文件,用到的選項為 --max-indv ,指定要從vcf文件中隨機抽取指定個樣品。
使用方法:
隨機抽取5個樣品,執行以下代碼:
vcftools --vcf snp.vcf --max-indv 5 --remove-indels --recode --out outfilename
到此,關于“vcf格式文件基礎知識與編輯操作的方法是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。