Skip to content

Add AlchemiscaleClient.copy_network, .merge_networks, and .merge_scopes methods #221

@dotsdl

Description

@dotsdl

Currently users create AlchemicalNetworks in separate Scopes if they want to independently generate results for each, or create AlchemicalNetworks in the same Scope if they would like results to be shared for common Transformations. This requires a priori planning for how to make use of results between AlchemicalNetworks; what about when a user would like to take existing results from AlchemicalNetworks in different Scopes and combine them into another Scope?

To enable this, we propose exposing the following methods on the AlchemiscaleClient:

  • copy_network(<network_scoped_key>, <scope>) : copies an entire AlchemicalNetwork and all existing Tasks and associated ProtocolDAGResultRefs to the given Scope, which may or may not already feature other AlchemicalNetworks with the same Transformations
  • merge_networks(<network_scoped_key>, <network_scoped_key>, ..., <scope>, name=None) : creates a new AlchemicalNetwork in the given Scope from the ChemicalSystems and Transformations of any number of other AlchemicalNetworks, optionally with a name.
  • merge_scopes(<scope>, <scope>, ..., <scope>) : copies all AlchemicalNetworks in any number of given Scopes into another Scope, similarly to copy_network

These methods will create new nodes and relationships in the state store, but shouldn't need to touch the object store, requiring no duplication of large objects there.

Metadata

Metadata

Assignees

Type

No type

Projects

Status

Sprint - In Review

Relationships

None yet

Development

No branches or pull requests

Issue actions