core

class pyrosetta.bindings.scores.core.PoseCacheAccessor(pose)

Bases: PoseCacheAccessorBase, MutableMapping

Accessor wrapper for pose energies, SimpleMetrics data, and arbitrary extra score data.

The Pose.cache dictionary has a nested namespace structure wherein each layer has the ability to access, set, and delete pose score data, with the outermost layers providing warnings if data from the innermost layers get clobbered once combined. The Pose.cache dictionary also uses serialization to dynamically store/retrieve arbitrary python objects to/from base64-encoded pickled byte streams, and stores/retrieves float and str objects without serialization.

Examples:

Get score dictionaries:
  • Return nested, read-only dictionaries of all cached score data:

    pose.cache.all_scores

  • Return a flattened, read-only dictionary of all cached score data (with clobber warnings):

    pose.cache

  • Return a flattened, read-only dictionary of all SimpleMetric data (with clobber warnings):

    pose.cache.metrics

  • Return a flattened, read-only dictionary of all arbitrary extra float and extra string score data (with clobber warnings):

    pose.cache.extra

  • Return a read-only dictionary of active total energies:

    pose.cache.energies

Get a score value:
  • Return the value of a key from any pose.cache.extra, pose.cache.metrics, or pose.cache.energies dictionary
    (from lowest to highest precedence, respectively, with clobber warnings):

    pose.cache[“key”]

From arbitrary extra score data:
  • Return the value of a key from arbitrary extra float or extra string score data (with clobber warnings):

    pose.cache.extra[“key”]

  • Return the value of a key from arbitrary extra float score data:

    pose.cache.extra.real[“key”]

  • Return the value of a key from arbitrary extra string score data:

    pose.cache.extra.string[“key”]

From SimpleMetric data:
  • Return the value of a key from any SimpleMetric data (with clobber warnings):

    pose.cache.metrics[“key”]

  • Return the value of a key from SimpleMetric real metric data:

    pose.cache.metrics.real[“key”]

  • Return the value of a key from SimpleMetric string metric data:

    pose.cache.metrics.string[“key”]

  • Return the value of a key from SimpleMetric composite real metric data:

    pose.cache.metrics.composite_real[“key”]

  • Return the value of a key from SimpleMetric composite string metric data:

    pose.cache.metrics.composite_string[“key”]

  • Return the value of a key from SimpleMetric per-residue real metric data:

    pose.cache.metrics.per_residue_real[“key”]

  • Return the value of a key from SimpleMetric per-residue string metric data:

    pose.cache.metrics.per_residue_string[“key”]

  • Return the value of a key from SimpleMetric per-residue probabilities metric data:

    pose.cache.metrics.per_residue_probabilities[“key”]

From active total energies:
  • Return the value of a key from any active energy scoretype in the pose:

    pose.cache.energies[“key”]

Set a score value:
To SimpleMetric data:
  • Set a key/value pair as a CustomRealValueMetric or CustomStringValueMetric with automatic type checking:

    pose.cache[“key”] = value pose.cache.metrics[“key”] = value

  • Set a key/value pair as a CustomRealValueMetric:

    pose.cache.metrics.real[“key”] = value

  • Set a key/value pair as a CustomStringValueMetric:

    pose.cache.metrics.string[“key”] = value

To arbitrary extra score data:
  • Set a key/value pair as an arbitrary extra float or string score with automatic type checking:

    pose.cache.extra[“key”]

  • Set a key/value pair as an arbitrary extra real score:

    pose.cache.extra.real[“key”]

  • Set a key/value pair as an arbitrary extra string score:

    pose.cache.extra.string[“key”]

Delete data:
  • Clear all cached score data:

    pose.cache.clear()

  • Clear all SimpleMetric data:

    pose.cache.metrics.clear()

  • Clear all arbitrary extra float and string score data:

    pose.cache.extra.clear()

  • Clear a single key/value pair:

    pose.cache.pop(“key”) pose.cache.metrics.pop(“key”) pose.cache.metrics.real.pop(“key”) pose.cache.metrics.string.pop(“key”) pose.cache.extra.pop(“key”)

@klimaj

_CustomTypeMetric

alias of CustomTypeMetric

_abc_impl = <_abc._abc_data object>
_clobber_warning(msg)

Issue a ClobberWarning warning with a message.

