一、Variant Calling簡介
Variant Calling是指利用Nucleotide序列信息來確定樣本中存在的SNPs、Indels、Copy number variations等變異。它是基因組學和生物信息學中的一個基本任務,可以幫助研究者了解生物種群的遺傳變異與表達差異,從而更好地理解生物的生理、病理和物種的進化。
Variant Calling的過程可以用三個步驟來描述:首先,對比目標基因組和參考基因組,利用適當的算法來尋找樣本的SNPs、Indels和Copy number variations等變異類型;其次,進行變異過濾,去除高比例的假陽性和假陰性;最後,進行注釋以便更深入地了解這些變異的生物學意義。
二、Variant Calling算法
Variant Calling的算法主要分為兩類:一類是基於比對的算法,另一類是基於組裝的算法。基於比對的算法需要將樣本的序列數據和參考基因組序列比對來定位樣本中的SNPs和Indels等變異。 基於組裝的算法則是使用組裝軟件將重測序數據組裝成獨立的序列集合,然後比較這些序列之間的差異來確定變異。兩種算法都有其優點和限制,分別適用於不同的應用場景。
在基於比對的算法中,常用的算法包括GATK,SAMtools,FreeBayes,VarScan等。GATK是廣泛使用的Variant Calling工具之一,它採用了一種基於貝葉斯統計學的算法,可以有效減少假陽性的數量。SAMtools是另一種經典的Variant Calling工具,它的主要特點是高效性和靈活性,能夠在大數據集上處理變異,但是它的結果可能包含較高的假陽性。
而在基於組裝的算法中,常用的算法包括SOAPdenovo2,SPAdes,ABySS等。這些算法通常用於對非模式生物的基因組進行重測序分析或經過DNA提取後失去完整性的DNA樣本進行變異檢測。相比於基於比對的算法,基於組裝的算法可以檢測到更長的Indels和複雜的結構重排。
三、Variant Calling數據過濾
Variant Calling結果需要進行過濾來減少假陰性和假陽性。常用的Variant Calling結果過濾策略包括:對變異的質量過濾,即刪除指定閾值下的變異;對變異的測序深度過濾,即刪除低於指定閾值的變異;信號比篩選,即檢測每個單個核苷酸多種等位基因發生率的比率,刪除低於設定閾值的變異等。
同時,也需要注意Variant Calling結果的誤差來源,解決誤差的方式包括:標準化sam/bam文件,以減少誤差;預處理測試數據,以評估測試數據的魯棒性;提高測序深度,以減少變異檢測的假陽性;增加重覆性,以減少變異檢測的假陰性。
四、Variant Calling結果注釋
Variant Calling後需要對變異進行注釋,以便更深入地了解這些變異的生物學意義。變異注釋的方式有很多種,從簡單到複雜不等。常用的注釋方式包括:首先通過Ensembl、UCSC等數據庫將變異與轉錄本、基因以及蛋白質結構聯繫起來;進一步利用維基基因組注釋器(WikiGenome)等工具可以對變異進行更詳細的注釋,包括影響基因的功能、疾病相關性等;最後,結合不同數據庫和公共資源可以對變異進行更加深入的生物學意義注釋。
五、Variant Calling的示例代碼
# 利用GATK基於比對的Variant Calling代碼示例(以hg19為參考基因組)
java -jar $GATK/Jar/GenomeAnalysisTK.jar \
-T UnifiedGenotyper \
-R $ref/hg19.fasta \
-I $BAM/sample1.bam \
-o $VCF/sample1_raw.vcf \
-ploidy 2 \
-stand_call_conf 30 \
-stand_emit_conf 10 \
-dcov 1000 \
-glm BOTH
# 利用SAMtools進行基於比對的Variant Calling代碼示例(以hg19為參考基因組)
samtools mpileup -uf $ref/hg19.fasta $BAM/sample1.bam | bcftools call -vm
# 利用FreeBayes進行基於比對的Variant Calling代碼示例(以hg19為參考基因組)
freebayes -f $ref/hg19.fasta $BAM/sample1.bam > $VCF/sample1_raw.vcf
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/241185.html