I am testing gxfkit, a Rust implementation of selected AGAT-compatible GFF/GTF workflows.
The production-supported path is gff2gtf, using AGAT 1.7.0 as the correctness oracle. On the gated core corpus (human_chr1, human_chr21, yeast), the output is 100% normalize-identical after documented order-only normalization.
The current main branch also has a gxf2gxf standardization beta. It is fixture-gated against AGAT and has a public residual ledger, but it is not a full AGAT replacement yet.
I am looking for real GFF3 files that stress AGAT hierarchy standardization: missing parents, direct CDS/exon/UTR children, transposable-element loci, or unusual RefSeq/FlyBase-style structures.
Useful feedback would include:
- AGAT version.
gxfkitversion or commit.- Original command lines.
- Minimal input snippet if possible.
- The smallest AGAT-vs-gxfkit output difference.
Feedback thread: https://github.com/benngaihk/gxfkit/issues/7
Parity ledgers: https://github.com/benngaihk/gxfkit/blob/main/docs/PARITY.md https://github.com/benngaihk/gxfkit/blob/main/docs/GXF2GXF-PARITY.md
2 answers
Three sources that reliably break things:
NCBI RefSeq GCF_*_genomic.gff.gz - multi-parent exons with comma-separated Parent=, pseudogene records whose transcript children carry no CDS, immunoglobulin V_gene_segment/C_gene_segment, and cDNA_match/match alignment features mixed into the same file. The multi-parent exons are usually the first thing to diverge.
FlyBase dmel-all-*.gff - the TE insertion features you mentioned, plus mod(mdg4), which is trans-spliced and has transcripts on opposite strands under one gene. That one breaks parsers outright rather than subtly.
Raw BRAKER/Augustus output - uses transcript rather than mRNA, which exercises the missing-parent inference path hard.
Also worth pulling AGAT's own test fixtures out of the repo if you haven't - the deliberately malformed files in there are effectively a spec for what it tolerates.
The AGAT code source contains many examples (> 40 cases), GTF and GFF with errors and the expected result.
Log in to answer this question.