_custom_type_metrics = {'bool': CustomTypeMetric(type=<class 'bool'>, prefix='[CustomBooleanValueMetric]', encode_func=<class 'str'>, decode_func=<function PoseScoreSerializerBase.bool_from_str>), 'bytes': CustomTypeMetric(type=<class 'bytes'>, prefix='[CustomBinaryValueMetric]', encode_func=<function PoseScoreSerializerBase.to_base64>, decode_func=<function PoseScoreSerializerBase.from_base64>), 'int': CustomTypeMetric(type=<class 'int'>, prefix='[CustomDiscreteValueMetric]', encode_func=<class 'str'>, decode_func=<class 'int'>), 'object': CustomTypeMetric(type=<class 'object'>, prefix='[CustomArbitraryValueMetric]', encode_func=<function PoseScoreSerializerBase.to_base64_pickle>, decode_func=<function PoseScoreSerializerBase.from_base64_pickle>)}
_get_sm_data_dict(attributes)
_has_reserved_custom_metric_keys()
_maybe_delete_keys_from_sm_data(keys=None, attributes=None)

Cache, clear, and restore all SimpleMetric data except the provided keys in the provided SimpleMetricDataAccessor attributes. This is necessary to delete one or more keys, since clear_sm_data clears all SimpleMetric data.

_maybe_delete_reserved_keys_from_sm_data()

CustomRealValueMetric and CustomStringValueMetric can save the extra default keys “custom_real_valued_metric” or “custom_string_valued_metric” because pose.cache.metrics does not set a ‘custom_type’ parameter when setting SimpleMetric data. This method aims to delete these extra default keys if they were created and we can delete them.

_repr_pretty_(p, cycle)

IPython-display representation.

property _reserved

Reserved scoretype keys that cannot be set or deleted.

property _reserved_custom_metric_keys

Reserved scoretype keys for SimpleMetrics that cannot be set or deleted.

_reserved_custom_metric_keys_warning()

Warn that reserved custom metric keys were added to the data cache.

_reserved_types = (<class 'str'>, <class 'float'>)
property _sm_data_accessor_attrs

Supported SimpleMetricDataAccessor attributes to reset after clear_sm_data.

property _unsupported_sm_data_accessor_attrs

Unsupported SimpleMetricDataAccessor attributes that cannot be reset after clear_sm_data.

_validate_del(key)

Validate that a key can be deleted.

_validate_set(key)

Validate that a key can be set.

property all

Get all cached score data.

This method aims to mimic data override precedences used in the legacy pose.scores dictionary:
  1. pose.energies().active_total_energies()

  2. ScoreMap.get_arbitrary_score_data_from_pose(pose)

  3. ScoreMap.get_arbitrary_string_data_from_pose(pose)

Data override precedences as defined in ScoreMap::add_arbitrary_score_data_from_pose:
  1. SimpleMetric data

  2. Arbitrary extra float scores

Data override precedences as defined in ScoreMap::add_arbitrary_string_data_from_pose:
  1. SimpleMetric data

  2. Arbitrary extra string scores

property all_keys

Return a tuple of all score data keys.

property all_scores

Return a nested dictionary of all score data.

apply(metric, key, value)

Apply a SimpleMetric with a key/value pair to the pose.

assert_unique_keys()

Assert that Pose.cache.all_keys returns all unique keys.

static bool_from_str(value)
clear()

Clear pose energies, extra scores, and SimpleMetric data.

property energies
property extra
static from_base64(value)
static from_base64_pickle(value)
static from_pickle(value)
get(k[, d]) D[k] if k in D, else d.  d defaults to None.
items() a set-like object providing a view on D's items
keys() a set-like object providing a view on D's keys
static maybe_decode(value)

Deserialize the input value if it’s serialized.

static maybe_encode(value)

Serialize the input value into a str object if it’s not a str or float object.

property metrics
pop(k[, d]) v, remove specified key and return the corresponding value.

If key is not found, d is returned if given, otherwise KeyError is raised.

popitem() (k, v), remove and return some (key, value) pair

as a 2-tuple; but raise KeyError if D is empty.

pose
setdefault(k[, d]) D.get(k,d), also set D[k]=d if k not in D
static to_base64(value)
static to_base64_pickle(value)
static to_pickle(value)
update([E, ]**F) None.  Update D from mapping/iterable E and F.

If E present and has a .keys() method, does: for k in E: D[k] = E[k] If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v In either case, this is followed by: for k, v in F.items(): D[k] = v

values() an object providing a view on D's values