biocrnpyler.components.combinatorial_conformation

Classes

CombinatorialConformation(final_states[, ...])

A class to represent a PolymerConformation (made of one unique OrderedPolymerSpecies) with many internal Complexes which can bind and unbind in many different ways.

CombinatorialConformationPromoter(...[, ...])

A combinatorial conformaiton with an additional set of states "expressing_states" which can transcribe/express rna/protein products.

class biocrnpyler.components.combinatorial_conformation.CombinatorialConformation(final_states, initial_states=None, intermediate_states=None, excluded_states=None, state_part_ids=None, name=None, **keywords)[source]

A class to represent a PolymerConformation (made of one unique OrderedPolymerSpecies) with many internal Complexes which can bind and unbind in many different ways.

Binding reactions will be generated to form all PolymerConformations in final_states from all the PolymerConformations in initial_states. There must be a single, unique, OrderedPolymerSpecies in all the conformations. Intermediate states restricts the binding reactions to first form PolymerConformations in this list. At a high level this generates the following reactions:

intial_states <-[Combinatorial Binding]-> final_states

if intermediate_states are given:

intial_states <-[Combinatorial Binding]-> intermediate_states <-[Combinatorial Binding]->final_states

Unlike CombinatorialComplex where Species are added individual, in CombinatorialConformation, groups of Species are added in single steps to produce the appropriate Complexes.

Parameters:
  • final_states – one or more PolymerConformations.

  • initial_states – a list of initial PolymerConformations which can bind/unbind to become the final_state

  • intermediate_states – a list of intermediate PolymerConformations formed when converting initial_states to final_states. If None, all possible intermediate PolymerConformations are enumerated.

  • excluded_states – a list of intermediate PolymerConformations which will not be formed during enumeration. if None: no intermediates will be excluded.

  • state_part_ids – a dictionary {PolymerConformation : str} used to generate shorter part-ids for this conformation

add_mechanism(mechanism: Mechanism, mech_type=None, overwrite=False, optional_mechanism=False)[source]

adds a mechanism of type mech_type to the Component Mechanism dictionary.

Parameters:
  • mechanism

  • mech_type

  • overwrite – toggles whether the mechanism is added overwriting any mechanism with the same key.

  • optional_mechanism – toggles whether an error is thrown if a Mechanism is added that conflicts with an exising Mechanism

Returns:

add_mechanisms(mechanisms: Mechanism | GlobalMechanism, overwrite=False, optional_mechanism=False)[source]

This function adds a list or dictionary of mechanisms to the mixture.

Parameters:
  • mechanisms – Can take both GlobalMechanisms and Mechanisms

  • overwrite – toggles whether the mechanism is added overwriting any mechanism with the same key.

  • optional_mechanism – toggles whether an error is thrown if a Mechanism is added that conflicts with an exising Mechanism

Returns:

property compartment

The compartment of the Component.

Returns:

Compartment

enumerate_components(**keywords) List[source]

this is for component enumeration. Usually you will return a list of components that are copies of existing ones (first list) and new components (second list). For example, A DNA_construct makes a list of copies of its parts as the first output, and a list of RNA_constructs as the second output. An RNA_construct will make a list of copies of its parts as the first output, and a list of Protein components as its second output (if it makes any proteins)

get_combinations_between(s0, sf)[source]

Returns a list of

get_mechanism(mechanism_type, optional_mechanism=False)[source]

Searches the Component for a Mechanism of the correct type.

If the Component does not have the mechanism, searches the Components’ Mixture for the Mechanism.

Parameters:
  • mechanism_type

  • optional_mechanism – toggles whether an error is thrown if no mechanism is found

Returns:

get_parameter(param_name: str, part_id=None, mechanism=None, return_numerical=False, return_none=False, check_mixture=True) Parameter | Real[source]

Get a parameter from different objects that hold parameters.

Hierarchy:
  1. tries to find the Parameter in Component.parameter_database

  2. tries to find the parameter in Component.mixture.parameter_database

Parameters:
  • param_name

  • part_id

  • mechanism

  • return_numerical – numerical value or the parameter object is returned

  • return_none – returns None instead of throwing an error if a parameter isn’t found

  • check_mixture – toggle whether or not to check the Component’s Mixture as well

Returns:

Parameter object or a Real number

get_species()[source]

The subclasses should implement this method!

Returns:

None

set_mixture(mixture) None[source]

Set the mixture the Component is in.

Parameters:

mixture

Returns:

None

classmethod set_species(species: Species | str, material_type=None, compartment=None, attributes=None) Species[source]

Helper function that allows species to be set from strings, species, or Components

Parameters:
  • species – Species, str, Component

  • material_type

  • compartment

  • attributes

Returns:

Species

update_parameters(parameter_file=None, parameters=None, parameter_database=None, overwrite_parameters=True)[source]

Updates the ParameterDatabase inside a Component

Possible inputs:

parameter_file (string) parameters (dict) parameter_database (ParameterDatabase)

update_reactions()[source]

The subclasses should implement this method!

Returns:

empty list

update_species()[source]

The subclasses should implement this method!

Returns:

empty list

class biocrnpyler.components.combinatorial_conformation.CombinatorialConformationPromoter(promoter_states, promoter_location, promoter_states_on=True, activating_complexes=None, inactivating_complexes=None, name='CombinatorialConformationPromoter', **keywords)[source]

A combinatorial conformaiton with an additional set of states “expressing_states” which can transcribe/express rna/protein products. This class merges Promoter and CombinatorialConformation.

param promoter_states:

one or more PolymerConformations which are used by the promoter class

param promoter_states_on:

True/False if True all promoter_states are transcribable. If False all states except promoter_states are transcribable

param promoter_location:

