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[Any, dtype[int64]]) – (N, 2) array of unique indexes of molecules that formed the boundaries of each chromosomal segment in the previous timestep.

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

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

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

  • new_molecule_coordinates (ndarray[Any, dtype[int64]]) – (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[Any, dtype[int64]]]

defaults: Dict[str, Any] = {'active_tfs': [], 'amino_acids': [], 'calculate_superhelical_densities': False, 'emit_unique': False, 'fragmentBases': [], 'inactive_RNAPs': [], 'mature_rna_end_positions': [], 'mature_rna_ids': [], 'mature_rna_nt_counts': [], 'n_TFs': 1, 'n_TUs': 1, 'n_amino_acids': 1, 'n_fragment_bases': 1, 'n_mature_rnas': 0, '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', 'rna_ids': [], 'rna_sequences': [], 'seed': 0, 'terC_index': -1, 'time_step': 1.0, 'unprocessed_rna_index_mapping': {}, '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',), 'chromosomal_segments': ('unique', 'chromosomal_segment'), '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().

ecoli.processes.chromosome_structure.get_last_known_replisome_data(boundary_coordinates, boundary_molecule_indexes, replisome_coordinates, replisome_molecule_indexes)[source]

Gets the last known coordinates and molecule indexes of both replisomes for a chromosome domain.

Parameters:
  • boundary_coordinates (ndarray) – (N, 2) array of chromosomal coordinates of all boundary molecules in the domain during the last time step.

  • boundary_molecule_indexes (ndarray) – (N, 2) array of unique indexes of all boundary molecules in the domain during the last time step.

  • replisome_coordinates (ndarray) – (1,) or (0,) array of chromosomal coordinates of the replisomes in the domain in the current time step.

  • replisome_molecule_indexes (ndarray) – (1,) or (0,) array of unique indexes of the replisomes in the domain in the current time step.

Returns:

Tuple of the following format:

(
    (2,) array of last known replisome coordinates in domain,
    (2,) array of last known replisome molecule indexes in domain
)

Return type:

tuple[ndarray, ndarray]