当前位置: 首页 > news >正文

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组,做测试看看效果。)

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

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

http://www.lryc.cn/news/177296.html

相关文章:

  • golang时间问题汇总(用法常见问题:插入数据库时间自动+8)
  • TCP网络连接中的三次握手和四次挥手
  • 游戏服务商Latis Global参展2023 ChinaJoy B2B
  • oracle常用sql
  • 手游模拟器长时间运行后,游戏掉帧且不恢复
  • linux下离线安装telnet
  • Unity 发布WebGL平台,C#与JavaScript交互
  • 利用 Forcing InnoDB Recovery 特性解决 MySQL 重启失败的问题
  • windows修改键位F11变insert(改键盘映射)
  • 安装gpu版本的paddle和paddleclas
  • 61从零开始学Java之处理大数字相关的类有哪些?
  • vscode 搜索界面的files to include files to exclude 是什么功能?
  • 数据计算-第15届蓝桥杯第一次STEMA测评Scratch真题精选
  • 谈谈前端和后端的选择
  • Vue3最佳实践 第六章 Pinia,Vuex与axios,VueUse 1(Pinia)
  • Java比较器之equals、comparable、comparator
  • Virtio-user使用简介
  • 点云从入门到精通技术详解100篇-基于深度学习的三维植物点云分割网络
  • C语言 Cortex-A7核 SPI 实验
  • Spring工具类--ReflectionUtils的使用
  • zemax西德莫尔目镜
  • C++ 拷贝构造函数
  • 怎么使用 Flink 向 Apache Doris 表中写 Bitmap 类型的数据
  • LeetCode 四数相加II 哈希
  • python(自4) xpath下载 lxml安装 lxml语法 使用方式
  • 05-Zookeeper典型使用场景实战
  • stl格式-3D三角形
  • 基于微信小程序的高校暑期社会实践小程序设计与实现(源码+lw+部署文档+讲解等)
  • ARM-day2
  • macOS Sonoma 14 正式版(23A344)发布,附黑/白苹果镜像下载地址