LigandReceptorYankProtocol

class propertyestimator.protocols.yank.LigandReceptorYankProtocol(protocol_id)[source]

A protocol for performing ligand-receptor alchemical free energy calculations using the YANK framework.

__init__(protocol_id)[source]

Constructs a new LigandReceptorYankProtocol object.

Methods

__init__(protocol_id)

Constructs a new LigandReceptorYankProtocol object.

apply_replicator(replicator, template_values)

Applies a ProtocolReplicator to this protocol.

can_merge(other[, path_replacements])

Determines whether this protocol can be merged with another.

execute([directory, available_resources])

Execute the protocol.

from_json(file_path)

Create this object from a JSON file.

from_schema(schema)

Initializes a protocol from it’s schema definition.

get_attributes([attribute_type])

Returns all attributes of a specific attribute_type.

get_class_attribute(reference_path)

Returns one of this protocols, or any of its children’s, attributes directly (rather than its value).

get_value(reference_path)

Returns the value of one of this protocols inputs / outputs.

get_value_references(input_path)

Returns a dictionary of references to the protocols which one of this protocols inputs (specified by input_path) takes its value from.

json([file_path, format])

Creates a JSON representation of this class.

merge(other)

Merges another Protocol with this one.

parse_json(string_contents[, encoding])

Parses a typed json string into the corresponding class structure.

replace_protocol(old_id, new_id)

Finds each input which came from a given protocol

set_uuid(value)

Prepend a unique identifier to this protocols id.

set_value(reference_path, value)

Sets the value of one of this protocols inputs.

validate([attribute_type])

Validate the values of the attributes.

Attributes

allow_merging

Input - Defines whether this protocols is allowed to merge with other protocols.

apply_restraints

Input - Determines whether the ligand should be explicitly restrained to the receptor in order to stop the ligand from temporarily unbinding.

checkpoint_interval

Input - The number of iterations between saving YANK checkpoint files.

dependencies

A list of pointers to the protocols which this protocol takes input from.

estimated_free_energy

Output - The estimated free energy value and its uncertainty returned by YANK.

force_field_path

Input - The path to the force field which defines the charge method to use for the calculation.

id

The unique id of this protocol.

ligand_residue_name

Input - The residue name of the ligand.

number_of_equilibration_iterations

Input - The number of iterations used for equilibration before production run.

number_of_iterations

Input - The number of YANK iterations to perform.

outputs

A dictionary of the outputs of this property.

receptor_residue_name

Input - The residue name of the receptor.

required_inputs

The inputs which must be set on this protocol.

restraint_type

Input - The type of ligand restraint applied, provided that apply_restraints is True The default value of this attribute is RestraintType.Harmonic.

schema

A serializable schema for this object.

setup_only

Input - If true, YANK will only create and validate the setup files, but not actually run any simulations.

solvated_complex_coordinates

Input - The file path to the solvated complex coordinates.

solvated_complex_system

Input - The file path to the solvated complex system object.

solvated_complex_trajectory_path

Output - The file path to the generated ligand trajectory.

solvated_ligand_coordinates

Input - The file path to the solvated ligand coordinates.

solvated_ligand_system

Input - The file path to the solvated ligand system object.

solvated_ligand_trajectory_path

Output - The file path to the generated ligand trajectory.

steps_per_iteration

Input - The number of steps per YANK iteration to perform.

thermodynamic_state

Input - The state at which to run the calculations.

timestep

Input - The length of the timestep to take.

verbose

Input - Controls whether or not to run YANK at high verbosity.

class RestraintType[source]

The types of ligand restraints available within yank.

ligand_residue_name

Input - The residue name of the ligand. The default value of this attribute is not set and must be set by the user..

Type

str

receptor_residue_name

Input - The residue name of the receptor. The default value of this attribute is not set and must be set by the user..

Type

str

solvated_ligand_coordinates

Input - The file path to the solvated ligand coordinates. The default value of this attribute is not set and must be set by the user..

Type

str

solvated_ligand_system

Input - The file path to the solvated ligand system object. The default value of this attribute is not set and must be set by the user..

Type

str

