Interaction Filtering

Revision as of 21:57, 23 February 2020 by Shuogu (Talk | contribs)

Jump to: navigation, search

This is the 1st version (20200210) of Interaction Filtering. Please copy the code to your current directory.

FIRST AND FOREMOST, if you find any version conflicts between python3 and python2, you need to comment out inside ~/.cshrc: # source /nfs/soft/dock/versions/dock37/DOCK-3.7-trunk/env.csh

$ cp -r /mnt/nfs/home/sgu/code/interfilter .

To run the code, you need to install OpenEye (version 2019.Oct.2) by following the instruction:

On our cluster, you may source my environment.

$ source /nfs/home/sgu/anaconda3/etc/profile.d/conda.csh
$ conda activate oepython
$ source /nfs/soft/openeye/license.csh

Running the code:

$ python -protein rec.crg.pdb -ligand poses.mol2

If you want to know the interaction (hydrogen bond or salt bridge) for a specific residue (e.g. ASP115A, A means chain A):

In rec.crg.pdb, some residue like HIS is converted to HID or HIE. Please use the converted name instead of HIS.

$ python -protein rec.crg.pdb -ligand poses.mol2 -residue ASP115A

If you want to plot the paired/unpaired interaction (figure generation can be slow, but tens of thousands should be fine):

$ python -protein rec.crg.pdb -ligand poses.mol2 -residue ASP115A -plot
An example of paired interaction plot
An example of unpaired interaction plot

The output is a txt file, containing 15 columns: 1ligand 2clash 3hbond_clash+sbridge_clash 4unpairedl_donor+unpairedl_sbridge 5unpairedl_acceptor 6unpairedp_donor+unpairedp_acceptor 7unpairedp_sbridge 8contact 9hbond+hbond_nonideal 10hbond_ligand 11sbridge 12stacking 13cationpi 14halogen 15residue

To filter out compounds, you may be interested in:

Column3: #hydrogen bond clash + #salt bridge clash

Column4: #unpaired ligand donor + #unpaired ligand salt bridge

Column9: #hydrogen bond + #non-ideal hydrogen bond

Column11: #salt bridge

Column15: interaction (hydrogen bond or salt bridge) for you specified residue (0 means no, 1 means yes)

$ awk '$3==0 && $4==0 && $9+$11>0' poses_noResidue_interaction_analysis.txt > filtered.txt
$ awk '$3==0 && $4==0 && $9+$11>0 && $15>0' poses_ASP115A_interaction_analysis.txt > filtered.txt