simularium_readdy_models.actin package¶
Submodules¶
simularium_readdy_models.actin.actin_analyzer module¶
- class simularium_readdy_models.actin.actin_analyzer.ActinAnalyzer[source]¶
Bases:
object
Analyze data from a ReaDDy actin trajectory
- static analyze_average_for_series(data)[source]¶
Get a list of the average per item of the given 2D data
- static analyze_branch_angles(monomer_data, box_size, periodic_boundary)[source]¶
Get a list of the angles between mother and daughter filaments at each branch point in each frame of the trajectory
- static analyze_daughter_filament_lengths(monomer_data)[source]¶
Get a list of the number of monomers in each daughter filament in each frame of the trajectory
- static analyze_filament_straightness(monomer_data, box_size, periodic_boundary)[source]¶
Get a list of the distances from each actin axis position to the ideal axis position on each filament in each frame of the trajectory
- static analyze_free_actin_concentration_over_time(monomer_data, box_size)[source]¶
Get an array of the concentration of free actin at each step
- static analyze_lateral_bond_lengths(monomer_data, box_size, periodic_boundary)[source]¶
Get the distance between bonds along the first mother filament, normalized to the ideal distance, trace the explicit lateral bonds
- static analyze_long_helix_pitches(monomer_data, box_size, periodic_boundary)[source]¶
Get a list of the pitch of long helices between all actins on each filament in each frame of the trajectory
- static analyze_longitudinal_bond_lengths(monomer_data, box_size, periodic_boundary)[source]¶
Get the distance between bonds along the first mother filament, normalized to the ideal distance, trace the implicit longitudinal bonds
- static analyze_mother_filament_lengths(monomer_data)[source]¶
Get a list of the number of monomers in each mother filament in each frame of the trajectory
- static analyze_pointed_end_displacement(monomer_data, box_size, periodic_boundary)[source]¶
Get the distance the pointed end has moved since it’s initial position over the time course of a simulation
- static analyze_ratio_of_bound_ATP_actin_to_total_actin(monomer_data)[source]¶
Get a list of the ratio of bound ATP-actin to total actin over time
- static analyze_ratio_of_bound_to_total_arp23(monomer_data)[source]¶
Get a list of the ratio of bound to total arp2/3 complexes over time
- static analyze_ratio_of_capped_ends_to_total_ends(monomer_data)[source]¶
Get a list of the ratio of barbed ends capped with capping protein to all barbed ends over time
- static analyze_ratio_of_daughter_to_total_actin(monomer_data)[source]¶
Get a list of the ratio [daughter filament actin] / [total actin] over time
- static analyze_ratio_of_filamentous_to_total_actin(monomer_data)[source]¶
Get a list of the ratio of actin in filaments to total actin over time
- static analyze_reaction_rate_over_time(reactions, time_inc_s, reaction_name)[source]¶
Get a list of the reaction rate per second at each analyzed timestep of the given reaction
- static analyze_short_helix_pitches(monomer_data, box_size, periodic_boundary)[source]¶
Get a list of the pitch of short helices between all actins on each filament in each frame of the trajectory
- static analyze_stddev_for_series(data)[source]¶
Get a list of the std deviation per item of the given 2D data
simularium_readdy_models.actin.actin_generator module¶
- class simularium_readdy_models.actin.actin_generator.ActinGenerator[source]¶
Bases:
object
Generates positions, types, and edges for monomers in actin networks
- static add_bound_arp_monomers(particle_ids, fiber, actin_arp_ids, particles={})[source]¶
add positions, types, and edges for a bound arp2 and arp3
- static attach_daughter_fiber_to_mother_fiber(nucleated_arp, junction_ids, these_actin_arp_ids, mother_particle_ids, all_actin_arp_ids, second_daughter_actin_id, mother_fiber, particles={})[source]¶
attach daughter fiber monomers to their mother fiber monomers
- static check_shift_branch_actin_numbers(particles, particle_ids)[source]¶
if the first actin’s number is not 2, shift the branch’s actin numbers so that it is
- static get_actin_number(actin_number, offset)[source]¶
get the type number for an actin plus the given offset in range [-1, 1] (i.e. return 3 for type = “actin#ATP_1” and offset = -1)
- static get_actins_for_linear_fiber(fiber, start_normal, start_axis_pos, direction, offset_vector, pointed_actin_number, particles={})[source]¶
get actin monomer data pointed to barbed for a fiber with no daughter branches
- static get_cropped_fibers(fibers_data, min_extent, max_extent, position_offset=None)[source]¶
crop the fiber data to a cube volume defined by min_extent and max_extent and apply the position_offset
fibers_data: List[FiberData] (FiberData for mother fibers only, which should have their daughters’ FiberData attached to their nucleated arps)
# TODO handle daughter fiber connections
- static get_extents(child_box_center, child_box_size)[source]¶
get the min and max extents within the coordinates defined by a parent box of a child box defined by center and size
- static get_intersection_point_with_extents(point1, point2, min_extent, max_extent, direction=1)[source]¶
get the point where the line segment between the given positions intersects the bounds volume, assume bounds are a rectangular prism orthogonal to cartesian grid
- static get_main_monomers_for_fiber(fiber, start_normal, start_axis_pos, offset_vector, pointed_actin_number, particles={})[source]¶
get the main actins for a fiber (i.e. no branches or arps)
- static get_monomers(fibers_data, child_box_center=None, child_box_size=None, use_uuids=True)[source]¶
get all the monomer data for the (branched) fibers in fibers_data
fibers_data: List[FiberData] (FiberData for mother fibers only, which should have their daughters’ FiberData attached to their nucleated arps)
- static get_monomers_for_daughter_fiber(mother_fiber, nucleated_arp, offset_vector, particles={})[source]¶
get any bound arps and any daughter fibers attached to this fiber
- static get_monomers_for_fiber(fiber, start_normal, start_axis_pos, offset_vector, pointed_actin_number, particles={})[source]¶
get the main actins for a fiber as well as any bound arps and daughter fibers
- static get_neighbor_actin_id(particle_id, direction, particles)[source]¶
get the id for an actin’s actin neighbor in the given direction
- static get_nucleated_arp_monomer_positions(mother_fiber, nucleated_arp)[source]¶
get actin positions pointed to barbed for a branch
- static get_point_on_plane_of_intersecting_extent(point1, point2, min_extent, max_extent, direction)[source]¶
get a point (which is also the normal) of the extent plane intersected by the line segment between the given points, assume bounds are a rectangular prism orthogonal to cartesian grid
- static position_is_in_bounds(position, min_extent, max_extent)[source]¶
check if a position is within the given extents
- static remove_mid_from_actin(particle_id, particles)[source]¶
remove the “mid” flag in the actin type_name for the monomer with particle_id
- static remove_mother_mid_at_junction(actin_arp_ids, particles={})[source]¶
remove “mid” flags from actins near a branch junction, including the actin bound to arp2, the actin bound to arp3, as well as one actin before and two actins after the arps on the mother filament
simularium_readdy_models.actin.actin_reactions module¶
simularium_readdy_models.actin.actin_simulation module¶
- class simularium_readdy_models.actin.actin_simulation.ActinSimulation(parameters, record=False, save_checkpoints=False)[source]¶
Bases:
object
Creates a ReaDDy branched actin simulation
Ref: http://jcb.rupress.org/content/jcb/180/5/887.full.pdf
Params = Dict[str, float] keys: total_steps, timestep, box_size, temperature_C, viscosity, force_constant, reaction_distance, n_cpu, actin_concentration, arp23_concentration, cap_concentration, seed_n_fibers, seed_fiber_length, actin_radius, arp23_radius, cap_radius, dimerize_rate, dimerize_reverse_rate, trimerize_rate, trimerize_reverse_rate, pointed_growth_ATP_rate, pointed_growth_ADP_rate, pointed_shrink_ATP_rate, pointed_shrink_ADP_rate, barbed_growth_ATP_rate, barbed_growth_ADP_rate, nucleate_ATP_rate, nucleate_ADP_rate, barbed_shrink_ATP_rate, barbed_shrink_ADP_rate, arp_bind_ATP_rate, arp_bind_ADP_rate, arp_unbind_ATP_rate, arp_unbind_ADP_rate, barbed_growth_branch_ATP_rate, barbed_growth_branch_ADP_rate, debranching_ATP_rate, debranching_ADP_rate, cap_bind_rate, cap_unbind_rate, hydrolysis_actin_rate, hydrolysis_arp_rate, nucleotide_exchange_actin_rate, nucleotide_exchange_arp_rate, verbose
- add_constraints()[source]¶
Add geometric constraints for connected actin particles, including bonds, angles, and repulsions, to the ReaDDy system
- add_crystal_structure_monomers()[source]¶
Add monomers exactly from the branched actin crystal structure
- add_fibers_from_data(fibers_data, use_uuids=True)[source]¶
Add fibers specified in a list of FiberData
fiber_data: List[FiberData] (FiberData for mother fibers only, which should have their daughters’ FiberData attached to their nucleated arps)
- add_monomers_from_data(monomer_data)[source]¶
Add fibers and monomers specified in the monomer_data, in the form: monomer_data = {
- “topologies”: {
- [topology ID]{
“type_name”: “[topology type]”, “particle_ids”: [],
},
}, “particles”: {
- [particle ID]{
“type_name”: “[particle type]”, “position”: np.zeros(3), “neighbor_ids”: [],
},
},
} * IDs are ints
- add_particle_types()[source]¶
Add particle and topology types for actin particles to the ReaDDy system
- add_random_linear_fibers(use_uuids=True)[source]¶
Add randomly distributed and oriented linear fibers
- add_random_monomers()[source]¶
Add randomly distributed actin monomers, Arp2/3 dimers, and capping protein according to concentrations and box size
- create_actin_system()[source]¶
Create the ReaDDy system for actin including particle types, constraints, and reactions
- get_current_monomers()[source]¶
During a running simulation, get data for topologies of particles from readdy.simulation.current_topologies as monomers
simularium_readdy_models.actin.actin_structure module¶
- class simularium_readdy_models.actin.actin_structure.ActinStructure[source]¶
Bases:
object
- Measurements are from Chimera:
load PDB 7AQK as model #0
duplicate it as model #1
from command line run: matchmaker #0:.k #1:.l to align copied second mother actin to original pointed mother actin
run: measure rotation #0 #1 to measure mother axis
duplicate model #0 as model #3
from command line run: matchmaker #0:.h #3:.i to align copied second daughter actin to original first branch daughter actin
run: measure rotation #0 #3 to measure daughter axis
run: measure center #0:.[chain ID] for a = arp3, b = arp2, [h,i,j] = daughter actin, [k, l, m, n, o, p, q, r] = mother actin
find these values in the output from the measure commands (spatial values are multiplied by 0.1 from Angstroms to nm, angle values are in degrees)
- actin_to_actin_angle_degrees = -166.94847751999998¶
- actin_to_actin_axis_distance = 2.803098763¶
- arp2_position = array([28.087, 30.872, 26.657])¶
- arp3_position = array([29.275, 27.535, 23.944])¶
- static branch_positions()[source]¶
get the points on the mother and daughter axes that are closest to each other
- daughter_axis_direction = array([ 0.31037692, 0.94885799, -0.05774669])¶
- daughter_axis_point = array([18.64014053, 0. , 27.03232566])¶
- daughter_positions = array([[29.821, 33.088, 23.356], [30.476, 36.034, 26.528], [30.897, 38.584, 23.014]])¶
- mother_axis_direction = array([ 0.99873035, 0.01436705, -0.04828331])¶
- mother_axis_point = array([ 0. , 22.18613682, 28.27390559])¶
- mother_positions = array([[19.126, 20.838, 27.757], [21.847, 24.171, 27.148], [24.738, 20.881, 26.671], [27.609, 24.061, 27.598], [30.382, 21.19 , 25.725], [33.374, 23.553, 27.951], [36.075, 21.642, 25.06 ], [39.005, 22.861, 27.97 ]])¶
simularium_readdy_models.actin.actin_test_data module¶
simularium_readdy_models.actin.actin_util module¶
- class simularium_readdy_models.actin.actin_util.ActinUtil(parameters, displacements=None)[source]¶
Bases:
object
Utility functions for ReaDDy branched actin models
Parameters need to be accessible in ReaDDy callbacks which can’t be instance methods, so parameters are global
- static add_actin_nucleotide_exchange_reaction(system)[source]¶
exchange ATP for ADP in free actin monomers
- static add_arp23_nucleotide_exchange_reaction(system)[source]¶
exchange ATP for ADP in free Arp2/3 dimers
- static add_barbed_shrink_reaction(system)[source]¶
remove a monomer from the barbed end of a filament
- static add_box_potential(particle_types, origin, extent, force_constant, system)[source]¶
add a box potential to keep the given particle types inside a box centered at origin with extent
- static add_branch_bonds(force_constant, system, util)[source]¶
add bonds between arp2, arp3, and actins
- static add_cap_types(system, diffCoeff)[source]¶
add particle and topology types for capping protein
- static add_fibers_from_data(simulation, fibers_data, use_uuids=True)[source]¶
add (branched) actin fiber(s)
fibers_data : List[FiberData]
- static add_filament_twist_angles(force_constant, system, util)[source]¶
add angles for filament twist and cohesiveness
- static add_filament_twist_dihedrals(force_constant, system, util)[source]¶
add dihedrals for filament twist and cohesiveness
- static add_monomer_box_potentials(system)[source]¶
Confine free monomers to boxes centered at origin with extent
- static add_monomers_from_data(simulation, monomer_data)[source]¶
add actin and other monomers
- monomer_data{
- “topologies”: {
- “[topology ID]”{
“type_name”: “[topology type]”, “particle_ids”: []
},
- “particles”: {
- “[particle ID]”{
“type_name”: “[particle type]”, “position”: np.zeros(3), “neighbor_ids”: [],
},
},
} * IDs are uuid strings or ints
- static add_particle_types(particle_types, system, diffCoeff)[source]¶
add the given particle_types to the system
- static add_pointed_growth_reaction(system)[source]¶
attach a monomer to the pointed end of a filament
- static add_pointed_shrink_reaction(system)[source]¶
remove a monomer from the pointed end of a filament
- static add_random_linear_fibers(simulation, n_fibers, length=20, use_uuids=True)[source]¶
add linear actin fibers of the given length
- static add_repulsions(actin_radius, arp23_radius, cap_radius, obstacle_radius, force_constant, system, util)[source]¶
add repulsions
- static add_translate_reaction(system)[source]¶
translate particles by the displacements each timestep
- static check_add_global_box_potential(system)[source]¶
If the boundaries are not periodic, all particles need a box potential to keep them in the box volume
- static check_arp3_attached_to_neighbors(topology, vertex, max_edges, exclude_id=None, last_vertex_id=None)[source]¶
Check if an arp3 is attached to the vertex’s neighbors within max_edges
- static do_debranching(topology, with_ATP)[source]¶
reaction function to detach a branch filament from arp2/3
- static do_finish_grow(topology, barbed)[source]¶
reaction function for the pointed or barbed end growing
- static do_shrink(topology, barbed, atp)[source]¶
remove an (ATP or ADP)-actin from the (barbed or pointed) end
- static get_actin_axis_position(positions, box_size, periodic_boundary=True)[source]¶
get the position on the filament axis closest to an actin positions = [
previous actin position, middle actin position, next actin position
]
- static get_actin_number(topology, vertex, offset)[source]¶
get the type number for an actin plus the given offset in range [-1, 1] (i.e. return 3 for type = “actin#ATP_1” and offset = -1)
- static get_actin_rotation(positions, box_size, periodic_boundary=True)[source]¶
get the difference in the actin’s current orientation compared to the initial orientation as a rotation matrix positions = [prev actin position, middle actin position, next actin position]
- static get_actins_near_branch(topology, recipe, v_actin_arp2, v_actin_arp3)[source]¶
get the 5 mother actins near a branch
- static get_all_actin_particle_types()[source]¶
get particle types for actin
Actin filaments are polymers and to encode polarity,there are 3 polymer types. These are represented as “actin#N” where N is in [1,3]. At branch points, 2 particles arp2 and arp3 join the pointed end of a branch to the side of its mother filament. Spatially, the types are mapped like so:
end + end
- actin#pointed_1 actin#3 actin#2 actin#1 actin#barbed_3
// // || // // // // || // // actin#2 actin#1 || actin#3 actin#2
|| || || arp3 || // || //
- arp2#branched
actin#branch_1 // //
- actin#2
actin#barbed_3
end
- static get_all_fixed_actin_particle_types()[source]¶
get particle types for actins that don’t diffuse
- static get_all_polymer_actin_types(vertex_type)[source]¶
get a list of all numbered versions of a type (e.g. for “actin#ATP” return [“actin#ATP_1”, “actin#ATP_2”, “actin#ATP_3”])
- static get_box_positions(n_particles, particle_type)[source]¶
Get random positions for n particles of the given type either filling the simulation volume box or confined to a sub volume box
- static get_branch_orientation_vertices_and_offset(topology, vertex)[source]¶
get orientation vertices [actin, actin_arp2, actin_arp3] for a new actin within 3 actins of a branch, as well as the offset vector
- static get_new_arp23(topology)[source]¶
get a new arp3 and its unbranched arp2#free neighbor, meaning the arp2/3 dimer has just bound
- static get_next_actin(topology, v_actin, direction, error_if_not_found=False)[source]¶
get the next actin toward the pointed or barbed direction
- static get_position_for_new_vertex(positions, offset_vector)[source]¶
get the offset vector in the local space for the actin at positions[1] positions = [
previous actin position, middle actin position, next actin position
]
- static get_position_for_radial_translation(time_index, monomer_id, monomer_pos, displacement_parameters)[source]¶
- static get_position_for_tangent_translation(time_index, monomer_id, monomer_pos, displacement_parameters)[source]¶
- static get_prev_branch_actin(topology, vertex, last_vertex_id, max_edges)[source]¶
recurse up the chain until first branch actin is found or max_edges is reached
- static get_random_arp2(topology, with_ATP, with_branch)[source]¶
get a random bound arp2 with the given arp3 nucleotide state and with or without a branch attached to the arp2
- static reaction_function_arp23_unbind_ADP(topology)[source]¶
reaction function to dissociate an arp2/3 with ADP from a mother filament
- static reaction_function_arp23_unbind_ATP(topology)[source]¶
reaction function to dissociate an arp2/3 with ATP from a mother filament
- static reaction_function_barbed_shrink_ADP(topology)[source]¶
reaction function to remove an ADP-actin from the barbed end
- static reaction_function_barbed_shrink_ATP(topology)[source]¶
reaction function to remove an ATP-actin from the barbed end
- static reaction_function_cap_unbind(topology)[source]¶
reaction function to detach capping protein from a barbed end
- static reaction_function_cleanup_shrink(topology)[source]¶
reaction function for finishing a reverse polymerization reaction
- static reaction_function_debranching_ADP(topology)[source]¶
reaction function to detach a branch filament from arp2/3 with ADP
- static reaction_function_debranching_ATP(topology)[source]¶
reaction function to detach a branch filament from arp2/3 with ATP
- static reaction_function_finish_arp_bind(topology)[source]¶
reaction function to finish a branching reaction (triggered by a spatial reaction)
- static reaction_function_finish_barbed_grow(topology)[source]¶
reaction function for the barbed end growing
- static reaction_function_finish_cap_bind(topology)[source]¶
reaction function for adding a capping protein
- static reaction_function_finish_pointed_grow(topology)[source]¶
reaction function for the pointed end growing
- static reaction_function_finish_start_branch(topology)[source]¶
reaction function for adding the first actin to an arp2/3 to start a branch
- static reaction_function_hydrolyze_actin(topology)[source]¶
reaction function to hydrolyze a filamentous ATP-actin to ADP-actin
- static reaction_function_nucleotide_exchange_actin(topology)[source]¶
reaction function to exchange ATP for ADP in free actin
- static reaction_function_nucleotide_exchange_arp(topology)[source]¶
reaction function to exchange ATP for ADP in free Arp2/3
- static reaction_function_pointed_shrink_ADP(topology)[source]¶
reaction function to remove an ADP-actin from the pointed end
- static reaction_function_pointed_shrink_ATP(topology)[source]¶
reaction function to remove an ATP-actin from the pointed end
- static reaction_function_reverse_dimerize(topology)[source]¶
reaction function for a dimer falling apart
- static reaction_function_reverse_trimerize(topology)[source]¶
reaction function for removing ATP-actin from a trimer
- static reaction_function_translate(topology)[source]¶
reaction function to translate particles by the displacements
- static set_actin_mid_flag(topology, recipe, vertex, exclude_id=None)[source]¶
if an actin near a reaction is a “mid” actin, add the “mid” flag, otherwise remove it
actin is “mid” unless: - it is pointed, barbed, or branch - it is within 2 neighbors from an actin bound to arp3 - it is neighbor of a pointed or branch actin
- static set_actin_mid_flags_at_new_branch(topology, recipe, v_actin_arp2, v_actin_arp3)[source]¶
Remove the “mid” flag on all the mother actins near a branch nucleation reaction
- static set_actin_mid_flags_at_removed_branch(topology, recipe, v_actin_arp2, v_actin_arp3, v_arp3)[source]¶
set the “mid” state on all the actins near a branch dissociation reaction
- static set_arp23_vertex_position(topology, recipe, v_arp2, v_arp3, v_actin_arp2, v_actin_arp3)[source]¶
set the position of new arp2/3 vertices
simularium_readdy_models.actin.arp_data module¶
- class simularium_readdy_models.actin.arp_data.ArpData(arp_id, position, bound=True, nucleated=False, daughter_fiber=None)[source]¶
Bases:
object
Arp branch nucleator data
- arp_id = -1¶
- assigned = False¶
- bound = False¶
- daughter_fiber = None¶
- distance_from_mother_pointed = inf¶
- get_bound_arp_rotation(mother_fiber, actin_arp2_pos)[source]¶
get the difference in the arp’s current orientation compared to the initial orientation as a rotation matrix
- get_bound_monomer_position(actin_arp2_pos, mother_fiber, monomer_type)[source]¶
get the offset vector in the arp’s local space for the nearby monomers
- get_closest_actin_index(particle_ids, actin_arp_ids, mother_fiber, particles)[source]¶
get the index of the closest actin monomer to the arp position excluding the barbed end (because that monomer would also be bound to this arp)
- get_local_nucleated_monomer_position(v_mother, v_daughter, monomer_type)[source]¶
get the offset vector in the arp’s local space for the nearby monomers
- get_nucleated_arp_rotation(v_mother, v_daughter)[source]¶
get the difference in the arp’s current orientation compared to the initial orientation as a rotation matrix
- nucleated = False¶
- position = None¶
simularium_readdy_models.actin.fiber_data module¶
- class simularium_readdy_models.actin.fiber_data.FiberData(fiber_id, points, type_name='', is_daughter=False, nucleated_arps=None, bound_arps=None)[source]¶
Bases:
object
Fiber network data
points is a List of numpy arrays of shape = 3
- bound_arps = []¶
- fiber_id = -1¶
- get_first_segment_direction()[source]¶
get the direction vector of the first segment of the fiber at the pointed end
- get_index_of_closest_point(position)[source]¶
get the index of the closest fiber point to the given position
- get_index_of_curve_start_point(start_position, reverse=False)[source]¶
get the index of the first fiber point that defines a curve from the nearest position to the start_position optionally starting from the barbed end of the fiber
- get_indices_of_closest_points(position)[source]¶
get the indices of the closest and next closest fiber points to the given position
- get_nearest_position(position)[source]¶
get the nearest position on the fiber line to a given position
- get_nearest_segment_direction(position)[source]¶
get the direction vector of the nearest segment of the fiber
- is_daughter = False¶
- nucleated_arps = []¶
- points = []¶
- points_reversed = None¶
- tangents = []¶
- tangents_reversed = None¶
- type_name = ''¶