AI for research

Identifier hell: why ontology mapping is the real bottleneck in agentic drug discovery

Why do AI agents get biological identifiers wrong, and what does it take to make them resolve the same way twice?

Because identifiers look like knowledge but behave like infrastructure. Gene symbols get renamed, UniProt entries carry up to nineteen retired accessions, one molecule collects a new name at every development stage, and clinical endpoints have no registry at all. The fix is not a better model. It is a deterministic resolution layer: every identifier resolved by a versioned registry lookup, with the model narrowing candidates and never deciding truth.

By PharosBioPublished on 12 min read

Key takeaways

  • Ontology mapping is resolving the same biological entity across databases that name it differently.
  • In agentic biology, reasoning is no longer the scarce resource. Identifier resolution is.
  • Gene symbols were renamed in 2020 so spreadsheets would stop reading them as dates.
  • One UniProt entry can carry 19 secondary accessions; querying with one may silently return nothing.
  • 7,892 name strings mapped to just 92 RxNorm drug names in one regulatory database.
  • Clinical endpoints have no registry at all: ClinicalTrials.gov stores outcome measures as free text.
  • A deterministic retrieval layer lifted every tested agent above 90% accuracy and collapsed the gap between models.
  • Rule: models propose, registries dispose. Never let model recall be the source of truth.

The problem nobody puts on a slide

Every agentic drug discovery demo shows the same arc. A scientist asks a question in plain English. An agent plans, calls some tools, runs some code, and returns a clean answer with a chart.

What the demo skips is the part that consumes most of the engineering effort and causes most of the failures: deciding that MARCH1, MARCHF1 and Q8TCQ1 are the same thing, that Cd8b in a mouse dataset is not simply CD8B in a human one, that LY3298176and tirzepatide are one molecule, and that “change from baseline in body weight (%)” and “percent weight reduction at week 68” are the same endpoint while “change in body weight (kg)” is not.

None of this is glamorous. All of it determines whether the answer is right. The framing worth arguing for is this: in agentic life science, reasoning is no longer the scarce resource. Resolution is. Models can plan a comparative pharmacology analysis. What they cannot do reliably, on their own, is guarantee that the two things they are comparing are actually the same thing.

Definition

Ontology mapping is the work of establishing that two records refer to the same real entity: that a gene symbol, a UniProt accession and a database identifier all denote one protein, or that two differently worded trial endpoints measure one thing. It is the precondition for combining data from sources that were never designed to agree.

The four layers of identifier hell

The problem is not uniform. It gets structurally worse as you move from entities that have a naming authority to entities that have none.

The four layers, with the naming authority, the characteristic failure and a documented example for each. Every work cited in the figure appears in full in Sources below.

Layer 1: genes

The canonical example is also the most embarrassing. Spreadsheet software, on default settings, converts gene symbols such as SEPT8, DEC1 and MARCH3 into dates. Ziemann and colleagues (2016) scanned supplementary files across 18 journals and found gene name errors in 19.6% of papers with Excel gene lists. A follow-up with better detection software put the figure at 30.9%, or 3,436 of 11,117 papers, and found the rate essentially flat from 2014 to 2020 (Abeysooriya et al., 2021).

The fix was not to change Excel. It was to rename the genes. The HUGO Gene Nomenclature Committee updated its guidelines in 2020 to explicitly allow renaming symbols that affect data handling and retrieval, and 27 human genes were changed: every MARCH# became MARCHF#, every SEPT# became SEPTIN#, and DEC1 became DELEC1 (Bruford et al., 2020).

Read that again from an agent’s point of view. The authoritative vocabulary changed to accommodate a bug in a spreadsheet application. Every paper and internal dataset written before 2020 uses the old symbols; everything after uses the new ones. Both are correct in their own context, and nothing in the string itself tells you which era it came from.

Three further failure modes matter more than the Excel story. Aliases: a single gene routinely carries half a dozen historical symbols in the literature. Species: human and mouse symbols mostly differ by capitalisation, which invites a naive uppercase transformation. It is wrong often enough to matter. There is no mouse Cd8b, because the ortholog of human CD8B is Cd8b1, and CD8B is a defining marker for CD8+ T cells, so a lazy uppercase silently deletes a cell population. Human CD16 (FCGR3A) maps to mouse Fcgr4, not Fcgr3 (mousipy). Cardinality: orthology is not one-to-one, so tooling must choose to drop, duplicate or pick a best reciprocal match. That choice changes downstream enrichment results and is almost never recorded in the methods section.

