schrodinger.application.desmond.config_utils module

Module defining classes, constants, and functions for supporting config processing in Desmond. Includes functions which set CFG parameters from MSJ inputs, as well as helper functions to get or summarize MSJ files.

Also defines number of external checkers for MSJ parameters to be used by the Sea class. Upon import, these checkers are automatically registered by the Sea class and will be used whenever validation is done by the Sea object.

schrodinger.application.desmond.config_utils.get_default_setting(msj)
schrodinger.application.desmond.config_utils.add_plugin(desmond_exec, plugin_name, position=None)
schrodinger.application.desmond.config_utils.remove_plugin(desmond_exec, plugin_name)
schrodinger.application.desmond.config_utils.has_plugin(desmond_exec, plugin_name)
schrodinger.application.desmond.config_utils.lambda_type(lambda_)
schrodinger.application.desmond.config_utils.num_lambda_window(lambda_)
schrodinger.application.desmond.config_utils.parse_lambda(s)
schrodinger.application.desmond.config_utils.gen_replica(msj, model=None)
schrodinger.application.desmond.config_utils.num_replica(msj, model, printer=None)
schrodinger.application.desmond.config_utils.gen_temperature_for_solute_tempering(setting, model, base_temp, asl, printer=None)
schrodinger.application.desmond.config_utils.translate_output_file_names_helper(msj, macro_dict)
schrodinger.application.desmond.config_utils.translate_output_file_names(msj, macro_dict, num_replica=1)
schrodinger.application.desmond.config_utils.get_exec(msj, cfg)
schrodinger.application.desmond.config_utils.get_exec_name(msj)
schrodinger.application.desmond.config_utils.canonicalize(msj)
schrodinger.application.desmond.config_utils.num_cpu(msj)
schrodinger.application.desmond.config_utils.is_minimize(msj)
schrodinger.application.desmond.config_utils.is_remd(msj)
schrodinger.application.desmond.config_utils.is_meta(msj)
schrodinger.application.desmond.config_utils.is_vrun(msj)
schrodinger.application.desmond.config_utils.is_reinit(msj)

Does msj require the “reinit” app?

schrodinger.application.desmond.config_utils.is_concat(msj)
schrodinger.application.desmond.config_utils.is_gcmc(msj)
schrodinger.application.desmond.config_utils.is_triclinic_box(box)
schrodinger.application.desmond.config_utils.is_lambda_dynamics(msj)
schrodinger.application.desmond.config_utils.get_simbox_output_filename(msj)

Returns ‘None’ if the simbox_output plugin is turned off.

schrodinger.application.desmond.config_utils.get_energy_group_output_filename(msj)

Returns ‘None’ if the energy_groups plugin is turned off.

schrodinger.application.desmond.config_utils.get_fep_output_filename(msj)
schrodinger.application.desmond.config_utils.get_replica_setting(msj)
schrodinger.application.desmond.config_utils.get_ensemble(msj)

Get ensemble name from msj block

Parameters

msj (sea.Map) – msj block

Return str

name of the ensemble

schrodinger.application.desmond.config_utils.get_updated_msj_block(msj, key, default_settings)

Get msj block for given key

NOTE: Here, the assumption is that no other code depends on msj being updated, we can return a block without side effects on the msj. This is implemented as msj block should be kept independent and not updated. Please see RB https://reviewboard.schrodinger.com/r/70593/. However, if this option is impossible to maintain, we should implement the other option suggested in RB.

Parameters
  • msj (sea.Map) – msj block

  • key (str) – name of the key

  • default_settings (sea.Map) – default setting for the given key

schrodinger.application.desmond.config_utils.get_ensemble_class_method(msj)
schrodinger.application.desmond.config_utils.get_fep_lambda_schedule(lambda_, fep_type)
schrodinger.application.desmond.config_utils.get_msj_backend(msj, default=None)

Get reference to the ‘backend’ map from the msj map.

schrodinger.application.desmond.config_utils.get_tempearture(msj)

get temperature from msj

Return type

float

Returns

temperature

schrodinger.application.desmond.config_utils.get_homebox(box, cpu_top)
schrodinger.application.desmond.config_utils.get_rest_replica(atom_selection='atom.i_rest_hotregion 1', exchange_probability=0.3, n_replica=2)

Return REST-specific replicas :rtype: sea.Map

class schrodinger.application.desmond.config_utils.LambdaSchedule

Bases: object

Base class for lambda schedules.

lambdas: List[float] = []
classmethod schedule(n_win: int) List[float]

Return schedule with the desired number of windows.

This method constructs a piecewise linear spline interpolator of the prototype lambda schedule and evaluates it on the specified number of windows to obtain the new lambda schedule.

Parameters

n_win – Number of lambda windows to use.

Returns

New lambda schedule.

class schrodinger.application.desmond.config_utils.ScheduleAngleCorePhysical

Bases: schrodinger.application.desmond.config_utils.LambdaSchedule

Schedule for angle_core_physical terms.

lambdas: List[float] = [1.0, 0.8, 0.6, 0.35, 0.2, 0.1, 0.03, 0.01, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
classmethod schedule(n_win: int) List[float]

Return schedule with the desired number of windows.

This method constructs a piecewise linear spline interpolator of the prototype lambda schedule and evaluates it on the specified number of windows to obtain the new lambda schedule.

Parameters

n_win – Number of lambda windows to use.

Returns

New lambda schedule.

class schrodinger.application.desmond.config_utils.ScheduleAngleCoreDummy

Bases: schrodinger.application.desmond.config_utils.LambdaSchedule

Schedule for angle_core_dummy terms.

lambdas: List[float] = [1.0, 0.8, 0.65, 0.5, 0.4, 0.3, 0.2, 0.16, 0.12, 0.08, 0.04, 0.01, 0.0, 0.0, 0.0, 0.0]
classmethod schedule(n_win: int) List[float]

Return schedule with the desired number of windows.

This method constructs a piecewise linear spline interpolator of the prototype lambda schedule and evaluates it on the specified number of windows to obtain the new lambda schedule.

Parameters

n_win – Number of lambda windows to use.

Returns

New lambda schedule.

class schrodinger.application.desmond.config_utils.ScheduleBondCorePhysical

Bases: schrodinger.application.desmond.config_utils.LambdaSchedule

Schedule for bond_core_physical terms.

lambdas: List[float] = [1.0, 0.3, 0.1, 0.05, 0.03, 0.01, 0.002, 0.001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
classmethod schedule(n_win: int) List[float]

Return schedule with the desired number of windows.

This method constructs a piecewise linear spline interpolator of the prototype lambda schedule and evaluates it on the specified number of windows to obtain the new lambda schedule.

Parameters

n_win – Number of lambda windows to use.

Returns

New lambda schedule.

class schrodinger.application.desmond.config_utils.ScheduleBondCoreDummy

Bases: schrodinger.application.desmond.config_utils.LambdaSchedule

Schedule for bond_core_dummy terms.

lambdas: List[float] = [1.0, 0.6, 0.35, 0.22, 0.18, 0.14, 0.12, 0.11, 0.09, 0.08, 0.06, 0.02, 0.005, 0.0, 0.0, 0.0]
classmethod schedule(n_win: int) List[float]

Return schedule with the desired number of windows.

This method constructs a piecewise linear spline interpolator of the prototype lambda schedule and evaluates it on the specified number of windows to obtain the new lambda schedule.

Parameters

n_win – Number of lambda windows to use.

Returns

New lambda schedule.

class schrodinger.application.desmond.config_utils.ScheduleAngleAttachment

Bases: schrodinger.application.desmond.config_utils.LambdaSchedule

Schedule for angle_attachment terms.

lambdas: List[float] = [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.95, 0.9, 0.85, 0.8, 0.75, 0.6, 0.35, 0.1, 0.0]
classmethod schedule(n_win: int) List[float]

Return schedule with the desired number of windows.

This method constructs a piecewise linear spline interpolator of the prototype lambda schedule and evaluates it on the specified number of windows to obtain the new lambda schedule.

Parameters

n_win – Number of lambda windows to use.

Returns

New lambda schedule.

class schrodinger.application.desmond.config_utils.ScheduleLinear

Bases: schrodinger.application.desmond.config_utils.LambdaSchedule

Linear lambda schedule.

lambdas: List[float] = [1.0, 0.0]
classmethod schedule(n_win: int) List[float]

Return schedule with the desired number of windows.

This method constructs a piecewise linear spline interpolator of the prototype lambda schedule and evaluates it on the specified number of windows to obtain the new lambda schedule.

Parameters

n_win – Number of lambda windows to use.

Returns

New lambda schedule.

schrodinger.application.desmond.config_utils.get_fep_lambdas(n_win, fep_type, scheme)

return default lambdas