Skip to content

Repository files navigation

CircNote

Developed for BIOINF 576: Bioinformatics Tool Development,applied to work in the Mills Lab at the University of Michigan.

A Python package for detecting candidate circular RNA (circRNA) back-splice junctions (BSJ) from genome-aligned RNA-seq data and annotating them with additional biological information (e.g., transcript information). By providing exon- and transcript-level annotation, this tool helps investigate circRNA formation and its relationship to gene structure. It is particularly useful for studies exploring circRNA function and isoform usage.

This project uses STAR chimeric junction output (Chimeric.out.junction) and a GTF annotation file to validate inputs, parse features, and identify back-splice junctions (BSJs) that may represent circRNA formation. This tool is designed for workflows that require detailed circRNA annotation beyond gene-level mapping.

Why this tool?

This tool focuses on structured and transparent annotation of circRNAs with the use of GTF-derived exon and transcript information. In addition to gene-level mapping, it identifies the exons involved in each circRNA and associated candidate transcript annotations.

The pipeline also emphasizes input validation, as well as chromosome-aware filtering to avoid unnecessary processing of unsupported references. Together, these features provide a more interpretable representation of circRNAs for downstream analysis and future extension.

Key Features

  • Exon-level circRNA annotation
  • Transcript-aware isoform mapping (within the genome)
  • Input validation for junction and GTF file consistency
  • Chromosome-aware filtering of annotation data

Input

  • STAR Chimeric.out.junction file
  • Transcript annotation file (GTF)

Example STAR command to generate Chimeric.out.junction:

STAR \
  --runThreadN 8 \
  --genomeDir path/to/index \
  --readFilesIn reads_1.fq reads_2.fq \
  --chimSegmentMin 15 \
  --chimJunctionOverhangMin 15 \
  --outFileNamePrefix output/

This will produce a Chimeric.out.junction file used as input to this tool.

Output

  • bsj_summary.tsv — one row per BSJ candidate (gene name, exon numbers, read count, transcript IDs)
  • bsj_summary.transcripts.tsv — one row per transcript isoform supporting each BSJ

Installation

# Clone the repo
git clone https://github.com/samanthareimer/CircNote
cd CircNote

# create and activate the conda environment 
conda env create -f environment.yaml
conda activate circnote

Usage

Full options

python main.py \
  --junction path/to/Chimeric.out.junction \
  --gtf path/to/annotation.gtf \
  --min_reads 2 \
  --max_offset 0 \
  --output results.tsv

Arguments

  • --junction: Path to STAR Chimeric.out.junction file (required)
  • --gtf: Gene annotation file (GTF format) (required)
  • --output: Output TSV file (required)
  • --min_reads: Minimum read support (default: 2)
  • --max_offset: Max allowed distance in bp between junction coordinate and exon boundary (default: 0)
  • --chromosome: One or more chromosomes to analyze, e.g. chr1 chr14 (default: all)

Example Data

Example data for running the tool is located in data/example_data/. See design_documents/Datasets.md for full dataset documentation.

Tutorial

A walkthrough of the pipeline with test data is available in tutorials/circnote_synthetic_tutorial.ipynb.

About

Python package used to detect and annotate circRNA back-splice junctions from RNA-seq data using exon- and transcript-level GTF information.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages