Global (Annotation-Level) Metrics
The global family lives under the top-level "global" key of a GFF-benchmark
result (results[method]["global"]) and is the direct counterpart to
gffcompare’s summary.
Unlike the per-transcript metric families — which score matched (GT, prediction)
pairs in isolation — the global family aggregates over all transcripts,
including unmatched ones, so false-positive predictions and missed reference
transcripts both move the numbers. Each group reports counts plus derived
precision / recall / F1.
Note
This "global" → "nucleotide" key is not the same as the
Nucleotide Classification family’s "nucleotide"
output. The global one is a union-based, genome-level base rate (each genomic
base counted once across all isoforms, gffcompare-style). The per-transcript
NUCLEOTIDE_CLASSIFICATION one is computed per matched transcript and averaged.
Same word, different scope — read the enclosing key to tell them apart.
The eight groups
Key |
Question it answers |
|---|---|
|
Base-level exon-coverage accuracy (union over isoforms; gffcompare nucleotide Sn/Sp). |
|
How many exons are reconstructed exactly. Each unique |
|
Same as |
|
How many multi-exon intron chains match exactly (gffcompare intron-chain Sn/Sp), by coordinate-exact matching over the full reference. |
|
How many transcripts match exactly, coordinate-exact (gffcompare transcript Sn/Sp), over the full reference. |
|
Transcript recovery from the assignment step: Sn = matched ref / total ref, Sp = matched pred / total pred (mode-dependent; retained for backward compatibility). |
|
How many gene loci are detected. Transcripts are clustered into loci by overlap; a locus counts as matched if any of its transcripts got a counterpart. |
|
How completely multi-isoform loci are recovered — the fraction of each GT locus’s isoforms that received a match. Most meaningful with |
Scoped vs unscoped
The families that depend on which label roles count as “exon”
(nucleotide, exon, exon_lenient, intron_chain, transcript_exact) nest
their results under a "scopes" key, so a UTR_CDS_INTRON run reports both a
transcript_exon and a cds view in one pass:
results[method]["global"]["nucleotide"]["scopes"]
# {"transcript_exon": {...}, "cds": {...}}
The remaining families (transcript, gene, locus_isoform) are unscoped.
intron_chain and transcript_exact reproduce gffcompare’s numbers by
coordinate-exact structure matching over the whole reference, independent of
the --locus-matching mode. See the GFF benchmark guide
for how -R / -Q (incomplete-annotation corrections) interact with these.