ecoli.processes.environment.multibody_physics
Multibody physics process
- class ecoli.processes.environment.multibody_physics.Multibody(parameters=None)[source]
Bases:
Process
Simulates collisions and forces between agent bodies with a multi-body physics engine.
- Ports:
agents
: The store containing all agent sub-compartments. Each agent inthis store has values for location, angle, length, width, mass, thrust, and torque.
- Parameters:
initial_parameters (dict) – Accepts the following configuration keys:
jitter_force – force applied to random positions along agent bodies to mimic thermal fluctuations. Produces Brownian motion.
agent_shape (
str
) – agents can take the shapesrectangle
,segment
, orcircle
.bounds (
list
) – size of the environment in micrometers, with[x, y]
.mother_machine (
bool
) – if set toTrue
, mother machine barriers are introduced.animate (
bool
) –interactive matplotlib option to animate multibody. To run with animation turned on set True, and use the TKAgg matplotlib backend:
$ MPLBACKEND=TKAgg python vivarium/processes/snapshots.py
Notes
rotational diffusion in liquid medium with viscosity = 1 mPa.s: \(Dr = 3.5 \pm0.3 rad^{2}/s\) (Saragosti, et al. 2012. Modeling E. coli tumbles by rotational diffusion.)
translational diffusion in liquid medium with viscosity = 1 mPa.s: \(Dt = 100 um^{2}/s\) (Saragosti, et al. 2012. Modeling E. coli tumbles by rotational diffusion.)
-
defaults: Dict[str, Any]
{ 'agent_shape': 'segment', 'animate': False, 'boundary_key': 'boundary', 'bounds': <Quantity([40 40], 'micrometer')>, 'jitter_force': 0.0001, 'length_unit': <Unit('micrometer')>, 'mass_unit': <Unit('femtogram')>, 'mother_machine': False, 'seed': 0, 'velocity_unit': <Unit('micrometer / second')>}
- name = 'multibody'