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)[source]

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[source]

Initialize self. See help(type(self)) for accurate signature.

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

Bases: schrodinger.application.desmond.fep_schedule.FepSchedule

property vdw
property coulomb
property vdwA
property vdwB
property chargeA
property chargeB
property bondedA
property bondedB
__init__(n_win: int, charge_div: Optional[float] = None) → None

Initialize self. See help(type(self)) for accurate signature.

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

Bases: schrodinger.application.desmond.fep_schedule.FepSchedule

property vdw
property coulomb
property vdwA
property vdwB
property chargeA
property chargeB
property bondedA
property bondedB
__init__(n_win: int, charge_div: Optional[float] = None) → None

Initialize self. See help(type(self)) for accurate signature.

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

Bases: object

Configure schedule of FEP schedule.

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

Bases: schrodinger.application.desmond.fep_schedule.FepSchemeMixIn

charge_div = 1.5
bonded_div = inf
class schrodinger.application.desmond.fep_schedule.FepSchemeQuickchargeMixIn[source]

Bases: schrodinger.application.desmond.fep_schedule.FepSchemeMixIn

charge_div = 5.0
bonded_div = inf
class schrodinger.application.desmond.fep_schedule.FepSchemeSuperquickchargeMixIn[source]

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][source]

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[source]

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 – Type of FEP simulation. Can be either ‘alchemical’

(default) or ‘binding’. :type fep_type: str :param scheme: Simulation scheme. Can be one of ‘default’, ‘flexible’, ‘charge’, ‘quickcharge’, or ‘superquickcharge’. :type scheme: str

Returns

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

windows. :rtype: FepSchedule

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

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

Convenience class for the alchemical schedule with the default scheme.

__init__(n_win: int, charge_div: Optional[float] = None) → None

Initialize self. See help(type(self)) for accurate signature.

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

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

Convenience class for the alchemical schedule with the charge scheme.

__init__(n_win: int, charge_div: Optional[float] = None) → None

Initialize self. See help(type(self)) for accurate signature.

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

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

Convenience class for the binding schedule with the default scheme.

__init__(n_win: int, charge_div: Optional[float] = None) → None

Initialize self. See help(type(self)) for accurate signature.

property bondedA
property bondedB
bonded_div: Optional[float] = inf
property chargeA
property chargeB
charge_div: Optional[float] = 2.5
property coulomb
get_lambda()
n_win: Optional[int] = None
property vdw
property vdwA
property vdwB
schrodinger.application.desmond.fep_schedule.get_absolute_binding_num_lambda_windows(protocol: schrodinger.application.desmond.constants.SIMULATION_PROTOCOL, restrained: bool) → Tuple[int, int][source]

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