我有两个文件:pedigree.ped
和pedigree.map
。 Plink可以使用这两种文件格式。
在我的情况下,我想与R一起使用它们,我想我必须转换为R格式。例如:Plink中的缺失值与R中的缺失值不同。
如何将这两个文件转换为在R中使用它们?如何将缺失值更改为NA?
我的数据样本:
ped file:
1 1 0 0 1.02 A A G G 0 0
1 2 0 0 0.51 T G C C A A
2 3 1 2 -9 0 0 A G T T
...
第一列是id_family,第二列是id_individual,第三列是id_individual的父亲和母亲,第五列是数量特征(-9:缺失值),其余列是基因型(SNP等位基因)。列的缺失值为0,但数量特征为-9。
地图文件:
1 rs1 0 100000
1 rs2 0 100100
1 rs3 0 100200
第一列是id染色体(1-22,X,Y或0,如果未放置),第二列是rs#或snp标识符,第三列是遗传距离(morgans),第四列是碱基对位置(bp单位)
答案 0 :(得分:3)
假设ped文件中的数据被读入R数据帧 -
> my.dataframe
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11
1 1 1 0 0 1.02 A A G G 0 0
2 1 2 0 0 0.51 T G C C A A
3 2 3 1 2 -9.00 0 0 A G T T
现在检查每列的无效/缺失值&分配NA。例如,请参阅第5列 -
my.dataframe[my.dataframe[,5] == -9, 5] <- NA
> my.dataframe
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11
1 1 1 0 0 1.02 A A G G 0 0
2 1 2 0 0 0.51 T G C C A A
3 2 3 1 2 NA 0 0 A G T T
同样为所需的条目分配NA。
注意:R函数以特殊方式处理NA。查看相应的函数参数。要关注的一些相关关键字 - na.rm
,na.pass
,na.fail
,na.omit
等。
答案 1 :(得分:1)
将ped文件读入R时定义NA值,例如:
read.table(text = "
1 1 0 0 1.02 A A G G 0 0
1 2 0 0 0.51 T G C C A A
2 3 1 2 -9 0 0 A G T T",
na.strings = c("NA", "-9"), sep = "\t")
# result
# V1 V2 V3 V4 V5 V6 V7 V8
# 1 1 1 0 0 1.02 A A G G 0 0
# 2 1 2 0 0 0.51 T G C C A A
# 3 2 3 1 2 NA 0 0 A G T T
此外,使用plink时使用--tab
选项,因此列的分隔符为标签,基因型之间的空格为空格。
- tab delimit --recode和--recode12 with tabs