Layer 2: proteins

UniProt is the reference layer for protein identity, and it is more disciplined than gene nomenclature. It is also more subtle. Accessions have a primary, citable form and a set of secondary forms retained from historical merges and splits. The beta-2 adrenergic receptor’s primary accession is P07550, and it carries 19 secondary accessions. Query with one of them and, depending on the endpoint you hit, you may get a redirect, an empty result, or a silent miss.

Then there is the categorical error that is easy for a model to make and hard for a reviewer to catch: a gene is not a protein. One NCBI Gene identifier can correspond to several UniProt accessions, through alternative splicing and isoforms for genuinely biological reasons and through accession churn for technical ones. Pipelines that flatten gene identifiers to protein accessions have to pick, and that pick is a scientific decision dressed as a data engineering one.

Layer 3: compounds

Compounds are where naming becomes actively adversarial, because a single molecule accumulates identities as it moves through development.

StageIdentity it acquires
DiscoveryInternal code, for example LY3298176
ChemistrySMILES, InChI, InChIKey
DatabaseChEMBL ID, DrugBank ID, PubChem CID
RegulatoryInternational Nonproprietary Name (INN), for example tirzepatide
MarketBrand names, differing by territory
ClinicFree-text mentions, misspellings, abbreviations

Two structural features of drug naming make automated matching worse, not better. First, the INN stem system deliberately makes names in the same class look similar. Every monoclonal antibody ended in -mab, and every glucagon-like peptide-1 (GLP-1) receptor agonist ends in -glutide. Semaglutide, liraglutide, dulaglutide, exenatide and albiglutide are five different molecules with different half-lives and different trial programmes, and an embedding-based matcher will happily rank them as near-identical. That crowding is real: 879 INN already carry the -mab stem, which is why the World Health Organization INN Expert Group decided in October 2021 to retire it in favour of -tug, -bart, -mig and -ment, while leaving every already-approved name unchanged (Guimaraes Koch et al., 2022). So now there are two schemes in circulation, permanently.

Second, the sheer breadth of surface forms. In a study mapping FDA-approved prescription opioids in the FDA Adverse Event Reporting System (FAERS), 7,892 distinct name strings resolved to just 92 RxNorm names, with 2,086 of those strings used at least three times and 842 used at least ten times, across 14.9 million adverse event reports (Le et al., 2024). That is roughly 85 ways of writing each drug, in a single well-curated regulatory database, for one drug class.

Layer 4: endpoints, and why this one is hardest

Genes, proteins and compounds at least have registries. Endpoints largely do not. ClinicalTrials.gov stores outcome measures as free text. Evaluating 302,091 trial records, Miron and colleagues (2020) found that contact information, outcome measures and study design are “frequently missing or underspecified,” that fields important for search such as condition and intervention are not restricted to ontologies, and that almost half of conditions are not denoted by MeSH terms as recommended.

The result is that conceptually adjacent endpoints appear as “Change from Baseline in Body Weight at Week 68,” “Percentage Change in Body Weight,” “Mean Body Weight Reduction (kg),” and “Proportion of Participants Achieving at least 5% Weight Loss.” The first two may be the same measurement expressed in different units. The third is a different summary statistic. The fourth is a responder analysis and is not directly comparable to any of them, even though a language model asked whether they are the same endpoint will often say yes.

And this is before crossing the species boundary, where the measurement method itself changes. A mouse liver is excised and weighed. A human liver is scanned by computed tomography and its volume estimated. Both get written down as “liver size.” They are not the same number, they are not in the same units, and no amount of string matching will tell you so.

What the gget virus result actually proves

The most useful public evidence on this problem came out of Anthropic’s science team in June 2026, and it is worth being precise about what it shows.

The team built VirBench, 120 realistic viral sequence retrieval queries across 40 pathogens with manually verified ground-truth counts, and asked frontier agents to retrieve sequence sets from NCBI Virus. Across Claude Sonnet 4, Claude Opus 4.7, Biomni OSS, Edison Analysis, GPT-5.2-pro and GPT-5.5, mean accuracies ranged from 16.9% to 91.3%. For dataset construction, the bar is effectively 100%. Worse, the same model given the same prompt three times returned 106, 15 and 5 sequences for one Ebolavirus query, against an expected 266 (Luebbert, 2026; Nasri et al., 2026).

