Changelog
Source:NEWS.md
ssddata 2.0.0 (2026-08-03)
Bug fixes
anztox_datano longer carries rows with a missingchemicalname_grouped(GitHub #62). CAS 7782492 (selenium) was absent from the anztox CAS lookup, sossd_data_sets()emitted sets namedanztox_NA_Freshwaterandanztox_NA_Marine; they are nowanztox_Selenium_*. The build fails if any chemical reaches the output without a name. Rebuilding also required repairing three latent errors indata-raw/anztox/DATASET.Rthat had blocked the build since the 2026-05-27 column-name refactor (a=>/=join typo, an outermediatypeleaking into the nested tibbles, and openxlsx dotting the DGV column names); none change the rebuilt object beyond the selenium naming.Harmonised the
Mediumvocabulary across sources (GitHub #52).aims_data,csiro_dataandanzg_dataused lower-case tokens, with csiro usingfreshwhere others used a form offreshwater, sosubset(x, Medium == "Freshwater")silently returned nothing for those sources andssd_data_sets(split = "Medium")emitted both_marineand_Marine. All sources now useFreshwater,Marine,Unknownand the ANZG hardness variantsSoft freshwater,Moderate freshwater,Hard freshwater, which remain separate datasets and are never collapsed. Dataset names are unchanged.wqbench_datano longer ships 20 records withConc == 0(GitHub #49), which map to-Infon 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_fitsdocumentation, which describedEstimate,SE,LowerandUpperas being in ug/L andUnitsas always ug/L (GitHub #53). Each fit is recorded on the scale of the dataset it was fitted to, soUnitsis one of ug/L, mg/L or ng/L, and NA for the unitlessanon_*datasets. The 11th column was also documented asSourcewhen it is namedReference.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 unknowndataset_nameinstead of warning and returningNULL(GitHub #54), andssd_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 blankSpecies. The names were reconstructed from Batley & Simpson (2020). The dataset now also carriesDuration,Life_stage,Notes,Test_endpointandToxicity_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 gazettedssd_fitsestimates by ~1000x (GitHub #47):anzg_boron_fresh,anzg_nitrate_soft_fresh,anzg_nitrate_moderate_freshandanzg_nitrate_hard_freshare now in ug/L.Corrected the
ssd_fitsestimates foranzg_dioxins_fresh, which were stored in ng/L rather than ug/L (GitHub #47).Added a
Unitscolumn tossd_fitsrecording 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).
New datasets
ANZG datasets
- Added 30 new ANZG individual chemical datasets:
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. - Added
anzg_dataaggregate dataset.
EnviroTox datasets
- Added
envirotox_data(list),envirotox_acute,envirotox_chronic, andenvirotox_chemicaldatasets from the EnviroTox database.
New and improved functions
-
ssd_data_sets()gains asetargument 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 asplitargument to further split datasets by arbitrary columns. -
ssd_data_sets()gains asummarizeargument ("geomean"or"none") controlling duplicate species handling. -
ssd_data_sets()gains acas_lookupargument for CAS number alignment across sources. - Column names standardised across all datasets returned by
ssd_data_sets():Species(first) andConc(second) are guaranteed. - Added
list_datasets()as a deprecated wrapper for backwards compatibility with EnviroTox workflows.
Other changes
- Updated
ssd_fitsdataset to align distribution naming with ssdtools and distinguish shinyssdtools results. - Auto-generated
_pkgdown.ymlviadata-raw/build_pkgdown_yml.Rwith structured reference sections. - Added Ayla Pearson as package author.
- Documentation improvements throughout, including Rdpack bibliography references for new datasets.
- Naming convention standardised (e.g.
freshwater→fresh,marinesuffix).