pykappa.pattern¶
Classes
|
Represents an agent with a type and collection of sites. |
|
A set of agents that are all in the same connected component. |
Dictionary representing a mapping from pattern agents to mixture agents. |
|
|
A pattern consisting of multiple agents, some of which may be None (empty slots). |
|
Represents a site on an agent with state and binding partner information. |
|
- class pykappa.pattern.Agent(type, sites)[source]¶
Represents an agent with a type and collection of sites.
- Parameters:
type (str)
sites (Iterable[Site])
- type¶
Type name of the agent.
- interface¶
Dictionary mapping site labels to Site objects.
- property depth_first_traversal: list[Self]¶
Perform depth-first traversal starting from this agent.
- embeds_in(other)[source]¶
Check whether self as a pattern matches other as a concrete agent.
- Parameters:
other (Self)
- Return type:
bool
- classmethod from_kappa(kappa_str)[source]¶
Parse a single agent from a Kappa string.
- Raises:
AssertionError – If the string doesn’t describe exactly one agent.
- Parameters:
kappa_str (str)
- Return type:
Self
- property instantiable: bool¶
Check if this agent pattern can be instantiated.
- isomorphic(other)[source]¶
Check if two Agents are equivalent locally, ignoring partners.
Note
Doesn’t assume agents of the same type will have the same site signatures.
- Parameters:
other (Self)
- Return type:
bool
- property kappa_str¶
The agent representation in Kappa format.
- property neighbors: list[Self]¶
The agents directly connected to this one.
- property underspecified: bool¶
Check if a concrete Agent can be created from this pattern.
- class pykappa.pattern.Component(agents, n_copies=1)[source]¶
A set of agents that are all in the same connected component.
Note
Connectedness is not guaranteed statically and must be enforced.
- Parameters:
agents (IndexedSet[Agent])
n_copies (int)
- agents: IndexedSet[Agent]¶
- property diameter: int¶
Get the maximum minimum shortest path between any two agents.
- classmethod from_kappa(kappa_str)[source]¶
Parse a single component from a Kappa string.
- Raises:
AssertionError – If the pattern doesn’t represent exactly one component.
- Parameters:
kappa_str (str)
- Return type:
Self
- isomorphic(other)[source]¶
Check if two components are isomorphic.
- Parameters:
other (Self)
- Return type:
bool
- isomorphisms(other)[source]¶
Find bijections which respect links in the site graph.
Checks for bijections ensuring that any internal site state specified in one component exists and is the same in the other.
Note
Handles isomorphism generally, between instantiated components in a mixture and potentially between rule patterns.
- property kappa_str: str¶
The component representation in Kappa format.
- property n_automorphisms: int¶
Returns the number of automorphisms (i.e. isomorphisms onto itself) of the component.
Note
This uses a cached result, and thus should only be used for static components, i.e. the ones in rules and observables. Do not use this for components in a mixture that can change.
- n_copies: int¶
- class pykappa.pattern.Embedding[source]¶
Dictionary representing a mapping from pattern agents to mixture agents.
- class pykappa.pattern.Pattern(agents)[source]¶
A pattern consisting of multiple agents, some of which may be None (empty slots).
- Parameters:
agents (list[Agent | None])
- agents¶
List of agents, where None represents empty slots in rules.
- Type:
list[pykappa.pattern.Agent | None]
- static agents_to_kappa_str(agents)[source]¶
Convert a collection of agents to Kappa string representation.
- Parameters:
agents (Iterable[Agent | None])
- Return type:
str
- classmethod from_kappa(kappa_str)[source]¶
Parse a pattern from a Kappa string.
- Parameters:
kappa_str (str) – Kappa string describing a pattern.
- Returns:
Parsed Pattern object.
- Raises:
AssertionError – If the string doesn’t describe exactly one pattern.
- Return type:
Self
- property kappa_str: str¶
The pattern representation in Kappa format.
- n_isomorphisms(other)[source]¶
Counts the number of bijections which respect links in the site graph.
Note
Runtime is exponential in the number of components; use with caution.
- Parameters:
other (Self)
- Return type:
int
- property underspecified: bool¶
Check if any agents in the pattern are underspecified.
- class pykappa.pattern.Site(label, state, partner)[source]¶
Represents a site on an agent with state and binding partner information.
- agent¶
The agent this site belongs to (set after initialization).
- Type:
- label¶
Name of the site.
- state¶
Internal state of the site.
- partner¶
Binding partner specification.
- property bound: bool¶
Check if the site is bound.
- property coupled: bool¶
Check if the site is coupled to a specific other site.
- embeds_in(other)[source]¶
Check whether self as a pattern matches other as a concrete site.
- Parameters:
other (Self)
- Return type:
bool
- property kappa_partner_str: str¶
- property kappa_state_str: str¶
- property kappa_str: str¶
The site representation in Kappa format.
- property stated: bool¶
Check if the site has a specific internal state.
- property underspecified: bool¶
Check if a concrete Site can be created from this pattern.
- property undetermined: bool¶
Check if the site is in a state equivalent to leaving it unnamed in an agent.