GEO数据的下载和处理|GEO数据转换为Gene symbol|GEO注释文件提取symbol|查看样本标签|查看GEO数据疾病或正常|生物信息基础

GEO数据的下载和处理|GEO数据转换为Gene symbol|GEO注释文件提取symbol|查看样本标签|查看GEO数据疾病或正常|生物信息基础

数据的下载和处理

  1. 首先在GEO数据库中通过GSE ID找到相关数据,然后下载txt文件。
  2. 数据读取与处理。
R 复制代码
#设置工作路径,也就是你的分析数据存放以及要保存到地方
setwd(dir="C:\\Users\\Liao Minzhen\\PycharmProjects\\pythonProject3\\compare_data") 

Rawdata=read.table('GSE8671_series_matrix.txt.gz',#将这个文件替换为下载的文件
                   sep = '\t',quote ="",fill = T,
                   comment.char = "!",header = T)

#读进来发现第一列的字符串带有引号,写循环太麻烦,用quote=F手动给去掉一下
write.table(Rawdata, file = "test.csv",sep=",", row.names = F,quote = F)
Raw2=read.table('test.csv',sep=",",header=T)
rownames(Raw2)=Raw2[,1]
Raw2=Raw2[,-1]
#Raw2即为所下载的文件:列为样本,行为探针

将探针转换为symbol

  1. 将探针转换为Gene symbol,代码可以直接用~~~~
    下载对应注释文件,第一步中的Platform,点进去GPL570,进入新页面,然后下载Full table,就是后续用到的GPL570-55999.txt这个文件!!!!!R语言代码中的,到时候替换成你们自己的注释文件即可!
R 复制代码
#symbol ID 转换
#install.packages('data.table')
library(data.table)
b=fread('GPL570-55999.txt',data.table = F)[,c(1,11)]  #提取表中我要的列:ID名和gene symbol所在的列

#install.packages("stringr")
library(stringr)
b$gene=str_split(b$V11,'///',simplify = T)[,1]
ids=b[,-2]
#给列名换个简单点的名字
colnames(ids)[1] <- 'Affi'

#探针转换为gene symbol
library(GEOquery)
library(limma)
library(affy)
#BiocManager::install("affy") #若包不存在则安装

#去重复值:只取第一个Gene symbol来达到去重效果
ids$`gene`<-data.frame(sapply(ids$`gene`,function(x)unlist(strsplit(x,"///"))[1]),stringsAsFactors=F)[,1]
#对表达矩阵exp进行探针ID转化,首先将其转换为数据框的形式,否则一会会报错
Raw2<-as.data.frame(Raw2)
#将探针ID放到数据框里面
Raw2$ID <- rownames(Raw2)
#改变我们原有的探针ID与gene_symbol对应的名字,方便merge
colnames(ids) <- c('ID','symbol')
Raw2_symbol <-merge(Raw2,ids,by = 'ID')
#去除匹配不上的,Raw2_symbol即为想要的数据
Raw2_symbol<-na.omit(Raw2_symbol)
#删除第一列
Raw2_symbol <- Raw2_symbol[,-1]

# 将最后一列移动到第一列的位置
Raw2_symbol <- Raw2_symbol[ , c(ncol(Raw2_symbol), 1:(ncol(Raw2_symbol) - 1))]
write.csv(Raw2_symbol,file = 'symbol_data.csv',row.names = TRUE)

查看数据标签,查看样本疾病或正常

# 指定GEO数据集的ID
gse_id <- "GSE29044"

# 使用getGEO函数获取数据集的基础信息,下载数据
gse_info <- getGEO(gse_id, destdir = ".", AnnotGPL = FALSE ,getGPL = F)


#提取临床信息 方法一:$或者@ ,配合str()观察结构
pdata = gse_info$GSE29044_series_matrix.txt.gz@phenoData@data
value_counts <- table(pdata$source_name_ch1)
value_counts #这里的数据就是疾病或者样本统计了

参考文章:

数据下载与处理(主要看的这个)-链接

数据处理-链接

相关推荐
Komorebi.py1 分钟前
【Linux】-学习笔记05
linux·笔记·学习
亦枫Leonlew10 分钟前
微积分复习笔记 Calculus Volume 1 - 6.5 Physical Applications
笔记·数学·微积分
远歌已逝2 小时前
维护在线重做日志(二)
数据库·oracle
qq_433099403 小时前
Ubuntu20.04从零安装IsaacSim/IsaacLab
数据库
Dlwyz3 小时前
redis-击穿、穿透、雪崩
数据库·redis·缓存
工业甲酰苯胺5 小时前
Redis性能优化的18招
数据库·redis·性能优化
冰帝海岸5 小时前
01-spring security认证笔记
java·笔记·spring
没书读了6 小时前
ssm框架-spring-spring声明式事务
java·数据库·spring
小二·6 小时前
java基础面试题笔记(基础篇)
java·笔记·python
i道i7 小时前
MySQL win安装 和 pymysql使用示例
数据库·mysql