Sample Additional Ring Puckers
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 have all stereo chemistry defined and be in the right protonation and tautomerazation state.
Here is a wrapper script (named wrapper_build_ligand_tautprot_smiles_cov.csh) 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