
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.
Download
v1.19.0 "Shenlong"Linux · macOS · Windows · CC-BY-NC-ND-4.0
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 --helpConvert a transcriptome BAM to genome space
t2gd convert --annotation annotation.gtf \
--input transcriptome.bam --output genome.bam --threads 8Screenshots
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.
