三阴性乳腺癌表达矩阵探索之数据下载及理解
学徒和学员已经陆续出师,是时候把生信技能树的舞台交给后辈了!(视频观看方式见文末)
了解数据挖掘
公共数据库:(数据来源) GEO
和TCGA
国际三大数据中心: NCBI
,ENSEMBL
,UCSC
数据挖掘的概念 从大的数据背景中通过各种统计学方法得到数量大小合适的基因集找到的感兴趣的基因集 通过各种统计学方法来注释并解释这个基因集的意义
实战:
对文献解读的第三篇文章==Identification of Key Genes and Pathways in Triple-Negative Breast Cancer by Integrated Bioinformatics Analysis== 的分析过程进行重复
第一步:下载数据集
GEO数据库基本介绍:
一篇文章可以有一个或者多个GSE数据集,一个GSE里面可以有一个或者多个 GSM样本 ,多个研究的GSM样本介意根据研究目的整合为一个 GDS , 不过GDS本身用得很少,而且每个数据集都有自己对应的芯片平台,就是GPL
GEO Platform:GPL
GEO Sample: GSM
GEO Series: GSE
GEO Dataset: GDS
GEO数据库,根据数据存放的标签GSE号进行查询
进如GEO数据库
点击目标查询进入目标数据集网页
表达矩阵下载的方式:
使用
GEOquery
R 程序包从GEO数据库下载==Note==:使用下面的代码下载的文件都会保存到本地,
destdir
参数指定数据存放的位置。此外,比较重要的三个参数为GSEMatrix=TRUE,AnnotGPL=FALSE, getGPL=TRUE
#加载程序包
library(GEOquery)#根据GDS下载soft文件
gds <- getGEO('GD858', destdir='.')#根据GPL号下载芯片设计信息
gpl96 <- getGEO("GPL96", destdir=".")#根据GSE号下载series_matrix.txt.gz
gse1009 <- getGEO("GSE1009",dstdir=".")下载原始芯片表达数据(CEL) 直接下载matrix文件,点击'Series Matrix File(s)’进入到矩阵存放位置,直接点击下载 第二步:开始分析
新建一个R.project
GSE76275.Rproj
在新的project下分别创建每个流程的分析
总共分step0-step5
step0-install.R : 安装需要用到的程序包
Notes: R版本高于3.5 使用
BiocManager
, 低于3.5用BiocInsraller
rm(list = ls())
#清空当前工作空间变量
options()$repos
#查看当前工作空间默认的下载包路径
options()$BioC_mirror
#查看使用BioCManager下载包的默认路径
options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/")
# 指定使用BioCManager下载的路径
options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
# 指定使用install.packages下载包的路径
options()$repos
options()$BioC_mirror# https://bioconductor.org/packages/release/bioc/html/GEOquery.html
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
#判断是否存在BiocManger包,没有的话下载该包
#判断是否存在这些包,不存在的话安装这些包
if(!require("KEGG.db")) BiocManager::install("KEGG.db",ask = F,update = F)
if(!require("GSEABase")) BiocManager::install("GSEABase",ask = F,update = F)
if(!require("GSVA")) BiocManager::install("GSVA",ask = F,update = F)
if(!require("clusterProfiler")) BiocManager::install("clusterProfiler",ask = F,update = F)
if(!require("GEOquery")) BiocManager::install("GEOquery",ask = F,update = F)
if(!require("limma")) BiocManager::install("limma",ask = F,update = F)
if(!require("impute")) BiocManager::install("impute",ask = F,update = F)
if(!require("genefu")) BiocManager::install("genefu",ask = F,update = F)
if(!require("org.Hs.eg.db")) BiocManager::install("org.Hs.eg.db",ask = F,update = F)
if(!require("hgu133plus2.db")) BiocManager::install("hgu133plus2.db",ask = F,update = F)
if(!require("ConsensusClusterPlus")) BiocManager::install("ConsensusClusterPlus",ask = F,update = F)step1-download.R: 下载所需要的数据
##1.获取GEO数据
library(GEOquery)
f = "SE76275_eSet.Rdata" #如果文件不存在则进行下载
if(!
file.exist(f)){
gset <- getGEO("GSE76275", destdir=".",
AnnotGPL=T, #注释文件,可下可不下
getGPL = T) #注释平台,可下可不下,可以改为F
save(gset,file="GSE76275_eSet.Rdata") #保存到本地
}
load("GSE76275_eSet.Rdata") #载入数据简单对下载的数据进行了解:
ExpressionSet数据形式的组成:
assayData
phenoData
featureData
experimentData
protocalData
class(gset) #list类型
length(gset) #查看长度,只有一个元素
class(gset[[1]]) #取出第一个元素,并查看类型为"ExpressionSet"
?ExpressionSet #查看这个数据类型,getGEO函数的目的就是下载数据,而下载的数据最终以ExpressionSet的形式存在a<-gset[[1]] #取出该列表的第一个元素并赋值
a@experimentData #访问不同的数据集
a@assayDatamethods(class='ExpressionSet') #可用于查看该对象的操作函数
dat=exprs(a) #取出对象a中的表达矩阵
dim(dat) #检查维度,54675个探针,265个病人
dat[1:4,1:4] #查看前四行前四列了解实验设计:
pd <- pData(a) #取出
pd$characteristics_ch1.1 #取出分组信息
ifelse(X==1,'X等于1','X不等于1') #首先判断X是否等于1,如果X等于1,返回'X等于1'的值,否则返回'X不等于1'的值group_list<-ifelse(pd$characteristics_ch1.1=='triple-negative status: not TN','noTNBC','TNBC') #获得分组信息
save(dat,group_list, file='step1-output.RData')
==总结==:第一步结束之后,我们得到了连个数:256个样本在5万个探针上的表达量,256个样本的分组信息,此处的特征为是否是三阴性乳腺啊
step2-check.R: 检查程序包以及数据
(1) 检查PCA分组情况
rm(list=ls()) #清空之前的一些值,避免混淆
## 学习PCA包的示例
install.packages(c('FactoMineR','factoextra'))
library(FactoMineR)
library(factoextra)
head(dat)
dat <- t(dat) #交换行和列的位置
dat <- as.data.frame(dat)
dat <- cbind(dat,group_list)
#在进行PCA分析之前,变量group_list(index=54676)被移除
dat.pca <- PCA(dat[,-54676],graph = FALSE)
fviz_pca_ind(dat.pca,
geom.ind = "point",#仅仅展示点
col.ind=dat$group_list, #通过组群来进行染色
polette = c("red","green"), #调色盘,几个组就设置几个颜色
addEllipses = TRUE, #以椭圆方式集中
legend.title="Group")(2)检查热图,选取其中的一小部分基因绘制热图
##绘制热图
rm(list=ls())
load(file='step1-output.RData')
dat[1:4,1:4]
#为了更好的用热图体现基因的表达,需要挑选表达差异比较大的基因
#apply函数介绍
apply(mat,1,mean) #对矩阵mat的每一行求均值,第二个参数为1对行进行操作,为2则对列进行操作
apply(dat,1,sd)
system.time(apply(dat, 1, sd))cg <- names(tail(sort(apply(dat,1,sd)),1000)) #挑选sd值比较大的基因
library(pheatmap)
n <- t(scale(t(dat[cg,])))
n[n>2]=2
n[n<-2]=-2
pheatmap(n, show_rownames = F,show_colnames = F) #scale,对样本进行均一化
ac <-data.frame(g=group_list) #添加分组信息
rownames(ac) = colnames(n)
pheatmap(n, show_rownames = F,show_colnames = F, annotation_col = ac)后面将详细介绍以下三个分析
step3-DEG.R: 表达差异性分析
step4-Annotation.R: 找出差异基因之后,看下这些差异基因属于哪些通路
step5-wgcna.R
我把3年前的收费视频课程:3年前的GEO数据挖掘课程你可以听3小时或者3天甚至3个月,免费到B站:
这个课程超级棒,B站免费学习咯:https://m.bilibili.com/video/BV1dy4y1C7jz 配套代码在GitHub哈:https://github.com/jmzeng1314/GSE76275-TNBC TCGA数据库挖掘,代码在:https://github.com/jmzeng1314/TCGA_BRCA GTEx数据库挖掘,代码在:https://github.com/jmzeng1314/gtex_BRCA METABRIC数据库挖掘,代码在:https://github.com/jmzeng1314/METABRIC
然后马上就有了3千多学习量,而且有学员给出来了图文并茂版本万字笔记,让我非常感动!
扫描下面二维码马上就可以学习起来啦,笔记需要至少半个小时来阅读哦!