πŸ”” News

December 17, 2024 Β· View on GitHub

βš—οΈ MolGen

Domain-Agnostic Molecular Generation with Chemical Feedback

πŸ“ƒ Paper β€’ πŸ€— Model β€’ πŸ”¬ Space

Pytorch license

πŸ”” News

πŸ“• Requirements

To run the codes, You can configure dependencies by restoring our environment:

conda env create -f environment.yaml

and then:

conda activate my_env

πŸ“š Resource Download

You can download the pre-trained and fine-tuned models via Huggingface: MolGen-large and MolGen-large-opt.

You can also download the model using the following link: https://drive.google.com/drive/folders/1Eelk_RX1I26qLa9c4SZq6Tv-AAbDXgrW?usp=sharing

Moreover, the dataset used for downstream tasks can be found here.

The expected structure of files is:

moldata
β”œβ”€β”€ checkpoint 
β”‚Β Β  β”œβ”€β”€ molgen.pkl              # pre-trained model
β”‚   β”œβ”€β”€ syn_qed_model.pkl       # fine-tuned model for QED optimization on synthetic data
β”‚   β”œβ”€β”€ syn_plogp_model.pkl     # fine-tuned model for p-logP optimization on synthetic data
β”‚   β”œβ”€β”€ np_qed_model.pkl        # fine-tuned model for QED optimization on natural product data
β”‚   β”œβ”€β”€ np_plogp_model.pkl      # fine-tuned model for p-logP optimization on natural product data
β”œβ”€β”€ finetune
β”‚Β Β  β”œβ”€β”€ np_test.csv             # nature product test data
β”‚Β Β  β”œβ”€β”€ np_train.csv            # nature product train data
β”‚Β Β  β”œβ”€β”€ plogp_test.csv          # synthetic test data for plogp optimization
β”‚Β Β  β”œβ”€β”€ qed_test.csv            # synthetic test data for plogp optimization
β”‚Β Β  └── zinc250k.csv            # synthetic train data
β”œβ”€β”€ generate                    # generate molecules
β”œβ”€β”€ output                      # molecule candidates
└── vocab_list
    └── zinc.npy                # SELFIES alphabet

πŸš€ How to run

  • Fine-tune

    • First, preprocess the finetuning dataset by generating candidate molecules using our pre-trained model. The preprocessed data will be stored in the folder output.
        cd MolGen
        bash preprocess.sh
    
    • Then utilize the self-feedback paradigm. The fine-tuned model will be stored in the folder checkpoint.
        bash finetune.sh
    
  • Generate

    To generate molecules, run this script. Please specify the checkpoint_path to determine whether to use the pre-trained model or the fine-tuned model.

    cd MolGen
    bash generate.sh
    

πŸ₯½ Experiments

We conduct experiments on well-known benchmarks to confirm MolGen's optimization capabilities, encompassing penalized logP, QED, and molecular docking properties. For detailed experimental settings and analysis, please refer to our paper.

image

Targeted molecule discovery

image image image

Constrained molecular optimization

image

Citation

If you use or extend our work, please cite the paper as follows:

@inproceedings{fang2023domain,
  author       = {Yin Fang and
                  Ningyu Zhang and
                  Zhuo Chen and
                  Xiaohui Fan and
                  Huajun Chen},
  title        = {Domain-Agnostic Molecular Generation with Chemical feedback},
  booktitle    = {{ICLR}},
  publisher    = {OpenReview.net},
  year         = {2024},
  url          = {https://openreview.net/pdf?id=9rPyHyjfwP}
}

Star History Chart