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.
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 ~]$
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
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.swarmwhere
| -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 |