TPTdb provides access to a curated dataset of observed biological thermal performance measurements across the tree of life. Version 0.2.0 contains 1,300 curves for 1,069 binomial names and 38 response types. It also exposes sampling-resolution, curve-coverage, observation-flag, source, and model-fit information so users can decide which records are appropriate for a particular analysis.
The historical package name is retained for continuity. In the manuscript and documentation, TPTdb is described as a dataset rather than as a physiological-tolerance database.
T_lower_observed_CandT_upper_observed_Care the lowest and highest sampled temperatures. They are not CTmin, CTmax, or physiological tolerance limits.T_peak_observed_Cis the median of the sampled temperatures sharing the largest observed response. With an even number of tied maxima, this median can fall between two sampled temperatures. It is not a fitted optimum.thermal_limit_proxies.csvadds optional observed 0%, <=1%, and <=5% performance thresholds on each sampled limb. These are named performance-limit proxies and are not measured CTmin or CTmax.- flexTPC roots are five-parameter, model-derived extrapolations. Use them only when
flex_fit_statusisfit_availableand inspectflex_root_identifiability; even a high response-scale R-squared does not make a root a measured physiological endpoint. - Curves with only 3-4 unique temperatures are retained and explicitly flagged as low-resolution.
- A peak at a sampled boundary indicates that one limb of the curve was not observed.
- Tukey flags identify statistical extremeness within a curve. Flagged observations are retained and are not presumed erroneous.
- Experimental protocols were not harmonized. Consult the source reference before comparing records across studies.
- The Arroyo et al. model and flexTPC are optional descriptive visualization overlays. Neither changes the observed descriptors. flexTPC was fitted only to prespecified, non-negative, two-sided records with at least seven unique temperatures.
For a downloaded source folder:
install.packages("devtools")
devtools::install("path/to/TPTdb", upgrade = "never")upgrade = "never" is intentional. Installing TPTdb does not require replacing
working copies of every dependency in your R library. In particular, do not
choose All if an installation prompt offers to upgrade unrelated packages
inside an active RStudio session.
From GitHub after the revised release is published:
install.packages("remotes")
remotes::install_github("amahury/TPTdb", upgrade = "never")library(TPTdb)
tpt <- TPTdb_data("all")
head(tpt$taxonomy)
head(tpt$quality)
TPTdb_explorer()When developing the package in RStudio, do not run or source R/explorer.R
before calling package-development commands. Sourcing the file creates global
objects named TPTdb_data and TPTdb_explorer, which can mask the functions
loaded by devtools::load_all() and produce a conflict warning even when the
package itself is valid.
For a clean verification, restart the R session and run only:
devtools::document()
devtools::check()
devtools::install(upgrade = "never")
library(TPTdb)
TPTdb_explorer()The explorer uses Shiny's built-in table renderer and does not depend on the
DT package. This intentionally keeps the interactive app independent of a
nonessential JavaScript-table dependency.
That message refers to the installed DT package in the user's R library, not
to a database file inside TPTdb. TPTdb 0.2.0 no longer needs DT, so first
restart RStudio and verify this release using the clean-session commands above.
If you also use DT for other R work and want to repair that separate package,
close every R/RStudio process, open a fresh R session, and reinstall the
Windows binary without upgrading the rest of the library:
remove.packages("DT")
install.packages("DT", type = "binary")Restart R once more before loading packages. This repair is optional for TPTdb.
If restarting is inconvenient, remove any sourced copies first with
rm(list = intersect(c("TPTdb_data", "TPTdb_explorer"), ls(.GlobalEnv))).
The canonical machine-readable files are in inst/extdata/:
taxonomy.csv: curve IDs, source IDs, taxonomic fields, names, and source references.temperature.csv: wide-format sampled temperatures in degrees Celsius.response.csv: wide-format responses plus variable, unit, and legacy curve-shape labels.traits.csv: strictly observed temperature descriptors and observed performance maximum.quality.csv: sampling resolution, peak position, endpoint coverage, Tukey-flag counts, protocol status, and model-fit diagnostics.thermal_limit_proxies.csv: optional observed 0%, <=1%, and <=5% performance-limit proxies, five-parameter flexTPC fits, extrapolation distances, model diagnostics, and root-identifiability flags.observation_flags.csv: one row per temperature-response pair with within-curve Tukey flags; no flagged value is deleted.source_manifest.csv: unique source references and the number of curves linked to each source.input_compilations.csv: principal third-party input compilations, access locations, and reuse basis.TPTdb_full.xlsx: a human-readable workbook containing the same nine tables.
See DATA_DICTIONARY.md, THERMAL_LIMIT_PROXY_METHODS.md, DATA_CORRECTIONS.md, SOURCE_PROVENANCE_AND_REUSE.md, and TAXONOMY_MAINTENANCE.md for additional details.
The dataset is distributed under CC BY 4.0; see LICENSE-DATA.md. The R package code is distributed under the MIT License; see LICENSE.
Please cite the versioned Zenodo record:
López-Díaz, A. J. et al. A dataset of biological thermal performance observations across the tree of life. Zenodo. https://doi.org/10.5281/zenodo.20927688 (2026).