Biowulf High Performance Computing at the NIH

MAJIQ and Voila are two software packages that together detect, quantify, and visualize local splicing variations (LSV) from RNA-Seq data. Conceptually, MAJIQ/Voila can be divided into three modules:
Web sites

Interactive job
Interactive jobs should be used for debugging, graphics, or applications that cannot be run as batch jobs.
back to top

MAJIQ build jobs require a configuration file. A typical configuration file may look something like this:


See the MAJIQ Tutorial for more info.

You also need an annotation file in GFF3 format. See more on the MAJIQ home page.

Once you've written the configuration file and obtained the annotation file, you can start a MAJIQ build session like so:

Allocate an interactive session and run the program. Sample session:

[user@biowulf]$ sinteractive -c 8 --mem 10g
salloc.exe: Pending job allocation 46116226
salloc.exe: job 46116226 queued and waiting for resources
salloc.exe: job 46116226 has been allocated resources
salloc.exe: Granted job allocation 46116226
salloc.exe: Waiting for resource configuration
salloc.exe: Nodes cn3144 are ready for job

[user@cn3144 ~]$ module load majiq

[user@cn3144 ~]$ majiq build ensembl.hg19.gff3 -conf config.file --nthreads 8 --output ./build/

Once MAJIQ build has finished running, MAJIQ psi can be called on the output like so:

:[user@cn3144 ~]$ majiq psi ./build/S1.majiq ./build/S2.majiq --nthreads 8 --output ./psi --name WT
[user@cn3144 ~]$ majiq psi ./build/S3.majiq ./build/S4.majiq --nthreads 8 --output ./psi --name KO

Then the deltapsi can be calculated like so:

[user@cn3144 ~]$ majiq deltapsi -grp1 ./build/S1.majiq ./build/S2.majiq --nthreads 8 --output ./dpsi --name WT
[user@cn3144 ~]$ majiq deltapsi -grp1 ./build/S3.majiq ./build/S4.majiq --nthreads 8 --output ./dpsi --name KO

When MAJIQ deltapsi has finished, VOILA can be called in turn to visualize the analyzed data. For this step, an X11 connection will be necessary. See the MAJIQ Tutorial for more details.

Running a single MAJIQ job on Biowulf
back to top

After setting the correct files as described above, set up a batch script along the following lines:

# this script is called myjob.bat

module load majiq
cd /data/$USER/my_project

majiq build ensembl.hg19.gff3 -conf config.file --nthreads 8 --output ./build/

Submit this job with:

[user@biowulf ~]$ sbatch --cpus-per-task=8 myjob.bat

Note that the --cpus-per-task argument in sbatch must match the --nthreads argument in the MAJIQ batch script. Depending on the data, memory requirements may also need to be increased using the --mem or --mem-per-cpu option. See the documentation on Job Submission for more info on how to use sbatch.

Running a swarm of MAJIQ jobs on Biowulf
back to top

Set up a swarm command file containing one line for each of your MAJIQ runs. You will also have to generate a separate configuration file for each swarm command so that different experiments are run in different jobs.

Sample swarm command file

majiq build ensembl.hg19.gff3 -conf config.file0 --nthreads 8 --output ./build/
majiq build ensembl.hg19.gff3 -conf config.file1 --nthreads 8 --output ./build/
majiq build ensembl.hg19.gff3 -conf config.file2 --nthreads 8 --output ./build/
majiq build ensembl.hg19.gff3 -conf config.file3 --nthreads 8 --output ./build/

Submit this set of runs to the batch system by typing:

[user@biowulf ~]$ swarm --threads-per-process 8 --module majiq -f myjobs.swarm

For details on using swarm see Swarm on Biowulf.

back to top

Online Tutorial.