MXgap: A Machine Learning Program to predict MXene Bandgaps
About
mxgap is a computational tool designed to streamline electronic structure calculations for MXenes using hybrid functionals like PBE0. By employing Machine Learning (ML) models, mxgap predicts the PBE0 bandgap based on features extracted from a PBE calculation. Here’s a detailed overview of its functionality:
1. Feature Extraction:
- Automatically extracts essential features and key data from a PBE calculation output, specifically tailored for VASP (Vienna Ab initio Simulation Package) outputs.
- It leverages the structural information from the CONTCAR file, and optionally users can choose to include the density of states (DOS) from the DOSCAR file to enhance prediction accuracy, depending on the selected ML model.
- The program is designed for periodic systems. So, currently the tool requires a p($1\times1$) terminated MXene unit cell in the CONTCAR file for proper functionality.
2. ML Prediction:
- Uses trained ML models to predict bandgap values, reducing the computational cost associated with performing full PBE0 calculations.
- Several ML models have been trained and are available to use. The default (and best) one is a combination of a Classifier (GBC) that discriminates metallic or semiconductor MXenes and a Regressor (RFR, trained with semiconductor MXenes) to predict the bandgap. More info about the ML models in the models/ folder.
3. Output:
- Generates a report file,
mxgap.info, which contains the ML predictions and results.
This program is based on the data gathered in our works: J. Mater. Chem. A, 2023, 11, 13754-13764 and Energy Environ. Mater., 2024, 7, e12774.
Installation
mxgap works for python >= 3.9, and can be installed using the Python package manager pip:
pip install mxgap
If you use conda/anaconda, the safest thing to do is to create a new environment and then install mxgap:
conda create -n mxgap python
conda activate mxgap
pip install mxgap
If you wish, you can install the latest version of mxgap from GitHub source with the commands below:
git clone https://github.com/diegonti/mxgap.git
cd mxgap
pip install .
If installed via pip, it should handle all the dependencies, but If you encounter issues, install the exact package versions specified in requirements.txt using:
pip install -r requirements.txt
Usage
The program is mainly used through the CLI:
mxgap [-h] [-f CONTCAR [DOSCAR]] [-m MODEL] [PATH]
With the arguments and options explained below:
positional arguments:
path Specify the path to the directory containing the
calculation output files, if empty, will select the
current directory. Must contain at least the optimized
CONTCAR file and, for DOS-trained models, the PBE DOSCAR file.
options:
-h, --help Show this help message and exit.
-f FILES [FILES ...], --files FILES [FILES ...]
Specify in order the direct CONTCAR and DOSCAR (if needed) paths manually.
The path positional argument has preference over this.
-m MODEL, --model MODEL
Choose the trained MXene-Learning model to use.
By default, the most accurate version is selected (GBC+RFR_onlygap).
-o OUTPUT, --output OUTPUT
Path of the output file. By default it will generate a mxgap.info in the CONTCAR folder.
-p, --proba Show also the probability of semiconductor class (p>=0.5: Semiconductor, p<0.5: Metallic),
given by sklearn model.predict_proba().
-v {0,1,2,3}, --verbose {0,1,2,3}
Verbosity level: 0 (None), 1 (File), 2 (Screen), 3 (Both). Defaults to 3.
-l, --list List of all trained ML models available to choose.
-V, --version Show program's version number and exit.
So, for a quick example, the below command will look for the CONTCAR and DOSCAR files in the specified folder and use the default (best) ML model to predict the bandgap:
mxgap examples/folder/
Or using the -f option to specify both CONTCAR and DOSCAR files:
mxgap -f path/to/CONTCAR path/to/DOSCAR
Also, the program can be imported as a python module. See the Jupyter Notebook for some tutorials. Here is a quick example:
from mxgap import run_prediction
path = "examples/La2C1Cl2/"
model = "GBC+RFR"
prediction = run_prediction(path, model = model)
Tests
The program has been tested using GitHub Actions for Windows, Ubuntu and MacOS with python versions >=3.9. You can run tests locally using pytest in the project folder:
cd mxgap
pytest
Help
To get information about the program and its use, run the command:
mxgap -h
For any more doubts or questions, feel free to contact me.
Metadata
Release files for mxgap 0.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| mxgap-0.6.tar.gz | 43.0 MB | Without provenance | Details for mxgap-0.6.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| mxgap-0.6-py3-none-any.whl | Python 3 | none | any | Details for mxgap-0.6-py3-none-any.whl |
Total release size: 86.8 MB
Release files / mxgap-0.6.tar.gz
| Download URL | mxgap-0.6.tar.gz |
|---|---|
| Size | 43.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e9ce2dbaf1993bb704284b584d5486062a7048de8d38d430f4f7e0f5eb71de80
|
|
BLAKE2b-256 checksum How to use checksums |
51843faba7575198904fb815d837939afe06094bd9972191d2745280a0ee1692
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.12.2
|
Release files / mxgap-0.6-py3-none-any.whl
| Download URL | mxgap-0.6-py3-none-any.whl |
|---|---|
| Size | 43.8 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
478ff92032179941ae186f099ac94cefa540968ed7b08eb07485f2682646dd3c
|
|
BLAKE2b-256 checksum How to use checksums |
0cb49a9b59edaab6ff71071396f4a5eb976ba1c5722aa19f89f2c5e4f78f2716
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.12.2
|
Security for mxgap 0.6
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.