anztox_data no longer carries rows with a missing
chemicalname_grouped (GitHub #62). CAS 7782492 (selenium)
was absent from the anztox CAS lookup, so ssd_data_sets()
emitted sets named anztox_NA_Freshwater and
anztox_NA_Marine; they are now
anztox_Selenium_*. The build fails if any chemical reaches
the output without a name. Rebuilding also required repairing three
latent errors in data-raw/anztox/DATASET.R that had blocked
the build since the 2026-05-27 column-name refactor (a
=>/= join typo, an outer
mediatype leaking into the nested tibbles, and openxlsx
dotting the DGV column names); none change the rebuilt object beyond the
selenium naming.
Harmonised the Medium vocabulary across sources
(GitHub #52). aims_data, csiro_data and
anzg_data used lower-case tokens, with csiro using
fresh where others used a form of freshwater,
so subset(x, Medium == "Freshwater") silently returned
nothing for those sources and
ssd_data_sets(split = "Medium") emitted both
_marine and _Marine. All sources now use
Freshwater, Marine, Unknown and
the ANZG hardness variants Soft freshwater,
Moderate freshwater, Hard freshwater, which
remain separate datasets and are never collapsed. Dataset names are
unchanged.
wqbench_data no longer ships 20 records with
Conc == 0 (GitHub #49), which map to -Inf on
the log scale an SSD is fitted on. They are literal zeros in ECOTOX
rather than below-detection sentinels, and are now dropped at build time
before the sufficiency gates, so a chemical cannot qualify on the
strength of unfittable records. 36,629 rows to 36,606; CAS 160759295
leaves the dataset, having had only 6 species of which 3 were
zero-concentration.
Corrected the ssd_fits documentation, which
described Estimate, SE, Lower and
Upper as being in ug/L and Units as always
ug/L (GitHub #53). Each fit is recorded on the scale of the dataset it
was fitted to, so Units is one of ug/L, mg/L or ng/L, and
NA for the unitless anon_* datasets. The 11th column was
also documented as Source when it is named
Reference.
ssd_data_sets(set = "anztox") no longer returns two
elements with the same name (GitHub #50). Two CAS can share one grouped
chemical name — Aroclor 1254 and Aroclor 1242 are both “Polychlorinated
biphenyls” — which made one element unreachable, since
[[name]] returns the first match. Colliding names are now
suffixed with their CAS; all other element names are unchanged.
get_ssddata() now errors for an unknown
dataset_name instead of warning and returning
NULL (GitHub #54), and ssd_data_sets(set = NA)
reports a missing value rather than failing with “missing value where
TRUE/FALSE needed”.
Added the missing species names to
csiro_chlorine_marine, which shipped all 30 of its rows
with a blank Species. The names were reconstructed from
Batley & Simpson (2020). The dataset now also carries
Duration, Life_stage, Notes,
Test_endpoint and Toxicity_measure, taking it
from 3 columns to 9.
Corrected concentration units for four ANZG freshwater datasets
that were stored in mg/L but documented and treated as ug/L, so their
get_ssddata() values disagreed with the gazetted
ssd_fits estimates by ~1000x (GitHub #47):
anzg_boron_fresh, anzg_nitrate_soft_fresh,
anzg_nitrate_moderate_fresh and
anzg_nitrate_hard_fresh are now in ug/L.
Corrected the ssd_fits estimates for
anzg_dioxins_fresh, which were stored in ng/L rather than
ug/L (GitHub #47).
Added a Units column to ssd_fits
recording each fit’s concentration units (per-dataset: ccme datasets are
mg/L / ug/L / ng/L; anzg/aims/csiro are ug/L; anon not recorded), and to
the ANZG, aims and csiro raw datasets. Added a test asserting that no
gazetted hazard concentration exceeds the raw data maximum for any
dataset (test-units-consistency.R).
anzg_alpha_cypermethrin_fresh,
anzg_aluminium_marine, anzg_ametryn_fresh,
anzg_ammonia_fresh, anzg_bisphenol_a_fresh,
anzg_bisphenol_a_marine, anzg_boron_fresh,
anzg_chlorine_marine, anzg_chromium_III_fresh,
anzg_copper_marine, anzg_dioxins_fresh,
anzg_diuron_fresh, anzg_diuron_marine,
anzg_fipronil_fresh, anzg_fluoride_fresh,
anzg_glyphosate_fresh, anzg_iron_fresh,
anzg_iron_marine, anzg_mancozeb_fresh,
anzg_manganese_marine, anzg_mcpa_fresh,
anzg_metolachlor_fresh,
anzg_metsulfuron_methyl_fresh,
anzg_nickel_marine, anzg_nitrate_hard_fresh,
anzg_nitrate_moderate_fresh,
anzg_nitrate_soft_fresh, anzg_paraquat_fresh,
anzg_perfluorooctane_sulfonate_pfos_fresh,
anzg_picloram_fresh, anzg_simazine_fresh,
anzg_simazine_marine,
anzg_sulfometuron_methyl_fresh,
anzg_zinc_marine.anzg_data aggregate dataset.envirotox_data (list),
envirotox_acute, envirotox_chronic, and
envirotox_chemical datasets from the EnviroTox
database.anztox_data aggregated dataset derived from the
ANZTox database, with accompanying Quarto vignette documenting data
processing steps.wqbench_data aggregated dataset from Australian
water quality benchmarking work.ssd_data_sets() gains a set argument
supporting "v1", "v2" (default), prefix
vectors (e.g. c("aims", "ccme")), "wqbench",
"envirotox_acute", "envirotox_chronic",
"anztox", and "alldata" to flexibly retrieve
per-chemical tibbles from any data source.ssd_data_sets() gains a split argument to
further split datasets by arbitrary columns.ssd_data_sets() gains a summarize argument
("geomean" or "none") controlling duplicate
species handling.ssd_data_sets() gains a cas_lookup
argument for CAS number alignment across sources.ssd_data_sets(): Species (first) and
Conc (second) are guaranteed.list_datasets() as a deprecated wrapper for
backwards compatibility with EnviroTox workflows.ssd_fits dataset to align distribution naming
with ssdtools and distinguish shinyssdtools results._pkgdown.yml via
data-raw/build_pkgdown_yml.R with structured reference
sections.freshwater →
fresh, marine suffix).ssd_fits dataset of fitted SSD results.