GEO通用

数据下载:

可以通过GEOquery这个R包进行下载,或者直接在网页上下载---下载的内容包括:==表达矩阵== 和 ==注释文件==

rm(list = ls())#一键清空环境中的对象
options(stringsAsFactors = F)#默认的设置
library(GEOquery)
gse = "GSE107943"#需要找到需要下载的数据的GSE 号
eSet <- getGEO(gse, 
               destdir = '.', 
               getGPL = F)
#下载数据,并创建表达矩阵对象;
#'.'表示当前工作目的
gpl <- eSet[[1]]@annotation#获取GPL号
gpl <- getGEO(GEO = gpl,destdir = ".",)#下载GPL文件
#解析GPL文件:
if(F){}#用于折叠长代码
if(F){
  gpl1 <- getGEO(GEO = "GPL570",destdir = ".",AnnotGPL = TRUE) #下载gpl570对应的文件,如何解析呢?
  table <- gpl1@dataTable@table
  class(table)
  dim(table)
  colnames(table)
  table1 <- table[,c(1,3)]
  table1[1:4,1:2]
  #当然也可以看GEOquery这个包中的帮助文档,获取其中要用于ID转换的列的信息
}

获取表达矩阵以及临床信息:

  1. 两种方式:
  • 通过exprs()获取表达矩阵:
#exprs()函数用于获取表达矩阵
exp <- exprs(eSet[[1]])
exp[1:4,1:4]
dim(exp)
class(exp)
colnames(exp)
str(exp)

  • 通过下载的数据,直接用read.table()函数读取数据,读取的过程中需要用的read.table()函数的一些小技巧
exp= read.table(file = "", head = , )
  1. 临床信息不是所有的数据集都有提供:具体有无临床信息可以在网页上看它的数据介绍或者是点开一个GSE序列号下面的GSM样本,看其中的数据内容

    如果有临床信息,可以通过下方代码提取临床信息:

    pd <- pData(eSet[[1]])#获取临床信息
    class(pd)
    dim(pd)
    rownames(pd)
    colnames(pd)
    
  1. 调整表达矩阵的列名与临床信息的行名一致:

    p = identical(rownames(pd),colnames(exp));p
    if(!p) exp = exp[,match(rownames(pd),colnames(exp))]# 调整列名的顺序
    

    注意,这个地方只能rownames(pd)在前→colnames(exp)在后

你可能感兴趣的:(GEO通用)