vivarium.processes.multibody_physics module¶
Multibody physics process¶
-
class
vivarium.processes.multibody_physics.
Multibody
(initial_parameters=None)[source]¶ Bases:
vivarium.core.process.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 (*) – agents can take the shapes
rectangle
,segment
, orcircle
.bounds (*) – size of the environment in micrometers, with
[x, y]
.mother_machine (*) – if set to
True
, mother machine barriers are introduced.*animate* (*) –
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/multibody_physics.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
= {'agent_shape': 'segment', 'agents': {}, 'animate': False, 'bounds': [10, 10], 'jitter_force': 0.001, 'mother_machine': False, 'time_step': 2}¶
-
name
= 'multibody'¶
-
vivarium.processes.multibody_physics.
run_jitter
(config={}, out_dir='out', filename='jitter')[source]¶