MetaboAnalyst是由加拿大McGill大学的Xia-lab开发的代谢组学分析平台,提供了完整的代谢组学数据分析流程以及多组学联合分析功能,点点鼠标就可以进行代谢组学数据分析,可谓神器。


MetaboAnalystwww.metaboanalyst.ca

代谢分析的VIP R语言 代谢组学数据处理软件_代谢分析的VIP R语言


整个平台的数据处理基于R语言,并且是开源的,可以在自己的PC上用完成数据分析。

Github xia-lab/MetaboAnalystRgithub.com

但是在本地使用R,只能以命令行方式,比起网站来说易用程度差了很多。


代谢分析的VIP R语言 代谢组学数据处理软件_ubuntu_02


但是网页版的MetaboAnalyst由于服务器在国外,有时候速度很慢,保存数据结果也不甚方便。其实MetaboAnalyst是可以在本地PC上运行的,支持Linux和Mac OSX平台,但是不支持Windwos平台。xia-lab提供了简单的本地安装指南(真的是只有几句话),但是没有具体的实现步骤。Github上提供的基于Docker的解决方案很久没有更新了,已经不适合现在的情况。

MetaboAnalyst 本地安装指南

MetaboAnalyst_Docker方案

经过几次踩坑和摸索,终于成功地在ubuntu上实现了本地部署MetaboAnalyst,响应速度比起源站快了很多,可以畅快的使用MetaboAnalyst的所有功能,计算结果和图片再也不会刷不出来了。


代谢分析的VIP R语言 代谢组学数据处理软件_devtools安装_03

本地运行的MetaboAnalyst

0. 说在前面

这是一篇针对如何本地部署MetaboAnalyst的实践总结。历经从Docker,WSL到Hyper-V,从ubuntu 16, R3.5到ubuntu 18, R4.0,tomcat, glassfish到Payara,整合了xia-lab的两个Github和MetaboAnalyst网站的信息和指南,折腾了两三天终于成功。

所以这不是一篇零门槛的Step by Step。读者需要有一些虚拟机,Linux和网络应用的基本知识,例如:

Hyper-V虚拟机的配置,在虚拟机上安装ubuntu

Linux的一些基本操作,基本的文件操作命令,权限,软件源修改等

R语言的一些基本命令等

电脑配置要求

CPU:推荐4核心以上,主频越高越好,和运算速度直接相关。

内存:需要运行桌面版ubuntu推荐16G内存,Server版8G内存。

硬盘:虚拟机硬盘安装完桌面版ubuntu和所有软件以后不到15G,Server版应该更小,按需分配大小即可。

要实现MetaboAnalyst的本地部署,主要分三个步骤:

1. 在Hyper-V上安装ubuntu 20.04 LTS

Linux的发行版很多,这里选择的是最大众的ubuntu 20.04 LTS桌面版。其实Linux平台只是作为一个服务器使用,用没有图形界面的版本就可以,但是如果你不熟悉Linux下的操作,用带有图形桌面的版本会轻松不少。

安装时可以选择安装基本软件还是全部软件,包括office什么的,选基本就行。

ubunutu 20.04 LTS桌面版下载地址mirrors.aliyun.com

如果因为大多数时间还是需要Windwos平台下工作,在Windows自带的Hyper-V虚拟机上安装一个Linux系统是一个比较方便快速的方法。其他虚拟机平台也可以,当然如果是本地安装Linux肯定没问题。

本人曾尝试了在WLS上安装ubuntu,中间过程有不少恼人的问题,而且最后只能看到网站页面而无法实际的数据处理,请大家不要再入WLS的坑了。

关于具体如何在Hyper-V上安装ubuntu的过程,网上有数不胜数的教程,这里不再赘述。只要安装好最基本的ubuntu,设置好root密码,可以进入到桌面即可

2. 安装ubuntu系统基础软件包和MetaboAnalystR软件包

以下全部是已root身份进行操作,为了方便起见可以直接转到root下运行,避免每次都要sudo输密码


sudo -i


建议先将ubuntu软件源修改到国内镜像,例如清华大学,阿里,网易等,具体步骤请搜索网络教程