solvated_complex_coordinates

Input - The file path to the solvated complex coordinates. The default value of this attribute is not set and must be set by the user..

Type

str

solvated_complex_system

Input - The file path to the solvated complex system object. The default value of this attribute is not set and must be set by the user..

Type

str

force_field_path

Input - The path to the force field which defines the charge method to use for the calculation. The default value of this attribute is not set and must be set by the user..

Type

str

apply_restraints

Input - Determines whether the ligand should be explicitly restrained to the receptor in order to stop the ligand from temporarily unbinding. The default value of this attribute is True.

Type

bool

restraint_type

Input - The type of ligand restraint applied, provided that apply_restraints is True The default value of this attribute is RestraintType.Harmonic.

Type

LigandReceptorYankProtocol.RestraintType

solvated_ligand_trajectory_path

Output - The file path to the generated ligand trajectory. The default value of this attribute is not set and must be set by the user..

Type

str

solvated_complex_trajectory_path

Output - The file path to the generated ligand trajectory. The default value of this attribute is not set and must be set by the user..

Type

str

allow_merging

Input - Defines whether this protocols is allowed to merge with other protocols. The default value of this attribute is True.

Type

bool

apply_replicator(replicator, template_values, template_index=-1, template_value=None, update_input_references=False)

Applies a ProtocolReplicator to this protocol. This method should clone any protocols whose id contains the id of the replicator (in the format $(replicator.id)).

Parameters
  • replicator (ProtocolReplicator) – The replicator to apply.

  • template_values (list of Any) –

    A list of the values which will be inserted into the newly replicated protocols.

    This parameter is mutually exclusive with template_index and template_value

  • template_index (int, optional) –

    A specific value which should be used for any protocols flagged as to be replicated by the replicator. This option is mainly used when replicating children of an already replicated protocol.

    This parameter is mutually exclusive with template_values and must be set along with a template_value.

  • template_value (Any, optional) –

    A specific index which should be used for any protocols flagged as to be replicated by the replicator. This option is mainly used when replicating children of an already replicated protocol.

    This parameter is mutually exclusive with template_values and must be set along with a template_index.

  • update_input_references (bool) –

    If true, any protocols which take their input from a protocol which was flagged for replication will be updated to take input from the actually replicated protocol. This should only be set to true if this protocol is not nested within a workflow or a protocol group.

    This option cannot be used when a specific template_index or template_value is providied.

Returns

A dictionary of references to all of the protocols which have been replicated, with keys of original protocol ids. Each value is comprised of a list of the replicated protocol ids, and their index into the template_values array.

Return type

dict of ProtocolPath and list of tuple of ProtocolPath and int

can_merge(other, path_replacements=None)

Determines whether this protocol can be merged with another.

Parameters
  • other (Protocol) – The protocol to compare against.

  • path_replacements (list of tuple of str, optional) – Replacements to make in any value reference protocol paths before comparing for equality.

Returns

True if the two protocols are safe to merge.

Return type

bool

checkpoint_interval

Input - The number of iterations between saving YANK checkpoint files. When two protocols are merged, the largest value of this attribute from either protocol is retained. The default value of this attribute is 50.

Type

int

property dependencies

A list of pointers to the protocols which this protocol takes input from.

Type

list of ProtocolPath

estimated_free_energy

Output - The estimated free energy value and its uncertainty returned by YANK. The default value of this attribute is not set and must be set by the user..

Type

Measurement

execute(directory='', available_resources=None)

Execute the protocol.

Parameters
  • directory (str) – The directory to store output data in.

  • available_resources (ComputeResources) – The resources available to execute on. If None, the protocol will be executed on a single CPU.

classmethod from_json(file_path)

Create this object from a JSON file.

Parameters

file_path (str) – The path to load the JSON from.

Returns

The parsed class.

Return type

cls

classmethod from_schema(schema)

Initializes a protocol from it’s schema definition.

Parameters

schema (ProtocolSchema) – The schema to initialize the protocol using.

Returns

The initialized protocol.

Return type

cls

classmethod get_attributes(attribute_type=None)

Returns all attributes of a specific attribute_type.

