Core Abstractions¶
This page documents the three foundational abstractions of REvoDesign: the Borg-like singleton pattern, the base class for all third-party designer/scorer modules, and the central configuration-to-UI bridge.
SingletonAbstract¶
SingletonAbstract is the singleton base class. It enforces one instance per concrete class, provides instance re-initialization, and allows explicit instance reset. Subclasses must implement the singleton_init method for custom initialization logic.
REvoDesign.basic.abc_singleton.SingletonAbstract
¶
Bases: ABC
A base class that enforces the Singleton design pattern. Ensures that only one instance of the class is created.
Attributes:
| Name | Type | Description |
|---|---|---|
_instance |
The singleton instance of the class. |
singleton_init(*args, **kwargs)
abstractmethod
¶
Abstract method to initialize the singleton instance with custom logic.
Subclasses must implement this method to initialize their specific attributes.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
*args
|
Positional arguments for initialization. |
()
|
|
**kwargs
|
Keyword arguments for initialization. |
{}
|
initialize(*args, **kwargs)
classmethod
¶
Initializes the singleton instance if it doesn't exist yet. Updates the singleton instance with new variables if it already exists.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
*args
|
Positional arguments for initialization. |
()
|
|
**kwargs
|
Keyword arguments for initialization or updating. |
{}
|
reset_instance()
classmethod
¶
Resets the singleton instance for the class.
After calling this method, the next instantiation will create a new singleton instance.
is_initialized()
classmethod
¶
Return whether this singleton class currently owns an instance.
ExternalDesignerAbstract¶
ExternalDesignerAbstract is the abstract base class for all third-party designer and scorer modules in REvoDesign. It inherits from ThirdPartyModuleAbstract and provides a framework for designing molecules, including serial and parallel scoring of mutants.
REvoDesign.basic.designer.ExternalDesignerAbstract
¶
Bases: ThirdPartyModuleAbstract
Abstract class for external design, providing a framework for designing molecules. This class is abstract and must be inherited and implemented by concrete design classes.
Attributes:
| Name | Type | Description |
|---|---|---|
pdb_filename |
str
|
Name of the PDB file, initially set to None, indicating not specified. |
initialized |
bool
|
Flag to indicate whether initialization has been performed, defaults to False. |
molecule |
The molecule object, storing the molecule to be designed. |
|
reload |
bool
|
A flag indicating whether to reload the design, defaults to False. |
get_weights()
¶
Retrieve the weights used in the design process. The implementation should define how these weights are calculated or retrieved.
initialize(*args, **kwargs)
abstractmethod
¶
Abstract method to initialize the design process. Must be implemented by subclasses to perform necessary setup steps.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
*args, **kwargs
|
Flexible arguments that can be passed to perform specific initialization tasks. |
required |
designer(*args, **kwargs)
¶
Abstract method to execute the design algorithm. Subclasses must provide the actual design logic.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
*args, **kwargs
|
Additional parameters that can be used during the design process. |
required |
scorer(mutant, **kwargs)
¶
Abstract method to evaluate or score a given sequence design. Determines the quality or fitness of the designed sequence.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
mutant
|
Mutant | RosettaPyProteinSequence
|
The molecular sequence being evaluated. |
required |
*args, **kwargs
|
Additional parameters for scoring, if required. |
required |
preffer_substitutions(aa)
¶
Method to setup amino acids that are preferred for substitution in further design.
parallel_scorer(mutants, nproc=2, **kwargs)
¶
Parallelize the scoring of a list of mutants.
score_mutant_mapping(mutants, scores)
staticmethod
¶
Assign scores to mutants.
ConfigBus¶
ConfigBus is the central configuration-to-UI bridge singleton. It inherits from both SingletonAbstract and CitableModuleAbstract, managing the bidirectional mapping between OmegaConf/Hydra YAML configuration and UI widget state. In headless mode only get_value/set_value are available; GUI methods are guarded by the @require_non_headless decorator.
See the Driver API for the full method reference.