To Print the Guide
You can create a PDF of the guide. For instructions refer to the tip Printing multiple pages. If you want to print a single page, refer to Printing a page.
This document provides instructions for installing caIntegrator Bioconductor.
Topics in this document include:
Entering Commands
Text in this document formatted as monoface bold type indicates Unix or R commands you should type, as indicated, at the command line.
Overview
caIntegrator provides the capability to perform segmentation and copy number analysis using either caDNAcopy or caCGHcall. Both of these tools are part of the Bioconductor suite and are implemented as caGrid services wrapping the R Bioconductor code. You can install one or both of these tools either on a separate server from caIntegrator or on the same server.
Warning
The R processing associated with caDNAcopy and/or caCGHcall can be very CPU and memory intensive.
The current installation instructions only support installation on Linux platforms. Recommended configurations are given at the bottom.
Prerequisites
The following software packages must be installed prior to beginning the instructions:
- Java Development Kit (JDK) 1.6.x
- Ensure that JAVA_HOME is defined, preferably in the user or system profile
- Ensure that $JAVA_HOME/bin is in PATH
- Ant 1.7.x
- Ensure that ANT_HOME is defined, preferably in the user or system .profile
- Ensure that $ANT_HOME/bin is in PATH
- Tomcat 5.5.x
- Instructions assume Tomcat is configured to run on port 8080. If you are using another port, substitute it into later instructions
- Ensure that CATALINA_HOME is set
- Tomcat may be autostarted or started as part of the Bioconductor launch script (provided later in these instructions)
Install Dependent Packages
The caIntegrator Bioconductor installation also depends on several other packages that may not be installed on your system. Summaries of these packages and directions for installing them follow.
Globus 4.0.3
Installs at /usr/local/ws-core-4.0.3
- Download
- Unpack tar file into /usr/local/ws-core.4.0.3
- Ensure that GLOBUS_LOCATION is set to /usr/local/ws-core-4.0.3
Apache Axis 1.4
Installs files into $CATALINA_HOME
- Download
- Unpack tar file in home directory.
- Move axis-1_4/webapps/axis directory to $CATALINA_HOME/webapps.
- Stop and restart Tomcat ($CATALINA_HOME/bin/shutdown.sh; $CATALINA_HOME/bin/startup.sh).
- Test your Axis installation by visiting http://YOUR-HOSTNAME:8080/axis/happyaxis.jsp (be sure to substitute the name of your machine in the URL).
ActiveMQ 4.0.2
Installs at /usr/local/incubator-activemq-4.0.2
- Download
- Unpack tar file into /usr/local/incubator-activemq-4.0.2
- Ensure that JMS_HOME is set to /usr/local/incubator-activemq-4.0.2
- Edit file $JMS_HOME/conf/activemq.xml
- Change line that reads "
<broker useJmx="true">
" to "<broker useJmx="true" persistent="false">
" - Replace line that reads "
<transportConnector name="default" uri="tcp://localhost:61616" discoveryUri="multicast://default"/>
" with "<transportConnector name="default" uri="tcp://localhost:61616"/>
". - Comment out or remove line that reads "
<networkConnector name="default" uri="multicast://default"/>
".
- Change line that reads "
- Make main binary executable.
chmod 755 $JMS_HOME/bin/activemq
ActiveMQ can be autostarted or started as part of the Bioconductor launch script (provided later in these instructions)
R 2.9.0
Installs at /usr/local/R-2.9.0
- Download
- Unpack tar file in home directory
- Configure, build, and install
cd R-2.9.0
./configure --enable-R-shlib --with-readline=no --with-x=no
- Fix src/modules/Makefile as follows (fix is from http://tolstoy.newcastle.edu.au/R/e6/devel/09/04/1434.html)
- Change lines that read:
for d in "$(R_MODULES)"; do \ (cd $${d} && $(MAKE) $@) || exit 1; \ done
- To read:
@if test "$(R_MODULES)" != ""; then \ for d in "$(R_MODULES)"; do \ (cd $${d} && $(MAKE) $@) || exit 1; \ done; \ fi
Warning
Be very careful of tabs in the lines, one tab to start each line, indent beyond that with spaces. Be careful to have no spaces at the end of the lines too. Use rest of Makefile as an example.
- Change lines that read:
make
make install prefix=/usr/local/R-2.9.0
Dependent R packages (RCurl, SJava, RWebServices, RUnit, DNAcopy)
Installs files into $R_HOME
$R_HOME/bin/R
- At the R prompts:
source("http://www.bioconductor.org/biocLite.R")
biocLite()
biocLite("RCurl")
biocLite("SJava")
biocLite("RWebServices")
biocLite("RUnit")
biocLite("DNAcopy")
biocLite("CGHcall")
q()
- Build SJava links missed by install:
cd $R_HOME/lib64/R/library/SJava/libs
ln -s SJava.so libRInterpreter.so
ln -s SJava.so libSJava.so
- Build and test SJava/RWebServices installation, following these steps.
$R_HOME/bin/R
- At the R prompts:
library(RWebServices)
unpackAntScript("/tmp/rservices")
q()
cd /tmp/rservices
ant recompile-sjava
ant basic-prop
- Look for any errors.
ant rservices-test
- This step is optional.
Install caDNAcopy
This section installs the caDNAcopy grid in three pieces: base code, R web service, and caGrid service. You may skip this section if you are only using caCGHcall.
caDNAcopy Base Code
Installs into R_HOME
cd ~
- This is your home directory
svn checkout
https://ncisvn.nci.nih.gov/svn/bioconductor/branches/caIntegratorcd caIntegrator/services/caDNAcopy/R
$R_HOME/bin/R CMD INSTALL caDNAcopy
caDNAcopy RWebService
Installs into /usr/local/bioconductor/caDNAcopy
cd /usr/local/bioconductor
$R_HOME/bin/R
At the R prompts:library(RWebServices)
unpackAntScript("caDNAcopy")
q()
- Optionally, fix the timeout value for all R workers to be 2 hours instead of 60 seconds.
- Edit $R_HOME/lib64/R/library/RWebServices/scripts/RWebServicesTuning.properties. Change to:
jms.timeout=7200000
.
- Edit $R_HOME/lib64/R/library/RWebServices/scripts/RWebServicesTuning.properties. Change to:
cd caDNAcopy
ant map-package -Dpkg=caDNAcopy
ant unpack-package -Dpkg=caDNAcopy
ant precompile
- Optionally, test RWebService, following these steps.
- Start up Tomcat (If Tomcat is already running, you must shut it down before using the following command):
$CATALINA_HOME/bin/startup.sh
- Start up ActiveMQ:
$JMS_HOME/bin/activemq &
- Start up R worker for caDNAcopy:
nohup ant start-worker &
- Run the test:
ant local-test
- Start up Tomcat (If Tomcat is already running, you must shut it down before using the following command):
Check any failures in test/output. Ignore failures that say "expected 79, got 80"
caDNAcopy Grid Service
Installs into $CATALINA_HOME
- Download Bioconductor-caGrid-Services.tar.gz.
- Unpack tar file in home directory.
- Build and deploy caDNAcopy grid service.
cd caGrid/CaDNAcopy
ant -Dno.deployment.validation=true deployTomcat
- Prepare Tomcat for Grid applications.
cd $GLOBUS_LOCATION
ant -f share/globus_wsrf_common/tomcat/tomcat.xml deployTomcat -Dtomcat.dir="$CATALINA_HOME"
cp $JMS_HOME/lib/*.jar $CATALINA_HOME/webapps/wsrf/WEB-INF/lib
- Optionally, fix the timeout value in
caDNAcopy.jar
to be 2 hours instead of 60 seconds.mkdir ~/unjar; cd ~/unjar
unzip $CATALINA_HOME/webapps/wsrf/WEB-INF/lib/caDNAcopy.jar
- Edit org/bioconductor/rserviceJms/services/caDNAcopy/RWebServices4java.properties. Change to:
jms.timeout=7200000
zip -r caDNAcopy.jar *
cd $CATALINA_HOME/webapps/wsrf/WEB-INF/lib
cp ~/unjar/caDNAcopy.jar .
Install caCGHcall
This section installs the caCGHcall grid service in three pieces: base code, R web service, and caGrid service. You can skip this section if you are only using caDNAcopy.
caCGHcall Base Code
Installs into R_HOME
cd ~
- This is your home directory
svn checkout
[https://ncisvn.nci.nih.gov/svn/bioconductor/branches/caIntegrator
cd caIntegrator/services/caCGHcall/R
$R_HOME/bin/R CMD INSTALL caCGHcall
caCGHcall RWebService
Installs into /usr/local/bioconductor/caCGHcall
cd /usr/local/bioconductor
$R_HOME/bin/R
- At the R prompts:
library(RWebServices)
unpackAntScript("caCGHcall")
q()
- Optionally, fix timeout value for all R workers to be 2 hours instead of 60 seconds.
- Edit $R_HOME/lib64/R/library/RWebServices/scripts/RWebServicesTuning.properties. Change to:
jms.timeout=7200000
.
- Edit $R_HOME/lib64/R/library/RWebServices/scripts/RWebServicesTuning.properties. Change to:
cd caCGHcall
- Change the queue name for caCGHcall so it does not conflict with caDNAcopy, by editing RWebServicesTuning.properties. Change to:
jms.queue=CGHC
. ant map-package -Dpkg=caCGHcall
ant unpack-package -Dpkg=caCGHcall
ant precompile
- Optionally, test the RWebService, following these steps.
- Start up Tomcat (If Tomcat is already running, you must shut it down before using the following command):
$CATALINA_HOME/bin/startup.sh
- Start up ActiveMQ:
$JMS_HOME/bin/activemq &
- Start up R worker for caCGHcall
nohup ant start-worker &
- Run the test:
ant local-test
- Start up Tomcat (If Tomcat is already running, you must shut it down before using the following command):
Check any failures in test/output. Ignore failures that say "expected 79, got 80"
caCGHcall Grid Service
Installs into $CATALINA_HOME
- Build and deploy caCGHcall grid service.
cd ~/caIntegrator/services/caCGHcall/caGrid/caCGHcall
ant -Dno.deployment.validation=true deployTomcat
- Prepare Tomcat for Grid applications.
cd $GLOBUS_LOCATION
ant -f share/globus_wsrf_common/tomcat/tomcat.xml deployTomcat -Dtomcat.dir="$CATALINA_HOME"
cp $JMS_HOME/lib/*.jar to $CATALINA_HOME/webapps/wsrf/WEB-INF/lib
Launch Bioconductor Services
This section describes how to start up all the pieces of the Bioconductor installation once they have been successfully installed. In #Optional Imporvements, you can find optional scripts that can automate the startup and shutdown of all processes.
Starting Bioconductor Services
See the Bioconductor Installation Guide page 11.
- Start up Tomcat (shutdown if already running)
$CATALINA_HOME/bin/startup.sh
- Start up ActiveMQ
$JMS_HOME/bin/activemq &
- Start up R worker for caDNAcopy (skip if only using caDNAcopy)
cd /usr/local/bioconductor/caDNAcopy
nohup ant start-worker &
- Start up R worker for caCGHcall (skip if only using caCGHcall)
cd /usr/local/bioconductor/caCGHcall
nohup ant start-worker &
Optional Improvements
Scripts to Startup/Shutdown Bioconductor
These shell scripts can be used to automate the launch of Bioconductor. If these are used to automatically start the Bioconductor services at system startup, ensure that all environment variables (as listed in sections above) are already defined. All three scripts should be placed in the same directory and must be set to be executable (chmod a+x
). Also note that these scripts are intended to be used with the common logging setup that is described in #Setting Up Common Logging.
- start-worker.sh
#!/bin/bash # WORKERTYPE=$1 WORKERID=$2 # Run worker echo "Starting $WORKERTYPE worker ($WORKERID)..." cd /usr/local/bioconductor/$WORKERTYPE ant start-worker | sed -u "s/\[java\]/\[$WORKERTYPE $WORKERID\]/"
- start-bio.sh
#!/bin/bash # LOGFILE=/usr/local/bioconductor/logs/bioconductor-combined.log THISDIR=`dirname $0` # Run Tomcat echo Starting Tomcat... $CATALINA_HOME/bin/startup.sh # Run ActiveMQ echo Starting ActiveMQ... $JMS_HOME/bin/activemq start & sleep 10 # Run caDNAcopy workers nohup $THISDIR/start-worker.sh caDNAcopy 1 >> $LOGFILE & nohup $THISDIR/start-worker.sh caDNAcopy 2 >> $LOGFILE & # Run caCGHcall workers nohup $THISDIR/start-worker.sh caCGHcall 1 >> $LOGFILE & nohup $THISDIR/start-worker.sh caCGHcall 2 >> $LOGFILE &
- stop-bio.sh
#!/bin/bash # # Stop ActiveMQ $JMS_HOME/bin/activemq stop & # Stop Tomcat $CATALINA_HOME/bin/shutdown.sh # Stop caDNAcopy/caCGHcall workers ### They stop themselves when ActiveMQ shuts down
Setting Up Common Logging
One disadvantage to having multiple separate processes for Bioconductor is that each process creates a separate log file by default. By using the following steps, the log files for Tomcat, ActiveMQ, and caDNAcopy/caCGHcall are placed into a single directory, /usr/local/bioconductor/log
. If the scripts in #Optional Improvements are used, it further improves logging by placing all messages into a single log file, /usr/local/bioconductor/logs/bioconductor-combined.log
.
mkdir /usr/local/bioconductor/logs
- Edit /usr/local/activemq/conf/log4j.properties
- Change "log4j.rootLogger=INFO, stdout" to "log4j.rootLogger=INFO, out"
- Change "log4j.appender.out.file=${activemq.home}/data/activemq.log" to "log4j.appender.out.file=/usr/local/bioconductor/logs/activemq.log"
cd /usr/local/bioconductor/logs
ln -s /usr/local/bioconductor/caDNAcopy/nohup.out ./rworker-dnacopy.log
ln -s /usr/local/bioconductor/caCGHcall/nohup.out ./rworker-cghcall.log
ln -s $CATALINA_HOME/logs/catalina.out ./tomcat.log