使用cropgbm基于snp和表型训练机器学习模型做基因组预测

cropgbm 的论文
https://link.springer.com/article/10.1186/s13059-021-02492-y
LightGBM: accelerated genomically designed crop breeding through ensemble learning
ensemble learning 集成学习模型
模型可以给snp按照重要性排序,最重要的snp通常会是GWAS分析力最显著的位点,论文中的fig6bd
论文中还提到构建好模型后,可以用模型去预测没有表型的群体的表型,然后用预测的表型去做GWAS
看到两篇论文用这个工具去做了基因组预测
谷子泛基因组
A graph-based genome and pan-genome variation of the model plant Setaria
西瓜泛基因组
Population-level super-pangenome reveals genome evolution and empowers precision breeding in watermelon
基本流程

参考文档链接
https://ibreeding-ch.github.io/QuickStart/
安装直接用conda安装就行
第一步 vcf文件转换为bed文件
这里vcf文件的染色体编号不能太怪异 我试了 Chr+数字编号是可以的 大豆 的Gm开头是不行的,plink可以运行,后续运行 cropgbm会报错

plink –vcf soybeanGS.chromo.vcf –make-bed –out soybeanGS –allow-extra-chr
第二步对基因型数据进行过滤

cropgbm -o ./ -pg all –fileprefix soybeanGS –fileformat bed
这里 会过滤掉样本,也会过滤掉位点,所以这一步做完需要检查保留的样本数和表型的样本数是否完全匹配
第三步训练模型
这一步的输出文件里有哪些snp对于这个表型比较重要的信息,文件是 engine/soybeanGS_filter.train.feature

cropgbm -o ./ -e -t -sf –bygain-boxplot –traingeno soybeanGS_filter.train.geno –trainphe oil.pheno.train.csv –validgeno soybeanGS_filter.test.geno –validphe oil.pheno.test.csv
第四步预测表型

cropgbm -o ./ -e -p –testgeno soybeanGS_filter.test.geno –modelfile-path engine/soybeanGS_filter.train.lgb_model
预测表型和真实表型的相关性

read_csv(“C:/Users/lenovo/Desktop/oil.pheno.test.csv”) %>%
inner_join(read_csv(“C:/Users/lenovo/Desktop/soybeanGS_filter.test.predict”),
by=c(“acid”=”sampleid”)) %>%
ggplot(aes(x=oil,y=predict_phe))+
geom_point()+
geom_smooth(method = “lm”)

read_csv(“C:/Users/lenovo/Desktop/oil.pheno.test.csv”) %>%
inner_join(read_csv(“C:/Users/lenovo/Desktop/soybeanGS_filter.test.predict”),
by=c(“acid”=”sampleid”)) -> dat

cor.test(dat$oil,dat$predict_phe)

在第二步和第三步之间在文档里还会对表型进行预处理,通常是对表型进行标准化,用标准化后的表型训练模型,但是这样做的话预测的表型出来的也不是真实的表型,这里是否应该对表型数据进行标准化暂时还没有想明白
这个表型是连续型的数值,这个是属于回归任务,离散的表型也是可以的,也可以做分类任务的模型训练和预测

声明:来自小明的数据分析笔记本,仅代表创作者观点。链接:https://eyangzhen.com/6047.html

小明的数据分析笔记本的头像小明的数据分析笔记本

相关推荐

添加微信
添加微信
Ai学习群
返回顶部