Methodological heterogeneity outweighs geography in shaping reported riverine microplastic concentrations: a global meta-analysis and implications for water-quality monitoring

Published: 18 September 2026| Version 2 | DOI: 10.17632/42knjyprjz.2
Contributors:
,
, Fan Liu

Description

The workbook Microplastics_Rivers_Meta_Analysis_DATA.xlsx contains eight sheets: - Analysis_dataset (509 rows x 57 fields) — every extracted observation, harmonised, with methodological provenance and composition percentages. - Pooled_283 (283 rows x 61 fields) — the subset carrying enough unit metadata to enter the pooled concentration analyses, with extraction-confidence flags and the source URL used. - Excluded_226 (226 rows x 62 fields) — every observation excluded from pooling, each with an explicit reason in the first column. - Unit_conversions (174 rows) — the complete conversion table. 170 distinct unit strings appear in the source literature; four of them occur in both matrices and take a different factor in each, hence 174 rules. Each row gives the raw string, its frequency, the factor, the harmonised unit and, where applicable, the exclusion reason. - Paired_66 (66 rows) — study-level median water and sediment concentrations for the studies reporting both matrices in convertible units, with the water-to-sediment ratio. - Composition (367 rows x 27 fields) — morphology and polymer percentages as reported, before renormalisation. - Method_groups (20 rows) — the mapping from verbatim method descriptions to the analysis groupings, with example source strings. - Study_list (309 rows) — all included studies with DOI, country, rivers, observation count and whether each entered the pooled analysis. Concentrations are harmonised to items m-3 for water and items kg-1 dry weight for sediment. Values that could not be converted to a particle concentration are retained in the workbook and flagged rather than deleted, so the exclusion decisions are auditable. Microplastics_Rivers_Meta_Analysis_CODE.zip contains the Python code that reproduces every statistic and figure in the associated article from this workbook alone: a shared module of loading, harmonisation and statistical helpers, eight numbered analysis scripts, a runner that executes them in order and then compares each recomputed value against the value printed in the manuscript, a README and a pinned requirements file. There is no network access, no external data and no hidden state. Known gaps, stated plainly. Two groups of fields used in the published analysis are not columns of this workbook. First, the standard deviation reported by original authors alongside their mean is absent, so the random-effects branch of the analysis (DerSimonian-Laird pooled estimates, Cochran Q, tau-squared, I-squared, prediction intervals and the 55-water / 44-sediment study counts) cannot be regenerated from this deposit; nine of the ninety-eight verified statistics are affected and are reported as "missing input" rather than silently omitted. Second, catchment drainage area and river length were joined from an external gazetteer and are likewise not included. Everything else reproduces exactly.

Files

Steps to reproduce

Software: Python 3.11 or later. No proprietary software and no network access are required. The whole pipeline runs in under a minute on a laptop. 1. Download both Microplastics_Rivers_Meta_Analysis_DATA.xlsx and Microplastics_Rivers_Meta_Analysis_CODE.zip from this deposit. 2. Unzip the code archive. It expands to a single folder, analysis_code/. 3. Place Microplastics_Rivers_Meta_Analysis_DATA.xlsx inside analysis_code/, next to run_all.py. To keep the workbook elsewhere instead, set the environment variable MP_DATA_FILE to its full path. 4. Install the dependencies: pip install -r requirements.txt These are pandas, numpy, scipy, statsmodels (0.14 or later, required for the cluster-robust and mixed-effects fits), matplotlib and openpyxl. 5. Run the whole pipeline: python run_all.py This executes the eight analysis scripts in order, writes one JSON file of results per script into outputs/, regenerates the figures as PNG and vector PDF, and then checks every recomputed statistic against the value printed in the article. 6. Expected console summary: VERIFICATION: 89 match, 0 mismatch, 9 missing input (of 98 checks) The check-by-check table is written to outputs/VERIFICATION.md. The nine "missing input" entries are the random-effects meta-analysis statistics. They require the standard deviation reported by the original authors, which is not a column of the deposited workbook (see the Known gaps paragraph in the description). Adding an sd column to the Analysis_dataset sheet closes all nine with no change to the code. 7. Any script can also be run on its own, for example: python 03_region_and_method_effects.py How the analysis is defined, in brief. Concentrations are log10-transformed throughout. Pooled values are unweighted geometric means with confidence intervals computed on the log scale, because most primary studies report no dispersion term. The operative lower size cut-off is the coarsest aperture anywhere in the sampling and processing chain, excluding values above 5,000 micrometres, which mark the upper definitional limit of microplastics rather than a sampling threshold. Regional differences are tested by Kruskal-Wallis; the size cut-off relationship by ordinary least squares on log10-log10 axes, and again with standard errors clustered by study, since one publication can contribute several observations. Variance is partitioned within and between studies using random-intercept models, and the two predictor sets are compared by R-squared on the complete-case subset common to both. Composition percentages are renormalised within each observation before averaging.

Categories

Environmental Science, Meta-Analysis, Environmental Pollution

Licence