ReacNetGenerator — Reaction Network Analysis

SkillDev tools

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.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the ReacNetGenerator — Reaction Network Analysis skill

What this skill tells your AI

The instructions your AI receives, as published by hello-qm/catgo-lrg in .claude/skills/reacnetgen/SKILL.md and read by ahel’s review.

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

  1. ReacNetGenerator installed (reacnetgenerator --version or python -c "import reacnetgenerator")
  2. MD trajectory file (LAMMPS dump with bond info, or XYZ with bond detection)
  3. 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()
# Outputs: reaction network SVG/HTML, species list, reaction matrix

Output Files

FileContent
*.svg / *.htmlReaction network visualization
species.csvAll detected species with SMILES and counts
reactionmatrix.csvReaction frequency matrix
*.pngSpecies concentration over time plots

Parameter Guidance

ParameterTypical valueNotes
-itrajectory fileLAMMPS dump or XYZ
--typelammpsbondfile / xyzInput type
-bbonds.reaxBond order file (ReaxFF only)
-aC H OElement names in order of LAMMPS type
--stepinterval10-100Analyze every Nth frame (speeds up)
--split100-500Split trajectory into N chunks for statistics
--cutoff0.3Bond order cutoff (default 0.3 for ReaxFF)
--nproc4Parallel 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

  1. Wrong atom order-a C H O must match LAMMPS atom type indices (1=C, 2=H, 3=O). Check the data file.
  2. Bond file not generated — ensure fix reaxff/bonds was included in the LAMMPS input. Without it, no bond information exists.
  3. Too few frames — need at least 1000+ frames for statistically meaningful reaction counts.
  4. stepinterval too large — skipping too many frames misses short-lived intermediates. Start with 10.
  5. Cutoff too high/low — bond order cutoff of 0.3 works for most ReaxFF simulations. Adjust if species look wrong.
  6. Memory for large trajectories — very long MD trajectories can exhaust memory. Use --stepinterval to reduce.
  7. No reactions observed — temperature may be too low, or simulation too short. Check the ReaxFF MD conditions.

Signals

GitHub stars
196
Forks
23
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
reacnetgenerator
Source
github.com/hello-qm/catgo-lrg