Giter Club home page Giter Club logo

pignet2's Introduction

PIGNet2: A versatile deep learning-based protein-ligand interaction prediction model for accurate binding affinity scoring and virtual screening

This repository is the official implementation of PIGNet2: A versatile deep learning-based protein-ligand interaction prediction model for accurate binding affinity scoring and virtual screening.

Requirements

Environment Setup

You can use conda or venv for environment setting. For the case of using conda, create the environment named pignet2 as following.

conda create -n pignet2 python=3.9
conda activate pignet2

Install Dependencies

pip install -r requirements.txt

Data

Donwload our source data into dataset directory in this repository. By executing dataset/download.sh, you can download all the following datasets.

training dataset

  • PDBbind v2020 scoring
  • PDBbind v2020 docking
  • PDBbind v2020 cross
  • PDBbind v2020 random

benchmark dataset

  • CASF-2016 socring
  • CASF-2016 docking
  • CASF-2016 screening
  • DUD-E screening
  • derivative benchmark

Then, you can extract the downloaded files by executing dataset/untar.sh.

The source codes for generating structures used in positive data augmentation is placed in generate_PDA directory.

Training

Training scripts can be found in experiments/training_scripts directory. We provide 4 scripts for training.

  • baseline.sh: training without any data augmentation
  • only_nda.sh: training only with negative data augmentation
  • only_pda.sh: training only with positive data augmentation
  • pda_nda.sh: training with both positive and negative data augmentation

If you execute the script, the result files will be generated in your current working directory. By default, we recommend you to execute training scripts at experiemnts directory. All the result files are placed in outputs/${EXPERIMENT_NAME} directory.

Benchmark

Benchmark scripts can be found in experiments/benchmark_scripts directory. We provide 5 scripts for benchmark.

  • casf2016_scoring.sh: benchmark on CASF-2016 scoring benchmark
  • casf2016_docking.sh: benchmark on CASF-2016 docking benchmark
  • casf2016_screening.sh: benchmark on CASF-2016 screening benchmark
  • dude.sh: benchmark on DUD-E benchmark
  • derivative.sh: benchmark on derivative benchmark (2015)

After training, you have to set the ${BENCHMARK_DIR} in each benchmark scripts, which is set as experiments/outputs/${EXPERIMENT_NAME} as default. Since experiments/outputs is set as a root directory of each experiment, it is highly recommended to place the outputs directory inside experiments directory. For using our pre-trained model for benchmark, please refer to the next section.

After that, you will get the benchmark result files in experiments/outputs/${EXPERIMENT_NAME}/benchmark. To benchmark each result files, you can execute src/benchmark/*.py. For example, you can perform DUD-E benchmark by the following command.

src/benchmark/dude_screening_power.py -f experiments/outputs/${EXPERIMENT_NAME}/benchmark/result_dude_${EPOCH}.txt -v

Pre-trained Models

You can find the pre-trained models in src/ckpt. We provide PIGNet2 models trained with both positive and negative data augemntation, which is the best model. You can execute the experiments/benchmark/pretrained_*.sh scripts to get the benchmark results of pre-trained models. The scripts will generate result files in experiments/pretrained.

pignet2's People

Contributors

nozomu-y avatar mseok avatar

pignet2's Issues

Use FPBR dataset

  • Enable the use of validation set
  • change the pdbid list for each split

Could not override 'data.pda.root_data_dir'.

~/PIGNet2/src/exe/train.py:50: UserWarning:
The version_base parameter is not specified.
Please specify a compatability version level, or None.
Will assume defaults for version 1.1
  @hydra.main(config_path="../config", config_name="config_train")
Could not override 'data.pda.root_data_dir'.
To append to your config use +data.pda.root_data_dir=~/PIGNet2/dataset/PDBbind-v2020/pda
Key 'pda' is not in struct
    full_key: data.pda
    object_type=dict

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.