BIRCH
Dependencies
5 June, 2023


Some programs or packages distributed with BIRCH depend on additional programs, libraries or programming languages which must be installed separately.

Jalview (multiple alignment viewer) - requires Java 8. Next release should support Java17 and later.
Mesquite (phylogenetic analysis) - requires Java 8
Mauve (comparative genomics) - requires Java 8
Cytoscape (visualization of biochemical pathways) - Requires Java 11
Weblogo (sequence logos) - Must be installed separately. Requires python3, numpy and scipy. Installing weblogo using pip will automatically install numpy and scipy, if they are not already installed. Admin priviliges are needed to install weblogo.
cd-hit (elimination of redundant sequences) - Requires gcc. gcc is almost guaranteed to be installed by default on Linux. Gcc must be installed separately on MacOSX
cutadapt (required by trim_galore) - must be installed separately on MacOSX


[ JAVA | pipnumpy | scipy | gcc ]


JAVA

Some programs require a specific version of Java. This section will take you through

How to find out which versions of Java are already on your system

To find out which is the default version of java on your system, type

java -version

Example
java -version
openjdk version "1.8.0_322"
OpenJDK Runtime Environment (build 1.8.0_322-b06)
OpenJDK 64-Bit Server VM (build 25.322-b06, mixed mode)


This example shows that Java8 is the default version.


To list all versions of java currently installed on your system type

findjava.sh

Example
findjava.sh
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64/jre/bin/java
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64/bin/java
/usr/lib/jvm/java-11-openjdk-11.0.14.0.9-1.el7_9.x86_64/bin/java
/usr/lib/jvm/java-17-openjdk-17.0.1.0.12-1.rolling.el7.x86_64/bin/java
/usr/lib/jvm/java-1.8.0-ibm-1.8.0.7.0-1jpp.1.el7.x86_64/jre/bin/java
/usr/share/bash-completion/completions/java

This example shows that there are several versions of Java8, and one version each of Java11 and Java17.

IMPORTANT: BIRCH will NOT work with headless versions of Java. On some systems, the headless version is installed by default, so you would need to install a full version of java.

(Note: findjava.sh is part of the BIRCH system, and is not part of Linux or MacOSX.)

How to install a specific version of Java, if needed

Because there are so many different versions of Java for each platform, it is usually simplest to search the Internet for tutorials with instructions for installing Java on your particular system. Use search terms specific for the version of Java you want to install, and the platform you are using.

Examples of search terms:

"install Java 8 ubuntu"
"install java 11 fedora"
"install java 17 osx"

Most of these will guide you through installation using package management tools specific for your platform eg. apt on Debian/Ubuntu, dnf on RedHat/Fedora. The advantage of this approach is that as updates become available, it's easy to do the updates.

Alternatively, go to http://java.com to download Java directly from Oracle.

How to set an environment variable to tell programs in BIRCH where to find that specific version

Once you have the version of Java you need,  add a line to $BIRCH/local/admin/local.profile.source to set the appropriate environment variable.  Depending on the program, you need to specify either which
directory has Java (JAVAx_HOME), or the full path to the java command (JAVAx_CMD).  You can use findjava.sh to findout which path or command to use. Some examples are given below.

JAVA8_HOME="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64/jre"
JAVA8_CMD="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64/jre/bin/java"
JAVA11_HOME="/usr/lib/jvm/java-11-openjdk-11.0.14.0.9-1.el7_9.x86_64"
JAVA11_CMD="/usr/lib/jvm/java-11-openjdk-11.0.14.0.9-1.el7_9.x86_64/bin/java"
JAVA17_HOME="/usr/lib/jvm/java-17-openjdk-17.0.1.0.12-1.rolling.el7.x86_64"
JAVA17_CMD="/usr/lib/jvm/java-17-openjdk-17.0.1.0.12-1.rolling.el7.x86_64/bin/java"



pip

Pip3 is needed for installation of many Python packages such as numpy, scipy etc.

REQUIRES: admin (root) privileges


Weblogo - Create sequence logos from multiple alignments

Weblogo must be installed separately, which requires administrator privileges. Installing WebLogo will automatically install numpy and scipy.

sudo pip3 install weblogo

More detailed information on installing weblogo.


Numpy

REQUIRES: pip

Python numerical libraries, required by WebLogo.  However, if you wish to install numpy separately:

If numpy is installed you should be able to run python and try to import numpy. (User input shown in bold below). If you get an error, you need to install numpy.

{triticum:/home/frist}python3
Python 3.8.10 (default, Mar 15 2022, 12:22:08)
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>>


To install numpy,
 
sudo pip3 install numpy




SciPy - scientific libraries for Python

If scipy is installed you should be able to run python and try to import numpy. (User input shown in bold below). If you get an error, you need to install scipy.

{triticum:/home/frist}python3
Python 3.8.10 (default, Mar 15 2022, 12:22:08)
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import scipy
>>>




To install scipy,
 
sudo pip3 install scipy


GCC - The GNU C/C++ compiler

Linux

GCC should already be installed on Linux systems.

MacOSX

1. Install Homebrew. Homebrew is a package manager for automated installation and updating of software on OSX. This is a good time investment, since Homebrew makes it easy to install other packages, particularly bioinformatics tools or their dependencies.

2. Use homebrew to install gcc:

brew install gcc

3. Make a symbolic link to the gcc.
Homebrew will install the most recent gcc package, at this writing, gcc@11. cd-hit was built with gcc@5. Although gcc@11 is backward compatible with gcc@5, we need to make a link for cd-hit to be able to find gcc@11.

cd /usr/local/opt
ln -s gcc@11 gcc@5


A symbolic link called gcc@5 will be created, that points to gcc@11. Thus, when cd-hit looks for gcc@5, it will be redirected to gcc@11.



Please send suggestions of comments regarding this page to psgendb@cc.umanitoba.ca