Skip to content

An encoder-decoder transformer model that models retrosynthetic analysis along with novel metrics for evaluation.

License

Notifications You must be signed in to change notification settings

devalab/SynFormer

Repository files navigation

SynFormer

An encoder-decoder transformer model that models retrosynthetic analysis along with novel metrics for evaluation. We use the X-transformer library and the dataloader from Chemformer.

llm.py contains the code to train and evaluate the model. All commands, including the ablation studies, are in llm.sh. The dataset can be found at data/uspto50/uspto_50.pickle.

The code to our metric - Retrosynthesis Refinement Index (RRI), can be found at benchmark.py,, and the results of analyzing various algorithms with our metric can be found at benchmark.ipynb.

Create the environment conda create -y -n synformer python=3.10, activate the environment conda activate synformer and install the dependencies:

  • conda install -y pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.7 -c pytorch -c nvidia
  • pip install pytorch-lightning==2.0.3 rdkit-pypi pandas einops prettytable transformer wandb numpy==1.24.3
  • pip install git+https://github.com/ildoonet/pytorch-gradual-warmup-lr.git
  • python -m pip install git+https://github.com/MolecularAI/pysmilesutils.git

Our model can be trained using the following command:

python llm.py \
    --task SynFormer \
    --project uspto50 \
    --run SynFormer \
    --rotary_emb \
    --n_layer 6 \
    --n_head 8 \
    --n_embd 512 \
    --block_size 512 \
    --batch_size 48 \
    --grad_accum 2 \
    --vocab_size 576 \
    --learning_rate 0.001 \
    --lr_scheduler onecycle \
    --dividing_factor 10000 \
    --dropout 0.1 \
    --weight_decay 0.1 \
    --num_epochs 1000 \
    --generate_every 10 \
    --ablation_res \
    --save_dir /scratch/arihanth.srikar \
    --train \
    --log

Our model can be evaluated using the following command:

python llm.py \
    --task SynFormer \
    --project uspto50 \
    --run SynFormer \
    --rotary_emb \
    --n_layer 6 \
    --n_head 8 \
    --n_embd 512 \
    --block_size 512 \
    --batch_size 48 \
    --grad_accum 2 \
    --vocab_size 576 \
    --learning_rate 0.001 \
    --lr_scheduler onecycle \
    --dividing_factor 10000 \
    --dropout 0.1 \
    --weight_decay 0.1 \
    --num_epochs 1000 \
    --generate_every 10 \
    --ablation_res \
    --save_dir /scratch/arihanth.srikar

About

An encoder-decoder transformer model that models retrosynthetic analysis along with novel metrics for evaluation.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published