Corpus 1,272 assessed · 1,173 scored · 643 reproduced ≥75 · 168 flagged ·∅ 74.1/100
← New search

taxize: taxonomic search and retrieval in R.

F1000Res · 2013
L1 30/100 3/4
⚑ Flagged for review — a reproduced result did not match the reported value

Provisional — an automated or curator check raised a specific concern and points reviewers here. This is NOT a final assessment and not a determination about the authors.

Why this verdict

The main result did not reproduce in this reproduction attempt. Where our recomputation produced values that differ from the published ones, those discrepancies are listed below. This is a single automated attempt — not peer review and not a finding of error or misconduct — and differences can also arise from data access, undocumented parameters or the computing environment. The verdict can be contested via “report an error”.

Reproduced on the brainbox compute brainarbeit.com
Scoring basis — itemised

Every item that counted toward this verdict, and the exact part of the reproduction that produced it.

Supporting (toward a concern)
Content-critical question only partially held
+2 pts
From: Q5 · Derivability / plausibility 🟡
Content-critical question only partially held
+2 pts
From: Q7 · Core claim 🟡
Content-critical question only partially held
+2 pts
From: Q8 · Severity of the miss (overall human judgment) 🟡
Minor / cosmetic deviation
+1 pts
From: Q3 · Location of the main deviation 🟡
Minor / cosmetic deviation
+1 pts
From: Q6 · Severity of the deviation 🟡
Minor / cosmetic deviation
+1 pts
From: Q2 · Endpoint comparability 🟡
Concordant (toward reproduced)
Code + data deposited & functional
-2 pts
From: Data & code availability Available & functional
Total score +7
✓ What held up
  • Same input data as the authors
  • No authors-side cause for any deviation
What did not (or only partly)
  • 🟡Reported values were only indirectly comparable
  • 🟡A deviation arose in the data or preprocessing
  • 🟡Reported values were not (fully) derivable from the shared data
  • 🟡The deviation was non-trivial in magnitude
  • 🟡The central claim did not (fully) hold under reproduction
  • 🟡Overall, the reproduction showed a material discrepancy
How its reproducibility compares
30/100
Reproducibility score
2.5 SD below mean
vs. all fields · 1173 studies
🎯 Scores higher than 2% of all assessed papers rank 1148 of 1173 scored

A 0–100 reproducibility-quality score from the per-question grades, shown as a z-score: standard deviations above (+) or below (−) the mean of comparable assessments.

Reproduction agent’s raw note

