GEO数据挖掘3
时间:2022-07-25
本文章向大家介绍GEO数据挖掘3,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
数据挖掘3
sunqi
2020/7/11
概述
对下载好的基因初步分析,进行PCA分析和热图绘制
PCA 绘制
rm(list = ls())
options(stringsAsFactors = F)
load(file = 'step1-output.Rdata')
table(group_list)
## group_list
## Control Vemurafenib
## 3 3
# 查看数据
dat[1:4,1:4]
## GSM1052615 GSM1052616 GSM1052617 GSM1052618
## ZZZ3 11.26970 11.12560 11.23260 11.47360
## ZZEF1 9.63412 9.44327 9.67075 9.96091
## ZYX 10.89980 10.93190 10.91850 10.71250
## ZYG11B 10.48080 10.32370 10.51680 10.74500
## 绘制pca
#画PCA图时要求是行名时样本名,列名时探针名,因此此时需要转换
dat=t(dat)
#将matrix转换为data.frame
dat=as.data.frame(dat)
#cbind添加分组信息
dat=cbind(dat,group_list)
# 安装需要的包
#设置镜像
options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
options(BioC_mirror="https://mirrors.tuna.tsinghua.edu.cn/bioconductor")
# install.packages(c("FactoMineR", "factoextra"))
library("FactoMineR")
library("factoextra")
# 数据处理,去掉分组信息
dat.pca <- PCA(dat[,-ncol(dat)], graph = FALSE)
# 绘制pca图
fviz_pca_ind(dat.pca,
geom.ind = "point", #
col.ind = dat$group_list, # 根据颜色分组
addEllipses = TRUE, # 椭圆
legend.title = "Groups"
)
主成分分析显示两组之间可以显著分开
热图绘制
## 热图绘制
rm(list = ls())
load(file = 'step1-output.Rdata')
dat[1:4,1:4]
## GSM1052615 GSM1052616 GSM1052617 GSM1052618
## ZZZ3 11.26970 11.12560 11.23260 11.47360
## ZZEF1 9.63412 9.44327 9.67075 9.96091
## ZYX 10.89980 10.93190 10.91850 10.71250
## ZYG11B 10.48080 10.32370 10.51680 10.74500
#apply按行取每一行的方差,从小到大排序,
#也就是取样本间差异较大的基因,取最大的1000个
cg=names(tail(sort(apply(dat,1,sd)),1000))
# install.packages("pheatmap")
library(pheatmap)
# 绘制1000个位点的热图
pheatmap(dat[cg,],# 取差异明显的1000个基因
show_colnames =F,show_rownames = F)
# 对数据进行归一化
# 因为是按照基因归一化,所以先进行转置,然后再转置回去
n=t(scale(t(dat[cg,])))
# 对绝对值大于2的数取绝对值2
# 使得最后的数据范围控制在2以内
n[n>2]=2
n[n< -2]= -2
n[1:4,1:4]
## GSM1052615 GSM1052616 GSM1052617 GSM1052618
## SERPINI1 -0.5864330 -1.3172509 -0.6733724 1.2702722
## SLC44A5 -0.7866286 -0.8619907 -1.0508698 1.1604191
## TIMM8A 0.9119733 0.6284977 1.1376726 -0.7681696
## LINC01530 -0.9223885 -0.9223885 -0.8554885 0.9206052
# 最终的结果显示表达量归一化为2以内
pheatmap(n,show_colnames =F,show_rownames = F)
# 现在的图只是热图,但是没有分组信息
# 添加分组信息
ac=data.frame(g=group_list)
# 添加样本名为行名
rownames(ac)=colnames(n)
# 再次绘制热图
pheatmap(n,show_colnames =T,show_rownames = F,
annotation_col=ac)
# 可以看出两个分组之间存在不少的差异表达
结束语
此部分的分析较为基础,为GEO分析的初步探索
love&peace
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法