最近需要下载一大批GEO上的数据,问题是我要下载的Methylation数据根本就没有sra文件,换言之不能使用Aspera之类的数据进行下载。但是后来我发现了GEOquery这个不错的R包,不知道是网络问题还是怎么,GEOquery有时候运行也不太稳定,但是总体来说,很好地解决了我的问题。

首先假设我们想要下载的数据是GSE77445,这是一批DNA甲基化数据,我们可以在R语言中安装GEOquery之后,载入R包,然后直接输入:

Data <- getGEO("GSE77445",destdir="./")
  • 1

我也没有太多研究,但是上述代码中,前一个参数就是你想要下载的GSE编号,后一个参数不能省略,是你指定的文件下载保存的路径。GEOquery其实也就是自动把文件下载下来,然后进行载入分析而已。

在命令输入之后,会自动开始下载一些Seriers数据(比如GSE77445_series_matrix.txt.gz),我也不知道为什么为什么它会自动下载这个文件。然后理论上程序会自动进行处理。整个过程非常漫长,估计要将近一个小时的样子,这还只是一个300M不到的小数据集。

然后如果顺利的话,你这一行命令可以顺利跑完,你会得到处理好的Data,但是这个数据还是一个S4结构体,并不是我们想要的矩阵研究形式。所以你可以用下面的代码获得相应的矩阵和样本数据:

myMatrix <- Data@GSE77445_series_matrix.txt.gz@assayData$exprs
myPDfile <- pData(phenoData(Data@GSE77445_series_matrix.txt.gz))

另外在一些时候,文件下载完以后,就会出现错误,但是在那种时候,文件其实已经被下载到了你指定的目录下了,如果是那样的话,你可以重新载入这个已经下载好的文件:

Data <- getGEO(filename="./GSE77445_series_matrix.txt.gz")
  • 1

这一次就不需要加入目录参数,然后又需要过好久好久,程序一般就不会失败了,在处理完以后,用 下面两行代码获取矩阵数据和样本数据:

myMatrix <- Data@assayData$exprs
myPDfile <- pData(phenoData(Data))
  • 1
  • 2

经过我的测试,我用上述办法下载了十多套DNA甲基化数据,基本上还是很可靠的。但是有时候下载的series_matrix数据其实不能用,例如GSE77716这一套就不能用,这种就没有办法了,我唯一会的办法,就是从网站上去下载其他原格式数据,例如作者上传上去的Matrix或者Raw IDAT数据。

不过所谓不能用更多情况下是因为数据内不包含矩阵数据,一般来说都会包含有样本的数据,我下载的所有系列数据不一定都成功了,但是样本数据都有。如果你实在没有办法整理出起样本数据,这也不失为一个办法……

不得不吐槽一句,GEO我也是看的醉了……数据格式每一套都不一样,更要命的是有些数据下载下来都看不懂是什么鬼。有些提供了Raw IDAT文件的,又不提供Sample.csv文件,处理起来费时费力。

我是真的觉得学术界应该花点力气做一些整理规范工作……Biocondcutor就是这其中的翘楚案例。

另外我一直想下载一批较大的GEO数据:GSE87571,想要最原始的那一批6.1G大小的IDAT文件,但是一直都无法下载下来。有知道更好的办法的同学可以告诉我一下。

 

