schrodinger.application.jaguar.pk50_report module

class schrodinger.application.jaguar.pk50_report.Pk50Factory(ref_st: schrodinger.structure._structure.Structure, tautomers: Dict[int, Dict[int, schrodinger.structure._structure.Structure]], populations: schrodinger.application.jaguar.macro_pka_utils.PhPopulations, pH_min: float = - 50.0, pH_max: float = 50.0, pH_step: int = 0.1)

Bases: object

Compute and store pK50’s for a given reference molecule

ASP_PH_MIN = -50.0
ASP_PH_MAX = 50.0
ASP_PH_STEP = 0.1
__init__(ref_st: schrodinger.structure._structure.Structure, tautomers: Dict[int, Dict[int, schrodinger.structure._structure.Structure]], populations: schrodinger.application.jaguar.macro_pka_utils.PhPopulations, pH_min: float = - 50.0, pH_max: float = 50.0, pH_step: int = 0.1)
Parameters
  • ref_st – reference Structure for which pK50’s are computed.

  • tautomers – tautomers indexed by molecular charge and index.

  • populations – pH-dependent and independent tautomer populations, indexed by molecular charge and tautomer index.

  • pH_min – optional start of pH half-open interval

  • pH_max – optional end of pH half-open interval

  • step – optional resolution of pH value on interval

property pk50: Dict[int, List[float]]
Returns

pK50s for all active heavy atoms

property protonation_states: Dict[int, List[int]]

Return protonation states for each atom, expressed as number of protons relative to reference structure; e.g. [-1, 0, 1] for a collection of tautomers spanning 3 states.

Returns

sorted protonation states for each atom

get_assignments() schrodinger.structure._structure.Structure

Interpret the computed pK50 values and update atomic properties in a Structure object with the associated pk50 assignments.

We make some critical assumptions here. In particular, we assume there are no more than two pK50 values per atom. If there are two values, we also assume that one corresponds to protonation, and the other to deprotonation, with the lower value corresponding to protonation. If there are more than two values, we skip the assignment.

Returns

annotated Structure object

get_ASP_curve() Dict[int, List[Tuple[float, float]]]

Compute ASP curve on pH half-open interval [pH_min, pH_max) for all heavy atoms with tautomeric activity.

Returns

ASP curve (x,y) values for each active heavy atom

schrodinger.application.jaguar.pk50_report.graph_ASP_curves(jobname: str, curves: Dict[int, List[Tuple[float, float]]], xmin: float = - 5, xmax: float = 20) str

Create plot of ASP curves as a .png file.

Parameters
  • jobname – name of job to prefix file name

  • curves – list of (x,y) points to plot, keyed by atom index

  • xmin – minimum x-value to show in plot

  • xmax – maximum x-value to show in plot

Returns

file name of output .png file

schrodinger.application.jaguar.pk50_report.write_pk50_report(jobname: str, maefile: str, tautomers: Dict[int, Dict[int, schrodinger.structure._structure.Structure]], smiles: Dict[int, Dict[int, str]], macro_pkas: Dict[Tuple[int, int], float], populations: schrodinger.application.jaguar.macro_pka_utils.PhPopulations, asp_pH_min: float = - 10, asp_pH_max: float = 20) str

Compute pK50’s for each tautomerically active atom in the input structure. The input structure must belong to the set of input tautomers (up to mesomeric differences).

Parameters
  • jobname – name of job to prefix file names.

  • maefile – file containing structure to use for pk50 assignments.

  • tautomers – tautomers indexed by molecular charge and tautomer index.

  • smiles – SMILES for each tautomer indexed by molecular charge and tautomer index.

  • macro_pkas – macro-pKa’s for all charge transitions computed, indexed by prot/deprot charges.

  • populations – pH-dependent and independent tautomer populations, indexed by molecular charge and tautomer index.

  • asp_pH_min – minimum value to plot on the ASP graph pH axis.

  • asp_pH_max – maximum value to plot on the ASP graph pH axis.

Returns

path to output .mae file; path to .png file?