Skip to content

Commit 01100f5

Browse files
authored
update readme (#308)
1 parent bba3a83 commit 01100f5

10 files changed

Lines changed: 115 additions & 142 deletions

File tree

README.md

Lines changed: 24 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,7 @@
2626
### 🧱 Supported Materials
2727

2828
- **Inorganic Crystals** - Well-supported with multiple datasets and pretrained models
29-
- **Organic Molecules** - Support for small molecule datasets and property prediction
30-
- *Polymers, catalysts, and amorphous materials are under development*
29+
- **Organic Molecules** - Support for multiple datasets and pretrained models including small molecules and partial polymers
3130

3231
### ✨ Why PaddleMaterials?
3332

@@ -51,12 +50,12 @@
5150

5251
| Task | Models | Dataset |
5352
|------|--------|---------|
54-
| **Property Prediction** | MEGNet, iComformer, DimeNet++ | MP2018, MP2024, JARVIS |
55-
| **Structure Generation** | MatterGen, DiffCSP | MP20, ALEX |
56-
| **Machine Learning Interatomic Potential** | CHGNet, MatterSim | MPTRJ |
57-
| **Electronic Structure** | InfGCN | QM9_ES, MP_ES, OMol25_MC_ES |
58-
| **Spectrum Elucidation** | DiffNMR | MSD_NMR |
59-
| **Spectrum Enhancement** | SFIN | SFIN-HAADF/BF |
53+
| **Property Prediction** | MEGNet, iComformer, DimeNet++, SphereNet | MP2018, MP2024, JARVIS, QM9, etc.|
54+
| **Structure Generation** | MatterGen, DiffCSP | MP20, ALEX, etc.|
55+
| **Machine Learning Interatomic Potential** | CHGNet, MatterSim, SphereNet | MPTRJ, MD17, etc.|
56+
| **Electronic Structure** | InfGCN | QM9_ES, MP_ES, OMol25_MC_ES, etc.|
57+
| **Spectrum Elucidation** | DiffNMR | MSD_NMR, etc.|
58+
| **Spectrum Enhancement** | SFIN | SFIN-HAADF/BF, etc.|
6059

6160
Full model list: See [MODEL_REGISTRY](ppmat/models/__init__.py#L75)
6261

@@ -86,7 +85,7 @@ python property_prediction/predict.py \
8685

8786
#### Structure Generation
8887

89-
Generate novel crystal structures:
88+
Generate novel crystal structures using a pretrained MatterGEN model:
9089

9190
```bash
9291
python structure_generation/predict.py \
@@ -97,46 +96,41 @@ python structure_generation/predict.py \
9796

9897
#### Interatomic Potentials
9998

100-
Run molecular dynamics with ML potentials:
99+
Run molecular dynamics with MLIP using a pretrained MatterSIM model:
101100

102101
```bash
103-
python interatomic_potentials/run_md.py
104-
--model_name='mattersim_1M'
105-
--structure_path='input.cif'
102+
python interatomic_potentials/run_md.py \
103+
--model_name='mattersim_1M' \
104+
--structure_path='input.cif' \
106105
--temperature=300
107106
```
108107

109108
#### Electronic Structure
110109

111-
Run prediction of elcutorninc density:
110+
Run prediction of elcutorninc density using a pretrained InfGCN model:
112111

113-
```bash
114-
python interatomic_potentials/run_md.py
115-
--model_name='mattersim_1M'
116-
--structure_path='input.cif'
117-
--temperature=300
118-
```
112+
Please reference [here](electronic_structure/configs/infgcn/README.md#L221)
119113

120114
#### Spectrum Elucidation
121115

122-
Run NMR spectrum elucidate:
116+
Run NMR spectrum elucidate using a pretrained DiffNMR model:
123117

124118
```bash
125-
python spectrum_elucidation/sample.py
126-
--config_path='spectrum_elucidation/configs/diffnmr/DiffNMR.yaml'
127-
--weights_name='DiffNMR_nless15_best.pdparams'
128-
--save_path='result_diffnmr_nless15/'
119+
python spectrum_elucidation/sample.py \
120+
--config_path='spectrum_elucidation/configs/diffnmr/DiffNMR.yaml' \
121+
--weights_name='DiffNMR_nless15_best.pdparams' \
122+
--save_path='result_diffnmr_nless15/' \
129123
--checkpoint_path="pretrained"
130124
```
131125

132126
#### Spectrum Enhancement
133127

134-
Run prediction of elcutorninc density:
128+
Enhance STEM images using a pretrained SFIN model:
135129

136130
```bash
137-
python spectrum_enhancement/predict.py
138-
--model_name sfin_haadf_enhance
139-
--split val
131+
python spectrum_enhancement/predict.py \
132+
--model_name='sfin_haadf_enhance' \
133+
--split='val'
140134
```
141135

142136
---
@@ -149,7 +143,7 @@ For training and fine-tuning, refer to the [documentation](get_started.md).
149143

150144
## 🤝 Contributors & Cooperation & Community
151145

152-
[![Star History Chart](https://api.star-history.com/svg?repos=PaddlePaddle/PaddleMaterials&type=date&legend=top-left)](https://www.star-history.com/#PaddlePaddle/PaddleMaterilas&type=date&legend=top-left)
146+
[![Star History Chart](https://api.star-history.com/svg?repos=PaddlePaddle/PaddleMaterials&type=date&legend=top-left)](https://www.star-history.com/#PaddlePaddle/PaddleMaterials&type=date&legend=top-left)
153147

154148
Thanks to all contributors who have helped build PaddleMaterials!
155149
<a href="https://github.com/PaddlePaddle/PaddleMaterials/graphs/contributors">

electronic_structure/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,4 @@ Machine Learning Electronic Structure (MLES) is an emerging paradigm in computat
3030
| QM9_EC ||
3131
| OMol25_EC ||
3232

33-
**Notice**:🌟 represent originate research work published from paddlematerials toolkit
33+
**Legend:** ✅ Verified · 🧪 Implemented, pending validation · 🚧 In development · `-` Not supported · 🌟 Original Work

interatomic_potentials/README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ Machine-learning interatomic potentials (MLIP) bridge the gap between quantum-le
1414
| &emsp;Stress ||| - |
1515
| &emsp;Magmom || - | - |
1616
| **ML Capabilities · Training** | | | |
17-
| &emsp;Single-GPU || ||
18-
| &emsp;Distributed Train ||| - |
17+
| &emsp;Single-GPU || 🧪 ||
18+
| &emsp;Distributed Train ||| 🧪 |
1919
| &emsp;Mixed Precision | - | - | - |
2020
| &emsp;Fine-tuning ||||
2121
| &emsp;Uncertainty / Active-Learning | - | - | - |
@@ -27,10 +27,10 @@ Machine-learning interatomic potentials (MLIP) bridge the gap between quantum-le
2727
| &emsp;Distributed inference | - | - | - |
2828
| &emsp;Compiler CINN | - | - | - |
2929
| **Molecular Dynamic Interface** | | | |
30-
| &emsp;ASE ||| - |
30+
| &emsp;ASE ||| 🧪 |
3131
| **Dataset** | | | |
32-
| &emsp;MPtrj || 🚧 | - |
32+
| &emsp;MPtrj || 🧪 | - |
3333
| &emsp;MD17 | - | - ||
34-
| **ML2DDB🌟** || - | - |
34+
| &emsp;ML2DDB🌟 || - | - |
3535

36-
**Notice**:🌟 represent originate research work published from paddlematerials toolkit
36+
**Legend:** ✅ Verified · 🧪 Implemented, pending validation · 🚧 In development · `-` Not supported · 🌟 Original Work

interatomic_potentials/configs/spherenet/README.md

Lines changed: 5 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -38,18 +38,6 @@ atomic forces (kcal/mol/Å).
3838
| Toluene | 1000 | 1000 | 440790 | 15 |
3939
| Uracil | 1000 | 1000 | 131770 | 12 |
4040

41-
**Data format**: Each molecule is stored as a single `.npz` file with keys
42-
`E` (energies), `F` (forces), `R` (positions), and `z` (atomic numbers).
43-
44-
The configs expect each molecule file under `./data/md17/` and split indices
45-
under `./data/md17/splits/<molecule>_<split>_idx.npy`. For example, the
46-
aspirin config reads `./data/md17/md17_aspirin.npz`.
47-
48-
Each MD17 config stores the training-split total-energy mean in the SphereNet
49-
model with `data_std: 1.0`. The model learns centered energy, restores physical
50-
energy internally, and differentiates the restored energy to obtain forces.
51-
Dataset labels therefore remain in their original physical units.
52-
5341
## Model
5442

5543
SphereNet is a spherical message passing neural network for 3D molecular
@@ -175,51 +163,18 @@ and $d_{kj}$ is expanded using a 3D spherical Fourier-Bessel basis.
175163
</body>
176164
</table>
177165

178-
The table reports MAE on each complete fixed MD17 test split.
179-
Trainer-best and final-latest checkpoints are ranked using only validation
180-
loss. In that fixed order, the complete test split is used as a release gate
181-
for numerical stability and a force MAE no worse than 1.25x the
182-
official DIG checkpoint. For retrained ethanol and malonaldehyde,
183-
the larger 1.05x independent official-code Torch scratch threshold
184-
is also accepted.
185-
If a final-latest checkpoint is numerically unstable, a validated stable
186-
early-stop checkpoint may be published as both best and latest.
187-
The package log records this policy, and both checkpoint triplets
188-
must be byte-identical.
189-
190-
The optimizer and split protocol follows the official DIG MD17 release: split
191-
seed 42 with 1,000 training frames, 1,000 validation frames, and all remaining
192-
frames for testing; training batch size 1; Adam with an initial learning rate
193-
of 5e-4; `energy_mae + 100 * force_mae`; and StepLR decay by 0.5 every 200
194-
epochs. The primary ethanol and malonaldehyde seed sweep runs for
195-
1,300 and 1,100 epochs so that it covers the official release's best
196-
epochs, 1,148 and 864. Auxiliary ethanol seeds 47-55 run for 600
197-
epochs to cover the independent Torch scratch convergence region.
198-
The selected package config records its candidate's planned training horizon;
199-
the package log records the selected epoch when early stopping is used.
200-
Training time is elapsed single-run time from the recorded training logs.
201-
202-
SphereNet Table 3 force MAEs in the row order above are `0.430, 0.178, 0.208,
203-
0.340, 0.178, 0.360, 0.155, 0.267`. The official DIG release checkpoints
204-
evaluated on these fixed full test splits give `0.375, 0.181, 0.187, 0.273,
205-
0.139, 0.284, 0.142, 0.245`.
206-
207-
On NVIDIA Ampere and newer GPUs, run SphereNet with `NVIDIA_TF32_OVERRIDE=0`
208-
to keep matrix multiplication in full FP32 precision. This is required to match
209-
the reference implementation when predicting large absolute MD17 energies.
210-
211166
### Training
212167

213168
```bash
214169
# Single-GPU training — MD17 aspirin (energy + force)
215-
NVIDIA_TF32_OVERRIDE=0 python interatomic_potentials/train.py \
170+
python interatomic_potentials/train.py \
216171
-c interatomic_potentials/configs/spherenet/spherenet_md17_aspirin.yaml
217172
```
218173

219174
### Validation
220175

221176
```bash
222-
NVIDIA_TF32_OVERRIDE=0 python interatomic_potentials/train.py \
177+
python interatomic_potentials/train.py \
223178
-c interatomic_potentials/configs/spherenet/spherenet_md17_aspirin.yaml \
224179
Global.do_eval=True Global.do_train=False Global.do_test=False \
225180
Trainer.pretrained_model_path='your_model.pdparams'
@@ -228,7 +183,7 @@ NVIDIA_TF32_OVERRIDE=0 python interatomic_potentials/train.py \
228183
### Testing
229184

230185
```bash
231-
NVIDIA_TF32_OVERRIDE=0 python interatomic_potentials/train.py \
186+
python interatomic_potentials/train.py \
232187
-c interatomic_potentials/configs/spherenet/spherenet_md17_aspirin.yaml \
233188
Global.do_test=True Global.do_train=False Global.do_eval=False \
234189
Trainer.pretrained_model_path='your_model.pdparams'
@@ -238,12 +193,12 @@ NVIDIA_TF32_OVERRIDE=0 python interatomic_potentials/train.py \
238193

239194
```bash
240195
# Molecular prediction
241-
NVIDIA_TF32_OVERRIDE=0 python interatomic_potentials/predict.py \
196+
python interatomic_potentials/predict.py \
242197
--model_name spherenet_md17_aspirin \
243198
--xyz_file_path ./interatomic_potentials/example_data/xyz/md17_aspirin.xyz
244199

245200
# Using a local checkpoint
246-
NVIDIA_TF32_OVERRIDE=0 python interatomic_potentials/predict.py \
201+
python interatomic_potentials/predict.py \
247202
--config_path ./interatomic_potentials/configs/spherenet/spherenet_md17_aspirin.yaml \
248203
--checkpoint_path ./output/spherenet_aspirin/checkpoints/best.pdparams \
249204
--xyz_file_path ./interatomic_potentials/example_data/xyz/md17_aspirin.xyz

0 commit comments

Comments
 (0)