2.1 安装ubuntu系统基础包

更新一下系统


sudo apt-get update
sudo apt-get upgrade


需要安装的包为:libcairo2-dev, libnetcdf-dev, libxml2-dev, libxt-dev 和 libssl-dev。此处xia-lab指南中只列了libxml2,实际需要libxml2-dev,否则后面编译R包会失败。


sudo apt-get install libcairo2-dev
sudo apt-get install libnetcdf-dev
sudo apt-get install libxml2-dev
sudo apt-get install libxt-dev
sudo apt-get install libssl-dev


添加CRAN镜像,源码也需要,这里使用的是R 4.0版。


deb http://mirrors.tongji.edu.cn/CRAN/bin/linux/ubuntu focal-cran40/
deb-src http://mirrors.tongji.edu.cn/CRAN/bin/linux/ubuntu focal-cran40/


添加了CRAN以后需要添加一个密钥,如果是WSL下只能手动下载安装,又是一个坑。

为CRAN添加密钥

2.2 安装R语言基础包


sudo apt-get install r-base


进入R环境,因为后面有非常多的源码包需要安装和编译,建议用国内镜像源保证下载稳定

使用函数chooseCRANmirror(),在弹出窗口选择。


chooseCRANmirror()


或者用命令行


options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))


bioconductor的镜像源只有清华的,一定要加上,bioconductor主站很慢,中间断了就要重来。。。


options(BioC_mirror="https://mirrors.tuna.tsinghua.edu.cn/bioconductor")


设置好以后开始安装R环境依赖包,推荐按照xia-lab提供的option1的方式进行。

Option 1 Enter the R function (metanr_packages) and then use the function. A printed message will appear informing you whether or not any R packages were installed. Function to download packages:


metanr_packages <- function(){

  metr_pkgs <- c("impute", "pcaMethods", "globaltest", "GlobalAncova", "Rgraphviz", "preprocessCore", "genefilter", "SSPA", "sva", "limma", "KEGGgraph", "siggenes","BiocParallel", "MSnbase", "multtest","RBGL","edgeR","fgsea","devtools","crmn")
  
  list_installed <- installed.packages()
  
  new_pkgs <- subset(metr_pkgs, !(metr_pkgs %in% list_installed[, "Package"]))
  
  if(length(new_pkgs)!=0){
    
    if (!requireNamespace("BiocManager", quietly = TRUE))
        install.packages("BiocManager")
    BiocManager::install(new_pkgs)
    print(c(new_pkgs, " packages added..."))
  }
  
  if((length(new_pkgs)<1)){
    print("No new packages added...")
  }
}


再执行


metanr_packages()


开始下载并编译MetaboAnalystR需要的基础依赖包,内容比较多,时间大约半个小时,取决于网速和电脑性能。

如果使用WSL会出现文件夹权限问题而导致无法正确安装,坑!

执行完毕以后可以用warnings()看一下是不是哪些包有问题,我的经历是在ubuntu20.04 LTS + R4.0环境下,只要ubuntu的依赖包安装好,R里面的包都是可以一次正常编译通过的。ubuntu 16和R 3.5均会有一些问题需要手动干预。

2.3 MetaboAnalystR包的安装

R语言的基本依赖包安装好以后才真正来到MetaboAnalystR包的安装

推荐采用xia-lab Option A进行安装,Step1是必须步骤,安装devtools包并加载

# Step 1: Install devtools


install.packages("devtools")

library(devtools)


# Step 2: Install MetaboAnalystR with documentation

从MetaboAnalyst的Github安装,国内访问GitHub有不稳定的现象,多试几次,或者fq。


devtools::install_github("xia-lab/MetaboAnalystR", build = TRUE, build_vignettes = TRUE, build_manual =T)


又是一大串的包和依赖包的编译安装,时间可能比前面还要长,耐心。仍然是需要在执行完毕以后可以用warnings()看一下是不是哪些包有问题。

一切顺利的话到这里,MetaboAnalystR的实体功能部分已经安装好了。加载MetaboAnalystR以后的显示如下图,也就是说你可以在本地运行以R命令行的方式MetaboAnalyst的所有功能了。


