Toolkit for generating monometallic to trimetallic nanoparticle structural datasets for machine learning.
Project description
AlloMorph
Description
AlloMorph is a Python toolkit for generating initial structural models of monometallic, bimetallic, and trimetallic nanoparticles. It is designed to create large-scale datasets for atomistic simulations and machine learning applications.
Installation
This package uses uv for dependency management and packaging. For detailed information on external tool requirements (LAMMPS, NCPac, etc.), see DEPENDENCIES.md.
# Clone the repository
git clone https://github.com/jonathan-ting/allomorph.git
cd allomorph
# Create a virtual environment and install dependencies
uv venv
uv pip install -e ".[dev]"
Alternatively, you can install directly with pip:
pip install allomorph
Usage
The core allomorph command provides a streamlined interface for structure generation:
# Generate a full suite of nanoparticles (MNP, BNP, TNP)
allomorph init-struct --stage all
# Generate only monometallic nanoparticles
allomorph init-struct --stage mnp
# Generate bimetallic nanoparticles with visual check (ASE GUI)
allomorph init-struct --stage bnp --vis
Check out the basic demonstration notebook for further explanations and demonstrations!
Features
Core Package Structure
allomorph.init_struct— Generation logic for monometallic, bimetallic, and trimetallic structures.allomorph.constants— Physical constants, element properties, and global configuration.
Project Extras & Research Tools
While the core allomorph package focuses on structure generation, this repository includes additional tools and legacy resources used in the original research pipeline:
1. Research Extras (extras/)
These are standalone Python modules for managing the full simulation lifecycle:
extras/eam/— Creation of EAM alloy potential files.extras/md_sim/— Management of LAMMPS simulations and HPC job submission.extras/feat_ext_eng/— Integration with NCPac for structural feature extraction.
2. Physical Resources
- InitStruct: LAMMPS and Bash scripts for alternative structure generation workflows.
- EAM: Reference databases and tools for interatomic potentials.
- MDsim: LAMMPS templates and scripts for simulation orchestration.
- FeatExtEng: Source code and configuration for NCPac.
Degrees of Freedom
AlloMorph supports a wide range of configurable parameters:
- Elemental composition: Supports 1–3 arbitrary metallic elements (e.g., Au, Pt, Pd, Cu, Ni, Ag).
- Size: Configurable diameter range (default: 10–30 Å).
- Shape: CU (Cube), TH (Tetrahedron), RD (Rhombic Dodecahedron), OT (Octahedron), TO (Truncated Octahedron), CO (Cuboctahedron), DH (Decahedron), IC (Icosahedron), SP (Sphere).
- Ratio: Arbitrary stoichiometric ratios (e.g., 20:40:40).
- Atomic ordering:
- BNP: L10 (Ordered), RAL (Random), RCS (Random Core-Shell).
- TNP: L10R, CS, CL10S, CRALS, RRAL, CSRAL, CSL10, CRSR, LL10.
Future Enhancements
- Support >3 metals: Extend logic to quadrimetallic and beyond.
- Non-FCC lattice support: Support for BCC, HCP, and other lattices.
- Modern Formats: Support for HDF5 and ASE trajectory outputs.
Documentation
Detailed documentations are hosted by Read the Docs.
Contributing
Sphractal appreciates your enthusiasm and welcomes your expertise!
Please check out the contributing guidelines and code of conduct. By contributing to this project, you agree to abide by its terms.
License
The project is distributed under an MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file allomorph-0.2.0.tar.gz.
File metadata
- Download URL: allomorph-0.2.0.tar.gz
- Upload date:
- Size: 18.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
27bed6e311ad4230709502d4000e4456f2bf7e034df48ba133bfc21bfcfb6b61
|
|
| MD5 |
80ef2cec1a62a6e1f7adb6df61b2d27b
|
|
| BLAKE2b-256 |
596f186e40c00831f3ed0159463361f3ff399f21251ad9c64b31a69bab287d8a
|
Provenance
The following attestation bundles were made for allomorph-0.2.0.tar.gz:
Publisher:
ci-cd.yml on Jon-Ting/allomorph
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
allomorph-0.2.0.tar.gz -
Subject digest:
27bed6e311ad4230709502d4000e4456f2bf7e034df48ba133bfc21bfcfb6b61 - Sigstore transparency entry: 1630244169
- Sigstore integration time:
-
Permalink:
Jon-Ting/allomorph@fe320c67dd106b4f2cf7ef6a02052c24b78d7933 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/Jon-Ting
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci-cd.yml@fe320c67dd106b4f2cf7ef6a02052c24b78d7933 -
Trigger Event:
push
-
Statement type:
File details
Details for the file allomorph-0.2.0-py3-none-any.whl.
File metadata
- Download URL: allomorph-0.2.0-py3-none-any.whl
- Upload date:
- Size: 21.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3f4d25a5277ed814e2740c0853da8005abef513c6e1b698cb2e68692ed892b94
|
|
| MD5 |
39b63c26048188466fc6e12f2f416efc
|
|
| BLAKE2b-256 |
42571920b495a550cf95c70cf93200a7378da98c4ea92cff9944e22c8df676c1
|
Provenance
The following attestation bundles were made for allomorph-0.2.0-py3-none-any.whl:
Publisher:
ci-cd.yml on Jon-Ting/allomorph
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
allomorph-0.2.0-py3-none-any.whl -
Subject digest:
3f4d25a5277ed814e2740c0853da8005abef513c6e1b698cb2e68692ed892b94 - Sigstore transparency entry: 1630244190
- Sigstore integration time:
-
Permalink:
Jon-Ting/allomorph@fe320c67dd106b4f2cf7ef6a02052c24b78d7933 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/Jon-Ting
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci-cd.yml@fe320c67dd106b4f2cf7ef6a02052c24b78d7933 -
Trigger Event:
push
-
Statement type: