Software
Environment Modules
Environment modules provide a convenient way of using most of the installed sotfware on the Mantis cluster. Environment modules are a dynamic way to modify your shell environment, allowing you to easily load and unload different software packages, compilers, and libraries without conflicts. They work by setting up the necessary environment variables (like PATH, LD_LIBRARY_PATH, and MANPATH).
Below is a list of commonly used commands, where <module>
is the target module.
Module Command | Description |
---|---|
module avail |
Display all available modules. |
module load <module> |
Loads a specific module into environemnt. |
module list |
Show list of currently loaded modules. |
module unload <module> |
Unloads a specific module. |
module purge |
Unloads all loaded modules. |
The Mantis cluster uses the Lmod implementation of environment modules.
Compiling software yourself
Some software is pretty easy to install. See this classic softare in population genetics, psmc.
All you have to do to install are the following commands (the instructions are in the README.md file):
# clone the repository
git clone https://github.com/lh3/psmc.git
cd psmc
make; (cd utils; make)
And it should create an executable binary. Some software is slightly more complicated, but still manageable by novice to intermediate users.
Some software, however can be very difficult, with a complex chain of dependencies, in which case we often rely on containerization with Singularity or use isolated environments created with Conda
Singularity
Reproducing environments and managing dependencies is difficult problem. Containerization is a powerful solution, allowing users to package software and its dependencies into a single, portable unit. Singularity is a container platform that is well-suited for HPC environments and can additionally use Docker images (Docker is the other major containerization platform and unavailable on Mantis).
Singularity is in your PATH
by default so it can be run without loading a module.
To get an existing container from a repository, you use the command singularity pull <URL>
. For example:
singularity pull https://depot.galaxyproject.org/singularity/fastqc:0.12.1--hdfd78af_0
This will create the file fastqc:0.12.1--hdfd78af_0
, a singularity image (some image files will have the extension .sif
). This containst the package fastqc
.
To run a command (e.g. fastqc --help
) inside the container, particularly when submitting SLURM batch scripts, you typically you will use singularity exec <container> <command>
:
singularity exec fastqc:0.12.1--hdfd78af_0 fastqc --help
You can also start up a shell inside the container and explore interactively with singularity shell <container>
.
singularity shell fastqc:0.12.1--hdfd78af_0
See here for a more in-depth tutorial.
Conda
Conda is a popular package and environment management system that allows users to install, run, and update software packages in isolated environments. It is particularly popular for Python users but can be used for R packages and many other languages and tools as well.
See the conda-forge website for documentation on using conda.
For a brief intro on using conda on Mantis, see here
Some conda
commands will utilize all of the available CPU resources for long periods of time on login nodes. This can negatively impact other users on these nodes. Please refrain from running conda install
, conda create
, or conda update
on login nodes. Instead, use an interactive session or a batch job to run these commands. Any long-running, resource-intensive processes running on login nodes may be terminated without notice.
Request Software Installation
Users can request the installation of software by submitting a software request. We can create global environment modules, help you compile something in your home directory, or if you need, help you get a singularity container running or set up conda.
Commercial Software
Together with the HPC admins we help manage the use of software for which we have commercial licenses.
IPA
Ingenuity Pathway Analysis from Qiagen “allows you to “quickly visualize and understand complex ’omics data and perform insightful data analysis and interpretation by placing your experimental results within the context of biological systems”.
Request an account here.
Log in here
Geneious
Geneious is a software package which allows you to run many common bioinformatic workflows in a graphical user interface. It runs on your local machine, not Mantis. Some features:
- Reference mapping of sequencing data.
- Alignment and phylogeny estimation.
- Visualization of the data and analysis.
- Searching NCBI databases.
We have a floating license with 10 seats (10 users can simultaneously run it).
How to Access Geneious
Request an account here.
Once the request has been approved, connect to the UCHC VPN using Pulse Secure:
Use the following URL to download the client for your computer:
http://geneious.cam.uchc.edu:8080/GeneiousServer/clients.jspSelect “Return to Home Page” and select the “Download the Geneious Server bundled plugin file” link on the home page to download the correct plugins.
Installation and Login
Double-click to open the Geneious Prime installation file and follow the prompts to accept license agreement and download
Leave the defaults for the Select Destination Directory window, Select Start Menu Folder window, and Select File Associations window, clicking “Next >” after each one
Click “Finish” to complete installation
Open the Geneious Prime application and click “Activate a License” on the pop-up message
Click “License server” and enter geneious.cam.uchc.edu next to Server and leave the port as default, Enter your email address and click “OK”
You will get a notification that the license has been obtained from the FLEXnet server
Install plugins by double clicking the GeneiousServerbundle.gplugin file
Exit out of Geneious once installation is complete, Re-open to begin analyzing data
Virtual Machines
If you need to run something that requires a virtual machine, you can request one here.