Sample Additional Ring Puckers

From DISI
Jump to navigation Jump to search

Sometimes you need to sample more ligand conformations when docking. If you have a saturated ring, you may want to explore alternative ring puckering. Here is how you can generate more ring conformations.

new script in developmental version (DOCKBASE = ~tbalius/zzz.github/DOCK)

Here are two scripts that will perform additional ring puckering on a smiles file.

This one is for standard docking (with spheres)

$DOCKBASE/ligand/generate/build_ligand_tautprot_smiles.sh  smi_file.smi

This one is for covalent docking

$DOCKBASE/ligand/generate/build_ligand_tautprot_smiles_covalent.sh smi_file.smi

The smiles file contain one smiles. It should should be have all stereo chemistry defined and be in the right protonation and tautomerazation states.

here is a wrapper script to run this on a smiles file that contains multiple smiles.

#set mountdir = `pwd`
#set 
source ~tbalius/.cshrc_main

mkdir run_build_ligand_tautprot_smiles_covalent
cd run_build_ligand_tautprot_smiles_covalent
cp ../ligands.product.all.smi .

split -l 1 ligands.product.all.smi ligands.product.

ls ligands.product.??

foreach smi (`ls ligands.product.??`)
    echo $smi
    mkdir ${smi}_dir
    cd ${smi}_dir
    cp ../${smi} ${smi}.smi
    $DOCKBASE/ligand/generate/build_ligand_tautprot_smiles_covalent.sh ${smi}.smi
    cd ../
end

Do it by hand

1. Create a directory and cd into it.

 mkdir ZINC000001664886 
 cd ZINC000001664886 

(note that ZINC000001664886 and ZINC000100008245 are the same molecule and both favor both substituents in axial. ZINC000100004326 has one substituents in equatorial).

2. Get the protonated smi from zinc:

 http://zinc15.docking.org/protomers/342955170/ 

Copy to clipboard and past it into a file add the zinc name to file, so that it looks like this:

   CC1CCC([NH3+])CC1  ZINC000001664886

Or copy the protonated smiles into the current directory if you already generated protomers:

 cp ../../normal_db2_gen/isomers/manual_gen/ZINC000001664886/ZINC000001664886.ism .
 awk '{print $1" "$2}' ZINC000001664886.ism > ZINC000001664886.smi

3. For each isomer, give it a suffix, like _1, _2.

 vim ZINC000001664886.smi

4. run corina with enhanced sampling of ring puckers

 /nfs/soft/corina/current/corina -i t=smiles -o t=mol2 -d rc,flapn,de=10,mc=10,wh ZINC000001664886.smi ZINC000001664886.mol2

5. Split the whole mol2 file into individual conformers

 sed -i 's/1  ZINC/ZINC/g' ZINC000001664886.mol2  

This command will remove the number 1 which appears before the ZINC name to make it compatible with the python scripted you can also manually edit the file to remove this number or even manually separate the files.

 python ~tbalius/zzz.scripts/separate_mol2_more10000_mod.py ZINC000001664886.mol2 test

6. Run build_ligand_mol2 for each mol2 conformer

 foreach name (`ls ZINC000001664886*_test_*.mol2`)
    mkdir $name:t:r
    cd $name:t:r
    cp ../${name} .
    $DOCKBASE/ligand/generate/build_ligand_mol2.sh $name
    cd ../
 end