Introduction

FIRECODE logo

FIRECODE is a computational chemistry workflow driver and hub for the generation, optimization and refinement of conformational ensembles, including transition state and thermochemical utilities.

# TS workflow example (input.txt)

calc=uma solvent=toluene T_C=100
saddle> opt> goat> mol.xyz
  B 0 1 2.25

The program is written in Python and is designed to be run on both personal computers and HPC clusters via SLURM.

All workflows are implemented in a calculator-agnostic way, so that maximum modularity is mantained. Most calculators are interfaced via ASE. Most external utilities are interfaced via operators, interacting via dedicated functions reading a molecular .xyz file and returning the filename of the processed ensemble.

For example:

def center_operator(filename: str, embedder: Embedder) -> str:
   """Example operator centering the molecule."""

   # read input file
   mol = read_xyz(filename) # Ensemble(filename)

   # the Embedder class stores global information
   embedder.options.solvent # "ch2cl2"
   embedder.options.T # 298.15

   # center coordinates
   mol.coords[0] -= np.mean(mol.coords[0], axis=0)

   # save any data you might need later
   embedder.options.centered = True
   embedder.options.last_operator = "center"

   # write outfile and return its name
   outfile = f"{mol.basename}_centered.xyz"
   mol.to_xyz(outfile)

   return outfile