schrodinger.application.bioluminate.surfcomp module

See PYTHON-2433 WARNING: Solvents are not accounted for in any way.

schrodinger.application.bioluminate.surfcomp.flatten_list(iterable)

Given an iterable of lists, return a flattened list of all values. This algorithm scales in linear time.

schrodinger.application.bioluminate.surfcomp.create_surface(st, calc_normals=True, grid_spacing=0.5)

Creates a surface for the given structure. Caller must call mmsurf_delete() after it’s done using the surface.

Returns:

MMsurf handle

Return type:

int

schrodinger.application.bioluminate.surfcomp.find_buddies_on_other_surf(buried_a_coords, buried_b_coords)

For each point in the first list, find the closest point from the second list. Returns a dict where keys are indices to the first list, and values are tuples of (index to second list, sq. distance).

schrodinger.application.bioluminate.surfcomp.calc_complementarity(st, atoms1, atoms2, grid_spacing)

Given 2 atom lists, calculate surface complementarity for each atom in each input set that is within 1.5A of the non-buried surface. The results are returned as 2 dicts. The keys in the dict are atom indices in the corresponding set, values are the Sc values for each surface point for that atom, ranging from ~0 to 1.

Atoms are considered interacting if:

  • they are buried in the full ct surface

  • they are on the surface of the interacting surfaces

  • and they are within 3.0 A of the other interacting surface.

Non-interacting atoms are not included in the returned dictionary.

schrodinger.application.bioluminate.surfcomp.calc_complementarity_by_atom(st, atoms1, atoms2=None, grid_spacing=0.5)

Return the values for surface complementarity between the specified surfaces, grouped by atom from <atoms1>.

Parameters:
  • st (structure._Structure object) – Structure to which <atoms1> and <atoms2> are indices in.

  • atoms1 (Iterable of atom indices) – Atom numbers from the surface for which to calculate the complementarity.

  • atoms2 (Iterable of atom indices) – Atom numbers for the other surface. if not specified, use all other atoms from the CT.

  • grid_spacing (float) – Density (resolution) of the surfaces. Default is 0.5. Maestro defaults for this settings are: high=0.3, medium=0.6, low=0.8.

Return type:

dict of lists.

Returns:

Return a dict where keys are atom indices (only atoms that are on the interaction surface) and values are lists of surface complementarity (Sc) values for that atom. Each value corresponds to an interacting point on the surface of that atom. This list will be empty for fully buried atoms. Calculate the median of these values to determine the Sc for that atom. Calculate the median of all values for all residue’s atoms to determine the Sc for that residue; etc.

schrodinger.application.bioluminate.surfcomp.calc_total_complementarity(st, atoms1, atoms2=None, grid_spacing=0.5)

Return the total complementarity between the specified surfaces.

Parameters:
  • st (structure._Structure object) – Structure to which <atoms1> and <atoms2> are indices in.

  • atoms1 (Iterable of atom indices) – Atom numbers from the surface for which to calculate the complementrairity.

  • atoms2 (Iterable of atom indices) – Atom numbers for the other surface. if not specified, use all other atoms from the CT.

  • grid_spacing (float) – Density (resolution) of the surfaces. Default is 0.5. Maestro defaults for this settings are: high=0.3, medium=0.6, low=0.8.

Return type:

float

Returns:

the surface complementarity (Sc) between the 2 surfaces.

schrodinger.application.bioluminate.surfcomp.compute_total_complementarity(sc_by_atom_1: dict, sc_by_atom_2: dict) float

Compute the complementarity score for the 2 sets of atoms. :param sc_by_atom_1: a dict of surface point complementarity scores keyed by interaction surface atom id :param sc_by_atom_2: a dict of surface point complementarity scores keyed by interaction surface atom id :return: the surface complementarity score for the interface described by the surf point comp score dicts