Skip to content

Python script for Pymol that aligns a complex forming a halogen bond and a precomputed charge cloud to a ligand

Notifications You must be signed in to change notification settings

lucast122/ligand_aligner

Repository files navigation

This is the result of a project I was working on for a course "Frontiers in applied drug discovery" at the University of Tübingen.

Ligand Aligner Script

Python script for Pymol that aligns a complex forming a halogen bond and a precomputed charge cloud to a ligand

Introduction

In drug design the formation of halogen bonds between a halogen and a polar atom can contribute to the docking of a ligand to a binding pocket and is therefore actively researched. To investigate the effects of polar atoms in the binding site on the strength of the halogen bond various calculations were made. The result of these calculations were several Pymol sessions containing a halogen complex and a molecule containing a polar atom that it forms a halogen bond with. Negative and positive charges were placed in a grid around the whole complex, measuring the effects of each charge on the strength of the halogen bond. The results of these calculations are presented in pseudo atoms that were colored according to their effect on the binding strength (red: positive effect, blue: negative effect, yellow: neutral). My goal was to write a script that takes this complex and the grid around it and aligns it with a user-defined ligand of a pdb file of choice. After the translation and rotation of the point cloud charged residues within the point cloud are marked for the user. The script is written in python utilizing Pymol.

The Script

Feel free to change the .pse and .pdb files used for computations as you please. Script has only been tested though with provided .pdb files. Please report any bugs you may find.

The script is called align.py and can be run in Pymol using 'run align.py'. The script will then iterate over all PDB files in the pdbs folder and try to align the predefined halogen complex with the point cloud given as PSE file to the ligand of the PDB file. It finds all halogen bonds present in the PDB file between polar atoms of the ligand's backbone and the halogen complex for each halogen in the ligand. A halogen bond is considered valid if it has a length below 5 angstrom and an angle higher than 140 degrees. Of these halogen bonds the shortest one is chosen for the further calculations. The script continues creating pseudo atoms representing the ligand and its backbone. These pseudo atoms are translated to the origin of the coordinate system, rotating them to exactly fit the halogen complex and backbone of the used PSE file. The translation vector and rotation angles are saved and applied in reverse order on the PSE file as well as the point clouds to align them to the ligand in the binding pocket. After the alignment for each point cloud a pseudo atoms in the center of mass is created using the "center-of-mass.py" script and the distance from each charged atom in the residues around the point clouds are measured. If the distance is below a certain threshold the charged residue is considered to be inside the cloud and is thus reported back. The script also rates the residues due to their influence on the halogen bond displaying if it strengthens, weakens it or has no effect on it. A text file for each session is create in the session_info folder containing important information about each run as the used halogen bond, PDB file and the residues in the point cloud. Each session is then also saved in the pses folder.\ A helper script was also written that takes a PSE file as input with a charge cloud made up of thousands of individual atom selections. The script then takes these selections and merges them into two new selections, deleting the old ones. This reduces the number of selections to load from several thousands to two, one for the halogen complex and one for the backbone of the ligand. Using the merged PSE file as input for the main script results in a significant speed up.\ Possible user modifications include the manual selection of a PDB file at the beginning of the script. It is also possible for the user to use a specific halogen or halogen bond for the alignment. See the comments in the code for specific instructions how to accomplish this. One could also change the distance and angle required for a halogen bond to be considered valid and the distance cutoff of the charged residues that should be considered near each point cloud.

For more information how to adjust the script please read the documentation.pdf provided in the master branch.

About

Python script for Pymol that aligns a complex forming a halogen bond and a precomputed charge cloud to a ligand

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages