# Dependencies for the dataset readers, the analysis code, and reproducing the figures/tables # (reproduce.py). This is NOT the inference stack: `pip install magnet-nmr` and the Option B checkout # pull torch from magnet/pyproject.toml and magnet/requirements.txt instead, so nothing here reaches # an inference-only install. # Loose floors so a future release can't silently break CI; tests also need pytest. # numpy + h5py cover the sigma readers; the delta22 reader additionally uses # pandas (DataFrame assembly), openpyxl (reads the experimental .xlsx), and tqdm. numpy>=1.20 h5py>=3.0 pandas>=1.3 openpyxl>=3.0 tqdm>=4.0 # the leveling-effect analysis (analysis/code/leveling.py) and its tests use scikit-learn # for the principal-components step. matplotlib + adjustText are needed only to redraw its # figures, not to run the tests, so they are not listed here. scikit-learn>=1.0 # the applications analysis (analysis/code/applications.py) fits the composite linear model with # statsmodels. Its figure notebooks also draw boxplots with matplotlib + seaborn; those are needed # only to redraw the figures (not to run the readers or the tests), and seaborn pulls matplotlib in # as a dependency. statsmodels>=0.13 seaborn>=0.12 # the DFT8K functional-group analysis (analysis/code/dft8k_residuals.py's # functional_group_errors/find_extreme_residual, used by fig5b_dft8k.ipynb) parses each molecule's # SMILES and matches functional-group substructures with RDKit. Not needed for the rest of the # repo's readers or tests. rdkit>=2023.9 # Reproducing the figures and tables (reproduce.py) executes the analysis notebooks, which draw with # matplotlib (adjustText places the leveling-figure labels) and use scipy directly. matplotlib and # scipy already arrive transitively via seaborn and scikit-learn; they are listed explicitly because # the notebooks import them. nbconvert + ipykernel are the headless notebook-execution stack # reproduce.py drives; they are the only reason a plain reader/test run does not need them. matplotlib>=3.5 scipy>=1.7 adjustText>=1.0 nbconvert>=7.0 ipykernel>=6.0