BuildCoordinatesPackmol

class propertyestimator.protocols.coordinates.BuildCoordinatesPackmol(protocol_id)[source]

Creates a set of 3D coordinates with a specified composition.

Notes

The coordinates are created using packmol.

__init__(protocol_id)[source]

Constructs a new BuildCoordinatesPackmol object.

Methods

__init__(protocol_id)

Constructs a new BuildCoordinatesPackmol object.

apply_replicator(replicator, template_values)

Applies a ProtocolReplicator to this protocol.

can_merge(other)

Determines whether this protocol can be merged with another.

execute(directory, available_resources)

Execute the protocol.

get_attribute_type(reference_path)

Returns the type of one of the protocol input/output attributes.

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.

merge(other)

Merges another BaseProtocol with this one.

replace_protocol(old_id, new_id)

Finds each input which came from a given protocol

set_uuid(value)

Store the uuid of the calculation this protocol belongs to

set_value(reference_path, value)

Sets the value of one of this protocols inputs.

Attributes

allow_merging

If true, this protocol is allowed to merge with other identical protocols.

box_aspect_ratio

The aspect ratio of the simulation box.

coordinate_file_path

The file path to the created PDB coordinate file.

dependencies

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

id

The unique id of this protocol.

mass_density

The target density of the created system.

max_molecules

The maximum number of molecules to be added to the system.

output_number_of_molecules

The number of molecules in the created system.

output_substance

The substance which was built by packmol.

retain_packmol_files

If True, packmol will not delete all of the temporary files it creates while building the coordinates.

schema

A serializable schema for this object.

substance

The composition of the system to build.

verbose_packmol

If True, packmol will be allowed to log verbose information to the logger, and any working packmol files will be retained.

max_molecules

The maximum number of molecules to be added to the system.

mass_density

The target density of the created system.

box_aspect_ratio

The aspect ratio of the simulation box. The default is [1.0, 1.0, 1.0], i.e a cubic box.

substance

The composition of the system to build.

verbose_packmol

If True, packmol will be allowed to log verbose information to the logger, and any working packmol files will be retained.

retain_packmol_files

If True, packmol will not delete all of the temporary files it creates while building the coordinates.

output_number_of_molecules

The number of molecules in the created system. This may be less than maximum requested due to rounding of mole fractions.

output_substance

The substance which was built by packmol. This may differ from the input substance for system containing two or more components due to rounding of mole fractions. The mole fractions provided by this output should always be used when weighting values by a mole fraction.

coordinate_file_path

The file path to the created PDB coordinate file.

execute(directory, available_resources)[source]

Execute the protocol.

Protocols may be chained together by passing the output of previous protocols as input to the current one.

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

  • available_resources (ComputeResources) – The resources available to execute on.

Returns

The output of the execution.

Return type

Dict[str, Any]

allow_merging

If true, this protocol is allowed to merge with other identical protocols.

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)

Determines whether this protocol can be merged with another.

Parameters

other (BaseProtocol) – The protocol to compare against.

Returns

True if the two protocols are safe to merge.

Return type

bool

property dependencies

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

Type

list of ProtocolPath

get_attribute_type(reference_path)

Returns the type of one of the protocol input/output attributes.

Parameters

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

Returns

The type of the attribute.

Return type

type

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

property id

The unique id of this protocol.

Type

str

merge(other)

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

It is assumed that can_merge has already returned that these protocols are compatible to be merged together.

Parameters

other (BaseProtocol) – 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]

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 schema

A serializable schema for this object.

Type

ProtocolSchema

set_uuid(value)

Store the uuid of the calculation this protocol belongs to

Parameters

value (str) – The uuid of the parent calculation.

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.