OcBSA F1分离群体 实战

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,695评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,569评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,130评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,648评论 1 297
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,655评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,268评论 1 309
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,835评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,740评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,286评论 1 318
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,375评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,505评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,185评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,873评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,357评论 0 24
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,466评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,921评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,515评论 2 359