$ show gpertea/gffread
Gffread is a comprehensive C++ command-line utility for processing GFF/GTF/BED/TLF genomic annotation files. It provides format conversion, filtering, FASTA sequence extraction (exons, CDS, protein translations), junction analysis, transcript clustering into loci, and tabular output generation. The tool handles complex genomic features including splice site validation, CDS translation with frame handling, and redundant transcript removal. Built with a modular design separating core logic (gff_utils) from main application logic (gffread), it demonstrates solid bioinformatics software engineering practices.
The LLM identified 4 files worth highlighting for reuse:
GRangeParser class for parsing genomic coordinate strings (e.g., 'chr1:100-200') with optional strand information. Self-contained with zero dependencies on other repo-specific code, handling edge cases like missing end coordinates. Demonstrates clean encapsulation of a common genomic data parsing task.
CIntronList class for collecting introns from transcripts, identifying identical introns across multiple transcripts, and generating junction reports with associated transcript IDs. Uses basic GCLib containers but isolates the intron clustering logic in a reusable pattern for splice junction analysis.
printFasta function that formats sequences in FASTA format with automatic line wrapping (70 characters) and optional stop codon symbol conversion (* instead of .). Self-contained with minimal dependencies (only FILE* and string functions), demonstrating a reusable pattern for sequence output in bioinformatics tools.
qsearch_gloci and qsearch_rnas binary search functions for efficiently locating genomic features by coordinate in sorted lists. Generic implementations that could be reused in any genomic interval processing tool, showing skilled application of fundamental algorithms to genomic data structures.