Sqanti-sim on Biowulf

Sqanti-sim is an open-source tool for creating realistic simulated long-read RNA-seq datasets for Oxford Nanopore and PacBio platforms. It lets users control the types of known and novel transcripts using SQANTI3 structural categories. The tool also produces a matching reduced GTF annotation and can generate related Illumina and CAGE data for testing transcriptome analysis workflows.

Documentation
Important Notes

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

Allocate an interactive session and run the program.
Sample session (user input in bold):

[user@biowulf]$ sinteractive
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 sqanti-sim
[+] Loading sqanti-sim  e4d5e58  on cn3144 
[+] Loading singularity  4.2.2  on cn3144

[user@cn3144 ~]$ cd /data/$USER

[user@cn3144 ~]$ git clone https://github.com/ConesaLab/SQANTI-SIM.git
[user@cn3144 ~]$ cd SQANTI-SIM
[user@cn3144 ~]$ cd example/human

[user@cn3144 ~]$ sqanti-sim.py classif --gtf example-detected_isoforms.gtf
Rscript (R) version 4.3.3 (2024-02-29)
                                                                      
      _____  ____            _   _ _______ _____      _____ _____ __  __ 
     / ____|/ __ \     /\   | \ | |__   __|_   _|    / ____|_   _|  \/  |
    | (___ | |  | |   /  \  |  \| |  | |    | |_____| (___   | | | \  / |
     \___ \| |  | |  / /\ \ | . ` |  | |    | |______\___ \  | | | |\/| |
     ____) | |__| | / ____ \| |\  |  | |   _| |_     ____) |_| |_| |  | |
    |_____/ \___\_\/_/    \_\_| \_|  |_|  |_____|   |_____/|_____|_|  |_|
                                                                          
            A SIMULATOR OF CONTROLLED NOVELTY AND DEGRADATION           
                 OF TRANSCRIPTS SEQUENCED BY LONG-READS                
    
[SQANTI-SIM] CLASSIF MODE

[SQANTI-SIM] Running with the following parameters:
[SQANTI-SIM] - Ref GTF: example_detected_isoforms.gtf
[SQANTI-SIM] - Out prefix: sqanti-sim
[SQANTI-SIM] - Out dir: .
[SQANTI-SIM] - N threads: 1

[SQANTI-SIM][29-04-2025 16:15:03] Classifying transcripts in structural categories
[SQANTI-SIM] Parsing transcripts from GTF reference annotation file
[SQANTI-SIM] Classifying transcripts according to its SQANTI3 structural category
chr22
100%|██████████████████████████████████████████████████████| 105/105 [00:01<00:00, 54.95it/s]
[SQANTI-SIM] Writting structural category file
[SQANTI-SIM] Summary table from categorization
_______________________________________________________________________________
S Q A N T I - S I M 📊

Classification summary Table 🔎
_______________________________________________________________________________
| full-splice_match: 35
| incomplete-splice_match: 15
| novel_in_catalog: 140
| novel_not_in_catalog: 113
| fusion: 7
| antisense: 43
| genic_intron: 0
| genic: 5
| intergenic: 74

[user@cn3144 ~]$ exit
salloc.exe: Relinquishing job allocation 46116226
[user@biowulf ~]$

Batch job
Most jobs should be run as batch jobs.

Create a batch input file (e.g. sqanti-sim.sh). For example:

#!/bin/bash

cd /data/$USER

git clone https://github.com/ConesaLab/SQANTI-SIM.git
cd SQANTI-SIM
cd example/human

sqanti-sim.py classif --gtf example-detected_isoforms.gtf

Submit this job using the Slurm sbatch command.

sbatch [--cpus-per-task=#] [--mem=#] splam.sh
Swarm of Jobs
A swarm of jobs is an easy way to submit a set of independent commands requiring identical resources.

Create a swarmfile (e.g. sqanti-sim.swarm). For example:

sqanti-sim.py classif --gtf sample1.gtf -o sample1 -d output/sample1
sqanti-sim.py classif --gtf sample2.gtf -o sample2 -d output/sample2
sqanti-sim.py classif --gtf sample3.gtf -o sample3 -d output/sample3

Submit this job using the swarm command.

swarm [-g #] [-t #] --module sqanti-sim sqanti-sim.swarm
where
-g # Number of Gigabytes of memory required for each process (1 line in the swarm command file)
-t # Number of threads/CPUs required for each process (1 line in the swarm command file).
--module sqanti-sim Loads the sqanti-sim module for each subjob in the swarm