前言

Immugent在之前的推文:整合多组学数据进行分型之MOVICS中已经介绍了MOVICS的基本功能,从本篇推文开始,小编将会以一系列推文的形式对这个R包进行实操演示。

为了方便有兴趣的小伙伴进行复现,此系列推文都将以MOVICS包内置数据进行演示,大家可以直接将代码复制黏贴进Rstudio中,点点点即可!

主要函数

GET Module是MOVICS的第一个模块,主要功能是结合多组学数据对样本进行分亚型。下面是这个模块主要用到的函数,Immugent考虑到自己英文水平有限,怕译本走了味就没有对其进行翻译。

1.getElites(): get elites which are those features that pass the filtering procedure and are used for analyses

2.getClustNum(): get optimal cluster number by calculating clustering prediction index (CPI) and Gap-statistics get%algorithm_name%(): get results from one specific multi-omics integrative clustering algorithm with detailed parameters

3.getMOIC(): get a list of results from multiple multi-omics integrative clustering algorithm with parameters by default getConsensusMOIC(): get a consensus matrix that indicates the clustering robustness across different clustering algorithms and generate a consensus heatmap

4.getSilhouette(): get quantification of sample similarity using silhoutte score approach

5。getStdiz(): get a standardized data for generating comprehensive multi-omics heatmap

6.getMoHeatmap(): get a comprehensive multi-omics heatmap based on clustering results

其中的每一个函数都自带绘图功能,而且可以通过调整多项参数达到个性化分析的目的,最后一个是专门对亚型分子特征进行展示的热图,配色高达上可直接放进文章中。


主要流程

下面开始这个模块的代码展示:

