美文网首页
OcBSA F1分离群体 实战

OcBSA F1分离群体 实战

作者: 代表群众 | 来源:发表于2024-06-29 12:01 被阅读0次

    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
    

    相关文章

      网友评论

          本文标题:OcBSA F1分离群体 实战

          本文链接:https://www.haomeiwen.com/subject/cvhucjtx.html