the index of the monomer in the PolymerConformation which represents the promoter

param final_states:

one or more PolymerConformations.

param initial_states:

a list of initial PolymerConformations which can bind/unbind to become the final_state

param intermediate_states:

a list of intermediate PolymerConformations formed when converting initial_states to final_states. If None, all possible intermediate PolymerConformations are enumerated.

param excluded_states:

a list of intermediate PolymerConformations which will not be formed during enumeration. if None: no intermediates will be excluded.

param state_part_ids:

a dictionary {PolymerConformation : str} used to generate shorter part-ids for this conformation

param activating_complexes:

a list of ComplexSpecies which activate PolymerConformations allowing them to be transcribed.

param inactivating_complexes:

a list of ComplexSpecies which innactive the PolymerConformation, preventing transcription.

Binding reactions will be generated to form all PolymerConformations in final_states from all the PolymerConformations in initial_states. There must be a single, unique, OrderedPolymerSpecies in all the conformations. Intermediate states restricts the binding reactions to first form PolymerConformations in this list. At a high level this generates the following reactions:

intial_states <-[Combinatorial Binding]-> final_states

if intermediate_states are given:

intial_states <-[Combinatorial Binding]-> intermediate_states <-[Combinatorial Binding]->final_states

Unlike CombinatorialComplex where Species are added individual, in CombinatorialConformation, groups of Species are added in single steps to produce the appropriate Complexes.

Parameters:
  • final_states – one or more PolymerConformations.

  • initial_states – a list of initial PolymerConformations which can bind/unbind to become the final_state

  • intermediate_states – a list of intermediate PolymerConformations formed when converting initial_states to final_states. If None, all possible intermediate PolymerConformations are enumerated.

  • excluded_states – a list of intermediate PolymerConformations which will not be formed during enumeration. if None: no intermediates will be excluded.

  • state_part_ids – a dictionary {PolymerConformation : str} used to generate shorter part-ids for this conformation

add_mechanism(mechanism: Mechanism, mech_type=None, overwrite=False, optional_mechanism=False)[source]

adds a mechanism of type mech_type to the Component Mechanism dictionary.

Parameters:
  • mechanism

  • mech_type

  • overwrite – toggles whether the mechanism is added overwriting any mechanism with the same key.

  • optional_mechanism – toggles whether an error is thrown if a Mechanism is added that conflicts with an exising Mechanism

Returns:

add_mechanisms(mechanisms: Mechanism | GlobalMechanism, overwrite=False, optional_mechanism=False)[source]

This function adds a list or dictionary of mechanisms to the mixture.

Parameters:
  • mechanisms – Can take both GlobalMechanisms and Mechanisms

  • overwrite – toggles whether the mechanism is added overwriting any mechanism with the same key.

  • optional_mechanism – toggles whether an error is thrown if a Mechanism is added that conflicts with an exising Mechanism

Returns:

clone(position, direction, parent_dna)[source]

this defines where the part is in what piece of DNA

property compartment

The compartment of the Component.

Returns:

Compartment

enumerate_components(**keywords) List[source]

this is for component enumeration. Usually you will return a list of components that are copies of existing ones (first list) and new components (second list). For example, A DNA_construct makes a list of copies of its parts as the first output, and a list of RNA_constructs as the second output. An RNA_construct will make a list of copies of its parts as the first output, and a list of Protein components as its second output (if it makes any proteins)

classmethod from_promoter(name, assembly, transcript, protein)[source]

Helper function to initialize a promoter instance from another promoter or str.

Parameters:
  • name – either string or an other promoter instance

  • assembly

  • transcript

  • protein

Returns:

Promoter instance

get_combinations_between(s0, sf)[source]

Returns a list of

get_mechanism(mechanism_type, optional_mechanism=False)[source]

Searches the Component for a Mechanism of the correct type.

If the Component does not have the mechanism, searches the Components’ Mixture for the Mechanism.

Parameters:
  • mechanism_type

  • optional_mechanism – toggles whether an error is thrown if no mechanism is found

Returns:

get_orphan()[source]

returns a copy of this monomer, except with no parent. But it still has a position and direction

get_parameter(param_name: str, part_id=None, mechanism=None, return_numerical=False, return_none=False, check_mixture=True) Parameter | Real[source]

Get a parameter from different objects that hold parameters.

Hierarchy:
  1. tries to find the Parameter in Component.parameter_database

  2. tries to find the parameter in Component.mixture.parameter_database

Parameters:
  • param_name

  • part_id

  • mechanism

  • return_numerical – numerical value or the parameter object is returned

  • return_none – returns None instead of throwing an error if a parameter isn’t found

  • check_mixture – toggle whether or not to check the Component’s Mixture as well

Returns:

Parameter object or a Real number

get_species()[source]

The subclasses should implement this method!

Returns:

None

set_mixture(mixture) None[source]

Set the mixture the Component is in.

Parameters:

mixture

Returns:

None

classmethod set_species(species: Species | str, material_type=None, compartment=None, attributes=None) Species[source]

Helper function that allows species to be set from strings, species, or Components

Parameters:
  • species – Species, str, Component

  • material_type

  • compartment

  • attributes

Returns:

Species

unclone()[source]

removes the current part from anything

update_component(internal_species=None, **keywords)[source]

returns a copy of this component, except with the proper fields updated

update_parameters(parameter_file=None, parameters=None, parameter_database=None, overwrite_parameters=True)[source]

Updates the ParameterDatabase inside a Component

Possible inputs:

parameter_file (string) parameters (dict) parameter_database (ParameterDatabase)

update_reactions()[source]

The subclasses should implement this method!

Returns:

empty list

update_species()[source]

The subclasses should implement this method!

Returns:

empty list