GS所用的如rrBLUP等包需要输入的表型文件和基因型文件必须是数字格式(numeric),但实际使用过程中,因为输入格式、读取数据方法不同等会需要在R中进行转化,以下是一些个人经验的整理:
基因型文件:
因为大多数情况下输入的基因型文件很大且可能涉及到个体名称等字符,我在实际操作过程中,读取数字格式矩阵时中使用了data.table包:
library(data.table)
geno <- fread("260SNP.txt", header=T)
geno <- geno[,-1] #删除掉第一列的样本名,后面再根据需要重新命名
geno <- sapply(geno, as.numeric) #将geno转化为数字格式矩阵rownames(geno) <- sample.names[,1] #矩阵的样本名修改
表型文件:
因为大多数情况下表型文件只有一维,rrBLUP等只识别向量格式的的数据,因此代码如下:
pheno <- as.vector(unlist(read.table("/260sample_flowerNUM.txt",header=F,row.names=1)))
#代码也可以单独拆分为read.table()、unlist()、as.vector()
names(pheno) <- sample.names[,1] #向量的样本名修改
一般来说BWGS包、rrBLUP包等GS包都需要表型向量与基因型矩阵的样本名、样本数量、样本顺序一致。