Sim config
Simulation Configuration File Documentation#
This document provides a detailed explanation of the TOML configuration file used for setting up a simulation. The configuration file is structured into several sections, each defining specific parameters for the simulation. Below is a breakdown of each section and its parameters.
1. General Configuration#
version#
- Type: String
- Pattern:
^\d+\.\d+$ - Description: Specifies the version of the configuration file format.
length_unit#
- Type: String
- Enum:
["um"] - Description: The unit of length used throughout the simulation. Always set to
"um".
time_unit#
- Type: String
- Enum:
["ms"] - Description: The unit of time used throughout the simulation. Always set to
"ms".
diffusion_unit#
- Type: String
- Enum:
["um^2/s"] - Description: The unit of diffusion coefficient used throughout the simulation. Always set to
"um^2/s".
2. Cell Parameters#
cell_type#
- Type: Union[str, CellType]
- Description: Defines the type of the cell to simulate.
- Supported: RectangularCell, SphericalCell, OvoidCell, RodCell, BuddingCell
params#
- Type: dictionary of parameter names (String) and values (Any)
- Description: Values for the cell_type specified above. The following the general structure:
# SphericalCell
params = {
"center": [0, 0, 0], # 3D center coordinates
"radius": 10.0 # Radius of sphere
}
# RodCell
params = {
"center": [0, 0, 0], # 3D center coordinates
"direction": [0, 0, 1], # Direction vector (will be normalized)
"height": 20.0, # Length of the rod
"radius": 5.0 # Radius of the rod
}
# RectangularCell
params = {
"bounds": [-10, 10, -10, 10, -10, 10] # [xmin, xmax, ymin, ymax, zmin, zmax]
}
# OvoidCell
params = {
"center": [0, 0, 0], # 3D center coordinates
"xradius": 10.0, # Radius in x-direction
"yradius": 15.0, # Radius in y-direction
"zradius": 20.0 # Radius in z-direction
}
3. Molecule Parameters#
num_molecules#
- Type: Array of Integers
- Description: Specifies the number of molecules for each type. The length of this array determines the number of molecule types.
track_type#
- Type: Array of Strings
- Enum:
["constant", "fbm"] - Description: Defines the type of trajectory for each molecule type.
diffusion_coefficient#
- Type: Array of Arrays of Numbers
- Description: Specifies the diffusion coefficients for each molecule type in
um^2/s.
diffusion_track_amount#
- Type: Array of Arrays of Numbers
- Description: Defines the initial distribution of diffusion coefficients for trajectories.
hurst_exponent#
- Type: Array of Arrays of Numbers
- Description: Specifies the Hurst exponent for each molecule type.
hurst_track_amount#
- Type: Array of Arrays of Numbers
- Description: Defines the initial distribution of Hurst exponents for trajectories.
allow_transition_probability#
- Type: Array of Booleans
- Description: Determines whether transition probabilities are allowed for each molecule type.
transition_matrix_time_step#
- Type: Array of Integers
- Description: The time step in milliseconds (
ms) at which transition probabilities are applied.
diffusion_transition_matrix#
- Type: Array of Arrays of Arrays of Numbers
- Description: The transition matrix for diffusion coefficients.
hurst_transition_matrix#
- Type: Array of Arrays of Arrays of Numbers
- Description: The transition matrix for Hurst exponents.
state_probability_diffusion#
- Type: Array of Arrays of Numbers
- Description: The probability distribution for diffusion states.
state_probability_hurst#
- Type: Array of Arrays of Numbers
- Description: The probability distribution for Hurst states.
4. Global Parameters#
sample_plane_dim#
- Type: Array of Numbers
- Shape:
[width, height] - Description: The dimensions of the sample plane in micrometers (
um).
cycle_count#
- Type: Integer
- Description: The number of cycles of exposure and interval time.
exposure_time#
- Type: Integer
- Description: The exposure time in milliseconds (
ms).
interval_time#
- Type: Integer
- Description: The interval time in milliseconds (
ms).
oversample_motion_time#
- Type: Integer
- Description: The oversampling time for motion in milliseconds (
ms).
5. Condensate Parameters#
initial_centers#
- Type: Array of Array of Arrays of Numbers
- Shape:
[[[x, y, z], ...], ...] - Description: The initial centers of condensates in micrometers (
um). The first dimension is the types of different molecules. Similarr to thenum_moleculesarray in the molecule parameters.
initial_scale#
- Type: Array of Array of Numbers
- Description: The initial scale of condensates in micrometers (
um).
diffusion_coefficient#
- Type: Array of Array of Numbers
- Description: The diffusion coefficients of condensates in
um^2/s.
hurst_exponent#
- Type: Array of Array of Numbers
- Description: The Hurst exponents of condensates.
density_dif#
- Type: Array of Number
- Description: The density difference between the condensate and the background.
6. Output Parameters#
output_path#
- Type: String
- Description: The path where the output files will be saved. Can be absolute or relative.
output_name#
- Type: String
- Description: The name of the output file.
subsegment_type#
- Type: String
- Description: The type of subsegmentation to be applied. Currently not implemented.
subsegment_number#
- Type: Integer
- Description: The number of subsegments. Currently not implemented.
7. Fluorophores#
num_of_fluorophores#
- Type: Integer
- Description: The number of fluorophores in the simulation.
fluorophore_names#
- Type: Array of Strings
- Description: The names of the fluorophores.
Fluorophore-Specific Parameters#
Each fluorophore has its own section with the following parameters:
name#
- Type: String
- Description: The name of the fluorophore.
initial_state#
- Type: String
- Condition: One of the states defined in the
statessection. - Description: The initial state of the fluorophore.
States#
Each fluorophore has states defined with the following parameters:
name: The name of the state.state_type: The type of state (fluorescent,dark,bleached).quantum_yield: The quantum yield of the state (0-1).extinction_coefficient: The extinction coefficient inM^-1 cm^-1.fluorescent_lifetime: The fluorescent lifetime in seconds.excitation_spectrum: The excitation spectrum withwavelengthsandintensities.emission_spectrum: The emission spectrum withwavelengthsandintensities.
Transitions#
Each fluorophore has transitions defined with the following parameters:
from_state: The starting state of the transition.to_state: The target state of the transition.photon_dependent: Whether the transition is photon-dependent.spectrum: The spectrum associated with the transition, includingwavelengths,intensities,extinction_coefficient, andquantum_yield.base_rate: The base rate of the transition in1/s.
8. PSF (Point Spread Function)#
type#
- Type: String
- Enum:
["gaussian"] - Description: The type of PSF.
custom_path#
- Type: String
- Description: The path to a custom PSF file. Currently not supported.
parameters#
- Type: Object
- Properties:
numerical_aperture: The numerical aperture (typical range: 0.1 - 1.5).refractive_index: The refractive index (default is air: 1.0).pinhole_diameter: None or float. In units of um. None = no pinhole before the detector.
9. Lasers#
active#
- Type: Array of Strings
- Description: The list of active lasers.
Laser-Specific Parameters#
Each laser has its own section with the following parameters:
type#
- Type: String
- Enum:
["widefield", "gaussian", "hilo"] - Description: The type of laser.
preset#
- Type: String
- Description: The preset name of the laser.
parameters#
- Type: Object
- Properties:
power: The power of the laser in watts.wavelength: The wavelength in nanometers.beam_width: The beam width in micrometers.numerical_aperture: The numerical aperture.refractive_index: The refractive index.inclination_angle: The inclination angle in degrees (only for HiLo).
10. Channels#
num_of_channels#
- Type: Integer
- Description: The number of channels.
channel_names#
- Type: Array of Strings
- Description: The names of the channels.
split_efficiency#
- Type: Array of Numbers
- Description: The efficiency of the channel splitter for each channel (0-1).
Filter Set Configuration#
Each channel has its own filter set with the following parameters:
filter_set_name#
- Type: String
- Description: The name of the filter set.
filter_set_description#
- Type: String
- Description: The description of the filter set.
excitation#
- Type: Object
- Properties:
name: The name of the excitation filter.type: The type of filter (allow_all).points: The number of points in the filter.
emission#
- Type: Object
- Properties:
name: The name of the emission filter.type: The type of filter (bandpass).center_wavelength: The center wavelength in nanometers.bandwidth: The bandwidth in nanometers.transmission_peak: The transmission peak (0-1).points: The number of points in the filter.
11. Camera#
type#
- Type: String
- Enum:
["CMOS"] - Description: The type of camera.
pixel_count#
- Type: Array of Integers
- Shape:
[width, height] - Description: The number of pixels in the camera.
pixel_detector_size#
- Type: Number
- Description: The size of each pixel detector in micrometers.
magnification#
- Type: Integer
- Description: The magnification of the camera.
dark_current#
- Type: Number
- Description: The dark current in electrons per pixel per second.
readout_noise#
- Type: Number
- Description: The readout noise in electrons RMS.
bit_depth#
- Type: Integer
- Description: The bit depth of the camera.
sensitivity#
- Type: Number
- Description: The sensitivity of the camera in electrons per ADU.
base_adu#
- Type: Integer
- Description: The base ADU value.
binning_size#
- Type: Integer
- Description: The binning size (e.g., 1x1 or 2x2).
quantum_efficiency#
- Type: Array of Arrays of Numbers
- Shape:
[[wavelength, efficiency], ...] - Description: The quantum efficiency curve of the camera.
12. Experiment#
name#
- Type: String
- Description: The name of the experiment.
description#
- Type: String
- Description: The description of the experiment.
experiment_type#
- Type: String
- Enum:
["time-series", "z-stack"] - Description: The type of experiment.
z_position#
- Type: Array of Numbers, or Number ( if "z-stack" or "time-series")
- Description: The z-positions for the experiment.
laser_names_active#
- Type: Array of Strings
- Description: The names of active lasers.
laser_powers_active#
- Type: Array of Numbers
- Description: The powers of active lasers in watts.
laser_positions_active#
- Type: Array of Arrays of Numbers
- Shape:
[[x, y, z], ...] - Description: The positions of active lasers in micrometers.
xyoffset#
- Type: Array of Numbers
- Shape:
[x, y] - Description: The x and y offsets in micrometers.
exposure_time#
- Type: Integer
- Description: The exposure time in milliseconds.
interval_time#
- Type: Integer
- Description: The interval time in milliseconds.