背景
雙親高度雜合(親本由多個(gè)單體型構(gòu)成)的分離群體利用常規(guī)的BSA分析方法往往結(jié)果并不理想,因?yàn)樵诨斐刂杏卸嗟任换虻母蓴_。OcBSA就通過(guò)解析兩個(gè)雜合親本的4條單體型在后代群體中的遺傳規(guī)律實(shí)現(xiàn)利用BSA對(duì)F1群體的精細(xì)遺傳定位,能比較好的解決親本雜合BSA定位所遇到的一些問(wèn)題。
原理
- 在兩個(gè)雜合父本之間選擇一組多態(tài)位點(diǎn)的子集,這些位點(diǎn)在 P1 中是雜合的(lm,基因型 l 和 m 分別來(lái)自 P1 的單倍型 h1 和 h2),而在 P2 中則是純合的(m'm'',基因型 m' 和 m'' 分別來(lái)自 P2 的單倍型 h3 和 h4)或未基因分型的(NN)。考慮到SNP和InDel的兩種基因型特征,“l(fā)”是一種基因型,而“m、m'和m''”是同一種基因型(m),但來(lái)自不同的單倍型。這組位點(diǎn)將用于隨后的分析。
-
從兩個(gè)對(duì)比樣本池中剔除覆蓋P2基因型(m' 和 m'',相互相等)的測(cè)序 reads 。通過(guò)計(jì)算位點(diǎn)從P2中繼承的基因型的測(cè)序 reads 數(shù)量,并將它們從兩個(gè)對(duì)比樣本池中篩除,消除了兩個(gè)P2單倍型的影響,產(chǎn)生OcPools。
image.png
image.png
分析步驟
OcBSA分析從處理如上所述通過(guò)變異調(diào)用生成的VCF文件開始。
第一步:根據(jù)測(cè)序覆蓋范圍對(duì)位點(diǎn)進(jìn)行過(guò)濾。用戶可以設(shè)置參數(shù)來(lái)指定兩個(gè)父本和兩個(gè)樣本池的最小和最大讀取覆蓋閾值。
第二步:根據(jù)親本的基因型進(jìn)行過(guò)濾。保留在親本P1中雜合性,P2中純合性或未基因分型的位點(diǎn),進(jìn)行分析。
第三步:去除來(lái)自P2父本序列的reads。通過(guò)上面推倒出的兩個(gè)方程式獲得兩個(gè)OcPools中基因型“m”和“l(fā)”的reads深度:OcDm=(Dm-Dl)/2; OcDl=Dl(Dm:基因型“m”的reads深度,Dl:基因型“l(fā)”的reads深度)。
第四步:計(jì)算OcValues來(lái)估計(jì)兩個(gè)OcPools之間偏倚遺傳的強(qiáng)度。此外,SNP和InDel均用于計(jì)算OcValues。
軟件安裝
這個(gè)軟件安裝使用都很簡(jiǎn)單,運(yùn)行速度也挺快。主體是三個(gè)python腳本,即計(jì)算腳本OC_BSA.py(OcBSA)和F2_BSA.py(一般群體使用ED和snpindex算法進(jìn)行分析),可視化腳本bsa_fig.py,此外還有附加功能的腳本一個(gè)是批量設(shè)計(jì)引物的腳本primer_design.py,和多樣本變異信息合并腳本cluster_vcf.py。
git clone https://gitee.com/Bioinformaticslab/OcBSA.git
# 軟件使用參數(shù)說(shuō)明
optional arguments:
-h, --help show this help message and exit
-p1 PARENT1 (Column number of dominant parent in the VCF; 顯性親本在vcf中的列數(shù))
-p2 PARENT2 (Column number of another parent in the VCF; 隱性親本在vcf中的列數(shù))
-b1 POOL1 (Column number of pool with dominant trait in the VCF; 具有顯性表型的混池在vcf中的列數(shù))
-b2 POOL2 (Column number of pool with Recessive trait in the VCF; 具有隱性表型的混池在vcf中的列數(shù))
-d1 PARENTDEP1 (Minimum coverage of the parents; 親本的最低覆蓋度)
-d2 POOLDEP1 (Minimum coverage of the pools; 混池的最低覆蓋度)
-d3 PARENTDEP2 (Maximum coverage of the parents; 親本的最高覆蓋度)
-d4 POOLDEP2 (Maximum coverage of the pools; 混池的最高覆蓋度)
-w WIN (Size of sliding windows; 滑窗的大小)
-f, frc, (size of lowess function; 使用lowess平滑曲線并選擇窗口大小,0-1) -vcf INPUT_VCF (Path of VCF file; vcf文件 )
-table INPUT_FORMAT (Path of simple VCF file; 本程序簡(jiǎn)易的VCF文件格式,替換VCF文件的輸入 -OcValue INPUT_OcValue (The intermediate file (.OcValue) generated earlier can be used to resize the window; OcValue文件, 如果只是調(diào)整窗口大小, 可以使用之前生成的中間文件(.OcValue))
-o OUT (Name of output file; 輸出文件名)
# 運(yùn)行命令行,示例數(shù)據(jù)都在腳本同級(jí)目錄的example/下面
# run with VCF file
python OC_BSA.py -vcf ./potato_example.vcf -p1 -2 -p2 -1 -b1 -3 -b2 -4 -w 200000 -o ./potato_example.vcf_200k_OCBSA.txt
# 可以直接利用上面得到,或者整理出來(lái)的table文件直接進(jìn)行計(jì)算
# table格式很簡(jiǎn)單,這里就不做詳細(xì)講解了,看不懂的可以看看我之前的推文中對(duì)VCF文件各類信息的介紹
python OC_BSA.py -table potato_example.vcf.table -w 200000 -o ./potato_example.vcf_200k_OCBSA.txt
# 如果只是更改窗口大小,可以直接運(yùn)行這一步,不需要重頭進(jìn)行計(jì)算
python OC_BSA.py -OcValue potato_example.vcf_200k_OCBSA.txt.OcValue -w 100000 -o ./potato_example.vcf_100k_OCBSA.txt
# 可視化結(jié)果
# 全基因組結(jié)果可視化
python bsa_fig.py -f potato_example.vcf_200k_OCBSA.txt -OcValue -o test.png
# 區(qū)間結(jié)果可視化(chr10:50000000-60000000)
python bsa_fig.py -f potato_example.vcf_200k_OCBSA.txt -p chr10,50000000,60000000 -OcValue -o test.png
這篇推文主要介紹OcBSA,snp-index在前面已經(jīng)選擇使用QTLseqr包做了實(shí)現(xiàn),這里不再重復(fù)講了,有興趣的可自行嘗試。至于ED,則會(huì)和MMAPPR放在一起進(jìn)行介紹,引物批量設(shè)計(jì)會(huì)放在下游分析里講解。
該軟件出的圖效果如下:

參考資料
Lingkui Zhang, Yanfeng Duan, Zewei Zhang, Lei Zhang, Shumin Chen, Chengcheng Cai, Shaoguang Duan, Kang Zhang, Guangcun Li, Feng Cheng,OcBSA: an NGS-based Bulk Segregant Analysis Tool for Outcross Populations,Molecular Plant,2024,,ISSN 1674-2052,https://doi.org/10.1016/j.molp.2024.02.011.
往期回顧
BSA分析(三)——測(cè)序數(shù)據(jù)的質(zhì)控

