【问题标题】:Convert missing values (-9) to NAs in a Plink PED file when reading into R读入 R 时,将 Plink PED 文件中的缺失值 (-9) 转换为 NA
【发布时间】:2013-04-06 12:13:44
【问题描述】:

我有两个文件:pedigree.pedpedigree.mapPlink可以使用这两种文件格式。

就我而言,我想将它们与 R 一起使用,并且我认为我必须转换为 R 格式。例如:Plink 中的缺失值与 R 中的缺失值不同。

如何转换这两个文件以在 R 中使用它们?如何将缺失值更改为 NA?

我的数据样本:

ped 文件:

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:缺失值),其余列是基因型(SNPs等位基因)。除数量性状为-9外,列的缺失值为0。

地图文件:

1 rs1 0 100000
1 rs2 0 100100
1 rs3 0 100200

第一列是 id 染色体(1-22、X、Y 或 0,如果未放置),第二列是 rs# 或 snp 标识符,第三列是遗传距离(摩根),第四列是碱基对位置(bp 单位)

【问题讨论】:

  • 一些示例数据会有所帮助...
  • 假设您成功将文件读入 R data.frame,您可以检查缺失值并分配 NA。
  • 我该怎么做?可以举个例子吗?
  • 这里最大的问题是将大量的 ped 文件导入 R - 读取文件需要数小时甚至数天。如果使用 sql lite 作为数据库引擎,文件对于 sqldf 来说太宽了

标签: r bioinformatics


【解决方案1】:

假设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.rmna.passna.failna.omit 等。

【讨论】:

    【解决方案2】:

    将 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,基因型之间的空格是space

    --tab 用制表符分隔--recode 和--recode12

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-11
      • 1970-01-01
      • 2022-08-16
      • 2014-06-13
      相关资源
      最近更新 更多