High-Performance Computing at the NIH
GitHub YouTube @nih_hpc RSS Feed

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

MAJIQ and VOILA On Helix
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:

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

Note that the argument to the --nthreads option should not exceed 8 on Helix. Once MAJIQ build has finished running, MAJIQ psi can be called on the output like so:

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

Then the deltapsi can be calculated like so:

[user@helix ~]$ majiq deltapsi -grp1 ./build/S1.majiq ./build/S2.majiq --nthreads 8 --output ./dpsi --name WT
[user@helix ~]$ 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.