schrodinger.application.bioluminate.patch_utils.msurfext module

schrodinger.application.bioluminate.patch_utils.msurfext.erf_then_divide(x, constant)

smoothing function based on error function.

schrodinger.application.bioluminate.patch_utils.msurfext.ele_smoothing(distances)

charge smoothing routine. By default, we allow the charge to be visible over 10 Angstroms. Other distances may require some adjustments of the constants being used.

schrodinger.application.bioluminate.patch_utils.msurfext.lipo_smoothing(distances, rcut=5.0)

calculates the lipophilicity field along an exponential function on the basis of a distance cutoff

schrodinger.application.bioluminate.patch_utils.msurfext.smooth_lipo_and_electrostatic_grid_values(vertex_positions, atom_positions, lipo_values, electrostatic_values, lipo_cutoff=5.0, electrostatic_cutoff=10.0, chunk_size=2048)

Smooth lipophilicity and electrostatic atom values over surface vertices.

Both fields use the same atom and vertex coordinates. Query the largest cutoff once, calculate each vertex-atom distance once, and derive the smaller lipophilicity neighborhood from those distances. Processing the ragged neighbor lists in chunks avoids a Python loop and temporary arrays for every individual vertex.

Returns:

Lipophilicity and electrostatic values for each vertex.

Return type:

tuple(np.ndarray, np.ndarray)

schrodinger.application.bioluminate.patch_utils.msurfext.smooth_grid_values(vertex_positions, atom_positions, atom_values, smooth_func='ele', rcutoff=10.0, verbose=False)

core function to smooth the surface grid values according to partial charge (‘ele’) or hydrophobicity (‘lipo’).

Parameters:
  • vertex_positions (np.array) – vertex positions (x,y,z) for each input value

  • atom_positions (tuple) – atom positions, same format

  • atom_values (tuple) – atom values

  • smooth_func – smoothing function (valid entries are ‘lipo’, ‘ele’)

  • rcutoff – distance cutoff for smooth_func