Classify ASE Atoms#
Problem#
You have an ASE Atoms and want CHILL+ labels or cage flags on
the same configuration, then an Atoms back with those arrays.
Install the extra#
pip install 'pydseams[ase]'
Without it, from_ase / to_ase raise ImportError and name
that command.
Classify ASE Atoms#
import ase.io
import pydseams as ds
atoms = ase.io.read("water.lammpstrj", format="lammps-dump-text")
frame = ds.from_ase(atoms)
print(frame.chill_plus())
labelled = frame.to_ase()
from_ase is Frame.from_ase. The cell must be orthorhombic.
from_ase keeps oxygen by default (select="O").
Select and bonding#
Pass a symbol, an atomic number, or None (every atom):
frame = ds.from_ase(atoms, select="O")
frame = ds.from_ase(atoms, select=8)
frame = ds.from_ase(atoms, select=None)
bonded="auto" uses hydrogen bonds when the Atoms include
H, otherwise the cutoff neighbour list. Single-site models (mW)
have no hydrogens:
frame = ds.from_ase(atoms, select="O", bonded="cutoff")
bonded is "auto", "hbond", or "cutoff". Hydrogens
stay in a side cloud so the analysed species remain the CHILL /
ring particles.
Labels on the way back#
to_ase rebuilds an Atoms with the analysed positions and an
orthorhombic cell (pbc=True). After chill_plus / chill,
atoms.arrays["ice_type"] holds the per-atom names. After
cages(), atoms.arrays["hc"] and atoms.arrays["ddc"] hold
the last CageScore. atoms.info["dseams_n_atoms"] is the
analysed particle count.
A frame loaded from a LAMMPS dump (no ASE symbols) uses O as the
fallback species.
See also#
View a frame in solvis : wraps the same
AtomsTutorial: Classify ice :
read/chill_plus/cagesTroubleshooting : non-orthorhombic cell, missing H