ScanExitron
A computational workflow for exitron splicing identification from RNA-Seq data.
🌟 Features
- Accurate Identification: High-performance detection of exitrons (exonic introns) directly from aligned RNA-Seq reads (BAM/CRAM).
- VCF Conversion: Built-in support to convert results into standard VCF files for downstream variant analysis.
- Bioconda Support: Easy deployment along with all underlying command-line dependencies.
🚀 Installation
Option 1: Via Bioconda (Recommended)
This installs scanexitron along with all required external compiled tools automatically:
conda install -c bioconda scanexitron
Option 2: Via PyPI
Installs the Python package. Note: You must install the external dependencies separately (see below).
pip install scanexitron
Option 3: From Source
git clone https://github.com/ylab-hi/ScanExitron.git
cd ScanExitron
pip install -e ".[dev]"
🛠️ External Dependencies
If you did not install via conda, make sure the following bioinformatics tools are installed and available on your system PATH:
| Dependency | Required Version | Conda Install Command |
|---|---|---|
| 🛠️ regtools | 0.5.0 |
conda install -c bioconda regtools=0.5.0 |
| 🧬 samtools | ≥ 1.10 |
conda install -c bioconda samtools |
| 🗃️ bedtools | ≥ 2.26 |
conda install -c bioconda bedtools |
📂 Reference Data Setup
Download your genome FASTA and matching transcript annotation files. For example, to setup hg38 reference resources:
# Download and decompress the hg38 genome
wget https://hgdownload.cse.ucsc.edu/goldenpath/hg38/bigZips/hg38.fa.gz
gunzip hg38.fa.gz
# Download and decompress the Gencode release annotation
wget ftp://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_human/release_37/gencode.v37.annotation.gtf.gz
gunzip gencode.v37.annotation.gtf.gz
💻 Usage
🔍 1. Exitron Calling
Run scanexitron by pointing it to your reference FASTA, transcript annotation GTF, and the input BAM/CRAM file (which must have a .bai/.crai index file alongside it):
scanexitron run -i input.bam -r hg38.fa -g gencode.v37.annotation.gtf
Calling Options
| Flag | Default | Description |
|---|---|---|
-i, --input |
Required | Path to the input BAM/CRAM file. |
-r, --ref |
Required | Path to the reference genome FASTA file. |
-g, --gtf |
Required | Path to the annotation GTF file. |
-a, --ao |
3 |
Minimum junction-spanning reads supporting the exitron. |
-p, --pso |
0.05 |
Minimum Percent Spliced Out (PSO) value. |
-m, --mapq |
50 |
Minimum mapping quality for alignment filtering. |
-s, --strand |
1 |
Strand specificity: 0 = unstranded, 1 = first-strand/RF, 2 = second-strand/FR. |
-t, --threads |
1 |
Number of threads to allocate for samtools. |
-o, --output |
Input Stem | Output prefix. |
--verbose |
Off | Enable verbose logging for debugging. |
🔄 2. Convert to VCF
Format your exitron tabular output into a standard VCF file using scanexitron convert:
scanexitron convert -i sample.exitron -r hg38.fa -o sample.vcf
VCF Converter Options
| Flag | Default | Description |
|---|---|---|
-i, --input |
Required | Path to the input tabular results (.exitron file). |
-r, --ref |
Required | Path to the reference genome FASTA file. |
-o, --output |
output.vcf |
Path for the output VCF file. |
📊 Output Format
Results are written to <input>.exitron as a tab-delimited file with the following schema:
| Column | Type | Description |
|---|---|---|
chrom |
String | Chromosome name |
start |
Integer | Start position (0-based, half-open) |
end |
Integer | End position (0-based, half-open) |
name |
String | Junction identifier |
ao |
Integer | Number of supporting junction reads |
strand |
String | Genomic strand (+ or -) |
gene_symbol |
String | HGNC gene symbol |
length |
Integer | Exitron length in base pairs |
splice_site |
String | Donor–acceptor dinucleotides (e.g., GT-AG) |
gene_id |
String | Ensembl gene ID |
pso |
Float | Percent Spliced Out (relative exitron abundance) |
psi |
Float | Percent Spliced In |
dp |
Float | Average local sequencing depth |
total_junctions |
Integer | Total junction-spanning reads detected in the sample |
Note: RegTools intermediate files (<input>.janno) are preserved in the directory for manual inspection.
👩💻 Development
Contributions and local development setups are welcome:
# Install development and testing dependencies
pip install -e ".[dev]"
# Run test suite
pytest
📖 Citation
If you use ScanExitron in your research, please cite our papers:
- Molecular Cell: Molecular Cell Publication
- STAR Protocols: STAR Protocols Publication
📄 License
This project is licensed under the terms of the MIT License.
📬 Contact & Support
- Bug Reports & Feature Requests: Please submit an issue on the GitHub Issues tracker.
Metadata
Release files for scanexitron 1.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| scanexitron-1.4.0.tar.gz | 12.0 kB | With provenance | Details for scanexitron-1.4.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| scanexitron-1.4.0-py3-none-any.whl | Python 3 | none | any | Details for scanexitron-1.4.0-py3-none-any.whl |
Total release size: 26.1 kB
Release files / scanexitron-1.4.0.tar.gz
| Download URL | scanexitron-1.4.0.tar.gz |
|---|---|
| Size | 12.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3c8f43ce3ab0bb7170c03d58ade9408e77f7ac744cffd54666ea977bb6b8ac85
|
|
BLAKE2b-256 checksum How to use checksums |
aee54a565a48a8960d50c606ccfb971d0b681ee8faaa8aefea09d1682af2d5c5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 17, 2026.
Transparency logRelease files / scanexitron-1.4.0-py3-none-any.whl
| Download URL | scanexitron-1.4.0-py3-none-any.whl |
|---|---|
| Size | 14.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8b8312565d2c7e5e0b26b4b71b2f2920098efe33a88b58952b2e62f473629d46
|
|
BLAKE2b-256 checksum How to use checksums |
6017100867b7b69a10b587ec489d7eb45d2b42dd505efb65bc4fa1a87fbb212e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 17, 2026.
Transparency logSecurity for scanexitron 1.4.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for scanexitron-1.4.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 17, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.