Skip to content

ylab-hi/ScanExitron

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

155 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ScanExitron

ScanExitron Logo

A computational workflow for exitron splicing identification from RNA-Seq data.

PyPI Version Bioconda Tests Status License


🌟 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 -r hg38.fa -g gencode.v37.annotation.gtf input.bam

Calling Options

Flag Default Description
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 exitron2vcf:

exitron2vcf -r hg38.fa -o sample.vcf sample.exitron

VCF Converter Options

Flag Default Description
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:


πŸ“„ License

This project is licensed under the terms of the MIT License.


πŸ“¬ Contact & Support

About

A computational workflow for exitron splicing identification

Resources

License

Stars

16 stars

Watchers

1 watching

Forks

Packages

 
 
 

Contributors