Oganesson: Python workflows for materials research
Oganesson connects atomistic structure preparation, structural analysis and machine learning in one Python interface. Use it to build candidate materials, convert structures into numerical descriptors, and explore structures and dynamics with machine-learned interatomic potentials.
The central object, OgStructure, wraps a pymatgen Structure and accepts ASE Atoms or a structure file. Basic Python and familiarity with crystal structures are enough to start.
Choose a workflow
| Research task | Tools | Output |
|---|---|---|
| Prepare alloys, defects and surfaces | substitutions_random(), add_interstitial(), add_atom_to_surface() |
Candidate geometries for relaxation |
| Compare structure and diffraction | get_rdf(), xrd() |
Radial distribution functions and simulated XRD patterns |
| Build inputs for property models | BACD, SymmetryFunctions, DScribe wrappers |
Numerical feature vectors |
| Relax structures or explore dynamics | relax(), simulate() |
Potential-dependent energies, structures and trajectories |
| Prepare ion-migration calculations | generate_neb_images(), generate_neb() |
Initial geometries for nudged elastic band (NEB) calculations |
| Search at fixed composition | GA |
Candidates ranked using relaxed total energies |
Follow the materials science tutorial from structure preparation and analysis to descriptors, then optional simulation workflows. It explains inputs, output files and scientific interpretation.
Installation
Install into an isolated Python environment:
python -m pip install oganesson
For the tutorial, download or clone this repository and run these commands from its root directory:
python -m pip install -e .
python -m pip install jupyterlab matplotlib
python -m jupyter lab tutorial.ipynb
Select a kernel using the same Python environment. Introductory examples build crystals with ASE or use the bundled MoS2 structure; no database account is needed.
The dependencies declared in setup.py include ASE, pymatgen, NumPy, pandas, DIEP, bsym and diffusivity. OgStructure imports DIEP even for geometry-only work. Graph-backend requirements depend on the installed DIEP version and potential; the repository does not pin a complete environment.
| Optional workflow | Additional installation |
|---|---|
| DScribe descriptors | python -m pip install dscribe |
| ROSA descriptors | GPAW and its required datasets |
| Explicit M3GNet potential | python -m pip install "oganesson[matgl]" (use ".[matgl]" for a local checkout) |
| Ripple geometry | python -m pip install sympy |
First example: describe a crystal
Build an ideal face-centred cubic Cu primitive cell and calculate a BACD feature vector:
import numpy as np
from ase.build import bulk
from oganesson.ogstructure import OgStructure
from oganesson.descriptors import BACD
copper = OgStructure(bulk("Cu", "fcc", a=3.6)) # lattice parameter in angstrom
features = np.asarray(BACD(copper).describe(), dtype=float)
print("Composition:", copper.structure.composition.reduced_formula)
print("Volume (angstrom^3):", copper.structure.volume)
print("Number of features:", features.size)
BACD combines elemental-property statistics, structural quantities and a space-group encoding. The vector is an input to a model, not a prediction of the crystal's measured properties. Supervised learning also requires reference labels and an independent evaluation dataset.
Load your own file with OgStructure(file_name="path/to/structure.cif"). Access pymatgen through .structure, or convert to ASE with .to_ase().
Interpreting calculation results
The current default for relaxation, molecular dynamics and genetic search is model="diep", loading the bundled potential. model="m3gnet" explicitly selects the MatGL M3GNet model. Other model strings are passed to the DIEP loader. Record the potential and software versions with your calculation settings.
- Surface and defect routines generate starting configurations. Relax and compare candidates before assigning preferred sites or defect energies.
- NEB helpers prepare geometries; they do not calculate a converged migration barrier. The tutorial distinguishes interpolation from the automatic helper, which independently relaxes images.
simulate()runs molecular dynamics with a machine-learned potential. Validate the potential for the chemistry and conditions of interest before interpreting predictions.- A genetic search finds low-energy candidates within the chosen composition and search settings. It does not establish a global minimum or stability against competing phases.
Oganesson is under active development. The tutorial identifies implementation-specific behaviour and marks expensive or data-dependent sections as optional.
Project information
When reporting results, cite the descriptors, potentials, software and reference data actually used. The original descriptor paper is identified by DOI 10.1186/s13321-022-00658-9.
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 oganesson-0.1.48.tar.gz.
File metadata
- Download URL: oganesson-0.1.48.tar.gz
- Upload date:
- Size: 1.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
64a9bd1187c1da22fd77ff56ff27a1aabf95e242bc15ac7137114728b756dabb
|
|
| MD5 |
0fec7f98df2ceddf5c3d14428b91bbd1
|
|
| BLAKE2b-256 |
d05cfc901f46a13223cee73b3513609f3703c650f1c9e3a0117b5dbb39d2ad04
|
File details
Details for the file oganesson-0.1.48-py3-none-any.whl.
File metadata
- Download URL: oganesson-0.1.48-py3-none-any.whl
- Upload date:
- Size: 1.3 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f5e76901d68f09aecf574178ea07c2684a287489700e894d3d6827e06ba70fe1
|
|
| MD5 |
ca54d0d3bf141192993eb1a1070ee098
|
|
| BLAKE2b-256 |
2a57a793b56b78aed87692348368be9675e731ab3513b047a33c1b9f8d4df9ec
|