0.因数据库和R包更新导致的问题
从GPL页面上下载注释表格,是获取探针注释的方法之一,通常是找不到注释包的第二选择。
更新之前的下载方式是(2022年之前我们的直播课堂上是这样讲的,2022年以及之后的课上已经更新好了):
library(GEOquery)
a = getGEO("GPL570",destdir = ".")
b = a@dataTable@table
ids2 = b[,c("ID","Gene Symbol")]
更新之前:运行getGEO这句代码,函数会自动读取“GPL570.soft”文件,得到一个GPL对象。
更新之后: GPL570.soft文件从原来的75M变成了现在的几十G,而且所有的平台soft都被压缩成了gz格式。压缩一下倒是不影响下载,但导致了工作目录下确实有GPL570.soft文件的情况下,函数也不识别,而是从网页上去下载GPL570.soft.gz,几十G,实在是duck不必。
1.小的文件,方法不变
当然,GPL570表格文件是本来就大(表格的大小在网页上有写),对于比较小的表格文件可以继续使用原来的方法:
library(GEOquery)
a2 = getGEO("GPL7759",destdir = ".")
class(a2)
## [1] "GPL"
## attr(,"package")
## [1] "GEOquery"
2.针对大文件的新方法
针对这种比较大的注释文件,需要更改一下策略:
从GPL570的网页上拉到最后,有一个文件:
从网页上把它下载下来,放在工作目录,本地读取。
b = read.table("GPL570-55999.txt",header = T,
quote = "\"",sep = "\t",check.names = F)
ids2 = b[,c("ID","Gene Symbol")]
colnames(ids2) = c("probe_id","symbol")
head(ids2)
## probe_id symbol
## 1 1007_s_at DDR1 /// MIR4640
## 2 1053_at RFC2
## 3 117_at HSPA6
## 4 121_at PAX8
## 5 1255_g_at GUCA1A
## 6 1294_at MIR5193 /// UBA7
3.备用方法
只要不是特别大的文件,可以先试试getgeo下载,如果网络不好导致失败,就从网页下载soft格式的文件。
点开上面箭头所指的地方,就能网页下载soft文件了,文件大小还可以接受,不至于有几个G的。
b2 = getGEO(filename = "GPL7759_family.soft.gz",destdir = ".")
class(b2)
## [1] "GPL"
## attr(,"package")
## [1] "GEOquery"