The downstream consequence is the part that should worry anyone building translational tooling. A phylogenetic tree built from a manually curated dataset recovered a January 2014 time to most recent common ancestor (TMRCA) for the West African Ebola epidemic, matching the published literature. One agent-retrieved dataset pushed the inferred root back to 1922. Another looked entirely plausible, but had silently missed the Guinea sequences and shifted the estimate to April 2014.

Then they added gget virus, a deterministic retrieval layer built with NCBI researchers that formalises NCBI Virus-style filtering as a reproducible programmatic system, staging retrieval and applying metadata constraints before sequence download. Accuracy rose above 90% for every agent and peaked at 99.7%. Response stability rose to between 0.92 and 1.00, and data transfer fell by more than 98% on high-volume queries. And the gap between models collapsed.

The finding that matters

Adding a deterministic layer made model choice much less important. If your identifier resolution depends on which frontier model you happened to route to today, you do not have a pipeline. You have a slot machine with good manners.

The failure modes are also instructive, because they are exactly the ones you see in chemistry and clinical data. Agents under-counted when they failed to retrieve large result sets. They over-counted when filters were applied incorrectly. And performance degraded past three or four simultaneous filters. Substitute “which UniProt isoform,” “which trial arm,” and “which unit of measure” and you have the drug discovery version of the same chart.

Where language models genuinely help, and where they do not

This is not an argument against using models for identifier work. It is an argument about placement. Dobbins (2025) found that off-the-shelf models used alone perform poorly at biomedical concept normalization, but substantially improve existing tools when composed into a multi-stage pipeline, raising F1 by between 7.3% and 21.7% with no fine-tuning.

TaskModel or registryWhy
Candidate generationModelRecall is what you want; precision comes later in the pipeline
Semantic similarity across paraphraseModelHard for lexical matching, easy for a language model
Disambiguation with contextModelPicking from a retrieved shortlist is where results are strongest
Extraction from unstructured textModel, schema-constrainedReliable only when the output is forced into a fixed schema
Accession and identifier lookupRegistryA plausible six-character string is indistinguishable from a correct one
Enumeration and completenessRegistryCompleteness is a property of a query, not of a generation
Version awarenessRegistryModels have no reliable notion of which release a symbol belongs to
Anything feeding a go/no-go decisionRegistrySame prompt, different answer disqualifies the model as source of truth

The rule worth adopting: models propose, registries dispose. Every identifier that enters a result must be traceable to a deterministic lookup with a recorded source and version. The model’s job is to narrow the candidate set and explain the choice, never to be the source of truth.

Where a language model belongs in an identifier pipeline, and where it does not. The model narrows and explains; the registry decides and records.

A worked case: reading in vivo results against the clinical record

This is not hypothetical for us. In a custom build with Gubra, a preclinical biotech serving 15 of the top 20 pharma companies worldwide, PharosBio built an API that augments in vivo results with clinical evidence, benchmarking an internal compound’s animal effect size against compounds that reached the clinic to predict a likely outcome. On a retrospective set of 37 drugs across 10 diseases it correctly flagged 84.21% of failures. The full case study has the method.

The interesting part, for this argument, is not the headline number. It is what the work actually consisted of.

Problem one: which drug is this?

A comparison set for a metabolic indication contains semaglutide, liraglutide, dulaglutide, exenatide, tirzepatide, and a dozen internal codes that later became one of those. They share a stem by design. They appear in the literature under internal codes, INNs and brand names, sometimes in the same paper. Naive string or embedding similarity collapses them. So the pipeline does not score similarity on names at all: it scores compound similarity by target and mechanism of action, using models over structured target and mechanism annotations rather than over the name string. Two GLP-1 receptor agonists are similar because they hit the same receptor with the same mechanism, not because their names rhyme.

Problem two: which endpoint is this?

Here the model is used, but fenced. Extraction of a measurement from a trial record or a paper runs against a well-defined schema with strict endpoint criteria: what was measured, in what units, at what timepoint, in what population, by what method. An endpoint that cannot be resolved into that schema is not silently coerced into the nearest match. It is excluded.

That decision has a visible cost, and it shows up directly in the results: 84.21% specificity, 33.33% sensitivity, 59.46% overall accuracy. The tool is much better at flagging likely failures than at catching every winner. Part of the reason is that relying on published trial and literature records alone misses compound-performance details, which is a direct consequence of the comparability problem. Strict endpoint criteria mean you throw away real signal along with the noise.

