GEO生信数据挖掘(五)提取临床信息构建分组,分组数据可视化(绘制层次聚类图,绘制PCA图)

检索到目标数据集后,开始数据挖掘,本文以阿尔兹海默症数据集GSE1297为例

上节做了很多的基因数据清洗(离群值处理、低表达基因、归一化、log2处理)操作,本节介绍构建临床分组信息。

我们已经学习了提取表达矩阵的临床信息

# 安装并加载GEOquery包
library(GEOquery)

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

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


#提取临床信息 方法一:$或者@ ,配合str()观察结构
pdata = gse_info$GSE1297_series_matrix.txt.gz@phenoData@data

临床信息预处理

提取出关键的两列

#构建样本分组信息
group_data = pdata[,c('geo_accession','title')]

本例中的疾病和对比组的标识比较复杂,要考虑剔除数字,还要考虑做2分类还是4分类。

字符串处理二分类


# 使用grepl函数判断字符串是否包含'abc',并进行相应的修改
group_data$group_easy <- ifelse(grepl("Control", group_data$title), "Control", "AD")

字符串处理四分类

# 使用grepl函数判断字符串是否包含特定内容,然后进行相应的修改
group_data$group_more <- ifelse(grepl("Control", group_data$title), "Control",
                                      ifelse(grepl("Moderate", group_data$title), "Moderate",
                                             ifelse(grepl("Incipient", group_data$title), "Incipient","Severe")))

处理后的结果,无需调整分组信息的顺序,让AD在一堆,Control在一堆,现在的<临床信息表的行索引GSM顺序>与<基因表达信息表的列索引GSM顺序> 是一致的。

需要的分组信息已经提取完毕。

分组后箱线图可视化

上一节保存了数据清洗后的基因表达矩阵,加载进来,为了使用简单boxplot画图,我们又增加了一列区分不同样本类型的颜色。

#加载基因表达矩阵
load("exprSet_clean_75percent_filter.RData")  #exprSet_clean

# 使用grepl函数判断字符串是否包含'Control',并进行颜色标记,为画图
group_data$group_color <- ifelse(grepl("Control", group_data$title), "yellow", "blue")

#(3)画箱线图查看数据分布

group_list_color = group_data$group_color 
boxplot( data.frame(exprSet_clean),outline=FALSE,notch=T,col=group_list_color,las=2)

分组后层次聚类图可视化

exprSet =exprSet_clean
#修改GSM的名字,改为分组信息
colnames(exprSet)=paste(group_data$group_easy,1:ncol(exprSet),sep = '')


#定义nodePar
nodePar=list(lab.cex=0.6,pch=c(NA,19),cex=0.7,col='blue')
#聚类
hc=hclust(dist(t(exprSet))) #t()的意思是转置

#绘图
plot(as.dendrogram(hc),nodePar = nodePar,horiz = TRUE)

分两类好像看不太出来,聚类的好坏,我们又观察了分四类后的聚类情况,效果不错。

聚类的效果还不错,没有特别别扭的分类。

分组后PCA图可视化

由于样本量比较少,看起来,两类样本,在空间上还算分的比较开。(后期可以把轻微症状放到Control组,做测试看看效果。)

至此为止,临床信息预处理工作完毕,基因表达数据预处理工作完毕,最让人头疼的工作结束。

最后别忘了保存一下根据临床数据构建的分组信息,后面的差异分析要用哦

### GEO 信息数据挖掘教程与方法 #### 1. GEO 数据挖掘概述 GEO(Gene Expression Omnibus)是由 NCBI 提供的一个公共功能基因数据存储库,广泛应用于信息学研究中的基因表达数据分析。通过 GEO 数据挖掘,研究人员能够利用已有的高通量实验数据来验证假设或发现新的物学规律[^1]。 #### 2. 数据挖掘的主要步骤 GEO 数据挖掘通常分为以下几个主要阶段: - **表达矩阵 ID 转换** 在进行任何分析之前,需要将原始探针 ID 或其他形式的标识符转换为通用的标准格式(如 Gene Symbol)。这一步可以通过 R 包 `org.Hs.eg.db` 实现[^4]。 - **差异分析** 差异分析旨在识别不同条件下显著变化的基因集合。常用的方法包括 t 检验、Wilcoxon 秩和检验以及更复杂的线性模型(如 limma 包实现的功能)。这些统计测试可以帮助筛选出具有潜在物学意义的关键基因。 - **KEGG 数据库注释** 对于经过差异分析后的候选基因列表,进一步开展功能富集分析是非常重要的环节之一。其中 KEGG Pathway 是一种常见的途径注释资源,它提供了关于代谢过程和其他细胞活动的信息。借助特定软件工具或者在线平台完成此任务[^3]。 #### 3. 使用 GEOquery 进行数据处理 为了简化从 GEO 下载并解析文件的过程,推荐使用专门设计好的 R 扩展包 —— GEOquery 。这个程序不仅支持多种类型的输入源 (比如 GSE/GPL),而且还能自动提取数据结构以便后续计算之需[^2]。 下面展示一段简单的脚本示例用于加载指定系列矩阵及其关联信息: ```r library(GEOquery) gse <- getGEO("GSEXXXXX", GSEMatrix = TRUE, Annotate = FALSE) exprs_data <- exprs(gse[[1]]) # 获取表达值 pheno_data <- pData(gse[[1]]) # 获取表型数据 ``` #### 4. 注意事项与其他技巧 尽管 GEO2R 可以为用户提供初步的结果导出选项,但由于缺乏质量控制措施等原因,在实际应用过程中仍建议手动调整参数设置以获得更为精确可靠的数据输出。此外,考虑到某些复杂场景下的需求可能超出基础框架所能覆盖范围,则有必要深入探索高级主题例如批次效应校正等技术手段。 ---
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值