eOn NEB API Reference#
Module: chemparseplot.parse.eon.neb#
load_structures_and_calculate_additional_rmsd(con_file, additional_con, ira_kmax, sp_file=None)#
Loads the main NEB trajectory and calculates RMSD for additional comparison structures.
Parameters#
Parameter |
Type |
Default |
Description |
|---|---|---|---|
|
|
Path to main trajectory CON file |
|
|
|
List of (path, label) pairs for extra structures |
|
|
|
kmax factor for IRA alignment |
|
|
|
|
Path to explicit saddle point CON file |
Returns#
NebOverlayBundle with fields:
Field |
Type |
Description |
|---|---|---|
|
|
ASE Atoms from main trajectory |
|
|
Typed overlay records with |
|
|
Explicit saddle-point overlay record |
Notes#
Uses IRA (Iterative Rotations and Assignments) for RMSD
Raises
ImportErrorifira_modis not available, because landscape coordinates without IRA are chemically misleading for permutationally symmetric systemsRMSD computed relative to first frame (reactant) and last frame (product)
Empty labels default to the file stem
Overlay Record#
NebOverlayStructure is a frozen typed record with four fields:
atoms: ASE structure to renderr: RMSD to the reactantp: RMSD to the productlabel: legend / annotation label
aggregate_neb_landscape_data(all_dat_paths, all_con_paths, y_data_column, ira_instance, *, cache_file=None, force_recompute=False, ira_kmax=1.8, augment_dat=None, augment_con=None, ref_atoms=None, prod_atoms=None)#
Aggregates data from multiple NEB optimization steps for 2D landscape visualization.
Parameters#
Parameter |
Type |
Default |
Description |
|---|---|---|---|
|
|
Sorted list of DAT file paths |
|
|
|
Sorted list of CON file paths (must match DAT order) |
|
|
|
Column index in DAT file for energy/eigenvalue |
|
|
object or |
IRA instance. Landscape coordinate generation requires a real IRA backend. |
|
|
|
|
Parquet file for caching results |
|
|
|
Bypass cache and recompute |
|
|
|
Factor on the IRA basis cutoff |
|
|
|
Glob pattern for augmentation DAT files |
|
|
|
Glob pattern for augmentation CON files |
|
|
|
Reference reactant for augmentation projection |
|
|
|
Reference product for augmentation projection |
Returns#
pl.DataFrame with columns [r, p, grad_r, grad_p, z, step]
Raises#
Exception |
Condition |
|---|---|
|
No data could be aggregated from any step |
Notes#
DAT files contain columns: image index, energy, eigenvalue, parallel force, perpendicular force
Column index 1 selects energy, column index 2 selects eigenvalue
Cache validation checks for
pandgrad_rcolumns (rejects outdated caches)Augmentation paths receive
step-1= to distinguish from primary dataMismatched DAT/CON counts are truncated to the shorter list with a warning
load_augmenting_neb_data(dat_pattern, con_pattern, ref_atoms, prod_atoms, y_data_column, ira_kmax)#
Loads external NEB paths to augment the landscape surface fit.
Parameters#
Parameter |
Type |
Default |
Description |
|---|---|---|---|
|
|
Glob pattern for DAT files |
|
|
|
Glob pattern for CON files |
|
|
|
Reactant atoms for RMSD reference |
|
|
|
Product atoms for RMSD reference |
|
|
|
Column index for energy in DAT files |
|
|
|
kmax factor for IRA |
Returns#
pl.DataFrame – Same schema as aggregate_neb_landscape_data(), or empty DataFrame if no files match.
Notes#
Forces RMSD projection onto the main path’s reactant/product coordinate frame
All augmented data gets
step-1=
compute_profile_rmsd(atoms_list, *, cache_file, force_recompute, ira_kmax)#
Computes RMSD from reactant for a 1D energy profile.
Parameters#
Parameter |
Type |
Default |
Description |
|---|---|---|---|
|
|
NEB trajectory as ASE Atoms |
|
|
|
Parquet cache path |
|
|
|
Bypass cache |
|
|
|
kmax factor for IRA |
Returns#
pl.DataFrame with column [r] (RMSD from first frame)
Notes#
Cache validation rejects DataFrames that contain a
pcolumn (landscape data)Cache validation checks row count matches
len(atoms_list)
estimate_rbf_smoothing(df)#
Estimates a smoothing parameter for RBF surface interpolation.
Parameters#
Parameter |
Type |
Description |
|---|---|---|
|
|
Landscape DataFrame with |
Returns#
float – Median Euclidean distance between sequential images within each step. Returns 0.0 if the median is None or zero.
load_or_compute_data(cache_file, *, force_recompute, validation_check, computation_callback, context_name)#
Generic caching helper. Loads from parquet or computes via callback.
Parameters#
Parameter |
Type |
Description |
|---|---|---|
|
|
Parquet path ( |
|
|
Skip cache and compute |
|
|
Raises on invalid cache |
|
|
Called when cache misses |
|
|
Label for log messages |
Returns#
pl.DataFrame
DataFrame Schema#
All landscape DataFrames follow this schema:
Column |
Polars Type |
Unit |
Description |
|---|---|---|---|
|
|
Angstrom |
RMSD from reactant reference |
|
|
Angstrom |
RMSD from product reference |
|
|
(projected) |
Synthetic gradient in R direction |
|
|
(projected) |
Synthetic gradient in P direction |
|
|
eV or unitless |
Energy or eigenvalue |
|
|
Optimization step index (-1 = augmented) |
Module: chemparseplot.parse.eon.dimer_trajectory#
Parses dimer/saddle search trajectory output from eOn (write_movies=true).
DimerTrajectoryData#
Dataclass containing the full trajectory:
Field |
Type |
Description |
|---|---|---|
|
|
Per-iteration structures from movie file |
|
|
Metrics reconstructed from per-frame CON metadata when available, otherwise from |
|
|
Starting structure ( |
|
|
Saddle point ( |
|
|
Eigenvector ( |
load_dimer_trajectory(job_dir) -> DimerTrajectoryData#
Loads the complete trajectory from an eOn saddle search job directory. Expects a climb movie file; the parser prefers per-frame CON metadata and falls back to climb.dat only when the embedded metadata is incomplete.
parse_climb_dat(path) -> pl.DataFrame#
Reads the climb.dat TSV file into a DataFrame. This is a compatibility
utility; metadata-native callers should prefer load_dimer_trajectory(...).
parse_climb_con(path) -> list[Atoms]#
Reads the concatenated climb movie file via ASE. This is a lower-level
compatibility helper; metadata-native callers should prefer
load_dimer_trajectory(...).
Module: chemparseplot.parse.eon.min_trajectory#
Parses minimization trajectory output from eOn (write_movies=true).
MinTrajectoryData#
Dataclass containing the full trajectory:
Field |
Type |
Description |
|---|---|---|
|
|
Per-iteration structures from movie file |
|
|
Metrics reconstructed from per-frame CON metadata when available, otherwise from |
|
|
Starting structure (first frame) |
|
|
Final minimized structure (prefers |
load_min_trajectory(job_dir, prefix”minimization”) -> MinTrajectoryData=#
Loads the complete trajectory from an eOn minimization job directory. The movie file is required; the parser prefers per-frame CON metadata and falls back to the sidecar .dat table only when the embedded metadata is incomplete.
parse_min_dat(path) -> pl.DataFrame#
Reads the minimization TSV data file. This remains available as a
compatibility utility; metadata-native callers should prefer
load_min_trajectory(...).
Module: chemparseplot.parse.neb_utils (updated)#
calculate_landscape_coords(atoms_list, ira_instance, ira_kmax, ref_a=None, ref_b=None)#
Calculates RMSD-A and RMSD-B coordinates for landscape plots.
Notes#
This function now requires a non-
NoneIRA instanceIf
ira_instanceis missing it raisesImportErrorinstead of silently falling back to order-dependent alignmentref_aandref_ballow single-ended methods to reuse the same coordinate machinery with explicit endpoint references
Now accepts explicit ref_a and ref_b reference structures. Defaults to first/last atoms for backward compatibility. For single-ended methods, pass the initial and final structures explicitly.