使用GEOquery下载GEO数据--转载的更多相关文章

  1. GEO数据下载分析(SRA、SRR、GEM、SRX、SAMN、SRS、SRP、PRJNA全面解析)

    很多时候我们需要从GEO(https://www.ncbi.nlm.nih.gov/geo/)下载RNA-seq数据,一个典型的下载页面是https://www.ncbi.nlm.nih.gov/ge ...

  2. 解决Ubuntu“下载额外数据文件失败 ttf-mscorefonts-installer”的问题 (转载)

    解决Ubuntu“下载额外数据文件失败 ttf-mscorefonts-installer”的问题 发表于 2017-09-15 | 更新于 2018-04-29 | 分类于 Linux | 评论数: ...

  3. 2. 在TCGA中找到并下载意向数据

    听说过别人用生信分析"空手套白狼"的故事吧想做吗好想学哦~ 或多或少都知道GEO和TCGA这些公共数据库吧!那么你知道怎么在数据库上找到意向数据,并且成功下载呢?这第一步要难倒一大 ...

  4. ubuntu 下载额外数据不成功”的恼人提示通知

    最近用Ubunt也遇到这个问题,搜到这个答案 参考原文链接: http://forum.ubuntu.org.cn/viewtopic.php?t=387865 2.移除“下载额外数据不成功”的恼人提 ...

  5. Android开发之从网络URL上下载JSON数据

    网络下载拉取数据中,json数据是一种格式化的xml数据,非常轻量方便,效率高,体验好等优点,下面就android中如何从给定的url下载json数据给予解析: 主要使用http请求方法,并用到Htt ...

  6. 移除Ubuntu“下载额外数据不成功”的提示通知

    参考自经过几天的摸索,终于得出安装flashplugin-installer的方法 移除"下载额外数据不成功"的恼人提示通知,方法: $cd /usr/share/package- ...

  7. java开发的web下载大数据时的异常处理

    同事用java开发了一个系统,其中有一个功能是下载大约10万笔数据到Excel中.当上线后,很多用户反映下载数据量大的时候就不能成功,但有时可以,所以结论就是系统不稳定,这个问题拖了很久没有解决. 在 ...

  8. NCBI下载sra数据(新)

      今天要上NCBI下载sra数据发现没有下载的链接,网上查发现都是老的方法,NCBI页面已经变更,于是看了NCBI的help,并且记录下来新版的sra数据下载方法,要用NCBI的工具SRA Tool ...

  9. ajax stream 一边下载二进制数据一边处理

    最近有在做 stream 下载,并且边下载 stream 边处理功能.解析二进制的功能.最初参考了 flv.js 的 flv stream 下载处理功能,发现他并没有使用的 XMLHttpReques ...

随机推荐

  1. leetcode_Basic Calculator II

    题目: Implement a basic calculator to evaluate a simple expression string. The expression string conta ...

  2. Linux内核中namespace之PID namespace

    前面看了LInux PCI设备初始化,看得有点晕,就转手整理下之前写的笔记,同时休息一下!!~(@^_^@)~ 这片文章是之前写的,其中参考了某些大牛们的博客!! PID框架的设计 一个框架的设计会考 ...

  3. Java 运算符及优先级

    运算符 分割符: , ; [] () 算数运算符: + - * / % ++ -- 关系运算符: > < >= <= == != 逻辑运算符: ! & | ^ & ...

  4. Angular 回到顶部 滚动到特定的页面位置

    $timeout(function() { // $location.hash('bottom'); // $anchorScroll(); // var a=angular.element(&quo ...

  5. Spark2.0机器学习系列之5:随机森林

    概述 随机森林是决策树的组合算法,基础是决策树,关于决策树和Spark2.0中的代码设计可以参考本人另外一篇博客: http://www.cnblogs.com/itboys/p/8312894.ht ...

  6. ASP.NET的优点

    ASP.NET 是一个统一的 Web 开发平台,它提供开发人员创建企业级 Web 应用程序所需的服务.尽管 ASP.NET 的语法基本上与 ASP 兼容,但是它还提供了一个新的编程模型和基础结构以提高 ...

  7. 20165324 《Java程序设计》第八周学习总结

    学号 20165324 <Java程序设计>第八周学习总结 教材学习内容总结 第十二章 Java多线程机制 进程与线程 进程是程序的一次动态执行过程:线程是比进程更小的执行单位 线程的状态 ...

  8. sublime2常用设置

    设置文本字体格式 • Preferences -> Setting-User • 加入设置:"font_face" : "courier new", &q ...

  9. 数据结构 练习21-trie的原理分析和应用

    前言 今天具体分析一下trie树,包括:原理分析,应用场合,复杂度分析,与hash的比较,源码展现.大部分内容来自互联网,文中会注明出处. 原理分析 主要是hash树的变种,先看下图: 每一个点存储一 ...

  10. PKU 1201 Intervals(差分约束系统+Spfa)

    题目大意:原题链接 构造一个集合,这个集合内的数字满足所给的n个条件,每个条件都是指在区间[a,b]内至少有c个数在集合内.问集合最少包含多少个点.即求至少有多少个元素在区间[a,b]内. 解题思路: ...