This repository is part of the "PSnpBind, a database to highlight pocket SNPs effects on protein-ligand binding affinity" project and it is the main repository to reproduce the project methodology and results.
NOTE: all the following instructions are for Linux operating system and tested on Ubuntu 18. These tools are not tested on other systems like Windows or MacOS.
Clone this repository to the location of your preference, then follow the next sections!
Follow the instructions inside each one of the following repositories:
Tool | More Info |
---|---|
PSBAP Core | |
PSBAP FoldX | |
PSBAP Gromacs | |
PSBAP OpenBabel | |
PSBAP Vina |
-
Download ChEMBL database version 25 from the URL and unpack it to "data/chembl/chembl_25.sdf" :
ftp://ftp.ebi.ac.uk/pub/databases/chembl/ChEMBLdb/releases/chembl_25/chembl_25.sdf.gz
-
Download UniProt natural variants database from the URL and unpack it to "data/uniprot_variation/homo_sapiens_variation.txt":
ftp://ftp.uniprot.org/pub/databases/uniprot/current_release/knowledgebase/variants/homo_sapiens_variation.txt.gz
-
Register an account on http://www.pdbbind-cn.org and login to download CASF2016 from the URL and unpack it to "data/pdbbind/CASF2016/coreset":
http://www.pdbbind-cn.org/download/CASF-2016.tar.gz
The folders of the PDB entries should be immediately under the mentioned path.
-
Define the following environment variables in the terminal:
The path to the clone repository "pocket-snps-effect-binding-affinity" will be called PSBAP_ROOT for the remaining of this Readme file.
export CONFIG_PATH=PSBAP_ROOT/config export DATA_PATH=PSBAP_ROOT/data export TSV_PATH=PSBAP_ROOT/tsv export FEATURES_PATH=PSBAP_ROOT/features export PROCESSING_PATH=PSBAP_ROOT/processing
-
Filter CASF to include structure with quality <= 2.5 Angstrom, generate and download their (SIFTS, FASTA and DSSP), and map UniProt variant to the selected PDBbind protiens.
docker run -v $CONFIG_PATH:/config \ -v $PROCESSING_PATH:/processing \ -v $DATA_PATH:/data \ -v $TSV_PATH:/tsv \ -v $FEATURES_PATH:/features \ --name psbap-core --rm \ psbap-core -op init
-
Map the selected UniProt variants to PDBbind proteins pockets, and prepare the folder structure for FoldX:
docker run -v $CONFIG_PATH:/config \ -v $PROCESSING_PATH:/processing \ -v $DATA_PATH:/data \ -v $TSV_PATH:/tsv \ -v $FEATURES_PATH:/features \ --name psbap-core --rm \ psbap-core -op pocket-snps-mapping-and-foldx-prep
-
Run FoldX to introduce the mapped pocket's SNPs onto the proteins PDBs (choose NUM_OF_THREADS depending on the amount of CPUs you want to allocate for FoldX):
docker run -it -v $PROCESSING_PATH/foldx:/pdb \ --name psbap-foldx --rm \ psbap-foldx RepairPDB NUM_OF_THREADS # After finish, run the next command: docker run -it -v $PROCESSING_PATH/foldx:/pdb \ --name psbap-foldx --rm \ psbap-foldx BuildModel NUM_OF_THREADS
-
Generate FoldX report:
docker run -v $CONFIG_PATH:/config \ -v $PROCESSING_PATH:/processing \ -v $DATA_PATH:/data \ -v $TSV_PATH:/tsv \ -v $FEATURES_PATH:/features \ --name psbap-core --rm \ psbap-core -op foldx-report
-
Perform energy minimization on the proteins structures:
docker run -it -v $PROCESSING_PATH/foldx:/pdb \ --name psbap-gromacs --rm \ psbap-gromacs prepare NUM_OF_THREADS true # After finish, run the next command: docker run -it -v $PROCESSING_PATH/foldx:/pdb \ --name psbap-gromacs --rm \ psbap-gromacs em NUM_OF_THREADS true # After finish, run the next command: docker run -it -v $PROCESSING_PATH/foldx:/pdb \ --name psbap-gromacs --rm \ psbap-gromacs export NUM_OF_THREADS true
-
Prepare ligands folders for the corresponding selected PDBbind entries:
docker run -v $CONFIG_PATH:/config \ -v $PROCESSING_PATH:/processing \ -v $DATA_PATH:/data \ -v $TSV_PATH:/tsv \ -v $FEATURES_PATH:/features \ --name psbap-core --rm \ psbap-core -op prepare-ligands-folders
-
Select similar ligands, split, perform energy minimization (MMFF94) using OpenBabel:
docker run -v $PROCESSING_PATH/ligands:/pdb \ -v $DATA_PATH/chembl:/index \ --name psbap-openbabel --rm \ psbap-openbabel search-and-split # After finish, run the next command: docker run -v $PROCESSING_PATH/ligands:/pdb \ -v $DATA_PATH/chembl:/index \ --name psbap-openbabel --rm \ psbap-openbabel minimize
-
Prepare ligands information (IDs, Tanimoto index):
docker run -v $CONFIG_PATH:/config \ -v $PROCESSING_PATH:/processing \ -v $DATA_PATH:/data \ -v $TSV_PATH:/tsv \ -v $FEATURES_PATH:/features \ --name psbap-core --rm \ psbap-core -op ligands-tanimoto-dataset
-
Prepare folders and configurations for AutoDock Vina:
docker run -v $CONFIG_PATH:/config \ -v $PROCESSING_PATH:/processing \ -v $DATA_PATH:/data \ -v $TSV_PATH:/tsv \ -v $FEATURES_PATH:/features \ --name psbap-core --rm \ psbap-core -op prepare-vina-folders-config
-
Perform docking using AutoDock Vina by running the following script inside a bash script file :
#!/bin/bash cd $PROCESSING_PATH/vina-docking for PDB in *; do docker run -it -v $PROCESSING_PATH/vina-docking:/pdb \ --name psbap-vina --rm \ psbap-vina NUM_OF_THREADS PDB done
-
Extract Vina docking results:
docker run -v $CONFIG_PATH:/config \ -v $PROCESSING_PATH:/processing \ -v $DATA_PATH:/data \ -v $TSV_PATH:/tsv \ -v $FEATURES_PATH:/features \ --name psbap-core --rm \ psbap-core -op generate-dockings-results