代谢分析的VIP R语言 代谢组学数据处理软件_代谢分析的VIP R语言_04


接下来需要更新Rserve,xia-lab提示如果使用CRAN源中的Rserve包会出现 "long vectors not supported" 的问题。经过测试的确是会有此错误提示,所以一定需要从RForge源更新Rserve


install.packages('Rserve',,"http://rforge.net/",type="source")


退出R,启动Rserve


sudo R CMD Rserve


出现如下红框中信息,说明Rserve启动成功,请不要关闭这个命令行窗口


代谢分析的VIP R语言 代谢组学数据处理软件_ubuntu安装tomcat_05


3. 部署MetaboAnalyst网页端

在安装完MetaboAnalystR包以后,数据分析的功能已经有了,网页上的点选转换成R命令传给Rserve运行,结果再传回网站展示出来,现在只需要建好网站并连接上R语言提供的Rserve。

MetaboAnalyst的网站是基于Java,我们需要安装Java JDK和支持Java EE的服务器

JDK可以直接从ubuntu软件源安装


sudo apt-get install openjdk-13-jdk


安装完以后运行


java -version


如果显示如下图,那就安装好了


代谢分析的VIP R语言 代谢组学数据处理软件_ubuntu_06


接下来还需要一个Java EE服务器,payara micro无需安装,而且很小巧,一条命令就能启动部署。

Payara Platform Community Editionwww.payara.fish

代谢分析的VIP R语言 代谢组学数据处理软件_devtools安装_07


代谢分析的VIP R语言 代谢组学数据处理软件_ubuntu安装tomcat_08

下载这个micro版

下载以后可以放到 /opt目录里,再建立一个子目录,比如叫deoployments

xia-lab提供了MetaboAnalyst整个网站的资源包,但是在Dropbox平台,墙内无法访问

https://www.dropbox.com/s/9xo4yy3gzqsvyj9/MetaboAnalyst-4.93.war?dl=0www.dropbox.com


下载以后放到之前建立的 /opt/deployments文件夹中,把文件名中版本号去掉,变成“MetaboAnalyst.war”,不用解压。

如果你真的看到这里,并且已经正确执行了前面所有的步骤,然而无法下载这个文件,请联系我索取。

终于到了见证奇迹的时刻!再开一个root命令行窗口,运行payara并让其部署/opt/deployments目录下的MetaboAnalyst.war,将他变成可以访问的网站


java -jar /opt/payara-micro-5.2020.2.jar --deploymentDir /opt/deployments


一连串的代码闪过,最终出现了一个地址,讲红框中的部分替换为localhost


代谢分析的VIP R语言 代谢组学数据处理软件_ubuntu安装tomcat_09


打开概虚拟机的浏览器输入:


http://localhost:8080/MetaboAnalyst


看一下之前没有关闭的Rserve窗口,应该有如下显示,说明Rserve和Java网页的通讯正常,Rserve已经开始编译需要的R命令了


代谢分析的VIP R语言 代谢组学数据处理软件_ubuntu安装tomcat_10


Rserve编译完以后,MetaboAnalyst的首页就会显示出来,这可能需要几分钟时间


代谢分析的VIP R语言 代谢组学数据处理软件_devtools安装_11


成功!!!

4. 后续

4.1 从Windows主机浏览器访问虚拟机的MetaboAnalyst

在虚拟机里的浏览器使用MetaboAnalyst总是不方便,因为Rserve和Java EE的服务已经启动了,从哪里访问网页都是可以的,只要知道虚拟机的ip地址就可以从Windows主机访问。具体可以参阅各种教程

4.2 虚拟机重启怎样重启服务

虚拟机重启以后只需要root执行两条命令,保持两个命令行窗口打开即可。

如果需要日常使用,还可以配置虚拟机随主机自动启动,以及Rserve和Payara服务随虚拟机自动启动,这样打开电脑就可以直接使用MetaboAnalyst了。具体可以参阅各种教程


sudo R CMD Rserve
java -jar /opt/payara-micro-5.2020.2.jar --deploymentDir /opt/deployments