IMP logo
IMP Reference Guide  develop.63b38c487d,2024/12/21
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 import IMP.atom
6 import sys
7 
8 IMP.setup_from_argv(sys.argv, "score protein with ligand")
9 
10 m = IMP.Model()
11 IMP.set_check_level(IMP.NONE)
12 protein = IMP.atom.read_pdb(IMP.atom.get_example_path('1d3d-protein.pdb'), m)
13 protein_atoms = IMP.atom.get_by_type(protein, IMP.atom.ATOM_TYPE)
14 ligands = IMP.atom.read_mol2(IMP.atom.get_example_path('1d3d-ligands.mol2'), m)
15 # create the score which applies to a pair of atoms
17 ps.set_was_used(True)
18 # label each atom of the protein with the type needed for scoring
20 for cl in ligands.get_children():
21  # compute the atom type for each ligand atom
23  score = 0
24  ligand_atoms = IMP.atom.get_by_type(cl, IMP.atom.ATOM_TYPE)
25  for pa in protein_atoms:
26  for la in ligand_atoms:
27  # check if the atoms are close enough together
29  # score one pair of atoms
30  score += ps.evaluate_index(m,
31  (pa.get_particle_index(),
32  la.get_particle_index()), None)
33  print("score for ", cl.get_name(), "is", score)