schrodinger.application.desmond.fep_schedule module

This module handles the allocation of lambda windows for FEP simulations.

Different schemes of FEP simulations and interactions require different schedules of lambda windows. The FepSchedule class abstracts the creation of these schedules. This class is meant to be instantiated via its derived classes (with mixins) or, preferably, using the get_fep_schedule function.

Copyright Schrodinger, LLC. All rights reserved.

class schrodinger.application.desmond.fep_schedule.FepSchedule(n_win: int, charge_div: Optional[float] = None)

Bases: object

Lambda schedule for FEP calculations.

This class should not be instantiated directly. Instead, subclass it combining the mixins below.

n_winint

Number of lambda windows

charge_divfloat or None

Determines the fraction of lambda windows devoted to turning on electrostatic interactions. This should be overriden by a mix-in class or by the user.

bonded_divfloat or None

Determines the fraction of lambda windows devoted to turning on bonded interactions. This should be overriden by a mix-in class or by the user.

bonded_div: Optional[float] = None
__init__(n_win: int, charge_div: Optional[float] = None) None
n_win: Optional[int] = None
charge_div: Optional[float] = None
get_lambda()
class schrodinger.application.desmond.fep_schedule.FepScheduleAlchemical(n_win: int, charge_div: Optional[float] = None)

Bases: schrodinger.application.desmond.fep_schedule.FepSchedule

property vdw
property coulomb
property vdwA
property vdwB
property chargeA
property chargeB
property bondedA
property bondedB
class schrodinger.application.desmond.fep_schedule.FepScheduleBinding(n_win: int, charge_div: Optional[float] = None)

Bases: schrodinger.application.desmond.fep_schedule.FepSchedule

property vdw
property coulomb
property vdwA
property vdwB
property chargeA
property chargeB
property bondedA
property bondedB
class schrodinger.application.desmond.fep_schedule.FepSchemeMixIn

Bases: object

Configure schedule of FEP schedule.

charge_div = 2.5
bonded_div = inf
class schrodinger.application.desmond.fep_schedule.FepSchemeChargeMixIn

Bases: schrodinger.application.desmond.fep_schedule.FepSchemeMixIn

charge_div = 1.5
class schrodinger.application.desmond.fep_schedule.FepSchemeQuickchargeMixIn

Bases: schrodinger.application.desmond.fep_schedule.FepSchemeMixIn

charge_div = 5.0
class schrodinger.application.desmond.fep_schedule.FepSchemeSuperquickchargeMixIn

Bases: schrodinger.application.desmond.fep_schedule.FepSchemeMixIn

charge_div = 10.0
bonded_div = 10.0
schrodinger.application.desmond.fep_schedule.get_fep_schedule_class(fep_type: str = 'alchemical', scheme: str = 'default') Type[schrodinger.application.desmond.fep_schedule.FepSchedule]

Return FEP schedule class.

get_fep_schedule

schrodinger.application.desmond.fep_schedule.get_fep_schedule(n_win: int, fep_type: str = 'alchemical', scheme: str = 'default') schrodinger.application.desmond.fep_schedule.FepSchedule

Instantiate FEP schedule.

Return a class encapsulating a concrete lambda schedule for the specified FEP simulation type and scheme.

Parameters
  • n_win (int) – Number of lambda windows.

  • fep_type (str) – Type of FEP simulation. Can be either ‘alchemical’ (default) or ‘binding’.

  • scheme (str) – Simulation scheme. Can be one of ‘default’, ‘flexible’, ‘charge’, ‘quickcharge’, or ‘superquickcharge’.

Returns

Concrete schedule of the specified type, scheme, and number of windows.

Return type

FepSchedule

class schrodinger.application.desmond.fep_schedule.FepScheduleAlchemicalDefault(n_win: int, charge_div: Optional[float] = None)

Bases: schrodinger.application.desmond.fep_schedule.FepSchemeMixIn, schrodinger.application.desmond.fep_schedule.FepScheduleAlchemical

Convenience class for the alchemical schedule with the default scheme.

class schrodinger.application.desmond.fep_schedule.FepScheduleAlchemicalCharge(n_win: int, charge_div: Optional[float] = None)

Bases: schrodinger.application.desmond.fep_schedule.FepSchemeChargeMixIn, schrodinger.application.desmond.fep_schedule.FepScheduleAlchemical

Convenience class for the alchemical schedule with the charge scheme.

class schrodinger.application.desmond.fep_schedule.FepScheduleBindingDefault(n_win: int, charge_div: Optional[float] = None)

Bases: schrodinger.application.desmond.fep_schedule.FepSchemeMixIn, schrodinger.application.desmond.fep_schedule.FepScheduleBinding

Convenience class for the binding schedule with the default scheme.

schrodinger.application.desmond.fep_schedule.get_absolute_binding_num_lambda_windows(protocol: schrodinger.application.desmond.constants.SIMULATION_PROTOCOL, restrained: bool) Tuple[int, int]

Get the number of lambda windows in the absolute binding lambda schedules. These are derived from the lambda schedules in mmshare/data/desmond/abfep

Returns

A tuple of # of complex windows, # of solvent windows