TCGA的乳腺癌RNA-seq数据WGCNA分析示例
更新时间:2023-11-25 02:14:01 阅读量: 教育文库 文档下载
- tcga乳腺癌分型推荐度:
- 相关推荐
TCGA的乳腺癌RNA-seq数据WGCNA分析示例
WGCNA(Weighted Correlation Network analysis)是一个基于基因表达数据,构建基因共表达网络的方法。WGCNA和差异基因分析(DEG)的差异在于DEG主要分析样本和样本之间的差异,而WGCNA主要分析的是基因和基因之间的关系。WGCNA通过分析基因之间的关联关系,将基因区分为多个模块。而最后通过这些模块和样本表型之间的关联性分析,寻找特定表型的分子特征。网上例子千千万,但是大部分都是从文档翻译而来,要用起来还是有些费劲,要深入的可以移步这里:
http://www.stat.wisc.edu/~yandell/statgen/ucla/WGCNA/wgcna.html下面我将根据TCGA乳腺癌基因表达数据以及乳腺癌压型数据,一步一步的使用WGCNA来进行乳腺癌各个亚型共表达模块的挖掘#############数据准备#############首先我们需要下载TCGA 的乳腺癌的RNA-seq数据以及临床病理资料,我这里使用我们自己开发的TCGA简易下载工具进行下载首先下载RNA-Seq:下载之后共得到1215个样本表达数据进一步下载临床病理资料进一步点击 ClinicalFull按钮对病理资料进行提取得到ClinicalFull_matrix.txt文件,使用Excel打开ClinicalFull_matrix.txt文件可以看到共有301列信息,包含了各种用药,随访,预后等等信息,我们这里
选择乳腺癌ER、PR、HER2的信息,去除其他用不上的信息,然后选择了其中有明确ER、PR、HER2阳性阴性的样本,随机拿100个做例子吧样本筛选完了,现在轮到怎么获取这些样本的RNA-seq数据啦,前面下载了一千多个样本的RNA-seq,从里面找到这一百个样本的表达数据其实也是不需要变成的啦,看清楚咯首先打开RNA-Seq数据目录的fileID.tmp(用Excel打开),然后可以看到两列:将第二列复制,并且替换-01.gz为空使用Excel的vlookup命令将临床病理资料的那100个样本进行映射然后筛选非N/A的就得到了这一百个样本对于的RNA-seq数据信息进一步删除其他的样本,还原成fileID.tmp格式保存退出:然后使用TCGA简易小工具“合并文件”按钮就得到表达矩阵了,进一步使用ENSD_ID转换按钮就得到了基因表达矩阵和lncRNA表达矩阵了#################R代码实现
WGCNA##############setwd('E:/rawData/TCGA_DATA/TCGA-BRCA')
samples=read.csv('ClinicalFull_matrix.txt',sep = '\\t',row.names = 1)
dim(samples) #[1] 100 3
expro=read.csv('Merge_matrix.txt.cv.txt',sep = '\\t',row.names = 1)
dim(expro)
#[1] 24991 100数据读取完成,从上述结果可以看出100个样本,有24991个基因,这么多基因全部用来做WGCNA很显然没有必要,我们只要选择一些具有代表性的基因就够了,这里我们采取的方式是选择在100个样本中方差较大的那些基因(意味着在不同样本中变化较大)继续命令:m.vars=apply(expro,1,var)
expro.upper=expro[which(m.vars>quantile(m.vars, probs = seq(0, 1, 0.25))[4]),]##选择方差最大的前25%个基因作为后续WGCNA的输入数据集通过上述步骤拿到了6248个基因的表达谱作为WGCNA的输入数据集,进一步的我们需要看看样本之间的差异情况datExpr=as.data.frame(t(expro.upper)); gsg = goodSamplesGenes(datExpr, verbose = 3); gsg$allOK
sampleTree = hclust(dist(datExpr), method = 'average') plot(sampleTree, main = 'Sample clustering to detect outliers' , sub='', xlab='')从图中可看出大部分样本表现比较相近,而有两个离群样本,对后续的分析可能造成影响,我们需要将其去掉,共得到98个样本clust =
cutreeStatic(sampleTree, cutHeight = 80000, minSize = 10) table(clust) #clust
#0 1 #2 98
keepSamples = (clust==1) datExpr = datExpr[keepSamples, ] nGenes = ncol(datExpr) nSamples = nrow(datExpr)
save(datExpr, file = 'FPKM-01-dataInput.RData')得到最终的数据矩阵之后,我们需要确定软阈值,从代码中可以看出pickSoftThreshold很简单,就两个参数,其他默认即可powers = c(c(1:10), seq(from = 12, to=20, by=2))
sft = pickSoftThreshold(datExpr, powerVector = powers, verbose = 5) ##画图##
par(mfrow = c(1,2)); cex1 = 0.9;
plot(sft$fitIndices[,1], -sign(sft$fitIndices[,3])*sft$fitIndices[,2], xlab='Soft Threshold (power)',ylab='Scale Free Topology Model Fit,signed R^2',type='n',
main = paste('Scale independence'));
text(sft$fitIndices[,1], -sign(sft$fitIndices[,3])*sft$fitIndices[,2], labels=powers,cex=cex1,col='red'); abline(h=0.90,col='red')
plot(sft$fitIndices[,1], sft$fitIndices[,5],
xlab='Soft Threshold (power)',ylab='Mean Connectivity', type='n',
main = paste('Mean connectivity'))
text(sft$fitIndices[,1], sft$fitIndices[,5], labels=powers, cex=cex1,col='red')从图中可以看出这个软阈值选择7比较合适,选择软阈值7进行共表达模块挖掘pow=7
net = blockwiseModules(datExpr, power = pow, maxBlockSize = 7000,
TOMType = 'unsigned', minModuleSize = 30,
reassignThreshold = 0, mergeCutHeight = 0.25,
numericLabels = TRUE, pamRespectsDendro = FALSE,
saveTOMs = TRUE,
saveTOMFileBase = 'FPKM-TOM', verbose = 3) table(net$colors) # open a graphics window #sizeGrWindow(12, 9)
# Convert labels to colors for plotting
mergedColors = labels2colors(net$colors)
# Plot the dendrogram and the module colors underneath plotDendroAndColors(net$dendrograms[[1]], mergedColors[net$blockGenes[[1]]],
groupLabels = c('Module colors', 'GS.weight'), dendroLabels = FALSE, hang = 0.03, addGuide = TRUE, guideHang = 0.05)从图中可以看出大部分基因在灰色区域,灰色部分一般认为是没有模块接受的,从这里也可以看出其实咱们选择的这些基因并不是特别好那么做到这一步了基本上共表达模块做完了,每个颜色代表一个共表达模块,统计看看各个模块下的基因个数:那么得到模块之后下一步该做啥呢,或许很多人到这就不知道如何继续分析了这里就需要咱们利用这些模块搞事情了,举个例子如果你是整合的数据(整合lnc与gene),那么同时在某个模块中的基因和lncRNA咱们可以认为是 共表达的,这便是lnc-gene共表达关系的获得途径之一了,进一步你可以根据该模块的基因-lnc-基因之间的关系绘制出共表达网络今天咱们这里不讲这个,而是跟表型关联,咱们已经拿到了这98个样本的ER、PR、HER2阳性阴性信息,那么进一步的咱们可以看看哪些共表达模块跟ER、PR、HER2阴性最相关,代码如下:moduleLabelsAutomatic =
net$colors
moduleColorsAutomatic =
labels2colors(moduleLabelsAutomatic) moduleColorsFemale = moduleColorsAutomatic MEs0 = moduleEigengenes(datExpr, moduleColorsFemale)$eigengenes MEsFemale = orderMEs(MEs0)
samples=samples[match(row.names(datExpr),paste0(gsub('-','.',row.names(samples)),'.01')),]#匹配98个样本数据
trainDt=as.matrix(cbind(ifelse(samples[,1]=='Positive',0,1),#将阴性的样本标记为1
ifelse(samples[,2]=='Positive',0,1),#将阴性的样本标记为1
ifelse(samples[,3]=='Positive',0,1),#将阴性的样本标记为1
ifelse(samples[,1]=='Negative'&samples[,2]=='Negative'&samples[,3]=='Negative',1,0))#将三阴性的样本标记为1 )#得到一个表型的0-1矩阵
modTraitCor = cor(MEsFemale, trainDt, use = 'p') colnames(MEsFemale)
modTraitP = corPvalueStudent(modTraitCor, nSamples)
textMatrix = paste(signif(modTraitCor, 2), '\\n(', signif(modTraitP, 1), ')', sep = '') dim(textMatrix) = dim(modTraitCor)
labeledHeatmap(Matrix = modTraitCor, xLabels = colnames(trainDt), yLabels = names(MEsFemale),
ySymbols = colnames(modlues), colorLabels = FALSE, colors = greenWhiteRed(50),
textMatrix = textMatrix, setStdMargins = FALSE, cex.text = 0.5, zlim = c(-1,1)
, main = paste('Module-trait relationships'))最终找到几个共表达网络与三阴性表型最相关的模块。到了这一步其实还没完,咱们已经拿到了最相关的模块比如上图中的yellow模块,那么yellow模块中的基因,哪些基因最重要,我们该如何获取首先我们需要计算每个基因与模块的相关关系modTraitCor = cor(MEsFemale, datExpr, use = 'p') modTraitP = corPvalueStudent(modTraitCor, nSamples) corYellow=modTraitCor[which(row.names(modTraitCor)=='MEyellow'),]
head(corYellow[order(-corYellow)])
#RAD51AP1 HDAC2 FOXM1 NCAPD2 TPI1 NOP2
#0.9249354 0.9080872 0.8991733 0.8872607 0.8717050
0.8708449从上诉结果中可以看出RAD51AP1,HDAC2两个基因与yellow相关性最好,也就是说这两个基因是yellow模块的hub-gene进一步的咱们导出yellow模块的基因共表达关系使用cytoscape进行可视化,代码如下:TOM = TOMsimilarityFromExpr(datExpr, power = pow); probes = names(datExpr) mc='yellow'
mcInds=which(match(moduleColorsAutomatic, gsub('^ME','',mc))==1) modProbes=probes[mcInds] modTOM = TOM[mcInds, mcInds];
dimnames(modTOM) = list(modProbes, modProbes) cyt = exportNetworkToCytoscape(modTOM, edgeFile = paste('edges-', mc, '.txt', sep=''),
nodeFile = paste('nodes-', mc, '.txt', sep=''),
weighted = TRUE, threshold = median(modTOM),
nodeNames =
modProbes,
#altNodeNames = modGenes,
nodeAttr =
moduleColorsAutomatic[mcInds]);到此基本结束了,敲这么多字。。。。。。好累。。。。。
正在阅读:
TCGA的乳腺癌RNA-seq数据WGCNA分析示例11-25
新版PEP小学英语四年级下册 第四单元 unit 4 At a farm PartB let&39;s learn07-23
介绍一件物品作文400字06-24
九年级化学上册第一单元走进化学世界《课题3走进化学实验室》教06-15
2006感动中国人物02-18
甲级单位编制眼科超声白内障乳化仪项目可行性报告(立项可研+贷款+用地+2013案例)设计方案01-14
第三章 植物的光合作用11-09
蛇鳄龟养殖可行性研究报告01-28
2007年浙江高考普通高等学校招生全国统一考试(理科数学)理及答03-22
0的假想作文800字07-05
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 乳腺癌
- 示例
- 分析
- 数据
- WGCNA
- TCGA
- RNA
- seq
- 西北工业大学 硕士复试考试大纲974
- 模态分析实验报告
- 物流管理实习报告
- 20.如何帮助学生懂得珍惜生命 - 心理辅导
- 内部控制审计底稿53 - 前后任注册会计师沟通函
- 数学四年级下小数乘除法应用题 -
- 小学语文阅读题精选50篇(含答案)
- 学校CIS - 图文
- 阜阳市机织服装行业企业名录2018版620家 - 图文
- 第五单元第一课 我是中国公民
- 园林工程复习资料
- 后进生的特点与教育对策
- 高电压技术复习要点
- 2019-2020学年八年级政治下册 第七课 拥有财产的权利知识点强化 新人教版
- 建筑工程图纸管理办法
- 2.京建发〔2011〕65号关于落实本市住房限购政策有关问题的通知110216
- 第三届药苑论坛学生报告题目汇总
- 听证报告
- 逢各流年主事十神的吉凶
- 人教版高中物理必修二检测:课时训练18实验探究功与速度变化的关系 Word版含答案