How a profile is built
1 · Retrieve
The organism name is normalised, then each registered database is queried in its own HTTP request from the browser. One source per request means a slow endpoint delays only itself, and the operator watches the scan happen rather than staring at a spinner until FastCGI times out.
Three query shapes are used against the literature sources: a plain name query, a cultivation-weighted query, and a phenotype/identification query. Open-access full text is fetched where available, because the culture conditions live in Methods sections, not abstracts.
2 · Extract
Retrieved text is split into sentences, and each sentence is tested against field-specific extractors:
- Media — matched against a dictionary of ~110 named formulations, gated on a cultivation verb so that a passing mention of "blood agar" in a citation does not count.
- Temperature — numeric ranges and points in °C, scored higher when the sentence contains an optimality word.
- Time — durations with unit normalisation, gated on incubation context.
- Colony morphology — sentences that name colonies and carry at least two descriptive terms; the sentence itself becomes the value.
- Gram character — explicit statements, plus cell shape where reported in the same sentence.
- Biochemical tests — a dictionary of ~90 tests, with polarity read from a 60-character window either side of the match.
A sentence that does not name the organism is kept but discounted to 45%, because in a Methods section the organism is often named once, several sentences earlier.
3 · Score
For each candidate value:
score = Σ ( tier_weight × sentence_strength × recency_factor )
Tier weight is 5.0 for culture collections, 3.0 for peer-reviewed literature, 1.5 for preprints, 1.0 for encyclopedic sources. Recency runs from 1.15 (last five years) to 0.8 (over thirty years) — classical descriptions still count, because that is often where the phenotype was characterised properly.
| Confidence | Requires |
|---|---|
| high | a tier-1 source plus ≥2 distinct sources and score ≥8, or ≥3 sources and score ≥10 |
| moderate | ≥2 distinct sources and score ≥4.5 |
| low | any supporting evidence at all |
| no evidence | nothing retrieved — the field stays empty |
Where the runner-up scores above 60% of the leader, the field is flagged as a conflict and both are shown. The app does not pick a winner on your behalf in that situation.
4 · Inference, labelled as such
One inference is permitted. Cell-envelope architecture is strongly conserved above genus, so an NCBI Taxonomy lineage supports a Gram prediction — Bacillota and Actinomycetota to Gram-positive, Pseudomonadota and Bacteroidota to Gram-negative, Mycoplasmatota to no cell wall, and so on. Where that prior agrees with the literature it reinforces it; where it stands alone it appears as a distinct candidate reading inferred from lineage, not observed. It is never silently merged into an observed value.
What this is not
- It is not a substitute for Bergey's Manual, the Manual of Clinical Microbiology, or the product sheet from the collection you bought the strain from.
- Text mining of abstracts recovers what authors chose to state. A medium used but not named is invisible to it.
- Species-level resolution is only as good as the retrieved literature. For a sparsely-studied environmental isolate, expect thin results — and expect the app to say so rather than fill the gap with the genus average.
- Every profile is unreviewed. Nothing here auto-verifies; sign-off is a human act, and the next version should record who did it and when.