分享

GEO数据挖掘 | 正确读取GEO数据

 生物_医药_科研 2019-01-21

正文开始:

近期,在使用GEOquery包处理数据时,出现问题:

  1. p_load(GEOquery, Biobase)

  2. data = getGEO('GSE1561', destdir = getwd())

1、该命令默认下载/读取GSE1561_series_matrix.txt.gz文件,通过 exprs(data[[1]]) 从中提取探针表达谱,样本名丢失:

GSE1561_series_matrix.txt 文件中的信息相比,读取的内容被丢掉了一部分,而直接从'200010_at'探针开始,并将该行作为了列名:

2、同时,存在的另一个问题是,使用:

  1. Anno_data_f = fData(data[[1]])

提取出的探针注释信息与直接读取对应的 GPL96.soft 文件:

  1. Anno_data_t = Table(getGEO('GPL96', destdir = getwd()))    # 下载/读取 GPL96.soft

结果不同,少了部分探针:

  1. setdiff(Anno_data_t$ID, Anno_data_f$ID)

可见,除了以'AFFX-'开头的质控对照探针外,其余的为前31个探针(刚好截至'200010_at'),所以我们可以合理的猜测,是 getGEO 读取文件时发生了问题。查看函数执行时显示的信息,如下:

Found 1 file(s)GSE1561_series_matrix.txt.gzUsing locally cached version: ./GSE1561_series_matrix.txt.gzParsed with column specification:cols(.default = col_double(),

200010_at = col_character())See spec(...) for full column specifications.Using locally cached version of GPL96 found here:./GPL96.soft

正常读取时,显示如下:

Found 1 file(s)GSE1561_series_matrix.txt.gzUsing locally cached version: ./GSE1561_series_matrix.txt.gzParsed with column specification:cols(.default = coldouble(),

IDREF = col_character())See spec(...) for full column specifications.Using locally cached version of GPL96 found here:./GPL96.soft

两者的区别在于,正常读取时,是将 GSE1561_series_matrix.txt 文件中的 ID_REF 行作为列名,即样本名,而错误读取时是将 200010_at 行作为列名,这与我们上面看到的结果一致!

这个数据读取的问题出在内部调用的 readr 包上,且出问题的是1.2版本:

https://github.com/tidyverse/readr

  1. packageVersion('readr')

[1] ‘1.2.1’

同样针对使用GEOquery包出现问题的描述:

https://github.com/tidyverse/readr/issues/925

不过,在更新的readr包中,问题已经解决:

https://github.com/tidyverse/readr/pull/933

既然是包的问题,这里提供两种解决方法:

1、安装v1.1.1版本的readr

  1. p_load(devtools)

  2. install_version('readr', version = '1.1.1')

2、安装最新版readr【推荐】

  1. # 先卸载

  2. p_delete(GEOquery, readr)


  3. # 安装github上最新发布的readr

  4. p_load_gh('tidyverse/readr')

  5. packageVersion('readr')        # ‘1.3.1.9000’

  6. p_load(GEOquery)

重启R即可!

此时,重新执行 getGEO 读取数据,再通过 exprs(data[[1]]) 提取的探针表达谱正常。

但是对于问题2,使用 fData 获取的探针注释仍然缺少'AFFX-'开头的部分探针。其实,并非两种提取方法存在什么本质区别,而是...GSE1561_series_matrix.txt文件本身就未提供'AFFX-'开头的部分探针!所以,想要获取更全面的探针注释信息,推荐:

  1. Table(getGEO(GPLname, destdir = getwd()))    # 替换真实的GPLname!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多