Supporting data for "A bio-based polyurethane microfiltration membrane fouls more reversibly with graphene oxide, across four operating regimes and four wastewaters"

Published: 9 September 2026| Version 2 | DOI: 10.17632/dpj75dj766.2
Contributors:
FanCheng Zeng,

Description

Replicate-level data, vendor-native instrument exports and analysis code for a comparison of two flat-sheet microfiltration membranes cast from a Jatropha-oil polyurethane: one unmodified (JPU) and one carrying 0.5 wt% graphene oxide (JPU/GO). The membranes were run in cross-flow on four feeds - lake water, municipal wastewater, palm oil mill effluent and food-waste leachate - under two independent operating-point normalisations, one holding relative load constant at 0.93 of each membrane's own critical flux and one holding absolute flux constant at 232.5 LMH. Critical flux was measured separately on every feed.

Files

Steps to reproduce

Software: Python 3.11 with numpy, pandas, scipy, statsmodels and openpyxl; matplotlib as well for the figure scripts. 1. Keep the folder structure. JPUGO_supporting_data.xlsx and Raw_instrument_exports/ must sit in the same directory, with Supplementary_scripts/ beside them. 2. Verify integrity. Every file in Raw_instrument_exports/ is listed in checksums.csv with its SHA-256 and byte count. 3. Recompute the statistics. Copy Supplementary_scripts/reproduce.py next to the workbook and run "python3 reproduce.py". It reads JPUGO_supporting_data.xlsx and no other file, and prints every headline number of Sections 3.3 to 3.6 of the paper: critical flux by feed, the recoverable-fraction difference in both campaigns with the pooled campaign-by-membrane interaction, total fouling resistance, flux retention, the cyclic-operation slopes, removal efficiencies, faecal-coliform log removal, and the ammoniacal-nitrogen breakthrough and balance. 4. Rebuild the figures from the raw exports. Copy fig3_from_raw.py and figstyle.py beside Raw_instrument_exports/ and run "python3 fig3_from_raw.py": it recomputes tensile strength, toughness, Young's modulus and elongation for each specimen and writes Figure 3. figS2.py rebuilds the micrograph plate of Supplementary Figure S2 from SEM_micrographs/ and reproduces the published plate pixel for pixel, which is the strongest available check that these are the source frames. fig2b_from_raw.py re-renders panel (b) of Figure 2 from the two contact-angle exports; it needs Figures/Figure_2.svg from the article's supplementary package and is safe to re-run. 5. Check the derived columns yourself. Open the workbook with recalculation enabled. In sheets D25 to D35 the value recorded by the instrument and the live formula recomputing it sit side by side with their difference, so the agreement can be read off the sheet rather than taken on trust. The remaining scripts read the original laboratory workbooks, which are not deposited, and are supplied as the record of how each figure and statistic was computed rather than as a runnable pipeline. Caveats that affect reuse - unit labelling in the balance log, the fixed strain grid of the tensile export, what the porometry files do and do not measure, and the averaging convention in the control export - are listed under "Methods and provenance" in README.txt.

Institutions

Categories

Wastewater Treatment, Water Treatment, Membrane Fouling, Membrane Technology

Funders

Licence