A GIFT is not imported from a pathway database or assembled from a convenient gene list. It is a biological capability with a stated boundary and an explicit completeness model. Building one is therefore a curation process first and a database-compilation process second.
candidate capability
-> prior-attempt search
-> precise claim and GIFT type
-> boundaries or machinery architecture
-> routes/reactions or functions/systems (reference knowledge bases)
-> jointly required components
-> sufficiently specific marker evidence (catalogue-wide specificity screens)
-> test against genomes (KEGG reference genomes + named controls)
-> composition and redundancy review
-> provenance, validation and tests
-> implemented, deferred or refused outcome
This article explains each stage, which data it draws on, and where the record of every decision can be found. The normative contract lives in the development and architecture guide. Technical terms are defined in the glossary.
Which data are used, and are they always the same?
Curation draws on four kinds of data. They do different jobs, and only some of them are the same from one GIFT to the next.
| Data | Same for every GIFT? | Used to | Never used to |
|---|---|---|---|
| Reference knowledge bases: Rhea, ChEBI, KEGG, MetaCyc, UniProt, NCBIfam, dbCAN, literature | Yes, at a pinned release | define the chemistry, the molecules, the enzymes and the candidate markers | decide where a GIFT’s boundary lies; that is gifter’s own decision |
| Catalogue-wide specificity screens | Yes; rerun when a resource is updated | measure how many distinct reactions each marker can license | admit a marker on their own; they flag rows to be read |
| KEGG reference genome set: every genome in the KEGG catalogue, about 11,900 | Yes; the snapshot date is recorded with each assessment | count how many genomes complete a candidate, which function near-misses lack, and whether it is distinguishable from homologous machinery | define a GIFT by its prevalence |
| Named control genomes | No. Chosen for each investigation | check the definition against organisms whose biology is established in the literature | produce a call; the expectation is compared with the marker result, never fed into it |
Two further kinds of data meet gifter only after curation and never define a GIFT: observed phenotypes (BacDive, MediaDive and species-level trait tables) and application datasets such as metagenome-assembled genomes. They are described in Data that do not define GIFTs.
The releases the current database was compiled against are recorded in the database itself:
library(gifter)
release <- gifter_db_version()
data.frame(field = names(release), value = unlist(release, use.names = FALSE))
#> field value
#> 1 package_version 0.7.3
#> 2 gifter_db_version 2026.39.1
#> 3 schema_version 9
#> 4 build_date 2026-10-04
#> 5 rhea_release 142
#> 6 chebi_release 254
#> 7 kegg_release 2026-10-04
#> 8 source_commit unreleased
#> 9 source_repository https://github.com/alberdilab/gifterBegin with the question, not the markers
The first curation statement is one sentence describing what a positive call means. It should name an encoded capability that is useful to compare among genomes without claiming expression, activity, physiological state or phenotype.
Before new evidence is collected, we search the append-only expansion attempts, which list every
earlier attempt with its implemented, deferred and refused candidates,
for the candidate, its aliases and the wider request that produced it,
and read the deferral
register for standing blockers. A previous refusal is reopened only
when its evidence or recorded retrigger has changed. A new bounded
investigation is then registered as in_progress, even if it
may ultimately add nothing. This makes unsuccessful searches and honest
refusals as discoverable as additions.
Choose the completeness model
Every GIFT declares one gift_type. The type decides what
must be complete and which source tables may describe the
capability.
| Type | A positive call requires at least one complete… | Principal boundary |
|---|---|---|
metabolic |
route | declared input and output anchors |
structural |
architecture | machinery needed to build a defined structure |
regulatory |
circuit | machinery needed to sense a signal and execute a response |
defense |
mechanism | machinery needed to execute a defined defense mechanism |
A type is not a display category. A structure is not forced into the metabolic model by inventing a boundary molecule, and a metabolic transformation is not represented as a generic machinery checklist.
Define the claim and its boundaries
For a metabolic GIFT, the input and output anchors identify where the capability begins and ends. Good boundaries are meaningful environmental or host compounds, precursors, stable products or branchpoints. Internal reaction participants are not automatically anchors, and only shared declared anchors connect GIFTs.
For structural, regulatory and defense GIFTs, the analogous decision is the scope of the machine: which alternative complete implementations exist and which functions every implementation requires. The claim should be narrow enough that the genomic evidence can support it, but large enough to represent a biologically meaningful capability rather than an arbitrary protein or single reaction.
At this stage we also check whether the proposal duplicates an existing GIFT, bundles independently meaningful capabilities, or is already represented by a chain of composable metabolic GIFTs.
Where the biological knowledge comes from
Each external resource is trusted for one thing. The table states what each contributes and what it is not allowed to decide.
| Resource | Supplies | Is not trusted for |
|---|---|---|
| Rhea | reaction identity: every reaction is a Rhea master reaction where Rhea covers the chemistry, with its participants | the direction a route uses it, which gifter curates per route |
| ChEBI | the identity of each anchor molecule | whether that molecule is a meaningful boundary |
| KEGG modules and orthology | a starting pathway skeleton and KO markers | GIFT boundaries: modules are read and cut, never adopted whole |
| MetaCyc | reconnaissance of pathway variants and alternative routes | evidence from pathway pages that could not be read without a subscription |
| UniProt and primary literature | characterised enzymes and subunits, and which proteins a complex jointly requires | a family-wide claim from one characterised member |
NCBIfam
(hmm_PGAP 20.0) |
HMM profile markers; only the equivalog and
equivalog_domain grades are admitted |
anything a subfamily or domain profile
would imply |
dbCAN
(db_v5-2-9_5-5-2026) |
CAZy family, subfamily and eCAMI-cluster markers, with their substrate and EC associations | a substrate-specific claim from a polyspecific family |
KEGG modules are the most common starting point and the most common
place where gifter departs from its source. For the guanylate GIFT, for
example, KEGG module M00050 runs from IMP all the way to GTP. gifter
ends the GIFT at GMP, the first product that establishes guanylate
identity, and leaves out the shared kinase steps after it. Every such
departure is written down, either in SOURCES.md
or, when it changes which markers count, in the database’s own change
history.
Materialize every valid implementation
The Boolean layers are deliberately explicit. For a metabolic GIFT:
GIFT = ANY complete route
route = ALL required reactions
reaction = ANY complete enzyme system
system = ALL required components
component = ANY accepted marker
Routes are minimal complete biochemical paths between the declared
anchors. Each reaction is identified by its Rhea master where possible,
while the reaction’s forward or reverse use in
the route is recorded separately. Alternative routes, non-homologous
enzyme replacements, monomeric and multisubunit enzymes, and protein
fusions are represented in their proper layers instead of being
compressed into a Boolean expression.
Structural, regulatory and defense GIFTs use the same Boolean shape under biologically appropriate names:
GIFT = ANY complete architecture, circuit or mechanism
implementation = ALL required functions
function = ANY complete system
system = ALL required components
component = ANY accepted marker
Accessory functions may be recorded, but they do not silently become required. For an incomplete call, this structure is what lets gifter report the closest implementation and the missing reactions or functions.
Choose marker evidence
Markers support components; they never support a reaction, route or
GIFT directly. Marker identity is the pair
namespace + accession, such as a KEGG Orthology accession
or a versioned NCBIfam profile.
The governing test is specificity: the biological claim must not be more specific than the marker evidence. A broad enzyme family cannot establish a substrate-specific reaction, a generic chemoreceptor cannot identify an effector, and a profile shared by homologous machines cannot distinguish those machines. The rest of a route may provide context for a genuinely broad shared reaction, but it cannot repair a marker that does not identify its own curated component.
Specificity screens across the whole catalogue
Specificity is not judged one accession at a time from its name. Three screens measure it across each marker namespace. They use the reference knowledge bases only, not genomes:
| Namespace | What is measured | Script |
|---|---|---|
| KEGG orthology | each KO’s EC numbers are followed to the Rhea master reactions they reach. A KO reaching one master reaction states one reaction; a KO reaching several states only their union | marker_specificity_screen.R |
| NCBIfam | the same join for every equivalog profile, after the grade filter. It also asks whether a profile resolves a curated reaction that no single-reaction KO resolves; 229 profiles reaching a curated reaction are refused on grade alone | ncbifam_equivalog_screen.R |
| CAZy (eCAMI clusters) | the fraction of a cluster’s EC-annotated members that carry the claimed EC | extract_cazy_subfamilies.R |
A screen finds the rows that need to be read; it does not decide them. A KO reaching several reactions may group genes of different activities, which cannot support a substrate-specific claim. Or it may be one genuinely promiscuous enzyme, which supports every reaction it performs. Reading which participants vary between the reactions usually settles it.
The screen outputs are kept in data-raw/reference/,
whose README explains every table.
Confidence grades
Every accepted marker row records an evidence type, a confidence grade, the source it was taken from, and any ambiguity that affects interpretation.
| Grade | Meaning |
|---|---|
curated |
the marker identifies the component. Most KO rows; for a CAZy cluster, at least 93% EC agreement across ten or more annotated members |
high-confidence |
strong but not exhaustive support. Admitted NCBIfam equivalogs; CAZy clusters with at least 70% EC agreement |
putative |
accepted with a stated doubt, recorded in the row’s notes. The archaellum ATPase KO is one: it also collects the ATPases of homologous archaeal pili |
ambiguous |
the only available evidence, and polyspecific; for a CAZy cluster, 50–70% EC agreement |
Below 50% EC agreement a CAZy cluster is not admitted at all: a cluster in which 3 of 96 annotated members carry the claimed EC is evidence against the assignment, not weak evidence for it.
A grade is bounded by what the assignment rests on. Each row carries
a basis that is derived, not typed: for a KO on an enzyme
component, whether KEGG links the orthologue to the reaction, assigns it
an EC number the reaction carries, or places it in a module the GIFT
cross-references. A row with none of these is unsupported
unless its reference cites a publication or a result table,
and an unsupported row is recorded as putative
at most. Markers in the other namespaces and GIFT types have no
derivation yet and read not_assessed.
Confidence reaches the call. evaluate_gifts() reports
evidence_confidence, the weakest grade among the markers
supporting the best route, so a GIFT resting on an ambiguous family
never reads like one resting on curated orthology. A marker that cannot
support the claim is refused rather than stretched to fit it.
NCBIfam accessions keep their version suffix
(NF040708.3), because a rebuilt profile may match different
sequences. The same caution applies to dbCAN’s eCAMI cluster
identifiers, which are renumbered between releases. Annotate genomes
against the releases the database names, or CAZy markers will fail to
match without any error.
Test the definition against genomes
A definition that reads well on paper still has to behave sensibly on real genomes. Two genome datasets are used for this, and they answer different questions.
The KEGG reference genome set: the same for every GIFT
The population-level reference is the KEGG genome catalogue: about 11,900 genomes, of which roughly 10,100 are bacterial and 470 archaeal. For each marker, KEGG’s REST service returns every genome carrying it, so a candidate’s marker set can be evaluated across the whole catalogue without annotating a single genome. The same reference serves every curation round. The snapshot date and the exact denominators are stated in each assessment, because KEGG grows between snapshots. Domain counts come from KEGG’s organism hierarchy, because the catalogue’s own prokaryote flag admits some eukaryotes.
The screen answers four questions:
- How many genomes complete the candidate? A GIFT that no genome completes is refused on evidence. Vitamin C biosynthesis was refused this way: 0 of 10,151 bacterial genomes completed it.
- What do near-misses lack? If genomes one function short mostly miss the same component, that component may be an annotation gap or a taxon-specific replacement still to be curated, rather than real absence.
- Is the candidate distinguishable from homologous machinery? Secretion systems share ancestry with the flagellum and with pili, so the screen counts how many genomes complete the homologue while supporting none of the candidate’s roles.
- Does each required component do discriminating work? A required component that almost every candidate genome carries anyway adds no specificity.
Prevalence never decides on its own. A rare architecture can be admitted when its markers resolve it: the Bacillus subtilis W23-type ribitol-phosphate wall teichoic acid architecture completes in only 22 genomes and was curated under an explicit biological-importance exception.
This reference has two limits, and both are stated wherever it is used:
- It is KO-only. CAZy, NCBIfam and Pfam markers cannot be reached through it, so a GIFT whose usual evidence is a CAZy family is under-counted here.
- It is KEGG’s own per-genome assignment, not the output of the annotation pipeline a user would run. Its counts are therefore an upper bound on what a user’s annotation will support.
KEGG’s per-genome assignments may not be redistributed, so only aggregate counts are committed. The per-genome data stay in a local cache that each script rebuilds.
When a KO is suspected of merging homologues, the screen goes down to sequence level. It retrieves the exact proteins KEGG assigned to that KO and searches them with the candidate NCBIfam equivalogs, plus contrast profiles for the homologous machines, at each profile’s own gathering threshold. Contrast profiles only name what a protein is; they are never accepted as gifter evidence. The archaellum, wall teichoic acid and type II secretion GIFTs were all checked this way.
Named control genomes: chosen for each investigation
The second dataset is small and changes every time. For each candidate we pick organisms whose relevant biology is established in the literature, both organisms expected to carry the capability and organisms expected to lack it. Examples include:
- 16 gut and model organisms for short-chain fatty acid formation;
- 18 genomes for vitamin biosynthesis;
- three archaellated archaea and two flagellated bacteria for the archaellum;
- 12 strains for type II secretion: seven expected to carry it, three
expected to lack it, and two marked
unverified; - 17 strains for type III and type VI secretion.
The controls are listed by KEGG organism code in the assessment, or
in a *-controls.tsv table beside the screen.
A control’s expected result is written beside the marker result and
compared with it. It is never used to produce the call, and a strain
whose expectation was not actually checked is marked
unverified. A control that disagrees is reported as it is,
not fixed: it may point to a missing route (see acetate below), a
marker gap, or a genuine exception.
Data that do not define GIFTs
Some data are used to evaluate gifter but never to define a GIFT.
- Observed phenotypes. BacDive substrate-use records, MediaDive growth media and species-level trait tables are compared with gifter’s calls as a benchmark. They are not accepted as marker evidence: an organism growing on a substrate says nothing about which gene does the work. The phenotype case study presents the results and their limits.
- Application datasets. The GTDB panel, the chicken caecal metagenome-assembled genomes and the Microflora Danica samples used in the manuscript analyses are readings of the catalogue, not inputs to it.
A benchmark can, however, raise a question for curation. When genomes of organisms observed to perform a capability are called unsupported, gifter’s own trace names the reaction that failed. That lead then goes through the full process above.
- GlcNAc degradation. Of 119 strains observed to use N-acetylglucosamine as a carbon source, only 15% were called positive. The same kinase reaction failed in all 30 sampled failures. The boundaries were right but a whole route was missing, and a second route through the phosphotransferase system was curated in database 2026.26.1.
- Serine biosynthesis. The lead’s premise did not survive measurement, so nothing was changed.
A benchmark lead is a question, not a diagnosis. The record is in the phenotype curation leads.
Refine the catalogue iteratively
The catalogue is not finished when a GIFT is implemented. Every time the database is evaluated on a broad set of genomes, the calls show where definitions fall short, and those observations feed the next round of curation.
database release
-> evaluate a broad genome panel (case studies, benchmarks)
-> read the unsupported calls (near misses, rarely supported GIFTs,
lineages below the size expectation)
-> log the leads as an expansion attempt
-> take each lead through the curation process above
-> change, defer or refuse, with the record
-> new database release, and evaluate the panel again
Three rules keep the loop honest.
- A lead is a question. A near miss is never counted as support, and a gap shared by many genomes does not show that the definition is wrong. The lineage may simply not encode the step.
- A lead earns no shortcut. It goes through the same stages as any other candidate: prior attempts, reference knowledge, marker specificity and genome tests. A marker is never widened so that a panel reads better.
- Every round is recorded. The screen opens a row in the expansion attempts, and each change that follows is a database change linked to the GIFTs it affects. Results computed on a panel state the database version they were computed with, because the next release can move them.
The GTDB phylogenetic panel gave the first full round. Its near misses were screened by which requirement is missing and whether the requirements present are specific to the GIFT. That produced an open list of definitions to re-read: one marker-specificity review, eight single-step alternatives in long pathways, fifteen two-requirement GIFTs, two boundary checks, sixteen rarely supported GIFTs and four lineages. None has been assessed yet, and the list is kept in the near-miss leads assessment.
Why a candidate stops
A blocker explains why a proposed GIFT cannot currently be defined and evidenced at the specificity it claims. It does not establish that organisms lack the capability. These are curation diagnoses, not additional GIFT types or mutually exclusive database statuses; several may apply to one candidate.
- Definition blocker. The proposed claim has no defensible rule for what counts as one complete capability. A generic capsule combines different polymers and assembly designs, so it has no single meaningful parts list. A chemically named structure can be assessed separately.
-
Marker specificity blocker. An available marker
does not distinguish the claimed function from another.
K00752contains proteins named HasA as well as PgaC and NodC relatives, so it cannot by itself support a hyaluronan synthesis call. That candidate also has an architecture-size blocker: only one independently required, polymer-specific function has been established. - Completeness blocker. The required parts can be stated, but accepted markers do not yet cover a complete implementation. In the assessed halophilic-archaeal gas-vesicle architecture, eight proteins are required and five lack accepted markers. A GvpA-only call would not establish the whole structure.
- Boundary or direction blocker. The chemistry is known, but the proposed start, end or direction misstates it. A glucose phosphotransferase system imports glucose as glucose 6-phosphate; a GIFT claiming unchanged intracellular glucose as its output would name the wrong boundary.
- Representation blocker. The claim requires evidence that the current evaluator does not use. Assigning a substrate to a polysaccharide-utilization locus may depend on which genes occur together, while GIFT marker matching does not evaluate gene neighbourhood.
The record for a stopped candidate states the specific blocker, whether the proposed claim is deferred or refused, and what new evidence or narrower claim would justify revisiting it.
Three worked examples: accepted, deferred and rejected
The outcome depends on whether the claim has a coherent completion rule and whether the evidence can test it. All three examples below went through curation; only the first became a GIFT in the database. The recorded outcomes are implemented, deferred and refused, respectively.
| Candidate | Outcome | Decisive reason |
|---|---|---|
| Acetate interconversion | Accepted: implemented | A two-reaction route and specific markers support the reversible claim. The proposed formation claim was narrowed because the markers cannot establish direction. |
| Gas-vesicle construction | Deferred | An eight-protein architecture is defined for halophilic archaea, but five required proteins lack accepted markers. The same candidate can be revisited when that evidence exists. |
| Generic capsule | Rejected: refused at this breadth | Different polymers and assembly designs have no single meaningful completion rule. A chemically named structure would be a new, narrower candidate. |
Deferral preserves a coherent claim awaiting evidence. Refusal rejects the claim as proposed; collecting more of the same broad markers would not make a generic capsule one defined capability. Neither outcome says that a genome lacks the structure.
Implemented: acetate interconversion
The candidate was “acetate formation”, assessed with the short-chain fatty acids on 2026-08-18.
- Knowledge bases. KEGG module M00579 offered a clean two-reaction skeleton: phosphate acetyltransferase then acetate kinase, both with Rhea master reactions.
- Specificity. The KOs for both enzymes each state one reaction.
- Reference genomes. 6,582 KEGG genomes carry both enzymes.
- Controls. Every reference genome checked was positive except Akkermansia muciniphila, which excretes acetate but lacks acetate kinase. That was recorded as a missing alternative route, not a reason to refuse.
- The claim. Both reactions are reversible and the markers cannot tell the direction, so the GIFT was named an interconversion rather than a formation. A name that claims direction would exceed the evidence.
The narrower interconversion claim passed curation and was added to the database. A positive call rests on a complete evidenced route; it does not require every known acetate producer to complete the routes curated so far. The Akkermansia gap remains an undercall to investigate, not a reason to widen a marker.
The resulting definition can be read with the public accessors:
reactions <- get_gift_reactions("acetate_interconversion")
reactions[, c("route_id", "reaction_id", "orientation")]
#> # A tibble: 2 × 3
#> route_id reaction_id orientation
#> <chr> <chr> <chr>
#> 1 ACETATE_PTA_ACKA RHEA:19521 forward
#> 2 ACETATE_PTA_ACKA RHEA:11352 reverse
systems <- get_reaction_systems("RHEA:19521")
systems[, c("component_id", "namespace", "accession", "confidence", "source")]
#> # A tibble: 3 × 5
#> component_id namespace accession confidence source
#> <chr> <chr> <chr> <chr> <chr>
#> 1 COMP_19521_CATALYTIC KO K00625 curated KEGG M00579 2026-08-18
#> 2 COMP_19521_CATALYTIC KO K13788 curated KEGG M00579 2026-08-18
#> 3 COMP_19521_CATALYTIC KO K15024 curated KEGG M00579 2026-08-18
evidence <- get_gift_evidence("acetate_interconversion")
evidence[, c("evidence_kind", "location")]
#> # A tibble: 1 × 2
#> evidence_kind location
#> <chr> <chr>
#> 1 curation_document inst/doc/proposal-scfa-biosynthesis.mdThe source column names the module and date the markers
were taken from. The evidence row points to the assessment that defines
and defends the GIFT.
Deferred: gas-vesicle construction
The proposed structural GIFT has a concrete completion rule: one studied halophilic-archaeal architecture needs eight gvp proteins to build a gas vesicle. The structural-machine assessment found an accepted marker for GvpA, but five required proteins have no admitted marker. A genome carrying GvpA therefore cannot be called complete through this architecture.
The candidate is deferred, because the parts list is meaningful but the current marker evidence cannot check every required part. It can be revisited if the missing proteins gain specific markers or a deliberate marker-admission decision supports them. No gas-vesicle GIFT or GvpA-only shortcut was added.
Refused: generic capsule
The structural assessment found that capsule describes where a polymer is retained, not one chemical product or assembly design. Wzx/Wzy and Wza/Wzc machinery also serves O antigens and extracellular polysaccharides. Finding that machinery cannot establish that a genome encodes a complete, generic capsule.
The proposed claim was refused at this breadth. Unlike gas vesicles, it does not have one parts list waiting for better markers. A named polymer and its complete, distinguishable assembly architecture could be assessed as a separate candidate; that would not validate the original generic claim.
Check composition and traceability
The proposed GIFT is inspected against the existing catalogue. Metabolic composition may occur only through declared anchors; a shared internal metabolite does not create an edge. Machinery GIFTs remain independent even when they genuinely share a component.
The complete evidence path must remain recoverable:
observed marker
-> component
-> system
-> reaction or function
-> route, architecture, circuit or mechanism
-> GIFT
When a caller supplies gene identifiers, the trace continues to those genes. If any level cannot be explained, the definition is not ready to compile.
Record provenance, build and close the attempt
The reviewable source of truth is the collection of TSV files under
inst/extdata/database-source.
SQLite is generated from those files and is never edited by hand.
For a metabolic GIFT, source records are normally added in dependency order:
- GIFT metadata and any new anchors;
- anchor roles and related external pathway links;
- reactions and reaction cross-references;
- routes and ordered route reactions;
- enzyme systems and required components;
- reusable markers and component-to-marker evidence;
- curation evidence: the proposal that defines the GIFT and any
analysis script and result table behind it, in
gift_evidence.tsv; - route chemistry exceptions: any place where the route’s Rhea reactions do not literally reach the declared anchors or chain from step to step, with the two ChEBI entities named;
- provenance, biological change history and release metadata.
The machinery models use the corresponding architecture, circuit or mechanism tables and their typed function, system, component and marker tables.
Reaction equations, ChEBI names and every basis are left
empty. A script extends the pinned extract of Rhea, ChEBI and KEGG to
the new accessions, which is where an accession that does not exist
upstream is caught, and fills those columns from it.
Validation then checks identifiers, foreign keys, type-specific rules, Boolean-layer completeness, marker admission rules and release metadata, and compares the tables with the pinned extract: every accession exists, every Rhea identifier is a master, and every anchor is consumed or produced by its route on the side each step’s orientation selects.
Rscript data-raw/reference_snapshot.R --sync
Rscript data-raw/build_database.R
Rscript -e 'testthat::test_local(".")'Tests then exercise biological behaviour: alternatives under OR, jointly required elements under AND, incomplete calls, specificity failures, composition, and evidence tracing. The resulting definition is inspected with the public accessors and in the Atlas.
Finally, the investigation is closed with one of three explicit outcomes:
-
implemented: exact new or changed
gift_idvalues and their database change record; - deferred: a standing blocker and the evidence that would retrigger work;
- refused: the claim cannot be supported without exceeding the evidence or violating the ontology.
The blocker diagnosis explains a deferred or refused outcome; it does not change a genome’s GIFT call.
A refusal is a curation result, not missing data. Recording it prevents a later curator from unknowingly repeating the same investigation or admitting the same over-broad evidence under a different name.
Where to find the record of any decision
| Question | Where it is answered |
|---|---|
| Which documents, scripts and result tables define this GIFT? |
get_gift_evidence(), and the “Curation evidence”
section of the GIFT’s page in the Atlas
|
| Why is the GIFT bounded where it is, and what was refused alongside it? | the curation proposal or assessment the evidence points to, under inst/doc/
|
| What was investigated, when, and with what outcome? | the expansion attempts |
| Why is a candidate not in the catalogue, and what would change that? | the deferral register |
| Which exact genome screens and controls were used? | the analysis scripts in data-raw/
and their outputs in data-raw/reference/
|
| What changed in the biological content, and which GIFTs did it affect? |
database_changelog(), and the Changes view of the Atlas
|
| Which upstream releases and pathway modules were used? |
gifter_db_version() and SOURCES.md
|
What database compilation does—and does not do
Compilation validates and transforms reviewed source tables into the packaged SQLite database. It does not discover biological boundaries, infer missing routes, upgrade uncertain markers or decide that a candidate is a GIFT. Those are curation decisions and must already be explicit, sourced and testable before the compiler runs.