提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
BLUPF90基因型文件
前言
我们在使用BLUPF90软件进行遗传评估时(GBLUP、ssGBLUP),有时会需要准备基因型文件如snp.ped、snp.map,本文介绍两个制作blupf90所需基因文件的方法。
一、blupf90所需基因文件
注:blupf90中文件的分隔符必须为空格
查阅说明书:
1.OPTION SNP_file(snp-make.file)
BLUPF90 仅接受按照以下规则准备的标记文件。
• 标记文件是包含2 列的固定宽度格式的文本文件。
• 第一列包含动物的ID。 (BLUPF90 实际上跳过此列,因此您可以在此处放置任何信息。) • 第二列包含动物的基因型。它有 4 个可能的值:0(纯合子)、1(杂合子)、2(替代纯合子)和 5(缺失或未知)。
• 所有第二列必须以一行中的固定位置开始。在上面的示例中,第二列始终从第 9 个字符开始。
• 每只基因分型动物必须具有相同数量的标记。
• 不得在两个相邻基因型之间插入空格。
• 不必按个体ID 对标记文件进行排序。
2.OPTION map_file(map file )
map文件将标记与染色体、物理位置和SNP名字相关联。仅当使用 ssGBLUP 进行全面质量控制和 GWAS 时才需要此文件。该文件应包含至少 3 个字段,并至少用 1 个空格分隔。第四列是可选的,它包含标记的名称。这里我们展示一个示例(在本例中包括第四个字段)。此处仅显示前 3 行。
• 前3 个字段应包含整数值:第一个是标记编号,第二个指定染色体编号,第三个表示染色体上的物理位置。标记编号只是一个整数,不一定是相关的,用于外部数据操作,程序实际上并不使用它。
• 性染色体(X) 可以存在,但它也应该是一个整数值。 X染色体的编码默认为0。
• 第 4 列(可选)可以包含任何字母、数字和符号(可能是 ASCII),最多 50 个字符。
注:map文件需要行头,即SNP_ID CHR POS,具体如下图
二、snp文件的两种制作方法
2.1 使用R包blupADC
非常方便!!!
2.1.1安装R包
blupADC作者网站:https://qsmei.netlify.app/zh/post/
blupADC安装教程参考:1、https://github.com/TXiang-lab/blupADC
2、https://zhuanlan.zhihu.com/p/409430029
这里只介绍一种:Rstudio中键入:
(1)安装依赖包和devtools
install.packages(c("Rcpp", "RcppArmadillo","RcppProgress","data.table","bigmemory","R6"))
if (!require(devtools)) install.packages("devtools")#if devtools not already installed
(2)devtools安装blupADC
devtools::install_github("TXiang-lab/blupADC")
2.1.2 使用R包
blupADC中支持多种格式文件,详细功能和参数参考作者网站:https://qsmei.netlify.app/zh/post/blupadc/
(注:基因型文件较小,SNP位点相对较少时使用R包blupADC。例如:芯片数据,低深度测序)
library(blupADC) #加载R包
phased_result=geno_format(
input_data_path="D:/Data/WZY/ssgwas", # 输入文件路径
input_data_name="YN_zk", # 以ped、map数据为例,只需要文件名前缀
input_data_type="Plink", # 输入数据类型(可以有VCF、haplotype等
output_data_type="BLUPF90", # 输出文件类型blupf90所需格式
output_data_name="adc", # 输出文件的名字
output_data_path="D:/Data/WZY/ssgwas", #输出文件路径
return_result=TRUE, # 将结果保存为R环境变量
cpu_cores=1 # 使用cpu的核心数
)
文件名
map文件较小,可以直接使用wps、excel等制作
2.2 使用plink、awk、sed等命令制作snp、map文件(Linux)
(注:基因型文件较大,SNP位点相对较多时,可以使用以下代码手动制作snp.file。例如:重测序数据)
2.2.1 snp文件
#1.使用plink --recodeA参数将基因型数据转成0,1,2格式
plink --cow --bfile test --recodeA --out all_test
#2.提取基因型数据中的ID,制作id文件
awk '{print $2}' all_test.raw > id.raw
#3.删除all_test.raw文件前6列
awk '{for (i=1; i<=NF; i++) if ( i > 6) printf "%s%s", $i, (i == NF ? RS : FS)}' all_test.raw > snp_file.raw
#4.将snp_file.raw文件中分隔符(空格)删除,得到基因型文件
sed -i 's/ //g' snp_file.raw
#5.合并id、基因型文件
paste id.raw snp_file.raw > snp.ped
#6.删除行头
sed -i '1d' snp.ped
#7.修改文件分隔符为空格
sed -i 's/\t/ /g' snp.ped
2.2.2 map文件
#添加行号作为map的第一列snp的编号
awk '{$5=NR; print}' test.map > new_test.map
#调整map文件列的顺序,以满足snp编号、染色体、物理位置。OFS=" "表示以空格为分隔符
awk '{OFS=" ";print $5,$1,$4}' new_test.map > snp.map
#给map文件加上行头SNP_ID CHR POS
sed -i '1i\SNP_ID CHR POS' snp.map
总结
以上为BLUPF90基因型文件snp_file、map_file的格式介绍和准备方法,敬请批评指正。另外,关于BLUPF90软件的参数设置、模型设置,推荐B站房子下面一头猪的视频:https://www.bilibili.com/video/BV1cg4y1W7Yv/?spm_id_from=444.41.list.card_archive.click&vd_source=58ed914aec5f189bf7c99ffcea6826d2