Parameters

attribute_type (type of Attribute, optional) – The type of attribute to search for.

Returns

The names of the attributes of the specified type.

Return type

list of str

get_class_attribute(reference_path)

Returns one of this protocols, or any of its children’s, attributes directly (rather than its value).

Parameters

reference_path (ProtocolPath) – The path pointing to the attribute to return.

Returns

The class attribute.

Return type

object

get_value(reference_path)

Returns the value of one of this protocols inputs / outputs.

Parameters

reference_path (ProtocolPath) – The path pointing to the value to return.

Returns

The value of the input / output

Return type

Any

get_value_references(input_path)

Returns a dictionary of references to the protocols which one of this protocols inputs (specified by input_path) takes its value from.

Notes

Currently this method only functions correctly for an input value which is either currently a ProtocolPath, or a list / dict which contains at least one ProtocolPath.

Parameters

input_path (propertyestimator.workflow.utils.ProtocolPath) – The input value to check.

Returns

A dictionary of the protocol paths that the input targeted by input_path depends upon.

Return type

dict of ProtocolPath and ProtocolPath

id

The unique id of this protocol. The default value of this attribute is not set and must be set by the user..

Type

str

json(file_path=None, format=False)

Creates a JSON representation of this class.

Parameters
  • file_path (str, optional) – The (optional) file path to save the JSON file to.

  • format (bool) – Whether to format the JSON or not.

Returns

The JSON representation of this class.

Return type

str

merge(other)

Merges another Protocol with this one. The id of this protocol will remain unchanged.

Parameters

other (Protocol) – The protocol to merge into this one.

Returns

A map between any original protocol ids and their new merged values.

Return type

Dict[str, str]

number_of_equilibration_iterations

Input - The number of iterations used for equilibration before production run. Only post-equilibration iterations are written to file. The default value of this attribute is 1.

Type

int

number_of_iterations

Input - The number of YANK iterations to perform. The default value of this attribute is 5000.

Type

int

property outputs

A dictionary of the outputs of this property.

Type

dict of ProtocolPath and Any

classmethod parse_json(string_contents, encoding='utf8')

Parses a typed json string into the corresponding class structure.

Parameters
  • string_contents (str or bytes) – The typed json string.

  • encoding (str) – The encoding of the string_contents.

Returns

The parsed class.

Return type

Any

replace_protocol(old_id, new_id)
Finds each input which came from a given protocol

and redirects it to instead take input from a new one.

Notes

This method is mainly intended to be used only when merging multiple protocols into one.

Parameters
  • old_id (str) – The id of the old input protocol.

  • new_id (str) – The id of the new input protocol.

property required_inputs

The inputs which must be set on this protocol.

Type

list of ProtocolPath

property schema

A serializable schema for this object.

Type

ProtocolSchema

set_uuid(value)

Prepend a unique identifier to this protocols id. If the id already has a prepended uuid, it will be overwritten by this value.

Parameters

value (str) – The uuid to prepend.

set_value(reference_path, value)

Sets the value of one of this protocols inputs.

Parameters
  • reference_path (ProtocolPath) – The path pointing to the value to return.

  • value (Any) – The value to set.

setup_only

Input - If true, YANK will only create and validate the setup files, but not actually run any simulations. This argument is mainly only to be used for testing purposes. The default value of this attribute is False.

Type

bool

steps_per_iteration

Input - The number of steps per YANK iteration to perform. The default value of this attribute is 500.

Type

int

thermodynamic_state

Input - The state at which to run the calculations. The default value of this attribute is not set and must be set by the user..

Type

ThermodynamicState

timestep

Input - The length of the timestep to take. When two protocols are merged, the largest value of this attribute from either protocol is retained. The default value of this attribute is 2 fs.

Type

Quantity

validate(attribute_type=None)

Validate the values of the attributes. If attribute_type is set, only attributes of that type will be validated.

Parameters

attribute_type (type of Attribute, optional) – The type of attribute to validate.

Raises

ValueError or AssertionError

verbose

Input - Controls whether or not to run YANK at high verbosity. The default value of this attribute is False.

Type

bool