File size: 2,104 Bytes
fefb9a6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# 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