ecoli.processes.chromosome_structure

Chromosome Structure

  • Resolve collisions between molecules and replication forks on the chromosome.

  • Remove and replicate promoters and motifs that are traversed by replisomes.

  • Reset the boundaries and linking numbers of chromosomal segments.

class ecoli.processes.chromosome_structure.ChromosomeStructure(parameters=None)[source]

Bases: Step

Chromosome Structure Process

_compute_new_segment_attributes(old_boundary_molecule_indexes, old_boundary_coordinates, old_linking_numbers, new_molecule_indexes, new_molecule_coordinates, spans_oriC, spans_terC)[source]

Calculates the updated attributes of chromosomal segments belonging to a specific chromosomal domain, given the previous and current coordinates of molecules bound to the chromosome.

Parameters:
  • old_boundary_molecule_indexes (ndarray[int]) – (N, 2) array of unique indexes of molecules that formed the boundaries of each chromosomal segment in the previous timestep.

  • old_boundary_coordinates (ndarray[int]) – (N, 2) array of chromosomal coordinates of molecules that formed the boundaries of each chromosomal segment in the previous timestep.

  • old_linking_numbers (ndarray[int]) – (N,) array of linking numbers of each chromosomal segment in the previous timestep.

  • new_molecule_indexes (ndarray[int]) – (N,) array of unique indexes of all molecules bound to the domain at the current timestep.

  • new_molecule_coordinates (ndarray[int]) – (N,) array of chromosomal coordinates of all molecules bound to the domain at the current timestep.

  • spans_oriC (bool) – True if the domain spans the origin.

  • spans_terC (bool) – True if the domain spans the terminus.

Returns:

Dictionary of the following format:

{
    'boundary_molecule_indexes': (M, 2) array of unique
        indexes of molecules that form the boundaries of new
        chromosomal segments,
    'boundary_coordinates': (M, 2) array of chromosomal
        coordinates of molecules that form the boundaries of
        new chromosomal segments,
    'linking_numbers': (M,) array of linking numbers of new
        chromosomal segments
}

Return type:

dict[str, ndarray[int]]

defaults: Dict[str, Any]
{   'RNA_sequences': [],
    'active_tfs': [],
    'amino_acids': [],
    'calculate_superhelical_densities': False,
    'emit_unique': False,
    'fragmentBases': [],
    'inactive_RNAPs': [],
    'n_TFs': 1,
    'n_TUs': 1,
    'n_amino_acids': 1,
    'n_fragment_bases': 1,
    'no_child_place_holder': -1,
    'ppi': 'ppi',
    'protein_sequences': [],
    'relaxed_DNA_base_pairs_per_turn': 1,
    'replichore_lengths': [0, 0],
    'ribosome_30S_subunit': '30S',
    'ribosome_50S_subunit': '50S',
    'seed': 0,
    'terC_index': 1,
    'water': 'water'}
name = 'ecoli-chromosome-structure'
next_update(timestep, states)[source]
ports_schema()[source]
topology
{   'DnaA_boxes': ('unique', 'DnaA_box'),
    'RNAs': ('unique', 'RNA'),
    'active_RNAPs': ('unique', 'active_RNAP'),
    'active_replisomes': ('unique', 'active_replisome'),
    'active_ribosome': ('unique', 'active_ribosome'),
    'bulk': ('bulk',),
    'chromosome_domains': ('unique', 'chromosome_domain'),
    'full_chromosomes': ('unique', 'full_chromosome'),
    'genes': ('unique', 'gene'),
    'global_time': ('global_time',),
    'listeners': ('listeners',),
    'next_update_time': ('next_update_time', 'chromosome_structure'),
    'oriCs': ('unique', 'oriC'),
    'promoters': ('unique', 'promoter'),
    'timestep': ('timestep',)}
update_condition(timestep, states)[source]

See update_condition().