We consider that the right trade for this use case. A false “this will fail” costs a programme you might have run. A false “this will succeed” costs a Phase 2 or 3. But the honest version of the lesson is the one on the case study page: the biggest practical hurdle is comparability and reproducibility, not speed. Solving that is most of the work, and most of the value. Each run also accumulates a drug-disease knowledge graph, which is the compounding return on doing the mapping work properly. Resolved identifiers are an asset. Fuzzy matches are a liability that has to be re-litigated every time.

What good looks like: seven rules

  1. 1Deterministic resolution layer. Every identifier resolves through a real service or a versioned local copy: HGNC, UniProt, ChEMBL, RxNorm, ClinicalTrials.gov. Never through model recall.
  2. 2Version-pin everything. Genome build, HGNC release, UniProt release, ChEMBL version, registry snapshot date. An identifier without a version is a string, not an identifier.
  3. 3Record the mapping, with justification. SSSOM captures subject, object, source, source version, predicate and the justification for each mapping, making imprecision explicit rather than invisible (Matentzoglu et al., 2022). Use it, or something with the same properties.
  4. 4Make one-to-many explicit. Never silently pick. Either propagate the ambiguity, or record which rule resolved it and why.
  5. 5Structural identity for chemistry, semantic identity for biology. InChIKey answers whether this is the same molecule. Target plus mechanism answers whether this is a comparable drug. Names answer neither.
  6. 6Schema-constrained extraction with a refusal path. The model fills a schema. If it cannot, the record is flagged, not guessed. An excluded record is recoverable; a wrong one is not.
  7. 7Test with adversarial pairs. Your regression suite should include renamed genes, secondary accessions, -glutide confusables, biosimilar four-letter suffixes, and endpoints that differ only in unit. If your pipeline passes on clean data, you have not tested it.

The uncomfortable conclusion

There is a plausible future in which none of this is necessary, where agents navigate messy portals, reconcile identifiers and recover from failures unaided. The Anthropic team says as much, writing that it is easy to imagine a very near future in which the benefit of tools like gget virus approaches zero. And they are the ones who built the workaround.

But even granting it, two things hold. First, a model that can fight through a confusing workflow may still be too expensive, too slow, or too hard to audit to do it on every run. Second, and more importantly for anyone shipping into a regulated environment: an agent that gets the right answer by an unrepeatable route has not given you an answer. It has given you an anecdote.

The category claim

A deterministic resolution layer is the component of an agentic research system that turns every identifier into a versioned registry lookup with recorded provenance, so the same question returns the same answer on a later run. It is what separates a reproducible pipeline from a convincing demonstration. Hydra encodes this discipline in its skills and its roughly 100 preloaded scientific databases.

The competitive advantage in agentic drug discovery is not going to come from the model. Everyone has the same models. It will come from having done the boring, unglamorous, expensive work of making your identifiers resolve deterministically, your endpoints comparable, and your mappings auditable, so that when the model does the interesting part, the answer is actually about the molecule you think it is about.

Identifier hell is not a preprocessing step. It is the product.

Glossary

TermWhat it means
Ontology mappingEstablishing that two records from different sources refer to the same real entity
Entity normalizationResolving a free-text mention to a single canonical identifier in a registry
HGNCHUGO Gene Nomenclature Committee: the naming authority for human genes
Primary accessionThe citable UniProt identifier for an entry, as opposed to retired secondary forms
Secondary accessionAn older UniProt identifier retained after a merge or split, still in circulation
InChIKeyA fixed-length hash of chemical structure, used to test whether two records are one molecule
INNInternational Nonproprietary Name: the WHO-assigned generic name for a substance
INN stemThe shared suffix marking a drug class, such as -mab or -glutide, which makes classmates look alike
RxNormThe US National Library of Medicine's normalised naming system for clinical drugs
SSSOMSimple Standard for Sharing Ontological Mappings: a table format recording each mapping and its justification
OrthologyThe correspondence between genes in different species; frequently not one-to-one
TMRCATime to most recent common ancestor: a dated root inferred from a phylogenetic tree
Responder analysisAn endpoint counting participants crossing a threshold, not comparable to a mean change
Deterministic resolution layerA component making every identifier lookup versioned, logged and repeatable

Frequently asked questions

What is ontology mapping in drug discovery?

Ontology mapping is the work of deciding that two records refer to the same real entity: that a gene symbol, a UniProt accession and a database identifier denote one protein, or that two differently worded trial endpoints measure one thing. It is the precondition for combining data from sources that were never designed to agree.

