IMP  2.4.0
The Integrative Modeling Platform
atom/score_protein_with_ligand.py

Show how to score a number of ligand conformations loaded from a file against a protein loaded from a pdb.

1 ## \example atom/score_protein_with_ligand.py
2 # Show how to score a number of ligand conformations loaded from a file
3 # against a protein loaded from a pdb.
4 
5 from __future__ import print_function
6 import IMP.atom
7 
9 IMP.base.set_check_level(IMP.base.NONE)
10 protein = IMP.atom.read_pdb(IMP.atom.get_example_path('1d3d-protein.pdb'), m)
11 protein_atoms = IMP.atom.get_by_type(protein, IMP.atom.ATOM_TYPE)
12 ligands = IMP.atom.read_mol2(IMP.atom.get_example_path('1d3d-ligands.mol2'), m)
13 # create the score which applies to a pair of atoms
15 ps.set_was_used(True)
16 # label each atom of the protein with the type needed for scoring
18 for l in ligands.get_children():
19  # compute the atom type for each ligand atom
21  score = 0
22  ligand_atoms = IMP.atom.get_by_type(l, IMP.atom.ATOM_TYPE)
23  for pa in protein_atoms:
24  for la in ligand_atoms:
25  # check if the atoms are close enough together
27  # score one pair of atoms
28  score += ps.evaluate((pa, la), None)
29  print("score for ", l.get_name(), "is", score)