mfml-4-qc 1.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- mfml_4_qc-1.0.0/LICENSE +30 -0
- mfml_4_qc-1.0.0/MANIFEST.in +1 -0
- mfml_4_qc-1.0.0/PKG-INFO +103 -0
- mfml_4_qc-1.0.0/README.md +90 -0
- mfml_4_qc-1.0.0/README_pypi.md +65 -0
- mfml_4_qc-1.0.0/pyproject.toml +65 -0
- mfml_4_qc-1.0.0/setup.cfg +4 -0
- mfml_4_qc-1.0.0/src/mfml_4_qc.egg-info/PKG-INFO +103 -0
- mfml_4_qc-1.0.0/src/mfml_4_qc.egg-info/SOURCES.txt +26 -0
- mfml_4_qc-1.0.0/src/mfml_4_qc.egg-info/dependency_links.txt +1 -0
- mfml_4_qc-1.0.0/src/mfml_4_qc.egg-info/requires.txt +21 -0
- mfml_4_qc-1.0.0/src/mfml_4_qc.egg-info/top_level.txt +1 -0
- mfml_4_qc-1.0.0/src/mfml_qc/__init__.py +5 -0
- mfml_4_qc-1.0.0/src/mfml_qc/active_learning.py +201 -0
- mfml_4_qc-1.0.0/src/mfml_qc/datasets.py +85 -0
- mfml_4_qc-1.0.0/src/mfml_qc/krr.py +581 -0
- mfml_4_qc-1.0.0/src/mfml_qc/mfml.py +601 -0
- mfml_4_qc-1.0.0/src/mfml_qc/oracles/__init__.py +5 -0
- mfml_4_qc-1.0.0/src/mfml_qc/oracles/base.py +142 -0
- mfml_4_qc-1.0.0/src/mfml_qc/oracles/orca.py +280 -0
- mfml_4_qc-1.0.0/src/mfml_qc/oracles/pyscf.py +138 -0
- mfml_4_qc-1.0.0/src/mfml_qc/representations.py +288 -0
- mfml_4_qc-1.0.0/src/mfml_qc/utils.py +194 -0
- mfml_4_qc-1.0.0/tests/test_active_learning.py +158 -0
- mfml_4_qc-1.0.0/tests/test_krr.py +146 -0
- mfml_4_qc-1.0.0/tests/test_mfml.py +107 -0
- mfml_4_qc-1.0.0/tests/test_oracles.py +115 -0
- mfml_4_qc-1.0.0/tests/test_representations.py +124 -0
mfml_4_qc-1.0.0/LICENSE
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
___ ____________ ___ _ ___ _____ _____
|
|
2
|
+
| \/ || ___| \/ || | / | | _ / __ \
|
|
3
|
+
| . . || |_ | . . || | ______ / /| |______| | | | / \/
|
|
4
|
+
| |\/| || _| | |\/| || | |______/ /_| |______| | | | |
|
|
5
|
+
| | | || | | | | || |____ \___ | \ \/' / \__/\
|
|
6
|
+
\_| |_/\_| \_| |_/\_____/ |_/ \_/\_\\____/
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
MIT License
|
|
11
|
+
|
|
12
|
+
Copyright (c) 2026 Vivin Vinod & SM4DA
|
|
13
|
+
|
|
14
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
15
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
16
|
+
in the Software without restriction, including without limitation the rights
|
|
17
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
18
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
19
|
+
furnished to do so, subject to the following conditions:
|
|
20
|
+
|
|
21
|
+
The above copyright notice and this permission notice shall be included in all
|
|
22
|
+
copies or substantial portions of the Software.
|
|
23
|
+
|
|
24
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
25
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
26
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
27
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
28
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
29
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
30
|
+
SOFTWARE.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
prune docs
|
mfml_4_qc-1.0.0/PKG-INFO
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: mfml-4-qc
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: A Multifidelity Machine Learning framework for Quantum Chemistry
|
|
5
|
+
Author-email: Vivin Vinod <vinod@uni-wuppertal.de>
|
|
6
|
+
Project-URL: Homepage, https://github.com/vivinvinod/mfml-4-qc
|
|
7
|
+
Project-URL: Repository, https://github.com/vivinvinod/mfml-4-qc.git
|
|
8
|
+
Project-URL: Bug Tracker, https://github.com/vivinvinod/mfml-4-qc/issues
|
|
9
|
+
Project-URL: Documentation, https://vivinvinod.github.io/mfml-4-qc/index.html
|
|
10
|
+
Classifier: Programming Language :: Python :: 3
|
|
11
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
12
|
+
Classifier: Operating System :: OS Independent
|
|
13
|
+
Classifier: Intended Audience :: Science/Research
|
|
14
|
+
Classifier: Topic :: Scientific/Engineering :: Chemistry
|
|
15
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
16
|
+
Requires-Python: >=3.8
|
|
17
|
+
Description-Content-Type: text/markdown
|
|
18
|
+
License-File: LICENSE
|
|
19
|
+
Requires-Dist: numpy>=2.0.0
|
|
20
|
+
Requires-Dist: numba>=0.60.0
|
|
21
|
+
Requires-Dist: tqdm>=4.60.0
|
|
22
|
+
Requires-Dist: matplotlib
|
|
23
|
+
Requires-Dist: scikit-learn>=1.0.0
|
|
24
|
+
Provides-Extra: test
|
|
25
|
+
Requires-Dist: pytest>=7.0.0; extra == "test"
|
|
26
|
+
Provides-Extra: pyscf
|
|
27
|
+
Requires-Dist: pyscf>=2.0.0; extra == "pyscf"
|
|
28
|
+
Provides-Extra: dev
|
|
29
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
30
|
+
Requires-Dist: sphinx; extra == "dev"
|
|
31
|
+
Requires-Dist: black; extra == "dev"
|
|
32
|
+
Requires-Dist: nbsphinx; extra == "dev"
|
|
33
|
+
Requires-Dist: memory_profiler; extra == "dev"
|
|
34
|
+
Requires-Dist: sphinx-gallery; extra == "dev"
|
|
35
|
+
Requires-Dist: pydata-sphinx-theme; extra == "dev"
|
|
36
|
+
Requires-Dist: pyparsing; extra == "dev"
|
|
37
|
+
Dynamic: license-file
|
|
38
|
+
|
|
39
|
+
# Multifidelity Machine Learning for Quantum Chemistry (MFML-4-QC)
|
|
40
|
+
|
|
41
|
+
[](https://opensource.org/licenses/MIT)
|
|
42
|
+
[](https://github.com/psf/black)
|
|
43
|
+
|
|
44
|
+
MFML-4-QC is an open-source library that enables multifidelity machine learning for quantum chemical systems. While the multifidelity methods are model-architecture agnostic, this library provides a lightweight, ultra-fast Numba-compiled Kernel Ridge Regression (KRR) setup as the primary architecture. Users can seamlessly integrate their own custom ML models (e.g., from scikit-learn) and directly interface with quantum chemistry engines like ORCA and PySCF for automated data generation and active learning.
|
|
45
|
+
|
|
46
|
+
## Key Features
|
|
47
|
+
* **Ultra-Fast Kernels:** Compute Matérn, Gaussian, Laplacian, and Wasserstein kernels efficiently using JIT-compiled C-loops via Numba.
|
|
48
|
+
* **In-Memory Representations:** Generate flattened Coulomb Matrices directly from .xyz trajectories without slow disk I/O.
|
|
49
|
+
* **Flexible ML Architectures:** Use the built-in KRR or drop in any scikit-learn compatible estimator (e.g., RandomForestRegressor, MLPRegressor).
|
|
50
|
+
* **Quantum Chemistry Oracles:** Abstract interfaces to automatically generate inputs, execute runs, and parse outputs from engines like ORCA and PySCF.
|
|
51
|
+
|
|
52
|
+
## Installation (v1.0.0)
|
|
53
|
+
**Prerequisites:** Python 3.10 or higher. It is best to install within a fresh `conda` environment to avoid dependency clashes.
|
|
54
|
+
|
|
55
|
+
### Installing from PyPI
|
|
56
|
+
Once a stable version is released, users can directly install the pakcage from PyPI using the `pip` call.
|
|
57
|
+
```bash
|
|
58
|
+
# Create and activate a fresh conda environment
|
|
59
|
+
conda create -n mfmlenv python=3.10 -y
|
|
60
|
+
conda activate mfmlenv
|
|
61
|
+
|
|
62
|
+
# Install the package
|
|
63
|
+
pip install mfml-4-qc
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Install Directly From Source
|
|
67
|
+
You can also directly download the GitHub repo and install the package from there.
|
|
68
|
+
```bash
|
|
69
|
+
# Clone the repository
|
|
70
|
+
git clone https://github.com/vivinvinod/mfml-4-qc.git
|
|
71
|
+
|
|
72
|
+
# Create and activate a fresh conda environment
|
|
73
|
+
conda create -n mfmlenv python=3.10 -y
|
|
74
|
+
conda activate mfmlenv
|
|
75
|
+
|
|
76
|
+
# Install the package
|
|
77
|
+
pip install .
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
### Additional Dependencies
|
|
82
|
+
If you plan to use the built-in `PySCFEngine` oracle, you can install the package with the optional PySCF dependency. (Note: PySCF can be a heavy dependency, which is why it is kept optional).
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
pip install .[pyscf]
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
To run the `ORCAEngine` you will need to install ORCA. See the [official ORCA manual](https://www.faccts.de/docs/orca/6.1/manual/contents/quickstartguide/installation.html) for details on how to do so.
|
|
89
|
+
|
|
90
|
+
### Developer Installation
|
|
91
|
+
If you are beta testing, modifying the source code, or want to build the local documentation, install the package in "editable" mode (`-e`) with the `[dev]` flag. This installs testing tools (`pytest`, `black` etc) and the Sphinx documentation stack:
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
pip install -e .[dev]
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Documentation and Examples
|
|
98
|
+
|
|
99
|
+
MFML-4-QC comes with a comprehensive documentation site that includes detailed API references and tutorials. An inbuilt 15 picosecond MD-trajectory of benzene is also provided as an inbuilt dataset for preliminary exploration of the package.
|
|
100
|
+
|
|
101
|
+
You can view the documentation at https://vivinvinod.github.io/mfml-4-qc/.
|
|
102
|
+
To view the documentation locally, go to `docs/build/html/` and open `index.html` in a browser of your choice.
|
|
103
|
+
You can also browse the raw tutorial scripts directly in the `examples/` directory of the code repository.
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# Multifidelity Machine Learning for Quantum Chemistry (MFML-4-QC)
|
|
2
|
+
|
|
3
|
+
<div align="center">
|
|
4
|
+
<picture>
|
|
5
|
+
<source media="(prefers-color-scheme: dark)" srcset="mfml_logo_dark.png">
|
|
6
|
+
<source media="(prefers-color-scheme: light)" srcset="mfml_logo_light.png">
|
|
7
|
+
<p align="center">
|
|
8
|
+
<img alt="MFML-4-QC logo" src="mfml_logo_light.png" width="400">
|
|
9
|
+
</p>
|
|
10
|
+
</picture>
|
|
11
|
+
</div>
|
|
12
|
+
|
|
13
|
+
[](https://opensource.org/licenses/MIT)
|
|
14
|
+
[](https://github.com/psf/black)
|
|
15
|
+
|
|
16
|
+
MFML-4-QC is an open-source library that enables multifidelity machine learning for quantum chemical systems. While the multifidelity methods are model-architecture agnostic, this library provides a lightweight, ultra-fast Numba-compiled Kernel Ridge Regression (KRR) setup as the primary architecture. Users can seamlessly integrate their own custom ML models (e.g., from scikit-learn) and directly interface with quantum chemistry engines like ORCA and PySCF for automated data generation and active learning.
|
|
17
|
+
|
|
18
|
+
## Bug Reports
|
|
19
|
+
If you find a bug in MFML-4-QC, or have a feature request, please open a GitHub issue.
|
|
20
|
+
|
|
21
|
+
## Key Features
|
|
22
|
+
* **Ultra-Fast Kernels:** Compute Matérn, Gaussian, Laplacian, and Wasserstein kernels efficiently using JIT-compiled C-loops via Numba.
|
|
23
|
+
* **In-Memory Representations:** Generate flattened Coulomb Matrices directly from .xyz trajectories without slow disk I/O.
|
|
24
|
+
* **Flexible ML Architectures:** Use the built-in KRR or drop in any scikit-learn compatible estimator (e.g., RandomForestRegressor, MLPRegressor).
|
|
25
|
+
* **Quantum Chemistry Oracles:** Abstract interfaces to automatically generate inputs, execute runs, and parse outputs from engines like ORCA and PySCF.
|
|
26
|
+
|
|
27
|
+
## Installation (v1.0.0)
|
|
28
|
+
**Prerequisites:** Python 3.10 or higher. It is best to install within a fresh `conda` environment to avoid dependency clashes.
|
|
29
|
+
|
|
30
|
+
### Installing from PyPI
|
|
31
|
+
Once a stable version is released, users can directly install the pakcage from PyPI using the `pip` call.
|
|
32
|
+
```bash
|
|
33
|
+
# Create and activate a fresh conda environment
|
|
34
|
+
conda create -n mfmlenv python=3.10 -y
|
|
35
|
+
conda activate mfmlenv
|
|
36
|
+
|
|
37
|
+
# Install the package
|
|
38
|
+
pip install mfml-4-qc
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Install Directly From Source
|
|
42
|
+
You can also directly download the GitHub repo and install the package from there.
|
|
43
|
+
```bash
|
|
44
|
+
# Clone the repository
|
|
45
|
+
git clone https://github.com/vivinvinod/mfml-qc.git
|
|
46
|
+
|
|
47
|
+
# Create and activate a fresh conda environment
|
|
48
|
+
conda create -n mfmlenv python=3.10 -y
|
|
49
|
+
conda activate mfmlenv
|
|
50
|
+
|
|
51
|
+
# Install the package
|
|
52
|
+
pip install .
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
### Additional Dependencies
|
|
57
|
+
If you plan to use the built-in `PySCFEngine` oracle, you can install the package with the optional PySCF dependency. (Note: PySCF can be a heavy dependency, which is why it is kept optional).
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
pip install .[pyscf]
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
TO run the `ORCAEngine` you will need to install ORCA. See the [official ORCA manual](https://www.faccts.de/docs/orca/6.1/manual/contents/quickstartguide/installation.html) for details on how to do so.
|
|
64
|
+
|
|
65
|
+
### Developer Installation
|
|
66
|
+
If you are beta testing, modifying the source code, or want to build the local documentation, install the package in "editable" mode (`-e`) with the `[dev]` flag. This installs testing tools (`pytest`, `black` etc) and the Sphinx documentation stack:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
pip install -e .[dev]
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
## Documentation and Examples
|
|
74
|
+
|
|
75
|
+
MFML-4-QC comes with a comprehensive documentation site that includes detailed API references and copy-pasteable tutorials.
|
|
76
|
+
|
|
77
|
+
To view the documentation locally, go to `docs/build/html/` and open `index.html` in a browser of your choice.
|
|
78
|
+
|
|
79
|
+
You can also browse the raw tutorial scripts directly in the `examples/` directory of this repository.
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
## Citation
|
|
83
|
+
If you use this package, please consider citing the following articles:
|
|
84
|
+
* TBA
|
|
85
|
+
* TBA
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Multifidelity Machine Learning for Quantum Chemistry (MFML-4-QC)
|
|
2
|
+
|
|
3
|
+
[](https://opensource.org/licenses/MIT)
|
|
4
|
+
[](https://github.com/psf/black)
|
|
5
|
+
|
|
6
|
+
MFML-4-QC is an open-source library that enables multifidelity machine learning for quantum chemical systems. While the multifidelity methods are model-architecture agnostic, this library provides a lightweight, ultra-fast Numba-compiled Kernel Ridge Regression (KRR) setup as the primary architecture. Users can seamlessly integrate their own custom ML models (e.g., from scikit-learn) and directly interface with quantum chemistry engines like ORCA and PySCF for automated data generation and active learning.
|
|
7
|
+
|
|
8
|
+
## Key Features
|
|
9
|
+
* **Ultra-Fast Kernels:** Compute Matérn, Gaussian, Laplacian, and Wasserstein kernels efficiently using JIT-compiled C-loops via Numba.
|
|
10
|
+
* **In-Memory Representations:** Generate flattened Coulomb Matrices directly from .xyz trajectories without slow disk I/O.
|
|
11
|
+
* **Flexible ML Architectures:** Use the built-in KRR or drop in any scikit-learn compatible estimator (e.g., RandomForestRegressor, MLPRegressor).
|
|
12
|
+
* **Quantum Chemistry Oracles:** Abstract interfaces to automatically generate inputs, execute runs, and parse outputs from engines like ORCA and PySCF.
|
|
13
|
+
|
|
14
|
+
## Installation (v1.0.0)
|
|
15
|
+
**Prerequisites:** Python 3.10 or higher. It is best to install within a fresh `conda` environment to avoid dependency clashes.
|
|
16
|
+
|
|
17
|
+
### Installing from PyPI
|
|
18
|
+
Once a stable version is released, users can directly install the pakcage from PyPI using the `pip` call.
|
|
19
|
+
```bash
|
|
20
|
+
# Create and activate a fresh conda environment
|
|
21
|
+
conda create -n mfmlenv python=3.10 -y
|
|
22
|
+
conda activate mfmlenv
|
|
23
|
+
|
|
24
|
+
# Install the package
|
|
25
|
+
pip install mfml-4-qc
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### Install Directly From Source
|
|
29
|
+
You can also directly download the GitHub repo and install the package from there.
|
|
30
|
+
```bash
|
|
31
|
+
# Clone the repository
|
|
32
|
+
git clone https://github.com/vivinvinod/mfml-4-qc.git
|
|
33
|
+
|
|
34
|
+
# Create and activate a fresh conda environment
|
|
35
|
+
conda create -n mfmlenv python=3.10 -y
|
|
36
|
+
conda activate mfmlenv
|
|
37
|
+
|
|
38
|
+
# Install the package
|
|
39
|
+
pip install .
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
### Additional Dependencies
|
|
44
|
+
If you plan to use the built-in `PySCFEngine` oracle, you can install the package with the optional PySCF dependency. (Note: PySCF can be a heavy dependency, which is why it is kept optional).
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
pip install .[pyscf]
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
To run the `ORCAEngine` you will need to install ORCA. See the [official ORCA manual](https://www.faccts.de/docs/orca/6.1/manual/contents/quickstartguide/installation.html) for details on how to do so.
|
|
51
|
+
|
|
52
|
+
### Developer Installation
|
|
53
|
+
If you are beta testing, modifying the source code, or want to build the local documentation, install the package in "editable" mode (`-e`) with the `[dev]` flag. This installs testing tools (`pytest`, `black` etc) and the Sphinx documentation stack:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
pip install -e .[dev]
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Documentation and Examples
|
|
60
|
+
|
|
61
|
+
MFML-4-QC comes with a comprehensive documentation site that includes detailed API references and tutorials. An inbuilt 15 picosecond MD-trajectory of benzene is also provided as an inbuilt dataset for preliminary exploration of the package.
|
|
62
|
+
|
|
63
|
+
You can view the documentation at https://vivinvinod.github.io/mfml-4-qc/.
|
|
64
|
+
To view the documentation locally, go to `docs/build/html/` and open `index.html` in a browser of your choice.
|
|
65
|
+
You can also browse the raw tutorial scripts directly in the `examples/` directory of the code repository.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=61.0", "wheel"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "mfml-4-qc"
|
|
7
|
+
version = "1.0.0"
|
|
8
|
+
description = "A Multifidelity Machine Learning framework for Quantum Chemistry"
|
|
9
|
+
readme = "README_pypi.md"
|
|
10
|
+
requires-python = ">=3.8"
|
|
11
|
+
authors = [
|
|
12
|
+
{ name = "Vivin Vinod", email = "vinod@uni-wuppertal.de" }
|
|
13
|
+
]
|
|
14
|
+
classifiers = [
|
|
15
|
+
"Programming Language :: Python :: 3",
|
|
16
|
+
"License :: OSI Approved :: MIT License",
|
|
17
|
+
"Operating System :: OS Independent",
|
|
18
|
+
"Intended Audience :: Science/Research",
|
|
19
|
+
"Topic :: Scientific/Engineering :: Chemistry",
|
|
20
|
+
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
21
|
+
]
|
|
22
|
+
|
|
23
|
+
# Core dependencies
|
|
24
|
+
dependencies = [
|
|
25
|
+
"numpy>=2.0.0",
|
|
26
|
+
"numba>=0.60.0",
|
|
27
|
+
"tqdm>=4.60.0",
|
|
28
|
+
"matplotlib",
|
|
29
|
+
"scikit-learn>=1.0.0"
|
|
30
|
+
]
|
|
31
|
+
|
|
32
|
+
# where to find
|
|
33
|
+
[project.urls]
|
|
34
|
+
Homepage = "https://github.com/vivinvinod/mfml-4-qc"
|
|
35
|
+
Repository = "https://github.com/vivinvinod/mfml-4-qc.git"
|
|
36
|
+
"Bug Tracker" = "https://github.com/vivinvinod/mfml-4-qc/issues"
|
|
37
|
+
Documentation = "https://vivinvinod.github.io/mfml-4-qc/index.html"
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
# Optional dependencies
|
|
42
|
+
[project.optional-dependencies]
|
|
43
|
+
test = [
|
|
44
|
+
"pytest>=7.0.0"
|
|
45
|
+
]
|
|
46
|
+
pyscf = [
|
|
47
|
+
"pyscf>=2.0.0"
|
|
48
|
+
]
|
|
49
|
+
dev = [
|
|
50
|
+
"pytest>=7.0.0",
|
|
51
|
+
"sphinx", # For documentation
|
|
52
|
+
"black", # code formatting
|
|
53
|
+
"nbsphinx",
|
|
54
|
+
"memory_profiler",
|
|
55
|
+
"sphinx-gallery", "pydata-sphinx-theme","pyparsing"
|
|
56
|
+
]
|
|
57
|
+
|
|
58
|
+
[tool.setuptools.packages.find]
|
|
59
|
+
where = ["src"]
|
|
60
|
+
|
|
61
|
+
# for pytests
|
|
62
|
+
[tool.pytest.ini_options]
|
|
63
|
+
testpaths = [
|
|
64
|
+
"tests",
|
|
65
|
+
]
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: mfml-4-qc
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: A Multifidelity Machine Learning framework for Quantum Chemistry
|
|
5
|
+
Author-email: Vivin Vinod <vinod@uni-wuppertal.de>
|
|
6
|
+
Project-URL: Homepage, https://github.com/vivinvinod/mfml-4-qc
|
|
7
|
+
Project-URL: Repository, https://github.com/vivinvinod/mfml-4-qc.git
|
|
8
|
+
Project-URL: Bug Tracker, https://github.com/vivinvinod/mfml-4-qc/issues
|
|
9
|
+
Project-URL: Documentation, https://vivinvinod.github.io/mfml-4-qc/index.html
|
|
10
|
+
Classifier: Programming Language :: Python :: 3
|
|
11
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
12
|
+
Classifier: Operating System :: OS Independent
|
|
13
|
+
Classifier: Intended Audience :: Science/Research
|
|
14
|
+
Classifier: Topic :: Scientific/Engineering :: Chemistry
|
|
15
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
16
|
+
Requires-Python: >=3.8
|
|
17
|
+
Description-Content-Type: text/markdown
|
|
18
|
+
License-File: LICENSE
|
|
19
|
+
Requires-Dist: numpy>=2.0.0
|
|
20
|
+
Requires-Dist: numba>=0.60.0
|
|
21
|
+
Requires-Dist: tqdm>=4.60.0
|
|
22
|
+
Requires-Dist: matplotlib
|
|
23
|
+
Requires-Dist: scikit-learn>=1.0.0
|
|
24
|
+
Provides-Extra: test
|
|
25
|
+
Requires-Dist: pytest>=7.0.0; extra == "test"
|
|
26
|
+
Provides-Extra: pyscf
|
|
27
|
+
Requires-Dist: pyscf>=2.0.0; extra == "pyscf"
|
|
28
|
+
Provides-Extra: dev
|
|
29
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
30
|
+
Requires-Dist: sphinx; extra == "dev"
|
|
31
|
+
Requires-Dist: black; extra == "dev"
|
|
32
|
+
Requires-Dist: nbsphinx; extra == "dev"
|
|
33
|
+
Requires-Dist: memory_profiler; extra == "dev"
|
|
34
|
+
Requires-Dist: sphinx-gallery; extra == "dev"
|
|
35
|
+
Requires-Dist: pydata-sphinx-theme; extra == "dev"
|
|
36
|
+
Requires-Dist: pyparsing; extra == "dev"
|
|
37
|
+
Dynamic: license-file
|
|
38
|
+
|
|
39
|
+
# Multifidelity Machine Learning for Quantum Chemistry (MFML-4-QC)
|
|
40
|
+
|
|
41
|
+
[](https://opensource.org/licenses/MIT)
|
|
42
|
+
[](https://github.com/psf/black)
|
|
43
|
+
|
|
44
|
+
MFML-4-QC is an open-source library that enables multifidelity machine learning for quantum chemical systems. While the multifidelity methods are model-architecture agnostic, this library provides a lightweight, ultra-fast Numba-compiled Kernel Ridge Regression (KRR) setup as the primary architecture. Users can seamlessly integrate their own custom ML models (e.g., from scikit-learn) and directly interface with quantum chemistry engines like ORCA and PySCF for automated data generation and active learning.
|
|
45
|
+
|
|
46
|
+
## Key Features
|
|
47
|
+
* **Ultra-Fast Kernels:** Compute Matérn, Gaussian, Laplacian, and Wasserstein kernels efficiently using JIT-compiled C-loops via Numba.
|
|
48
|
+
* **In-Memory Representations:** Generate flattened Coulomb Matrices directly from .xyz trajectories without slow disk I/O.
|
|
49
|
+
* **Flexible ML Architectures:** Use the built-in KRR or drop in any scikit-learn compatible estimator (e.g., RandomForestRegressor, MLPRegressor).
|
|
50
|
+
* **Quantum Chemistry Oracles:** Abstract interfaces to automatically generate inputs, execute runs, and parse outputs from engines like ORCA and PySCF.
|
|
51
|
+
|
|
52
|
+
## Installation (v1.0.0)
|
|
53
|
+
**Prerequisites:** Python 3.10 or higher. It is best to install within a fresh `conda` environment to avoid dependency clashes.
|
|
54
|
+
|
|
55
|
+
### Installing from PyPI
|
|
56
|
+
Once a stable version is released, users can directly install the pakcage from PyPI using the `pip` call.
|
|
57
|
+
```bash
|
|
58
|
+
# Create and activate a fresh conda environment
|
|
59
|
+
conda create -n mfmlenv python=3.10 -y
|
|
60
|
+
conda activate mfmlenv
|
|
61
|
+
|
|
62
|
+
# Install the package
|
|
63
|
+
pip install mfml-4-qc
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Install Directly From Source
|
|
67
|
+
You can also directly download the GitHub repo and install the package from there.
|
|
68
|
+
```bash
|
|
69
|
+
# Clone the repository
|
|
70
|
+
git clone https://github.com/vivinvinod/mfml-4-qc.git
|
|
71
|
+
|
|
72
|
+
# Create and activate a fresh conda environment
|
|
73
|
+
conda create -n mfmlenv python=3.10 -y
|
|
74
|
+
conda activate mfmlenv
|
|
75
|
+
|
|
76
|
+
# Install the package
|
|
77
|
+
pip install .
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
### Additional Dependencies
|
|
82
|
+
If you plan to use the built-in `PySCFEngine` oracle, you can install the package with the optional PySCF dependency. (Note: PySCF can be a heavy dependency, which is why it is kept optional).
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
pip install .[pyscf]
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
To run the `ORCAEngine` you will need to install ORCA. See the [official ORCA manual](https://www.faccts.de/docs/orca/6.1/manual/contents/quickstartguide/installation.html) for details on how to do so.
|
|
89
|
+
|
|
90
|
+
### Developer Installation
|
|
91
|
+
If you are beta testing, modifying the source code, or want to build the local documentation, install the package in "editable" mode (`-e`) with the `[dev]` flag. This installs testing tools (`pytest`, `black` etc) and the Sphinx documentation stack:
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
pip install -e .[dev]
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Documentation and Examples
|
|
98
|
+
|
|
99
|
+
MFML-4-QC comes with a comprehensive documentation site that includes detailed API references and tutorials. An inbuilt 15 picosecond MD-trajectory of benzene is also provided as an inbuilt dataset for preliminary exploration of the package.
|
|
100
|
+
|
|
101
|
+
You can view the documentation at https://vivinvinod.github.io/mfml-4-qc/.
|
|
102
|
+
To view the documentation locally, go to `docs/build/html/` and open `index.html` in a browser of your choice.
|
|
103
|
+
You can also browse the raw tutorial scripts directly in the `examples/` directory of the code repository.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
LICENSE
|
|
2
|
+
MANIFEST.in
|
|
3
|
+
README.md
|
|
4
|
+
README_pypi.md
|
|
5
|
+
pyproject.toml
|
|
6
|
+
src/mfml_4_qc.egg-info/PKG-INFO
|
|
7
|
+
src/mfml_4_qc.egg-info/SOURCES.txt
|
|
8
|
+
src/mfml_4_qc.egg-info/dependency_links.txt
|
|
9
|
+
src/mfml_4_qc.egg-info/requires.txt
|
|
10
|
+
src/mfml_4_qc.egg-info/top_level.txt
|
|
11
|
+
src/mfml_qc/__init__.py
|
|
12
|
+
src/mfml_qc/active_learning.py
|
|
13
|
+
src/mfml_qc/datasets.py
|
|
14
|
+
src/mfml_qc/krr.py
|
|
15
|
+
src/mfml_qc/mfml.py
|
|
16
|
+
src/mfml_qc/representations.py
|
|
17
|
+
src/mfml_qc/utils.py
|
|
18
|
+
src/mfml_qc/oracles/__init__.py
|
|
19
|
+
src/mfml_qc/oracles/base.py
|
|
20
|
+
src/mfml_qc/oracles/orca.py
|
|
21
|
+
src/mfml_qc/oracles/pyscf.py
|
|
22
|
+
tests/test_active_learning.py
|
|
23
|
+
tests/test_krr.py
|
|
24
|
+
tests/test_mfml.py
|
|
25
|
+
tests/test_oracles.py
|
|
26
|
+
tests/test_representations.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
numpy>=2.0.0
|
|
2
|
+
numba>=0.60.0
|
|
3
|
+
tqdm>=4.60.0
|
|
4
|
+
matplotlib
|
|
5
|
+
scikit-learn>=1.0.0
|
|
6
|
+
|
|
7
|
+
[dev]
|
|
8
|
+
pytest>=7.0.0
|
|
9
|
+
sphinx
|
|
10
|
+
black
|
|
11
|
+
nbsphinx
|
|
12
|
+
memory_profiler
|
|
13
|
+
sphinx-gallery
|
|
14
|
+
pydata-sphinx-theme
|
|
15
|
+
pyparsing
|
|
16
|
+
|
|
17
|
+
[pyscf]
|
|
18
|
+
pyscf>=2.0.0
|
|
19
|
+
|
|
20
|
+
[test]
|
|
21
|
+
pytest>=7.0.0
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
mfml_qc
|