OcBSA 适用与F1分离群体的BSA算法
马铃薯、苹果、梨,桃子、茶树等等许多植物具有异花授粉的特性,并且相关性状在F1单株中发生分离。异交植物自交不亲和,或者繁殖周期长,难以培育成自交系用于遗传育种研究,严重阻碍了重要性状的遗传解析。所以构建F1分离群体进行QTL定位成为较为常见的方法。
OcBSA算法完全建立在F1分离群体的遗传特征上。如下图所示,F1子代的马铃薯颜色完全由P1的两个单体型控制,得到h1的就是紫色,得到h2的就是黄色,跟亲本2的两个单体型完全没有关系。所以OcBSA核心就是剔除后代混池数据中来自P2的单体型。该算法已经在马铃薯,苹果,葡萄,茶树,桃子,等物种上验证过,得到非常准确的结果。
image.png
OcBSA提供了非常简单易用的工具,供用户定位,画图,批量设计分子标记引物。值得注意的是F1子代的分子标记的开发也和其他类型的群体不一样,也要符合其遗传规律才可以,所以OcBSA提供了批量设计引物的功能。
OcBSA的安装使用
## 下载安装
git clone https://gitee.com/Bioinformaticslab/OcBSA.git
##运行-p1就是提供显性亲本在VCF的列数,可以从第一列开始数(从0开始),也可以从倒数最后一列开始数(从-1开始);
##-p2就是不提供显性性状的亲本;-b1 和p1性状一样的混池;## -vcf就是最最原始的vcf,不要进行任何过滤!!!;-w 窗口大小
python OC_BSA.py -vcf ./potato_example.vcf -p1 10 -p2 9 -b1 11 -b2 12 -w 200000 -o ./potato_example.vcf_200k_OCBSA.txt
##已经运行完上面的步骤,假如觉得窗口大小不合适,可以使用之前产生的*.OcValue文件快速改变窗口。
python OC_BSA.py -OcValue potato_example.vcf_200k_OCBSA.txt.OcValue -w 100000 -o ./potato_example.vcf_100k_OCBSA.txt
其他参数
-p1 PARENT1 (Column number of dominant parent in the VCF (Counting from 0); 显性亲本在vcf中的列数 (从0开始数))
-p2 PARENT2 (Column number of another parent in the VCF(Counting from 0); 隐性亲本在vcf中的列数 (从0开始数))
-b1 POOL1 (Column number of pool with dominant trait in the VCF (Counting from 0); 具有显性表型的混池在vcf中的列数 (从0开始数))
-b2 POOL2 (Column number of pool with Recessive trait in the VCF (Counting from 0); 具有隐性表型的混池在vcf中的列数 (从0开始数))
-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; 滑窗的大小)
-vcf INPUT_VCF (Path of VCF file; vcf文件 )
-table INPUT_FORMAT (Path of simple VCF file; 本程序简易的VCF文件格式,替换VCF文件的输入
-OcValue INPUT_OcValue (如果只是调整窗口大小, 可以使用之前生成的中间文件(.OcValue))
-o OUT (Name of output file; 输出文件名)
输出结果介绍
.##potato_example.vcf_200k_OCBSA.txt.OcValue
这个文件包含了每个位点的OcValue值,包含了位点的坐标,亲本子代的基因型信息,以及每个位点的阈值,倒数第二列是Ocvalue,最后一列标注了这个位点的类型,SNP,或者InDel。PAV的意思是其中一个亲本丢掉了这个位点,可能是存在缺失变异,导致这个片段丢了。
image.png
.##potato_example.vcf_1M_OCBSA.txt
每一行是一个滑窗的结果,步长是窗口的十分之一。第二列是每个窗口的中点,假如你的窗口是1 Mb, 那这行就代表,这个中点前面500 kb 和后面500 kb。然后是滑窗的阈值和OcValue,最后一列代表这个窗口内的标记数量(SNP+InDel+PAV)
image.png
.##potato_example.vcf.table
简易的基因型文件,分别是染色体,坐标,参考基因型,突变基因型,P1的两个基因型的覆盖度,P2、混池1,混池2。OcBSA运行时也可以使用这种文件来替换VCF文件,使用-table参数。
image.png画图
##支持输出png和PDF
python bsa_fig.py -f potato_example.vcf_200k_OCBSA.txt -OcValue -o test.png
##假如只想看某一段区间的结果,可以使用这个参数-p, -c 可以调整颜色,可以在这个网站选择想用的颜色https://matplotlib.org/stable/gallery/color/colormap_reference.html
python bsa_fig.py -f potato_example.vcf_200k_OCBSA.txt -p chr10,50000000,60000000 -OcValue -o test.png
每个点代表一个窗口,颜色就代表这个窗口内的变异位点的数量,变异位点越多,就代表这个OcValue更可靠。右边的图,是指定某个区间绘制出来的图。
image.png
引物设计
##使用批量引物设计前需要安转一个模块
##为了可以得到特异的引物,会将得到的引物比对回基因组所以还需要用户安装blast软件。
conda install primer3-py
## -g,call 变异使用的参考基因组。-OcValue 就是OcBSA产生的中间文件,包含每个位点的OcValue结果的文件。
## -i 想要设计引物的区间,-f输出的文件夹
python primer_design.py -g ./rerence_genome.fa -OcValue ./output.vcf.OcValue -i chr10,56000000,57000000 -f ./primer/
output.primer.extracted 是结果文件,包含了所有可用标记的引物,每个标记有十对引物。
F2/RILS分离群体
OcBSA还提供了snpindex算法和ED算法供用户使用
snpindex
#Run with vcf
python F2_BSA.py -snpindex -p1 -4 -p2 -3 -b1 -2 -b2 -1 -vcf test.vcf.vcf.table -o test.vcf_1M_snpindex.txt
#Run with table
python F2_BSA.py -snpindex -table example_file/F2_test.table -o test.table_1M_snpindex.txt
#plot
python bsa_fig.py -f test.table_1M_snpindex.txt -snpindex -o test.png
python bsa_fig.py -f test.table_1M_snpindex.txt -snpindex -o test.png -p Chr01,1000000,16000000
ED
#Run with vcf
python F2_BSA.py -ED -p1 -4 -p2 -3 -b1 -2 -b2 -1 -vcf test.vcf -o test.vcf_1M_ED.txt
#Run with table
python F2_BSA.py -ED -table example_file/F2_test.table -o test.table_1M_ED.txt
#plot
python bsa_fig.py -f test.vcf_1M_ED.txt -snpindex -o test.png
python bsa_fig.py -f test.vcf_1M_ED.txt -snpindex -o test.png -p Chr01,1000000,16000000
单株测序的样本合并为混池
假如是单株测序的样本,再得到VCF后,可以提供两个混池的样本,根据VCF中的各个样本的基因型混成两个混池
python cluster_vcf.py -c individual_sequencing.vcf -f pool_config.txt -o out_table.txt
-c就是包含所有单株和亲本的VCF文件
-o 得到简易的基因型文件,可以使用-table参数提供给OcBSA使用。
-f 文件中指定亲本和混池的样本名,如下:
B1:混池1,B2:混池2,P1:亲本1,P2:亲本2
B1:sampleID1,sampleID2,sampleID3,sampleID4,sampleID5,sampleID6,sampleID7,sampleID8,sampleID9,sampleID10,
B2:sampleID11,sampleID12,sampleID13,sampleID14,sampleID15,sampleID16,sampleID17,sampleID18,sampleID19,sampleID20,
P1:sampleID_P1
P2:sampleID_P2
网友评论