schrodinger.application.glide_ws.entropy_score module

Entropy scoring module for WScore.

This module provides functions and classes for computing the entropy-corrected scoring function given an ensemble of poses.

class schrodinger.application.glide_ws.entropy_score.ScoreParams(S1, S2, S3_2, S3_3, S3_4)

Bases: tuple

S1

Alias for field number 0

S2

Alias for field number 1

S3_2

Alias for field number 2

S3_3

Alias for field number 3

S3_4

Alias for field number 4

schrodinger.application.glide_ws.entropy_score.get_s3(ncrb, params)

Compute a correction to the target WScore for this molecule based on its number of core rotable bonds.

schrodinger.application.glide_ws.entropy_score.get_mmgbsa_corrected_wscore(docking_score, gbsa_score, ncrb, params, target_energy, gbshift, mw)

Compute the MMGBSA Corrected WScore according to the following strategy: Compute a “Target” value based on the “greasy” score, #ncrb, and adjust by gbshift

mmgbsa_target = -MW*S1             + S2*(elipo + epolar_grid + ephobic_enc + evdw + evoid)             + S3 - gbshift

Where S3 is a correction based on the number of rotable bonds. Finally determine the correction to the docking score by comparing to mmgbsa_target.

schrodinger.application.glide_ws.entropy_score.get_best_pose(poses, entropy=True, epik=True, gbsa=False, **d)

Return the best pose from a set of ensemble poses (one per receptor).

It adds four new properties to the pose:

WSCORE: entropy-corrected score RAW_WSCORE: uncorrected score straight from Glide DSCORE: docking score, which is WScore + Epik

If ‘entropy’ is False, then no entropy corrections are computed, and WSCORE is the same as RAW_WSCORE.

If ‘epik’ is False, then the state penalties are not used, and DSCORE will be equal to WSCORE.

schrodinger.application.glide_ws.entropy_score.rmsd_over(ct1, ct2, cutoff=2.5)

Computes both the standard heavy-atom RMSD, as well as the “over” property which is defined as the fraction of heavy atoms that would add up to an RMSD less than ‘cutoff’, when the accumulation is done from the atom with the smallest deviation. Returns a tuple (rmsd, over)

schrodinger.application.glide_ws.entropy_score.calc_rmsd(ct1, ct2)
schrodinger.application.glide_ws.entropy_score.poses_are_close(ct1, ct2)
schrodinger.application.glide_ws.entropy_score.has_fused_rings(poses)
schrodinger.application.glide_ws.entropy_score.compile_scoring_data(complexes, offsets, docking_node, mmgbsa_node, subset=None)

Extract all the necessary scoring data from the docking and mmgbsa output files, and return a list of dictionaries for use with the combined scoring function.

Parameters

subset (set(str) or NoneType) – if provided, skip ligands whose titles are not present in this set.

schrodinger.application.glide_ws.entropy_score.write_pose_to_csv_file(csvwriter, title, mw, formal_charge, nonarot, dg, raw_wscores, gbsa_scores, greasy_scores, fused_rings, score, state_pen, mmgbsa_corr, nodename)
class schrodinger.application.glide_ws.entropy_score.EnsembleScore

Bases: object

A class for selecting the best pose from an ensemble of poses. This class is nearly trivial, as its get_best_pose method just returns the best pose by docking score, but its use is that it has the same interface as the more complex EntropyScore class.

get_best_pose(poses)

Return the best pose from a set of ensemble poses (one per receptor), as well as its docking score.

schrodinger.application.glide_ws.entropy_score.get_props(poses, prop, default=0.0)

Return a list with the value of prop for each pose. If a pose is None, or doesn’t have the property, return ‘default’ for that pose.

schrodinger.application.glide_ws.entropy_score.get_props_from_datablock(poses, prop, default=0.0)
schrodinger.application.glide_ws.entropy_score.get_raw_wscores(poses)

Return a list with the value of the raw wscore for each pose. If a pose is None, or doesn’t have the property, return 1e9 for that pose. For poses with wscores defined, cap the score at 1e4.

schrodinger.application.glide_ws.entropy_score.get_greasy_scores(poses)

Return a list with the value of the “greasy” score for each pose. Greasy score is defined as the sum of the “greasy” scoring terms: elipo + epolar_grid + ephobic_enc + evdw + evoid :param poses: list of WScore poses :return: list of ‘greasy’ scores :rtype: list[float]

schrodinger.application.glide_ws.entropy_score.corrected_mass(lig)

Return the “corrected” molar mass of a ligand, in which the mass of bromine and iodine atoms is truncated to be the same as for chlorine.

schrodinger.application.glide_ws.entropy_score.get_close_list(poses)

Returns a flattened triangular binary matrix with 1 when a pair of poses “are close”, and 0 otherwise.

class schrodinger.application.glide_ws.entropy_score.MMGBSAEntropyScore

Bases: object

A class for computing MMGBSA/Entropy WScores given an ensemble of poses.

Note that unlike the EntropyScore class, the get_best_pose method in this class needs two lists of poses, one with the raw WScore poses before the MM/GBSA minimization, and the other is the poses after MM/GBSA. It also requires a parallel list of Complex objects which are used for setting the “best receptor” properties on the final pose.

escore = MMGBSAEntropyScore() best, score = escore.get_best_pose(wscore_poses, gbsa_poses, complexes)

get_best_pose(poses, gbsa_poses, complexes, nodename, gbsa_score_params=None, gbshift=None, use_epik=False, debug=0, csvwriter=None, deltag_prop=None)
static has_low_energy(mass, energy, rotbond)

Mass-dependent low-energy test; return True if the energy is “low enough” for the mass of the ligand.

static headers(complex_names)

Returns the list of column headers for the table that’s optionally generated by the get_best_pose() method.

classmethod write_headers(complex_names, csvwriter)

Write the column headers for the table that’s optionally generated by the get_best_pose() method.

class schrodinger.application.glide_ws.entropy_score.MMGBSAMerge(docking_node, mmgbsa_node)

Bases: object

A class to merge the poses obtained from a docking node and an mmgbsa node.

__init__(docking_node, mmgbsa_node)

Initialize a MMGBSAMerge object that combines the poses obtained by ‘docking_node’ and the mmgbsa scores from ‘mmgbsa_node’ and uses them to compute the combined WScore function.

write_sorted_poses(model, poses, ijob)

Sort the ‘poses’ array (in-place) and write the poses to a file incorporating index ‘ijob’ in the filename. Returns the name of the new file.

merge_model(model, apply_offsets=False, use_entropy=True, csvwriter=None, extract_ml_features=False)

Score all the poses for a given model using the combined WScore/ MMGBSA function.

class schrodinger.application.glide_ws.entropy_score.SerialNumberMixin

Bases: object

Use an objects ‘serial_number’ property as its hash function and for equality comparisons.