← All tools
T2GD logo

T2GD

Transcriptome to genome coordinate conversion

Overview

Converts transcriptome-space alignments and coordinates into genome space, correctly splitting reads across exon boundaries and handling strand, introns and clipping. It is a single static binary with no htslib or samtools runtime dependency, offering 36 subcommands through a command-line interface and a matching desktop GUI that drives the same engine.

Quick start

Linux

curl -LO https://github.com/Arnaroo/T2GD/releases/download/v1.19.0/t2gd-1.19.0-Shenlong-linux-x86_64-broadwell.tar.gz
tar xzf t2gd-1.19.0-Shenlong-linux-x86_64-broadwell.tar.gz
./t2gd --help

Convert a transcriptome BAM to genome space

t2gd convert --annotation annotation.gtf \
  --input transcriptome.bam --output genome.bam --threads 8

Screenshots

What it does

Many RNA analyses align reads to a transcriptome rather than to the genome, because a transcriptome reference removes the intron-spanning problem and makes isoform assignment tractable. The cost is that the resulting coordinates are meaningless to any genome-space tool: a browser, a variant caller and a peak caller all expect chromosome coordinates. T2GD performs the lift, walking each transcript-space alignment across the exon structure and emitting the genome-space equivalent with the correct CIGAR, including the N operations for the introns the read jumps over.

The conversion is exact rather than approximate. Strand, soft and hard clipping, insertions and deletions at exon boundaries, and reads that begin or end inside an intron are all handled explicitly rather than being dropped.

Design

T2GD is a single statically linked binary. It carries its own BAM and CRAM handling, so there is no htslib to build and no samtools to have on PATH, which removes the usual reason a conversion step fails on a cluster where the user cannot install system libraries.

Internally the work is split between a reader, a shared annotation model store, a pool of worker threads and a writer, connected by bounded queues. That keeps memory flat regardless of input size and lets the throughput scale with the thread count rather than with the size of the BAM.

Interfaces

The command-line interface exposes 36 subcommands covering conversion, counting, statistics and plotting. The desktop GUI is a front end over the same engine rather than a separate implementation, so a workflow prototyped in the GUI can be reproduced exactly on the command line, and the GUI's log tab shows the run summary in the same form the CLI prints it.

Full documentation, source and issue tracker on GitHub.