下载GEO数据的常用的两个问题



setwd("E:/wd/20260524")




###报错的原因就是有重复的基因名 多个探针对应同一个基因exp2.1=distinct(exp1,Symbol,.keep_all = F)exp2=distinct(exp1,Symbol,.keep_all = T)###这时候行名已经从22283变成了13238rownames(exp2)=exp2$Symbol

##系统报错改为英文Sys.setenv(LANGUAGE = "en")##禁止转化为因子options(stringsAsFactors = FALSE)##清空环境rm(list=ls())## 加载r包library(GEOquery)library(dplyr)library(tidyverse)##设置路径getwd()###一定要设置自己的路径#setwd("E:/peixun/mr/m2/")####################################################################################################### 获取表达矩阵##下载数据 getGPL = F 这个代表不下载平台注释文件,因为有时候网络不稳定。#后面我们会在网页中下载,然后读取。gset = getGEO(GEO='GSE69528', destdir=".",getGPL = F)##列表listgset1 = getGEO(filename = "GSE69528_series_matrix.txt.gz", destdir = ".", getGPL = TRUE)## 查看对象View(gset1)huage=gset1@assayData[["exprs"]]######################保存数据 保存为rdata的数据结构#save(gset,file ="GSE69528.rdata")###打开工作路径的文件夹 我们会发现 GSE69528.rdata出现在文件夹下##保存下载的数据 保存为rdata 当然也可以保存为rds########### 这时候可以清空环境 保存的数据可以用load函数加载#load("GSE69528.rdata")############加载完数据后 gset对象又出现在环境中###########也可以保存环境中的全局变量 自己看视频##########将gset中的第二部分数据提取出来names(gset)e1=gset[[1]]e1=gset1e2=gset[["GSE69528_series_matrix.txt.gz"]]############################################################## S4对象深入解读##在环境中点击对象查看,然后再选中的层级数据中点击绿色箭头提取exp=e1@assayData[["exprs"]]df.exp=as.data.frame(exp)class(exp)class(df.exp)## 获取分组信息pdata=e1@phenoData@datax1=e2@phenoData@data$characteristics_ch1x2=e2@assayData$exprs#### s4 s3:matrix 矩阵 data.frame() 数据框 character() 向量字符型 list 列表############################################################################################################ 整理探针转化文件getwd()#install.packages("data.table")library(data.table)###读取测序平台信息,为了进行探针的转化 这里的探针就是exprSe的行名比如:10344614###平台文件在geo中下载,下载之后要放在指定的路径下面###用fread函数读取的目的是多线程快速读取anno=fread("GPL10558-50081.txt",sep = "\t",header = T,data.table = F)#第一行作为列名anno1=fread("GPL10558-50081.txt",sep = "\t",header = F,data.table = F)?freadView(anno)colnames(anno)gene=anno[,c(1,13)]gene.1=anno[,c("ID","Symbol" )]###exp是矩阵 merge合并必须是数据框的合并################################################ merge用法演示?mergeexp.anno=merge(x=gene,y=df.exp,by.x=1,by.y=0)View(exp.anno)###到此为止 我们讲注释的gene symbol文件与表达矩阵都已经准备好了##############################################################################################进行探针的转化## 做个备份exp1=exp.anno###整理表达矩阵rownames(exp1)=exp1$Symbol###报错的原因就是有重复的基因名 多个探针对应同一个基因exp2.1=distinct(exp1,Symbol,.keep_all = F)exp2=distinct(exp1,Symbol,.keep_all = T)###这时候行名已经从22283变成了13238rownames(exp2)=exp2$Symbol###exp3=na.omit(exp2)#去除NA值View(exp3)###去除第一列和第二列exp4=exp3[,-c(1,2)]View(exp4)write.csv(exp4,file = "4.12.exp.csv")write.csv(pdata,file = "4.12.pdata.csv")
夜雨聆风