MetaboAnalyst is a great tool for analysis of metabolomics data. Here are some tips how to install MetaboAnalyst locally on a linux workstation. Such installation could be tailored to meet individual requirements (default setting, fonts, etc.).
Starting point is a runnig installation of Ubuntu 18.04.3 LTS.
Setting up the environment
Update your system and install additional packages. Set the workstation to be visible only within the local network so security won’t be an issue.
# Add repository for R 3.6 in Ubuntu 18.04 sudo add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/' sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9 sudo apt-get update sudo apt-get upgrade sudo apt-get install software-properties-common wget unzip libnetcdf-dev graphviz libxml2-dev libcairo2-dev default-jdk r-base-dev libssl-dev # lib-ssl is needed for R-serve download sudo apt-get install r-cran-rserve
Setting up R
Install all R-packages via Bioconductor
# Run R as user R
if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager") BiocManager::install() BiocManager::install(c("Rserve", "ellipse", "scatterplot3d", "Cairo", "randomForest", "caTools", "e1071", "som", "impute", "pcaMethods", "RJSONIO", "ROCR", "globaltest", "GlobalAncova", "Rgraphviz", "preprocessCore", "genefilter", "pheatmap", "SSPA", "sva", "Rcpp", "pROC", "data.table", "limma", "car", "fitdistrplus", "lars", "Hmisc", "magrittr", "methods", "xtable", "pls", "caret", "lattice", "igraph", "gplots", "KEGGgraph", "reshape", "RColorBrewer", "tibble", "siggenes", "plotly", "xcms", "CAMERA", "fgsea", "MSnbase", "BiocParallel", "metap", "reshape2", "scales"))
Update all installed packages, if needed, using parallel processes.
setRepositories() options(Ncpus = 8) install.packages( lib = lib <- .libPaths()[1], pkgs = as.data.frame(installed.packages(lib), stringsAsFactors=FALSE)$Package, type = 'source' )
Setting Java
MetaboAnalyst works well with Java 8.
sudo apt update sudo apt install openjdk-8-jdk openjdk-8-jre java -version
If needed, select the appropriate one.
sudo update-alternatives --config java There are 2 choices for the alternative java (providing /usr/bin/java). Selection Path Priority Status ------------------------------------------------------------ 0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 auto mode 1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manual mode * 2 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manual mode Press to keep the current choice[*], or type selection number:
# Set Java environment JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java PATH=$PATH:$HOME/bin:$JAVA_HOME/bin export JAVA_HOME export JRE_HOME export PATH
Install GlassFish
Create a dedicated account for the GlassFish server.
#Add a new user called glassfish sudo adduser --home /home/glassfish --system --shell /bin/bash glassfish #add a new group for glassfish administration sudo groupadd glassfishadm #add your users that shall be Glassfish adminstrators sudo usermod -a -G glassfishadm $myAdminUser #in case you want to delete a group some time later (ignore warnings): #delgroup glassfishadm
Get the latest GlassFish from Eclipse foundation. Or older one from Oracle.
cd /home/glassfish/ wget https://www.eclipse.org/downloads/download.php?file=/glassfish/glassfish-5.1.0.zip # sudo wget http://download.oracle.com/glassfish/5.0.1/nightly/latest-glassfish.zip unzip glassfish-5.1.0.zip -d /home/glassfish
Fix GUI deploy error (optional)
# update jar file # jar uf jar-file input-file(s) in console-common.jar!applications/uploadFrame.jsf change <sun:form id="form"> to <sun:form id="form" enctype="multipart/form-data">
Set the GlassFish Service
sudo nano /etc/systemd/system/glassfish.service
[Unit] Description = GlassFish Server v5.1 local MetaboAnalyst After = syslog.target network.target [Service] ExecStart=/home/glassfish/glassfish5/bin/asadmin start-domain ExecReload=/home/glassfish/glassfish5/bin/asadmin restart-domain ExecStop=/home/glassfish/glassfish5/bin/asadmin stop-domain Type = forking [Install] WantedBy = multi-user.target
# Reload services sudo systemctl daemon-reload # Start GlassFish sudo systemctl start glassfish # Get service status sudo systemctl status glassfish # Add to path export PATH=/home/glassfish/glassfish5/bin:$PATH # Secure GlassFish console and GUI, set password asadmin change-admin-password # Enable the feature asadmin enable-secure-admin # Restart Glassfish sudo systemctl restart glassfish
Webserver address: http://<server-ip-address>:8080
GUI admin console address: http://<server-ip-address>:4848
Deploy MetaboAnalyst
cd /home/glassfish # https://www.metaboanalyst.ca/MetaboAnalyst/faces/docs/Resources.xhtml wget https://www.dropbox.com/s/9xo4yy3gzqsvyj9/MetaboAnalyst-4.93.war?dl=1 cd /home/glassfish/glassfish5/bin asadmin deploy /home/glassfish/MetaboAnalyst-4.93.war # or use web GUI # Run R-serve as glassfish user R CMD Rserve
MetaboAnalyst will be running at http://<server-ip-address>:8080/MetaboAnalyst-4.93/. Change the path using GUI if needed.
Final configuration
- Rserve v1.7-3
- R version 3.6.1 (2019-07-05) — „Action of the Toes“
- Bioconductor version 3.9 (BiocManager 1.30.4)
- openjdk version „1.8.0_222“
- OpenJDK Runtime Environment (build 1.8.0_222-8u222-b10-1ubuntu1~18.04.1-b10)
- OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)
- GlassFish 5.1, Ubuntu 18.04.3 LTS