#安装包
if (!requireNamespace("BiocManager", quietly = TRUE))install.packages("BiocManager")
if (!require("devtools")) install.packages("devtools")
devtools::install_github("xlucpu/MOVICS")#加载数据
library("MOVICS")
# load example data of breast cancer
load(system.file("extdata", "brca.tcga.RData", package = "MOVICS", mustWork = TRUE))
load(system.file("extdata", "brca.yau.RData",  package = "MOVICS", mustWork = TRUE))# print name of example data
names(brca.tcga)
#> [1] "mRNA.expr"   "lncRNA.expr" "meth.beta"   "mut.status"  "count"
#> [6] "fpkm"        "maf"         "segment"     "clin.info"
names(brca.yau)
#> [1] "mRNA.expr" "clin.info"# extract multi-omics data
mo.data   <- brca.tcga[1:4]# extract raw count data for downstream analyses
count     <- brca.tcga$count# extract fpkm data for downstream analyses
fpkm      <- brca.tcga$fpkm# extract maf for downstream analysis
maf       <- brca.tcga$maf# extract segmented copy number for downstream analyses
segment   <- brca.tcga$segment# extract survival information
surv.info <- brca.tcga$clin.info
# identify optimal clustering number (may take a while)
optk.brca <- getClustNum(data        = mo.data,is.binary   = c(F,F,F,T), # note: the 4th data is somatic mutation which is a binary matrixtry.N.clust = 2:8, # try cluster number from 2 to 8fig.name    = "CLUSTER NUMBER OF TCGA-BRCA")

# perform iClusterBayes (may take a while)
iClusterBayes.res <- getiClusterBayes(data        = mo.data,N.clust     = 5,type        = c("gaussian","gaussian","gaussian","binomial"),n.burnin    = 1800,n.draw      = 1200,prior.gamma = c(0.5, 0.5, 0.5, 0.5),sdev        = 0.05,thin        = 3)

为了和PAM50保持一致,和从图中观察所知,取5个亚群较为合适。

iClusterBayes.res <- getMOIC(data        = mo.data,N.clust     = 5,methodslist = "iClusterBayes", # specify only ONE algorithm heretype        = c("gaussian","gaussian","gaussian","binomial"), # data type corresponding to the listn.burnin    = 1800,n.draw      = 1200,prior.gamma = c(0.5, 0.5, 0.5, 0.5),sdev        = 0.05,thin        = 3)
cmoic.brca <- getConsensusMOIC(moic.res.list = moic.res.list,fig.name      = "CONSENSUS HEATMAP",distance      = "euclidean",linkage       = "average")

getSilhouette(sil      = cmoic.brca$sil, # a sil object returned by getConsensusMOIC()fig.path = getwd(),fig.name = "SILHOUETTE",height   = 5.5,width    = 5)

还可以画个热图。

# convert beta value to M value for stronger signal
indata <- mo.data
indata$meth.beta <- log2(indata$meth.beta / (1 - indata$meth.beta))# data normalization for heatmap
plotdata <- getStdiz(data       = indata,halfwidth  = c(2,2,2,NA), # no truncation for mutationcenterFlag = c(T,T,T,F), # no center for mutationscaleFlag  = c(T,T,T,F)) # no scale for mutationfeat   <- iClusterBayes.res$feat.res
feat1  <- feat[which(feat$dataset == "mRNA.expr"),][1:10,"feature"]
feat2  <- feat[which(feat$dataset == "lncRNA.expr"),][1:10,"feature"]
feat3  <- feat[which(feat$dataset == "meth.beta"),][1:10,"feature"]
feat4  <- feat[which(feat$dataset == "mut.status"),][1:10,"feature"]
annRow <- list(feat1, feat2, feat3, feat4)# set color for each omics data
# if no color list specified all subheatmaps will be unified to green and red color pattern
mRNA.col   <- c("#00FF00", "#008000", "#000000", "#800000", "#FF0000")
lncRNA.col <- c("#6699CC", "white"  , "#FF3C38")
meth.col   <- c("#0074FE", "#96EBF9", "#FEE900", "#F00003")
mut.col    <- c("grey90" , "black")
col.list   <- list(mRNA.col, lncRNA.col, meth.col, mut.col)# comprehensive heatmap (may take a while)
getMoHeatmap(data          = plotdata,row.title     = c("mRNA","lncRNA","Methylation","Mutation"),is.binary     = c(F,F,F,T), # the 4th data is mutation which is binarylegend.name   = c("mRNA.FPKM","lncRNA.FPKM","M value","Mutated"),clust.res     = iClusterBayes.res$clust.res, # cluster resultsclust.dend    = NULL, # no dendrogramshow.rownames = c(F,F,F,F), # specify for each omics datashow.colnames = FALSE, # show no sample namesannRow        = annRow, # mark selected featurescolor         = col.list,annCol        = NULL, # no annotation for samplesannColors     = NULL, # no annotation colorwidth         = 10, # width of each subheatmapheight        = 5, # height of each subheatmapfig.name      = "COMPREHENSIVE HEATMAP OF ICLUSTERBAYES")

这排版,这配色,可以直接放在文章中使用。


总结

MOVICS第一个模块就是对多组学数据进行整合,通过联合多种统计算法揭示它们之间的关联,并总结出各组学的特征对样本进行分亚型。

在这个模块中,你必须给MOVICS提供至少两个组学的数据,而且组学之间是独立的,要具体根据研究的科学问题来输入正确的数据。分完亚型后,我们就需要揭示各亚群之间的分子特征差异,Immugent将会在下一个推文中进行讲解。


MOVICS系列教程(一) GET Module相关推荐

  1. MOVICS系列教程(二) COMP Module

    前言 今天我们来演示MOVICS包的第二个模块,在上一篇推文中:MOVICS系列教程(一) GET Module分析后,我们得到了乳腺癌的5个亚型,那么此模块就是为了对这5种亚型间的分子特征进行展示. ...

  2. MOVICS系列教程(三) RUN Module

    前言 通过学习前面几个模块,我们已经发现了基于多组学数据找出的乳腺癌各亚型间具有非常显著的分子差异,而我们如果想深入挖掘其背后机制,就需要找出差异表达的基因是哪些,以及这些基因具有什么样的功能.而MO ...

  3. Python编程系列教程第12讲——属性和方法

    视频地址:http://v.youku.com/v_show/id_XNTgyOTg4NjQ4.html 普及网络安全知识,推动信息技术发展. 为祖国的网络安全撑起一片蓝天,为网络安全爱好者构建一方家 ...

  4. linux 负数_linux内核提权系列教程(2):任意地址读写到提权的4种方法

    一.漏洞代码分析 代码见arbitrary.h. 1.功能函数介绍 功能 输入结构名 输入结构 功能 ARBITRARY_RW_INIT init_args size 初始化全局对象,存于g_mem_ ...

  5. n 如何编写html,webpack4系列教程,如何编写plugin处理html代码逻辑?

    本博客不欢迎:各种镜像采集行为,请尊重知识产权法律法规.大家都是程序员,不要闹得不开心. 在上一篇文章中,利用不同位置的publicPath,对html中的cdn地址,进行了处理.但是,遗留了一个小问 ...

  6. 以太坊构建DApps系列教程(六):使用定制代币进行投票

    在本系列关于使用以太坊构建DApps教程的第5部分中,我们讨论了如何为Story添加内容,查看如何添加参与者从DAO购买代币的功能以及在Story中添加提交内容.现在是编写DAO最终形式的时候了:投票 ...

  7. c语言-命令行选项_EWSTM8系列教程06_工程节点选项配置(一)

    说明: 本文原创作者『strongerHuang』 首发于微信公众号『嵌入式专栏』,同时也更新在我的个人网站:EmbeddedDevelop 该教程基于EWSTM8,大部分内容也适用于IAR其它产品( ...

  8. 微信程序开发系列教程(二)微信订阅号+人工智能问答服务

    我的前一篇文章**微信程序开发系列教程(一)**开发环境搭建 已经介绍了微信服务器的开发环境搭建.本文作为开发系列的第二篇文章,介绍如何给您的微信订阅号开发一个最简单的问答服务,非常好玩. 这个系列的 ...

  9. Spring Security系列教程03--创建SpringSecurity项目

    前言 在上一章节中,一一哥 已经带大家认识了Spring Security,对其基本概念已有所了解,但是作为一个合格的程序员,最关键的肯定还是得动起手来,所以从本篇文章开始,我就带大家搭建第一个Spr ...

最新文章

  1. 6月8号=》105页-110页
  2. Gitee Pages 静态网页托管服务
  3. mysql if begin end_MySQL存储过程例子,不能在if else里面用begin end否则会报错Erro_MySQL...
  4. java 字符过滤器_Java Web---登录验证和字符编码过滤器
  5. 网络协议文档阅读笔记-Introduction to DTLS(Datagram Transport Layer Security)
  6. 电商海报怎么设计,先告诉复古海报要设计要点(附模板)
  7. SqlServer驱动包不同,取出数据的编码居然不同
  8. Oralce/MySQL 默认隔离级别对比
  9. 汪文君 java_汪文君JAVA多线程编程实战 视频教程 下载
  10. 如何判断绝缘接头质量的好坏?
  11. js 经纬度坐标转换
  12. 中国(成都)区块链博物馆为区块链正名
  13. 指纹测试天赋测试软件,指纹也能测天赋 10分钟出结果(图)
  14. 粗粒度和细粒度的区别
  15. 浅谈USB设备的VID和PID
  16. CSP-J2022复赛
  17. online learning的介绍
  18. [乡土民间故事_徐苟三传奇]第四十回_砍棉梗姚财主认输
  19. 34.7. plot
  20. Android 代码强制启动GPU渲染

热门文章

  1. Semantic Segmentation -- (DeepLabv3)Rethinking Atrous Convolution for Semantic Image Segmentation论文解
  2. 求助在微信上班的工程师同僚!
  3. 使用css做一个右向的三角箭头
  4. 软考高级系统架构设计师系列之:详细整理高级系统架构设计师核心知识点
  5. 跨专业保研上交计算机,新闻学到经济学,跨专业保研血泪史
  6. FXS(le88266)工作原理介绍
  7. VMware云管平台运维管理
  8. cordova 安装ssl证书_android webview https 证书
  9. JZ2440分区表梳理
  10. 喵的Unity游戏开发之路 - 互动环境(有影响的运动)