| name | reacnetgenerator |
| description | Extract and visualize reaction networks from reactive MD trajectories using ReacNetGenerator. Use after ReaxFF or ab initio MD simulations to identify reaction pathways, species, and kinetics.
|
| compatibility | Requires ReacNetGenerator Python package (pip install reacnetgenerator). Input trajectories must be in LAMMPS dump or XYZ format with bond information.
|
| catalog-hidden | true |
ReacNetGenerator — Reaction Network Analysis
When to Use
- User has completed a reactive MD simulation (ReaxFF or AIMD) and wants to extract reactions
- User wants to identify all chemical species formed during a simulation
- User needs a reaction network diagram showing pathways and frequencies
- User wants to track species concentrations over time
- User is studying combustion, pyrolysis, or other reactive processes
Prerequisites
- ReacNetGenerator installed (
reacnetgenerator --version or python -c "import reacnetgenerator")
- MD trajectory file (LAMMPS dump with bond info, or XYZ with bond detection)
- Bond order file from ReaxFF (
bonds.reax from fix reaxff/bonds)
Workflow Steps
1. Run after ReaxFF MD
catgo_workflow_engine(action="add_task", params={
"workflow_id": "wf_xxx",
"task_type": "shell",
"name": "reacnet_analyze",
"command": "reacnetgenerator -i traj.lammpstrj --type lammpsbondfile -b bonds.reax -a C H O",
"depends_on": ["reaxff_md"],
"system_name": "reaction_network"
})
CLI Usage
From LAMMPS dump + bond file
reacnetgenerator \
-i traj.lammpstrj \
--type lammpsbondfile \
-b bonds.reax \
-a C H O \
--stepinterval 10 \
--split 200
From XYZ trajectory (bond detection by distance)
reacnetgenerator \
-i trajectory.xyz \
--type xyz \
-a C H O \
--stepinterval 10
Python API
from reacnetgenerator import ReacNetGenerator
rng = ReacNetGenerator(
inputfilename="traj.lammpstrj",
inputfiletype="lammpsbondfile",
bondfilename="bonds.reax",
atomname=["C", "H", "O"],
stepinterval=10,
split=200,
)
rng.runanddraw()
Output Files
| File | Content |
|---|
*.svg / *.html | Reaction network visualization |
species.csv | All detected species with SMILES and counts |
reactionmatrix.csv | Reaction frequency matrix |
*.png | Species concentration over time plots |
Parameter Guidance
| Parameter | Typical value | Notes |
|---|
-i | trajectory file | LAMMPS dump or XYZ |
--type | lammpsbondfile / xyz | Input type |
-b | bonds.reax | Bond order file (ReaxFF only) |
-a | C H O | Element names in order of LAMMPS type |
--stepinterval | 10-100 | Analyze every Nth frame (speeds up) |
--split | 100-500 | Split trajectory into N chunks for statistics |
--cutoff | 0.3 | Bond order cutoff (default 0.3 for ReaxFF) |
--nproc | 4 | Parallel workers |
Interpreting Results
Reaction Network Graph
- Nodes = chemical species (labeled with molecular formula or SMILES)
- Edges = reactions (thickness proportional to frequency)
- Hub species = key intermediates (many connections)
- Isolated nodes = stable products or rare species
Species Time Evolution
- Monotonically decreasing = reactant being consumed
- Monotonically increasing = product being formed
- Rise then fall = intermediate species
- Oscillating = reversible reaction or equilibrium
Integration with CatGo Workflow
Typical reactive MD analysis pipeline:
1. Build mixture box → data/packmol/SKILL.md
2. Run ReaxFF MD → lammps/reaxff/SKILL.md
3. Extract reaction network → analysis/reacnetgen/SKILL.md (this skill)
Common Pitfalls
- Wrong atom order —
-a C H O must match LAMMPS atom type indices (1=C, 2=H, 3=O). Check the data file.
- Bond file not generated — ensure
fix reaxff/bonds was included in the LAMMPS input. Without it, no bond information exists.
- Too few frames — need at least 1000+ frames for statistically meaningful reaction counts.
- stepinterval too large — skipping too many frames misses short-lived intermediates. Start with 10.
- Cutoff too high/low — bond order cutoff of 0.3 works for most ReaxFF simulations. Adjust if species look wrong.
- Memory for large trajectories — very long MD trajectories can exhaust memory. Use
--stepinterval to reduce.
- No reactions observed — temperature may be too low, or simulation too short. Check the ReaxFF MD conditions.