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 #这里的数据就是疾病或者样本统计了

参考文章:

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

数据处理-链接

相关推荐
LBuffer1 天前
破解入门学习笔记题四十六
数据库·笔记·学习
chase。1 天前
关于 nvidia-smi: no devices were found 解决方案
服务器·数据库·postgresql
几何心凉1 天前
openGauss:多核时代企业级数据库的性能与高可用新标杆
前端·数据库·数据库开发
瑞思蕊萌1 天前
redis实战篇--商品缓存模块
数据库·redis·缓存
Yurko131 天前
【计网】基于三层交换机的多 VLAN 局域网组建
网络·学习·计算机网络·智能路由器
AiXed1 天前
PC微信协议之AES-192-GCM算法
前端·数据库·python
月下倩影时1 天前
视觉进阶篇——机器学习训练过程(手写数字识别,量大管饱需要耐心)
人工智能·学习·机器学习
武子康1 天前
Java-171 Neo4j 备份与恢复 + 预热与执行计划实战
java·开发语言·数据库·性能优化·系统架构·nosql·neo4j
无敌最俊朗@1 天前
02-SQLite 为了防止多人同时乱写,把整个数据库文件“当一本账本加锁”
jvm·数据库·oracle
小坏讲微服务1 天前
MaxWell中基本使用原理 完整使用 (第一章)
大数据·数据库·hadoop·sqoop·1024程序员节·maxwell