AMS-BP 0.0.251__tar.gz → 0.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ams_bp-0.0.251 → ams_bp-0.3.0}/.github/workflows/pages.yml +1 -1
- {ams_bp-0.0.251 → ams_bp-0.3.0}/.github/workflows/publish_pypi.yml +1 -1
- {ams_bp-0.0.251 → ams_bp-0.3.0}/PKG-INFO +34 -5
- {ams_bp-0.0.251 → ams_bp-0.3.0}/README.md +30 -3
- {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/configio/configmodels.md +45 -7
- {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/configio/convertconfig.md +2 -2
- ams_bp-0.3.0/docs/API_Documentation/groundtruth_generators/nuclearporecomplexes.md +1 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/sim_config.md +47 -7
- {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/sim_microscopy.md +1 -1
- ams_bp-0.3.0/docs/assets/figures/Fig1_Schema.svg +2249 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/index.md +18 -1
- ams_bp-0.3.0/examples/QuantitativeExperiments/FRAP_methods.ipynb +1030 -0
- ams_bp-0.3.0/examples/VisualizingIndividualModules/laser_modulation.ipynb +1089 -0
- ams_bp-0.3.0/examples/VisualizingIndividualModules/modules_explained.ipynb +1471 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/pyproject.toml +3 -1
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/__init__.py +1 -1
- ams_bp-0.3.0/src/AMS_BP/cells/__init__.py +31 -0
- ams_bp-0.3.0/src/AMS_BP/cells/budding_yeast_cell.py +274 -0
- ams_bp-0.3.0/src/AMS_BP/cells/cell_factory.py +148 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/configio/configmodels.py +9 -6
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/configio/convertconfig.py +37 -29
- ams_bp-0.3.0/src/AMS_BP/groundtruth_generators/__init__.py +3 -0
- ams_bp-0.3.0/src/AMS_BP/groundtruth_generators/nuclearporecomplexes.py +68 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/motion/condensate_movement.py +28 -29
- ams_bp-0.3.0/src/AMS_BP/motion/movement/__init__.py +5 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/motion/movement/boundary_conditions.py +12 -1
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/motion/track_gen.py +35 -84
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/optics/lasers/laser_profiles.py +23 -18
- ams_bp-0.3.0/src/AMS_BP/optics/lasers/scanning_patterns.py +102 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/optics/psf/psf_engine.py +25 -8
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/photophysics/photon_physics.py +4 -4
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/photophysics/state_kinetics.py +33 -1
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/probabilityfuncs/probability_functions.py +33 -100
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/sample/sim_sampleplane.py +55 -24
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/sim_config.toml +13 -8
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/sim_microscopy.py +37 -8
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/utils/util_functions.py +9 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/uv.lock +143 -508
- ams_bp-0.0.251/docs/API_Documentation/cells/base_cell.md +0 -121
- ams_bp-0.0.251/docs/API_Documentation/cells/rectangular_cell.md +0 -109
- ams_bp-0.0.251/docs/API_Documentation/cells/rod_cell.md +0 -0
- ams_bp-0.0.251/docs/API_Documentation/cells/spherical_cell.md +0 -0
- ams_bp-0.0.251/examples/QuantitativeExperiments/FRAP_methods.ipynb +0 -1025
- ams_bp-0.0.251/examples/VisualizingIndividualModules/laser_modulation.ipynb +0 -1094
- ams_bp-0.0.251/examples/VisualizingIndividualModules/modules_explained.ipynb +0 -1466
- ams_bp-0.0.251/src/AMS_BP/cells/__init__.py +0 -5
- ams_bp-0.0.251/src/AMS_BP/cells/base_cell.py +0 -55
- ams_bp-0.0.251/src/AMS_BP/cells/rectangular_cell.py +0 -82
- ams_bp-0.0.251/src/AMS_BP/cells/rod_cell.py +0 -98
- ams_bp-0.0.251/src/AMS_BP/cells/spherical_cell.py +0 -74
- ams_bp-0.0.251/src/AMS_BP/motion/movement/__init__.py +0 -10
- ams_bp-0.0.251/src/AMS_BP/motion/movement/fbm_BP.py +0 -244
- {ams_bp-0.0.251 → ams_bp-0.3.0}/.github/workflows/lint.yml +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/.gitignore +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/LICENSE +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/configio/experiments.md +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/configio/saving.md +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/metadata/metadata.md +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/motion/condensate_movement.md +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/motion/movement/boundary_conditions.md +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/motion/movement/fbm_BP.md +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/motion/track_gen.md +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/optics/camera/detectors.md +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/optics/camera/quantum_eff.md +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/optics/filters/channels/channelschema.md +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/optics/filters/filters.md +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/optics/lasers/laser_profiles.md +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/optics/psf/psf_engine.md +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/photophysics/photon_physics.md +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/photophysics/state_kinetics.md +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/probabilityfuncs/markov_chain.md +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/probabilityfuncs/probability_functions.md +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/run_cell_simulation.md +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/sample/flurophore/flurophore_schema.md +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/sample/sim_sampleplane.md +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/utils/constants.md +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/utils/errors.md +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/utils/util_functions.md +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/assets/icons/Cells-actin-like-a-tree-Jamie-Whitelaw-1.png +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/assets/icons/drawing.pdf +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/assets/icons/drawing.png +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/assets/icons/drawing.svg +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/examples/QuantitativeExperiments/FRAP_base_[[0. 0.]].txt +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/examples/QuantitativeExperiments/FRAP_base_[[0.04 0.04]].txt +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/examples/QuantitativeExperiments/FRAP_base_[[0.1 0.1]].txt +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/examples/QuantitativeExperiments/FRAP_base_[[0.4 0.4]].txt +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/examples/QuantitativeExperiments/FRAP_data_[[0. 0.]].txt +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/examples/QuantitativeExperiments/FRAP_data_[[0.04 0.04]].txt +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/examples/QuantitativeExperiments/FRAP_data_[[0.1 0.1]].txt +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/examples/QuantitativeExperiments/FRAP_data_[[0.4 0.4]].txt +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/mkdocs.yml +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/pytest.ini +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/configio/__init__.py +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/configio/experiments.py +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/configio/saving.py +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/metadata/__init__.py +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/metadata/metadata.py +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/motion/__init__.py +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/optics/__init__.py +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/optics/camera/__init__.py +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/optics/camera/detectors.py +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/optics/camera/quantum_eff.py +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/optics/filters/__init__.py +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/optics/filters/channels/__init__.py +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/optics/filters/channels/channelschema.py +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/optics/filters/filters.py +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/optics/lasers/__init__.py +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/optics/psf/__init__.py +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/photophysics/__init__.py +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/probabilityfuncs/__init__.py +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/probabilityfuncs/markov_chain.py +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/run_cell_simulation.py +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/sample/__init__.py +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/sample/flurophores/__init__.py +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/sample/flurophores/flurophore_schema.py +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/utils/__init__.py +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/utils/constants.py +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/utils/decorators.py +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/utils/errors.py +0 -0
- {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/utils/maskMaker.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: AMS_BP
|
3
|
-
Version: 0.0
|
3
|
+
Version: 0.3.0
|
4
4
|
Summary: Advanced Microscopy Simulations developed for the Weber Lab by Baljyot Singh Parmar
|
5
5
|
Project-URL: Documentation, https://joemans3.github.io/AMS_BP/
|
6
6
|
Project-URL: Source code, https://github.com/joemans3/AMS_BP
|
@@ -8,10 +8,12 @@ Author-email: Baljyot Singh Parmar <baljyotparmar@hotmail.com>
|
|
8
8
|
Maintainer-email: Baljyot Singh Parmar <baljyotparmar@hotmail.com>
|
9
9
|
License-File: LICENSE
|
10
10
|
Keywords: SMS
|
11
|
-
Requires-Python: >=3.
|
11
|
+
Requires-Python: >=3.12
|
12
|
+
Requires-Dist: boundedfbm>=0.4.0
|
12
13
|
Requires-Dist: jsonschema>=4.23.0
|
13
14
|
Requires-Dist: numpy>=1.21.2
|
14
15
|
Requires-Dist: pydantic>=2.9.2
|
16
|
+
Requires-Dist: pyvista>=0.44.2
|
15
17
|
Requires-Dist: scikit-image>=0.18.3
|
16
18
|
Requires-Dist: scipy>=1.7.1
|
17
19
|
Requires-Dist: tomli>=2.0.2
|
@@ -79,6 +81,14 @@ run_AMS_BP runsim CONFIG_FILE
|
|
79
81
|
- `-o, --output_path PATH`: Specify the output directory for the configuration file
|
80
82
|
- `-r, --recursive_o`: Create output directory if it doesn't exist
|
81
83
|
|
84
|
+
## Overview of Simulation Workflow
|
85
|
+

|
86
|
+
*A ground truth is created, **a**, with $`f_{n}`$ fluorophore types of $`N_{f_{n}}`$ molecules each. If applicable, the motion of these molecules is modelled using a 3D bounded FBM with fluctuating generalized diffusion coefficients and Hurst parameters. Variations are modelled as a Markov Chain and require rate constants as parameters. Different fluorophores can have different motion models. The resolution of the motion models is $`\Delta t`$ and cannot be smaller than 1 ms (for computational efficiency). Given the microscope parameters specific to the experimental procedure to simulate, at every time $`t_{j}`$, the excitation intensity for each channel (**b**) is calculated at each fluorophore's location, **c**. For $`t_{j} \rightarrow t_{j+\Delta t}`$, the photophysical state trajectory of the fluorophore is simulated using the light intensity at the molecule's location as input for any light-dependent transition rates, **d**. For the duration that the shutter is open and light is emitted from the sample, emission filters for each channel are applied before the convolution with PSF models, **e**. The incident photons on the detector are then converted to photoelectrons and finally to digital units using the detector models provided, **f**.*
|
87
|
+
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
|
82
92
|
## Configuration File
|
83
93
|
|
84
94
|
The configuration file (sim_config.toml) is divided into several key sections:
|
@@ -96,7 +106,6 @@ diffusion_unit = "um^2/s" # diffusion coefficient units
|
|
96
106
|
|
97
107
|
1. **Cell Parameters**
|
98
108
|
- Define cell space dimensions
|
99
|
-
- Set cell axial radius
|
100
109
|
|
101
110
|
2. **Molecule Parameters**
|
102
111
|
- Number of molecules per type
|
@@ -124,7 +133,8 @@ diffusion_unit = "um^2/s" # diffusion coefficient units
|
|
124
133
|
|
125
134
|
## Running Experiments
|
126
135
|
|
127
|
-
AMS-BP supports two types of experiments:
|
136
|
+
AMS-BP's CLI currently supports two types of experiments:
|
137
|
+
> (however this can be extended when used as a library)
|
128
138
|
|
129
139
|
### 1. Time Series
|
130
140
|
```toml
|
@@ -145,7 +155,17 @@ laser_names_active = ["red", "blue"]
|
|
145
155
|
laser_powers_active = [0.5, 0.05]
|
146
156
|
laser_positions_active = [[5, 5, 0], [5, 5, 0]]
|
147
157
|
```
|
148
|
-
|
158
|
+
To run the default configuration:
|
159
|
+
1. Make sure you followed the uv tool installation.
|
160
|
+
2. Make a copy of the default configuration file using the command:
|
161
|
+
```bash
|
162
|
+
run_AMS_BP config
|
163
|
+
```
|
164
|
+
3. Run the sim:
|
165
|
+
```bash
|
166
|
+
run_AMS_BP runsim sim_config.toml
|
167
|
+
```
|
168
|
+
4. View the results in the newly created folder, whose name is defined in the config file.
|
149
169
|
## Advanced Usage
|
150
170
|
|
151
171
|
### Using AMS-BP as a Library
|
@@ -172,4 +192,13 @@ from AMS_BP.configio.saving import save_config_frames
|
|
172
192
|
save_config_frames(metadata, frames, setup_config["base_config"].OutputParameters)
|
173
193
|
```
|
174
194
|
|
195
|
+
## API Reference and Docs
|
196
|
+
Find detailed API references for the library at: [joemans3/github.io/AMS_BP](https://joemans3.github.io/AMS_BP/)
|
175
197
|
> A more detailed example is provided in the jupyter notebook in the examples. For starters refer to the [VisualizingIndividualModules](examples/VisualizingIndividualModules/modules_explained.ipynb). Then head over to the [laser modulation module](examples/VisualizingIndividualModules/laser_modulation.ipynb) which will show how to change the laser power over time in the simulations. Then view an example of a complex experiment setup for [FRAP](examples/QuantitativeExperiments/FRAP_methods.ipynb) which is possible by the use of compositions of modules in this simulation library.
|
198
|
+
|
199
|
+
## High Priority Features
|
200
|
+
~~1. Irregular cell shapes with motion models~~ (supported with release of v0.2.0)
|
201
|
+
2. Stimulated Emission models
|
202
|
+
3. STORM workflow examples
|
203
|
+
4. CTRW motion models
|
204
|
+
5. Simpler configurations
|
@@ -59,6 +59,14 @@ run_AMS_BP runsim CONFIG_FILE
|
|
59
59
|
- `-o, --output_path PATH`: Specify the output directory for the configuration file
|
60
60
|
- `-r, --recursive_o`: Create output directory if it doesn't exist
|
61
61
|
|
62
|
+
## Overview of Simulation Workflow
|
63
|
+

|
64
|
+
*A ground truth is created, **a**, with $`f_{n}`$ fluorophore types of $`N_{f_{n}}`$ molecules each. If applicable, the motion of these molecules is modelled using a 3D bounded FBM with fluctuating generalized diffusion coefficients and Hurst parameters. Variations are modelled as a Markov Chain and require rate constants as parameters. Different fluorophores can have different motion models. The resolution of the motion models is $`\Delta t`$ and cannot be smaller than 1 ms (for computational efficiency). Given the microscope parameters specific to the experimental procedure to simulate, at every time $`t_{j}`$, the excitation intensity for each channel (**b**) is calculated at each fluorophore's location, **c**. For $`t_{j} \rightarrow t_{j+\Delta t}`$, the photophysical state trajectory of the fluorophore is simulated using the light intensity at the molecule's location as input for any light-dependent transition rates, **d**. For the duration that the shutter is open and light is emitted from the sample, emission filters for each channel are applied before the convolution with PSF models, **e**. The incident photons on the detector are then converted to photoelectrons and finally to digital units using the detector models provided, **f**.*
|
65
|
+
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
|
62
70
|
## Configuration File
|
63
71
|
|
64
72
|
The configuration file (sim_config.toml) is divided into several key sections:
|
@@ -76,7 +84,6 @@ diffusion_unit = "um^2/s" # diffusion coefficient units
|
|
76
84
|
|
77
85
|
1. **Cell Parameters**
|
78
86
|
- Define cell space dimensions
|
79
|
-
- Set cell axial radius
|
80
87
|
|
81
88
|
2. **Molecule Parameters**
|
82
89
|
- Number of molecules per type
|
@@ -104,7 +111,8 @@ diffusion_unit = "um^2/s" # diffusion coefficient units
|
|
104
111
|
|
105
112
|
## Running Experiments
|
106
113
|
|
107
|
-
AMS-BP supports two types of experiments:
|
114
|
+
AMS-BP's CLI currently supports two types of experiments:
|
115
|
+
> (however this can be extended when used as a library)
|
108
116
|
|
109
117
|
### 1. Time Series
|
110
118
|
```toml
|
@@ -125,7 +133,17 @@ laser_names_active = ["red", "blue"]
|
|
125
133
|
laser_powers_active = [0.5, 0.05]
|
126
134
|
laser_positions_active = [[5, 5, 0], [5, 5, 0]]
|
127
135
|
```
|
128
|
-
|
136
|
+
To run the default configuration:
|
137
|
+
1. Make sure you followed the uv tool installation.
|
138
|
+
2. Make a copy of the default configuration file using the command:
|
139
|
+
```bash
|
140
|
+
run_AMS_BP config
|
141
|
+
```
|
142
|
+
3. Run the sim:
|
143
|
+
```bash
|
144
|
+
run_AMS_BP runsim sim_config.toml
|
145
|
+
```
|
146
|
+
4. View the results in the newly created folder, whose name is defined in the config file.
|
129
147
|
## Advanced Usage
|
130
148
|
|
131
149
|
### Using AMS-BP as a Library
|
@@ -152,4 +170,13 @@ from AMS_BP.configio.saving import save_config_frames
|
|
152
170
|
save_config_frames(metadata, frames, setup_config["base_config"].OutputParameters)
|
153
171
|
```
|
154
172
|
|
173
|
+
## API Reference and Docs
|
174
|
+
Find detailed API references for the library at: [joemans3/github.io/AMS_BP](https://joemans3.github.io/AMS_BP/)
|
155
175
|
> A more detailed example is provided in the jupyter notebook in the examples. For starters refer to the [VisualizingIndividualModules](examples/VisualizingIndividualModules/modules_explained.ipynb). Then head over to the [laser modulation module](examples/VisualizingIndividualModules/laser_modulation.ipynb) which will show how to change the laser power over time in the simulations. Then view an example of a complex experiment setup for [FRAP](examples/QuantitativeExperiments/FRAP_methods.ipynb) which is possible by the use of compositions of modules in this simulation library.
|
176
|
+
|
177
|
+
## High Priority Features
|
178
|
+
~~1. Irregular cell shapes with motion models~~ (supported with release of v0.2.0)
|
179
|
+
2. Stimulated Emission models
|
180
|
+
3. STORM workflow examples
|
181
|
+
4. CTRW motion models
|
182
|
+
5. Simpler configurations
|
@@ -5,6 +5,7 @@ The configuration models module defines Pydantic BaseModel classes for validatin
|
|
5
5
|
|
6
6
|
## Models
|
7
7
|
|
8
|
+
|
8
9
|
### CellParameters
|
9
10
|
Defines the physical parameters of the cell being simulated.
|
10
11
|
|
@@ -13,14 +14,51 @@ class CellParameters(BaseModel)
|
|
13
14
|
```
|
14
15
|
|
15
16
|
#### Fields
|
16
|
-
- `
|
17
|
-
-
|
18
|
-
-
|
19
|
-
|
17
|
+
- `cell_type: Union[str, CellType]`
|
18
|
+
- Type of cell.
|
19
|
+
- Supported: RectangularCell, SphericalCell, OvoidCell, RodCell, BuddingCell
|
20
|
+
|
21
|
+
- `params: Dict[str, Any]`
|
22
|
+
- Key value pairs of the parameters of the specified cell.
|
20
23
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
+
```python
|
25
|
+
# SphericalCell
|
26
|
+
params = {
|
27
|
+
"center": [0, 0, 0], # 3D center coordinates
|
28
|
+
"radius": 10.0 # Radius of sphere
|
29
|
+
}
|
30
|
+
```
|
31
|
+
|
32
|
+
|
33
|
+
```python
|
34
|
+
# RodCell
|
35
|
+
params = {
|
36
|
+
"center": [0, 0, 0], # 3D center coordinates
|
37
|
+
"direction": [0, 0, 1], # Direction vector (will be normalized)
|
38
|
+
"height": 20.0, # Length of the rod
|
39
|
+
"radius": 5.0 # Radius of the rod
|
40
|
+
}
|
41
|
+
```
|
42
|
+
|
43
|
+
|
44
|
+
```python
|
45
|
+
# RectangularCell
|
46
|
+
params = {
|
47
|
+
"bounds": [-10, 10, -10, 10, -10, 10] # [xmin, xmax, ymin, ymax, zmin, zmax]
|
48
|
+
}
|
49
|
+
```
|
50
|
+
|
51
|
+
|
52
|
+
```python
|
53
|
+
# OvoidCell
|
54
|
+
params = {
|
55
|
+
"center": [0, 0, 0], # 3D center coordinates
|
56
|
+
"direction": [0, 0, 1], # Direction vector (will be normalized)
|
57
|
+
"xradius": 10.0, # Radius in x-direction
|
58
|
+
"yradius": 15.0, # Radius in y-direction
|
59
|
+
"zradius": 20.0 # Radius in z-direction
|
60
|
+
}
|
61
|
+
```
|
24
62
|
|
25
63
|
### MoleculeParameters
|
26
64
|
Defines parameters for molecular motion and behavior simulation.
|
@@ -98,12 +98,12 @@ Creates cell instance from parameters.
|
|
98
98
|
|
99
99
|
### `make_sample`
|
100
100
|
```python
|
101
|
-
def make_sample(global_params,
|
101
|
+
def make_sample(global_params, cell) -> SamplePlane
|
102
102
|
```
|
103
103
|
Creates sample plane from parameters.
|
104
104
|
- **Parameters:**
|
105
105
|
- `global_params`: Global parameters
|
106
|
-
- `
|
106
|
+
- `cell`: Instance of BaseCell
|
107
107
|
- **Returns:** SamplePlane instance
|
108
108
|
|
109
109
|
### `make_condensatedict`
|
@@ -0,0 +1 @@
|
|
1
|
+
::: AMS_BP.groundtruth_generators.nuclearporecomplexes
|
@@ -30,14 +30,54 @@ This document provides a detailed explanation of the TOML configuration file use
|
|
30
30
|
|
31
31
|
## 2. **Cell Parameters**
|
32
32
|
|
33
|
-
### `
|
34
|
-
- **Type**:
|
35
|
-
- **
|
36
|
-
-
|
33
|
+
### `cell_type`
|
34
|
+
- **Type**: Union[str, CellType]
|
35
|
+
- **Description**: Defines the type of the cell to simulate.
|
36
|
+
- Supported: RectangularCell, SphericalCell, OvoidCell, RodCell, BuddingCell
|
37
|
+
|
38
|
+
### `params`
|
39
|
+
- **Type**: dictionary of parameter names (String) and values (Any)
|
40
|
+
- **Description**: Values for the cell_type specified above. The following the general structure:
|
41
|
+
|
42
|
+
```python
|
43
|
+
# SphericalCell
|
44
|
+
params = {
|
45
|
+
"center": [0, 0, 0], # 3D center coordinates
|
46
|
+
"radius": 10.0 # Radius of sphere
|
47
|
+
}
|
48
|
+
```
|
49
|
+
|
50
|
+
|
51
|
+
```python
|
52
|
+
# RodCell
|
53
|
+
params = {
|
54
|
+
"center": [0, 0, 0], # 3D center coordinates
|
55
|
+
"direction": [0, 0, 1], # Direction vector (will be normalized)
|
56
|
+
"height": 20.0, # Length of the rod
|
57
|
+
"radius": 5.0 # Radius of the rod
|
58
|
+
}
|
59
|
+
```
|
60
|
+
|
61
|
+
|
62
|
+
```python
|
63
|
+
# RectangularCell
|
64
|
+
params = {
|
65
|
+
"bounds": [-10, 10, -10, 10, -10, 10] # [xmin, xmax, ymin, ymax, zmin, zmax]
|
66
|
+
}
|
67
|
+
```
|
68
|
+
|
69
|
+
|
70
|
+
```python
|
71
|
+
# OvoidCell
|
72
|
+
params = {
|
73
|
+
"center": [0, 0, 0], # 3D center coordinates
|
74
|
+
"direction": [0, 0, 1], # Direction vector (will be normalized)
|
75
|
+
"xradius": 10.0, # Radius in x-direction
|
76
|
+
"yradius": 15.0, # Radius in y-direction
|
77
|
+
"zradius": 20.0 # Radius in z-direction
|
78
|
+
}
|
79
|
+
```
|
37
80
|
|
38
|
-
### `cell_axial_radius`
|
39
|
-
- **Type**: Number
|
40
|
-
- **Description**: The axial radius of the cell in either direction from 0 (focal plane) in micrometers (`um`). The total z-range is `2 * cell_axial_radius`.
|
41
81
|
|
42
82
|
---
|
43
83
|
|
@@ -54,7 +54,7 @@ Sets the power of the lasers. Raises a `ValueError` if the provided power exceed
|
|
54
54
|
|
55
55
|
Sets the positions of the lasers.
|
56
56
|
|
57
|
-
#### `run_sim(self, z_val: float, laser_power:
|
57
|
+
#### `run_sim(self, z_val: float, laser_power:Dict[str, Union[float, Callable[[float], float]], xyoffset: Tuple[float, float], laser_position: Optional[Dict[str, Union[Tuple[float, float, float], Callable[[float], Tuple[float, float, float]]]]] = None, duration_total: Optional[int] = None, exposure_time: Optional[int] = None, interval_time: Optional[int] = None, scanning: Optional[bool] = False) -> Tuple[np.ndarray, MetaData]`
|
58
58
|
|
59
59
|
Runs the simulation for the given parameters and returns the resulting image stack and metadata.
|
60
60
|
|