Skip to content

FlowER

Summary

Source: https://github.com/FongMunHong/FlowER
License: MIT
Path: /software/FlowER/
Documentation: https://github.com/FongMunHong/FlowER
Citation: Joung, J.F., Fong, M.H., Casetti, N. et al. Electron flow matching for generative reaction mechanism prediction. [Nature 645, 115–123 (2025)}(https://doi.org/10.1038/s41586-025-09426-9)

FlowER uses flow matching to model chemical reaction as a process of electron redistribution, conceptually aligns with arrow-pushing formalisms. It aims to capture the probabilistic nature of reactions with mass conservation where multiple outcomes are reached through branching mechanistic networks evolving in time.

Using FlowER

flower is installed as a mamba environment under /software/FlowER/. For the setup have a look at /software/FlowER/sbatch.sh:

#!/bin/bash
#SBATCH --time=0-08:00:00
#SBATCH --constraint=A100|H100|H200
#SBATCH --partition=maxgpu
unset LD_PRELOAD
export PATH=/software/FlowER/flower/bin:$PATH
export FLOWER=/software/FlowER
export PYTHONPATH=$FLOWER

export DATA_NAME=flower_new_dataset
export TRAIN_FILE=$FLOWER/data/$DATA_NAME/train.txt
export VAL_FILE=$FLOWER/data/$DATA_NAME/val.txt
export TEST_FILE=$FLOWER/data/$DATA_NAME/beam.txt
export EXP_NAME=best_large_hyperparam

export MODEL_PATH=$FLOWER/checkpoints/$DATA_NAME/$EXP_NAME/
export RESULT_PATH=$PWD/results/$DATA_NAME/$EXP_NAME/

mkdir -p $RESULT_PATH

export DATA_NAME="flower_new_dataset"
export EXP_NAME="best_large_hyperparam"
export EMB_DIM=256
export RBF_HIGH=12
export RBF_GAP=0.1
export SIGMA=0.15

export MODEL_NAME="model.2880000_95.pt" # your trained checkpoint here

export TRAIN_BATCH_SIZE=4096
export VAL_BATCH_SIZE=4096
export TEST_BATCH_SIZE=4096

export NUM_WORKERS=4
export CUDA_VISIBLE_DEVICES=0
export NUM_GPUS_PER_NODE=1

export NUM_NODES=1
export NODE_RANK=0
export MASTER_ADDR=localhost
export MASTER_PORT=1235

export SCALE=4 # smaller sample size during training validation
export SCALE=1 # larger sample size during testing

cp /software/FlowER/beam_predict.py .

python beam_predict.py

model-weights have been extracted into /software/FlowER/. All data have been downloaded from figshare to /software/FlowER/src/.

Installation

the installation used the following procedure:

cd /software
git clone https://github.com/FongMunHong/FlowER.git
cd FlowER/
module load maxwell mamba
. mamba-init
mamba create --prefix=/software/FlowER/flower python=3.10
mamba activate /software/FlowER/flower
pip install -r requirements.txt