GWAS分析(R包GAPIT)之二(数据准备)
2.1 准备表型数据
第一行是表头,第一列是个体号,其余每一列一个表型,Tab键分隔。
2.2 准备基因型数据
可以接受 standard HapMap format 或 numeric format。
第一种,Hapmap Format。
在基因型数据前有11列数据。尽管这11列数据都必须有,但读取的时候只读取第1、3、4列数据,其余数据可填充为NA。另,基因型数据可以是两个碱基形式的,也可以是单碱基形式的,如下表所示:
第二种,Numeric format。
这种格式的需要两个文件,一个指定SNP名称、染色体、和位置;一个指定所有个体在该位点的基因型。
指定SNP名称、染色体、和位置 指定所有个体的基因型一般的计算,准备以上 2 个数据文件就可以进行计算了。
2.3 Kinship
无表头数据,表示亲缘关系的一个矩阵。
2.4 Covariate variables
一个包含协变量的文件,包括群体结构之类的信息。第一列是个体名称,后面每一列都是协变量的值。
具体操作:
表型文件不多赘述,笔者重复一遍 numeric format 格式的基因型文件的生成方式。
vcftools --vcf xx.vcf --012 --out xx_matrix #利用 vcftools 将 vcf 文件生成数字矩阵的结果。
上述操作会生成 3 个文件,分别是 xx_matrix.012、xx_matrix.012.pos、xx_matrix.012.indv。
awk '{print NR "\t" $1 "\t" $2}' xx_matrix.012.pos > snp_information.txt
#给每一个 SNP 增加一列 SNP 位点的名称,这里第一个位点命名为 1,第二个位点命名为 2,等等。
sed -i '1i Name Chromosome Position' snp_information.txt
#增加第一行的变量名
sed -i 's/chr0//g' snp_information.txt
sed 's/chr//g' snp_information.txt > mdp_snp_information.txt
#保险起见,将染色体名字由 chr01 等换成示例文件中的 1。
SNP_INFORMATION的文件处理完成,接下来处理基因型文件,vcftools 直接生成的文件如下图所示:每一行表示一个个体,每一列表示一个位点,第一列是个体名称。
接下来,首先替换个体名称,利用 xx_matrix.012.indv 文件。
paste xx_matrix.012.indv xx_matrix.012 > numeric.txt #给每一行加上个体名称
awk '{$2=""; print $0}' numeric.txt > numeric.txt #删除文件第二列(原本的数字命名)
然后给每一列变量增加名称:我的操作是先生成变量名称的文件。
awk '{print $1}' snp_information.txt > snp_name
sed -i 's/Name/taxa/g' snp_name
paste -s snp_name > snp_name #转置文件
cat snp_name numeric.txt > mdp_numeric.txt #合并变量名和基因型文件
以上,生成计算所需基因型文件。
mdp_snp_information.txt mdp_numeric.txt相关链接: