schrodinger.application.desmond.mxmd.mxmd_system_builder module

Script to setup cosolvent system

class schrodinger.application.desmond.mxmd.mxmd_system_builder.Cosolvent(filename: str)

Bases: object

__init__(filename: str)

filename should follow the pattern <probe_name>.box.mae

property box_strucs: List[schrodinger.structure._structure.Structure]
property probe_pdbres
property density: float

Return average density of the box in g/cm^3

property probe_nheavy: int

Return number of heavy atoms per probe molecule

property probe_mass: float

Return molecular weight of the probe

property filename
schrodinger.application.desmond.mxmd.mxmd_system_builder.get_probe_paths(probe_names: List[str], custom_probe_dir: Optional[str] = None) Tuple[List[str], List[str], List[str]]

Process the given probe names and return paths to their .box.mae file. Additionally return any missing probes.

Returns

A 3-tuple of two lists containing probe paths for custom probe and builtin probes and a list containing probe names with missing files.

schrodinger.application.desmond.mxmd.mxmd_system_builder.convert_vv2mol(probe: schrodinger.application.desmond.mxmd.mxmd_system_builder.Cosolvent, target_vv_ratio: float = 5.0) int

This function reports the number of water molecules required to maintain the required volume/volume ratio for each molecules of the probe Assumes that density is provided in gm/cm3 molecular mass also should be specified in gm/mol :param probe_name: Name of the cosolvent used to build mixed-solvent box :param target_vv_ratio: Volume over volume ratio in percent

class schrodinger.application.desmond.mxmd.mxmd_system_builder.CosolventBoxGenerator(solute_fname: str, probe_path: str, box_number: int, init_water_buffer: float = 17.0, cosolvent_layer_size: float = 7.0, cosolvent_volume_ratio: float = 5.0, cosolvent_vdw_scaling: Optional[float] = None, water: str = 'SPC', membrane: Optional[str] = None)

Bases: object

Example:

gen = CosolventBoxGenerator(
    inp_fname,
    'probe_directory/acetonitrile.box.mae',
    1,
    cosolvent_layer_size=5.0,
    cosolvent_volume_ratio=2.0)
gen.generate(out_fname)
__init__(solute_fname: str, probe_path: str, box_number: int, init_water_buffer: float = 17.0, cosolvent_layer_size: float = 7.0, cosolvent_volume_ratio: float = 5.0, cosolvent_vdw_scaling: Optional[float] = None, water: str = 'SPC', membrane: Optional[str] = None)
generate(fname: str)
schrodinger.application.desmond.mxmd.mxmd_system_builder.solvate_with_cosolvent(inp_mae: pathlib.Path, water_model: str = 'spc', init_water_buffer=17.0) List[schrodinger.structure._structure.Structure]

Solvate the cosolvent ct with water

Parameters
  • inp_mae – The path to the input mae. This is a system containing the cosolvent.

  • job_dir – A path to the directory to run the job in

  • water_model – The water type to use as the solvent

  • init_water_buffer – The initial size of water box

Returns

Two structures from system_builder output: the solute and solvent

schrodinger.application.desmond.mxmd.mxmd_system_builder.merge_membrane_and_cosolvent_systems(receptor_cosolvent_sts: List[schrodinger.structure._structure.Structure], receptor_membrane_water_sts: List[schrodinger.structure._structure.Structure]) List[schrodinger.structure._structure.Structure]
To handle membrane systems we have the systems:
  1. receptor + cosolvent_layer (receptor_cosolvent_sts)

  2. receptor + membrane + water (receptor_membrane_water_sts)

We want to merge these sysems by removing the cosolvent mols that clash with the lipid mols and water mols that clash with cosolvent mol.

Parameters
  • receptor_cosolvent_sts – receptor + cosolvent_layer

  • receptor_membrane_water_sts – receptor + membrane + water

Returns

List of structures in the following order: receptor + membrane + cosolvent + waters

schrodinger.application.desmond.mxmd.mxmd_system_builder.shrink_box(cts: List[schrodinger.structure._structure.Structure], required_nwat: int) None

Shrink the system box so that it contains a given number of water molecules. If cts contain a membrane, it will also shrink the membrane CTs.

Parameters
  • cts – The input structures in the order of: [non-solvent ct…, cosolvent ct, water ct]. These cts are modified in place.

  • required_nwat – How many waters should remain after shrinking system

schrodinger.application.desmond.mxmd.mxmd_system_builder.get_fullsystem_ct(sts: List[schrodinger.structure._structure.Structure]) schrodinger.structure._structure.Structure

Given a list of component CTs, return a full-system CT.

NOTE: This function does not handle GCMC systems.