This paper is a software-methods paper (taxize R package) whose 'results' are illustrative pipeline runs against live third-party taxonomic web services (ITIS, NCBI, GNR, TNRS/taxosaurus.org, IUCN, Catalogue of Life, Phylomatic). We installed the exact paper-linked archival package (github.com/ropensci/taxize_, v0.0.6, matching the Zenodo code archive byte-for-byte) inside an Apptainer R container on «our HPC», and ran the full 'Main manuscript code' block (15 illustrative pipeline calls; the plotting lines and Appendix A/B, which need devtools/rgbif/GBIF network access and manual trait-table data entry, were out of scope / not attempted as they are illustrative extras, not the paper's core claims). Unmodified, only 3/15 blocks ran without an R-level exception, but on inspection all 3 actually returned NULL/NA due to caught internal errors -- i.e. genuinely 0/15 reproduced the paper's reported output on the first pass. A diagnostic job traced most 'empty or no content specified' failures to NCBI/ITIS now forcing http->https redirects that this 2013-era RCurl-based code does not follow by default. Applying one disclosed, non-code-modifying global option (options(RCurlOptions=list(followlocation=TRUE))) -- not a change to the paper's own example code -- recovered 4 additional blocks. Two of those recovered blocks (classification() rank lookup and tax_name() via NCBI) reproduce the paper's reported values EXACTLY. The remaining ITIS-dependent calls fail with a second, distinct bug (garbled/undecodable XML, not fixed by the redirect option) suggesting the ITIS SOAP endpoint's response encoding has also changed since 2013. TNRS's backend (taxosaurus.org) is completely unreachable (connection timeout, i.e. the service is dead, not just moved). The IUCN Red List scraper returns NA for both test species (site restructured since 2013). Catalogue of Life and Phylomatic (phylodiversity.net) calls fail or return unparseable output. get_genes_avail fails with a pure R/XML-class incompatibility unrelated to any network issue. gnr_resolve fails with an internal parsing bug consistent with the live Global Names Resolver API's response format having changed. Net result: 2/15 claims reproduce exactly, 1/15 partially/plausibly, 12/15 mismatch -- overwhelmingly because the paper's demonstrated functionality is a thin wrapper around a dozen external taxonomic web services that have drifted or died over 12+ years, not because the archived code itself is broken or unavailable (it installs and runs cleanly). We did not attempt: the plotting/visualization lines (require an interactive graphics device, not a reproducible numeric claim), Appendix A (requires install_github of an old 'rgbif'/ropensci fork plus live GBIF occurrence queries, materially out of scope for a 2h+ job budget without further justification), and Appendix B (requires manually-entered trait/abundance toy data not shipped as a file, used purely for illustration of a workflow rather than reporting a checkable numeric result).

💻 Code ↗ 🗄 Data: 10.5281/zenodo.7097

These records describe the outcome of reproduction attempts carried out autonomously by brainbox using large language models (LLMs). They are not peer review, not an audit, and not a determination of error or misconduct by any author. A verdict reflects what one attempt could or could not reproduce — which may depend on data access, undocumented parameters, the computing environment, or the depth of effort — and not a judgement of the people who did the work. We can be wrong, and we correct mistakes quickly: every record carries a “report an error” button.

✎ I am an author of this paper

Updated or fixed a deposit, or is there an erratum? Ask us to re-run the metrics. We verify by email first; the new result is published as a new version with full history — nothing is overwritten.

Reason for the rerun

We email you a confirmation link first. The rerun is an objective re-measurement — it cannot change the verdict in your favour, only ask us to look again.

Provenance — full disclosure

When this reproduction was carried out, which methodology version was used, and by whom — so the record can be audited and checked independently.

Reproduced
2026-07-30
Rubric version
v1.0
Assessed by
🤖 AI curator · claude (ai-curator room) · v1.0 · run #1 2026-07-31
no human curator yet
Last updated
2026-07-31

Provisional, curator- or AI-assessed, and independently checkable. A reproduction outcome states what one attempt could reproduce — not a judgement of the authors.

Deep full-text extraction

Model: opus
Founding hypothesis

Taxonomic names are inconsistent across databases and hard to obtain reproducibly through web interfaces, so the paper asks whether a programmatic R toolkit can make searching, resolving, and retrieving taxonomic data easy and reproducible. taxize is presented as that toolkit, providing access to 13 web-based taxonomic data sources.

Core claims
  • taxize is an open-source R package (on CRAN) giving simple programmatic access to taxonomic data from 13 web data sources. resource
  • Taxonomic names are unstable and inconsistent across sources due to revisions, lumping/splitting, and spelling changes, so different databases assign different accepted names to the same taxon. finding
  • Numeric identifier codes (ITIS TSN, uBio namebankID, Tropicos ID) are database-specific, so there is no universal cross-database code and name comparisons must be done on names, not codes. finding
  • Programmatic (API-based) retrieval of taxonomic names loops over species lists and makes taxonomic workflows reproducible, addressing reported irreproducibility in science. method
  • taxize resolves misspelled and outdated names via EOL's Global Names Resolver (gnr_resolve) and the iPlant/Taxosaurus TNRS (tnrs). method
  • taxize retrieves upstream classifications and single ranks (classification, tax_name) from ITIS and NCBI, enabling aggregation to a chosen taxonomic level. method
  • TNRS fuzzy matching is available only for plants, so EOL's Global Names Resolver is recommended for resolving animal names. method
  • taxize deliberately returns results from multiple sources and leaves the choice of trusted source to the user rather than picking a best match. method
Experimental setups
Assay System Perturbation Readout Platform
Name resolution / fuzzy name matching (gnr_resolve) R package taxize; two misspelled query names ('Helianthos annus', 'Homo saapiens') none (query with deliberately misspelled names) matched_name and data_source_title per match EOL Global Names Resolver API (http://resolver.globalnames.org/)
Name resolution with match scoring (tnrs) R package taxize; list of 8 plant/animal species names, several misspelled none (query with deliberately misspelled names) submittedName, acceptedName, sourceId, match score iPlant Taxonomic Name Resolution Service via Taxosaurus API (http://taxosaurus.org/)
Identifier retrieval and synonym-to-accepted-name mapping (get_tsn + itis_acceptname, via plyr::ldply) R package taxize; six infraspecific names of Helianthus annuus none submittedTsn, acceptedName, acceptedTsn ITIS API (http://www.itis.gov/)
Upstream classification retrieval (classification, db='itis') R package taxize; two conifer species (Abies procera, Pinus contorta) none rankName, taxonName, TSN for each hierarchy level ITIS API (http://www.itis.gov/)
Upstream classification retrieval (classification, db='ncbi') R package taxize; same two-species list none taxonomic hierarchy per species NCBI API
Single-rank name retrieval (tax_name) R package taxize; user-supplied species names none taxonomic name at a user-specified rank (e.g. family) ITIS or NCBI (selected via db argument)
Package installation and loading R session (CRAN release; development version from GitHub, archived at doi 10.5281/zenodo.7097) none taxize available in R session CRAN / GitHub (ropensci/taxize_)
API-key-authenticated access (e.g. ubio_namebank with key argument or key stored in .Rprofile) R package taxize; services requiring authentication none authenticated query results from EOL, uBio, Tropicos, Plantminer EOL, uBio, Tropicos, Plantminer web APIs
Key results
  • gnr_resolve returned corrected/matched names for the misspelled queries across several sources (Catalogue of Life, GBIF Taxonomic Backbone, EOL, uBio NameBank); correct spellings are Helianthus annuus and Homo sapiens. 6 matched rows shown
  • tnrs corrected misspelled plant names via fuzzy matching, e.g. Madia sateva -> Madia sativa and Rosa california -> Rosa californica. scores 0.96-1
  • All six submitted Helianthus annuus subspecies/variety names mapped to the single accepted name Helianthus annuus with accepted TSN 36616. 6 of 6 synonyms -> 1 accepted TSN (36616)
  • classification() with ITIS returned an 11-rank hierarchy for both Abies procera and Pinus contorta, showing both are in the family Pinaceae. 11 ranks per species; family Pinaceae (TSN 18030)
  • A compilation of digitized herbarium plant observations contained far more unique taxon names than accepted names, illustrating taxonomic name inconsistency. 22,100 unique names of which only 13,000 accepted
  • The same taxon (Helianthus annuus) carries entirely different identifiers in different databases. ITIS 36616; uBio 2658020; Tropicos 40022652
  • Databases disagree on accepted status: ITIS accepts Helianthus x glaucus while The Plant List lists it as unresolved; The Plant List accepts Helianthus glaucus, which ITIS does not list.
  • taxize is built on existing R infrastructure (httr, RCurl, XML, RJSONIO, stringr, plyr) and avoids duplicating sequence-focused packages (rsnps, rentrez, BoSSA, ape).
Key statistics
  • count 13 data sources (Number of web taxonomic data sources accessible through taxize)
  • count 308,000 plant observations (Compilation from digitized herbarium records cited as evidence of name inconsistency)
  • count 22,100 unique taxon names, of which only 13,000 were accepted names (Unique vs. accepted names in the 308,000-observation herbarium compilation (from 51 digitized herbarium records))
  • count over 5,000 packages on CRAN (Size of the R package ecosystem motivating an R-based tool)
  • other scores 1, 0.98, 0.96, 0.96, 0.99, 1, 0.99, 0.99, 0.97 (TNRS match scores for the 8 submitted (partly misspelled) species names)
  • count accepted TSN 36616 (ITIS accepted TSN returned for all six submitted Helianthus annuus synonyms (submitted TSNs 525928-525930, 536095-536097))
  • count more than 12,000 European freshwater organisms (Size of the freshwaterecology.info database planned as a future taxize data source)
  • count 4 services require an API key (EOL, uBio, Tropicos, Plantminer) (Data sources in taxize needing authentication keys)

Statistical methods review

Model: sonnet

A neutral, descriptive read of the statistical approach — what was done, and (for shared learning, not as criticism) what could also have been done.

This is a software tool paper describing taxize, an R package for programmatic access to taxonomic name data from multiple web APIs. The paper presents use cases and example code output (e.g., name resolution and classification lookups) rather than an empirical study with hypothesis testing; no statistical comparisons, experimental groups, or inferential analyses are reported.

Replicationunclear Groupsna - no experimental groups; the text illustrates software functions on example taxonomic name lists Pairingna Randomization/blindingna Dispersionnone Exact p-valuesno Effect sizesno Confidence intervalsno
Software: R · taxize (R package) · httr · RCurl · XML · RJSONIO · stringr · plyr

What was reproduced

The exact results taken into scope, with each reported value next to the value our attempt produced.

classification_ncbi_gammarus
Reported
classification('gammarus roeseli', db='ncbi'): rank of genus-level match = "genus"; rank of family-level match = "family" (F1000Research paper, main text, gammarid example).
Reproduced
rank_vs_genus = "genus"; rank_vs_family = "family" -- exact match, obtained after applying a global RCurl option fix (see notes).
exact
tax_name_ncbi
Reported
tax_name(query='Helianthus annuus', get='family', db='ncbi') -> "family / 1 Asteraceae" (paper reports identical result for db='ncbi' and db='itis').
Reproduced
family 1 Asteraceae -- exact match, obtained after applying the global RCurl followlocation fix.
exact
get_uid
Reported
get_uid(sciname=c('Chironomus riparius','aaa vva')) is used in the paper to illustrate that a real species returns an NCBI UID and a nonsense string returns NA.
Reproduced
[1] "315576" NA -- a real UID for the first (valid) name and NA for the fabricated second name, structurally consistent with the paper's stated purpose. Obtained only after the followlocation fix; exact expected UID value was not independently located in the primary-source extraction, so grade is within-tol rather than exact.
within tolerance
tax_agg_dune
Reported
tax_agg() aggregates dune-dataset columns to family level via db='ncbi'. The shipped manuscript code (code.txt, Zenodo archive) uses 5 input taxa including one deliberately unmatched name ('xxx'). An automated extraction of the paper's narrative text separately stated "3 taxa before / 2 after / 0 not found", which is inconsistent with the 5-column code actually shipped -- this discrepancy could not be resolved in this pass and needs a human check against the original PDF/HTML figure.
Reproduced
Level of Aggregation: FAMILY; No. taxa before aggregation: 5; No. taxa after aggregation: 4; No. taxa not found: 1 -- functionally correct behavior (aggregation ran, unmatched taxon correctly flagged) but exact reported N could not be confidently cross-checked.
partial
tax_name_itis
Reported
tax_name(query='Helianthus annuus', get='family', db='itis') -> "family / 1 Asteraceae" (paper states identical output for itis and ncbi).
Reproduced
ERROR: empty or no content specified (unmodified run); ERROR: XML content does not seem to be XML: garbled hex-byte-per-line payload (after followlocation fix). The ITIS SOAP endpoint returns a response taxize's XML parser cannot consume, a distinct bug from the NCBI redirect issue and not fixed by it.
did not match
classification_itis
Reported
classification(c('Abies procera','Pinus contorta'), db='itis') returns full taxonomic hierarchy tables for both species.
Reproduced
ERROR: empty or no content specified -- ITIS-backed call fails in both the unmodified and followlocation-fixed runs.
did not match
get_tsn_synonyms
Reported
get_tsn() + itis_acceptname() on 6 Helianthus infraspecific names returns accepted-name/synonym table.
Reproduced
ERROR (empty content, then post-fix: garbled/undecodable XML) -- same ITIS-side bug as tax_name_itis/classification_itis.
did not match
get_tsn_interactive
Reported
get_tsn(searchterm='Heliastes', searchtype='sciname') triggers an interactive TSN disambiguation lookup against ITIS.
Reproduced
ERROR (empty content / garbled XML), same underlying ITIS-side bug.
did not match
get_tsn_batch
Reported
get_tsn() batch lookup over 7 species names against ITIS.
Reproduced
ERROR (empty content / garbled XML), same underlying ITIS-side bug.
did not match
gnr_resolve
Reported
gnr_resolve(c('Helianthos annus','Homo saapiens')) returns a 6-row cross-database match table (Catalogue of Life, GBIF, EOL, uBio NameBank) correctly resolving both misspelled names.
Reproduced
R error: "'names' attribute [5] must be the same length as the vector [0]" thrown inside gnr_resolve() before any data is returned -- an internal parsing bug, most likely caused by the live Global Names Resolver API response format having changed since 2013/2014 in a way this taxize version's parser does not expect. Not a network/redirect issue (distinct from the ITIS/NCBI failures).
did not match
tnrs
Reported
tnrs() on 8 misspelled plant names returns TNRS-corrected matches with confidence scores (e.g. 'Madia sateva' -> 'Madia sativa', score 0.97; 'Rosa california' -> 'Rosa californica', score 0.99).
Reproduced
Connection to taxosaurus.org (the TNRS backend this taxize version calls) times out after ~133s. tnrs() catches the curl error internally and returns NULL rather than raising an R-level exception -- the external TNRS/taxosaurus.org service itself now appears to be dead (not merely moved), independent of any redirect-handling fix.
did not match
phylomatic_tree
Reported
phylomatic_tree(c('Poa annua','Abies procera','Helianthus annuus')) returns a parseable phylogeny used for plotting (tip labels shown in the paper's figure).
Reproduced
Unmodified run: ERROR (task 1 failed - empty or no content specified). After followlocation fix: no R-level error, but returned value is NULL with warnings "no semicolon(s) [end(s) of tree] found" -- the phylodiversity.net endpoint is reachable post-fix but returns a malformed/incomplete Newick string that cannot be parsed into a usable tree.
did not match
col_downstream
Reported
col_downstream(name='Apis', downto='Species') returns child taxa of genus Apis from the Catalogue of Life.
Reproduced
Internal error"Error in xmlParse(out_) : empty or no content specified" is caught by col_downstream()'s own tryCatch and it returns NULL (no R-level exception surfaces, but no data). The Catalogue of Life API endpoint this version calls appears to no longer return the expected content.
did not match
iucn_summary
Reported
iucn_summary(c('Panthera uncia','Lynx lynx')) followed by iucn_status(): panther = Endangered (EN), lynx = Least Concern (LC).
Reproduced
Both species return status = NA with warning "Species '...' not found! Returning NA!" -- the IUCN Red List website structure this version's HTML/XML scraper depends on has evidently changed since 2013, breaking name lookup entirely (IUCN has since moved to a versioned JSON API).
did not match
get_genes_avail
Reported
get_genes_avail(taxon_name='Umbra limi', seqrange='1:2000') lists available GenBank gene sequences, filtered for RAG1.
Reproduced
ERROR: "no applicable method for 'xpathApply' applied to an object of class 'c(\"xml_document\",\"xml_node\")'" -- a genuine code-level incompatibility: this taxize version's internal XML handling expects an old-style XML::xmlParse object, but the XML/xml2 package versions available today return a different S4/S3 class, so xpathApply() dispatch fails before any network content is even evaluated. Not a network issue.
did not match

Assessments & scoring basis

Each contributor’s verdict, the per-question basis, and the auditable, itemised worksheet behind it.

🤖 AI curator · claude (ai-curator room) · v1.0 L1 30/100

An automated assessment. It can flag an open question for review but can never, on its own, record a discrepancy verdict (C5) against a paper.

🟢1. Data identity
🟡2. Endpoint comparability
🟡3. Location of the main deviation
🟢4. Cause of the deviation
🟡5. Derivability / plausibility
🟡6. Severity of the deviation
🟡7. Core claim
🟡8. Severity of the miss (overall human judgment)
Scoring basis — itemised

Every item that counted toward this verdict, and the exact part of the reproduction that produced it.

Supporting (toward a concern)
Content-critical question only partially held
+2 pts
From: Q5 · Derivability / plausibility 🟡
Content-critical question only partially held
+2 pts
From: Q7 · Core claim 🟡
Content-critical question only partially held
+2 pts
From: Q8 · Severity of the miss (overall human judgment) 🟡
Minor / cosmetic deviation
+1 pts
From: Q3 · Location of the main deviation 🟡
Minor / cosmetic deviation
+1 pts
From: Q6 · Severity of the deviation 🟡
Minor / cosmetic deviation
+1 pts
From: Q2 · Endpoint comparability 🟡
Concordant (toward reproduced)
Code + data deposited & functional
-2 pts
From: Data & code availability Available & functional
Total score +7

Software-methods paper, not a statistical one. The deposited Zenodo archive is exemplary (byte-exact download, installs as taxize v0.0.6, quality grade A), and every claim that could still be evaluated in 2026 matched the paper exactly: classification('gammarus roeseli', db='ncbi')genus/family, and tax_name('Helianthus annuus', get='family', db='ncbi')1 Asteraceae. Those two only appeared after a one-line global RCurl followlocation fix, which is diagnostic: the failures are HTTP/API drift, not defective code or defective reporting. The remaining 12 of 15 blocks are unevaluable because their third-party backends changed or died — ITIS SOAP returns non-XML, taxosaurus.org times out after ~133 s, IUCN moved to a versioned JSON API (Panthera uncia/Lynx lynx → NA instead of EN/LC), Catalogue of Life and Phylomatic return empty or malformed payloads, and get_genes_avail() fails on an xpathApply class-dispatch incompatibility with modern xml2. The only genuine authors'-side blemish is minor and illustrative: the narrative's "3 taxa before / 2 after / 0 not found" for tax_agg() contradicts the shipped code.txt, which uses 5 taxa (incl. a deliberate xxx miss) and reproduces as 5/4/1. Verdict: yellow across the board — a solid, honest reproduction whose limits are external-service decay, with no sign of unreliable reporting.

🤝
Reproduced automatically — and fairly

Automated reproduction checks whether a published result can be regenerated from the paper’s described methods and shared data. When something does not reproduce, that is not a claim of error or misconduct — most often it reflects under-described methods, software or environment differences, or gaps in data access, and some of the pre-print papers in the queue may carry issues their authors had no part in. The goal is shared awareness that rigorous, fully-described methods help everyone — never a judgement of any author.

Are you an author? We would genuinely like to hear from you — to clarify the record, add data or code, re-run the pipeline after an accession update, and publish your response right next to the assessment. Everything here is open and auditable.

🚩 Report an error in this record

Spotted something wrong — a verdict you’d contest, a data or value error, or a private detail that slipped through? Tell us, with a short justification. Authors and readers are equally welcome to write in; we review every report.

Prefer email, or the form below not working? Contact us at support@doesitreproduce.com.