Why do AI agents get biological identifiers wrong?

Because identifiers look like knowledge but behave like infrastructure. A model asked for an accession will produce a plausible string with no way to tell right from wrong, and the same prompt can return different results on different runs. Registries change too: symbols are renamed and accessions are merged, and nothing in the string records which version it came from.

Can large language models do entity normalization on their own?

Not reliably alone. Dobbins (2025) found off-the-shelf models perform poorly at biomedical concept normalization used by themselves, but improve existing tools substantially when composed into a multi-stage pipeline, raising F1 by 7.3% to 21.7% with no fine-tuning. The value is in placement, not in replacement.

What is a deterministic resolution layer?

A deterministic resolution layer is a component that turns every identifier into a registry lookup with a recorded source and version, so the same input always produces the same output. Anthropic's gget virus is a published example: adding it lifted every tested agent above 90% accuracy and largely removed run-to-run variability.

Why are clinical trial endpoints harder to map than genes?

Genes, proteins and compounds have registries; endpoints largely do not. ClinicalTrials.gov stores outcome measures as free text, so the same measurement appears in many wordings, units and summary statistics. Across 302,091 records, Miron and colleagues (2020) found outcome measures frequently missing or underspecified.

Sources

  1. 01Abeysooriya M, Soria M, Kasu MS, Ziemann M (2021). Gene name errors: Lessons not learned. PLOS Computational Biology 17(7): e1008984. doi.org/10.1371/journal.pcbi.1008984
  2. 02Bruford EA, Braschi B, Denny P, Jones TEM, Seal RL, Tweedie S (2020). Guidelines for human gene nomenclature. Nature Genetics 52: 754–758. doi.org/10.1038/s41588-020-0669-3
  3. 03Dobbins NJ (2025). Generalizable and scalable multistage biomedical concept normalization leveraging large language models. Research Synthesis Methods16(3): 479–490. doi.org/10.1017/rsm.2025.9
  4. 04Guimaraes Koch SS, Thorpe R, Kawasaki N, Lefranc MP, Malan S, Martin ACR, Mignot G, Plückthun A, Rizzi M, Shubat S, Weisser K, Balocco R (2022). International nonproprietary names for monoclonal antibodies: an evolving nomenclature system. mAbs 14(1): 2075078. doi.org/10.1080/19420862.2022.2075078
  5. 05Le H, Chen R, Harris S, Fang H, Lyn-Cook B, Hong H, Ge W, Rogers P, Tong W, Zou W (2024). RxNorm for drug name normalization: a case study of prescription opioids in the FDA adverse events reporting system. Frontiers in Bioinformatics 3: 1328613. doi.org/10.3389/fbinf.2023.1328613
  6. 06Luebbert L (2026). Paving the way for agents in biology. Anthropic. anthropic.com/research/agents-in-biology
  7. 07Matentzoglu N, Balhoff JP, Bello SM, et al. (2022). A Simple Standard for Sharing Ontological Mappings (SSSOM). Database 2022: baac035. doi.org/10.1093/database/baac035
  8. 08Miron L, Gonçalves RS, Musen MA (2020). Obstacles to the reuse of study metadata in ClinicalTrials.gov. Scientific Data 7: 443. doi.org/10.1038/s41597-020-00780-z
  9. 09Nasri F, Gurev S, Varilly P, Ramesh K, O’Leary NA, Cool J, Renard BY, Sabeti PC, Luebbert L (2026). Deterministic access to global viral sequence data enables robust agentic scientific discovery. arXiv:2606.06749. arxiv.org/abs/2606.06749
  10. 10Peidli S. mousipy: human to mouse gene symbol conversion. github.com/stefanpeidli/mousipy
  11. 11PharosBio (2026). Can you predict a drug’s clinical outcome from its in vivo data? pharos.bio/case-studies/augmenting-in-vivo
  12. 12UniProt Consortium. Accession numbers. uniprot.org/help/accession_numbers. Secondary-accession count for P07550 verified against the UniProt REST API, August 2026.
  13. 13Ziemann M, Eren Y, El-Osta A (2016). Gene name errors are widespread in the scientific literature. Genome Biology 17: 177. doi.org/10.1186/s13059-016-1044-7
Hydra

Analysis that resolves the same way twice

Hydra plans, runs and validates real bioinformatics analysis across roughly 100 preloaded scientific databases and 200+ codified skills, with the resolution work already done. Give it a research direction and check the provenance yourself.