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.
Files changed (120) hide show
  1. {ams_bp-0.0.251 → ams_bp-0.3.0}/.github/workflows/pages.yml +1 -1
  2. {ams_bp-0.0.251 → ams_bp-0.3.0}/.github/workflows/publish_pypi.yml +1 -1
  3. {ams_bp-0.0.251 → ams_bp-0.3.0}/PKG-INFO +34 -5
  4. {ams_bp-0.0.251 → ams_bp-0.3.0}/README.md +30 -3
  5. {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/configio/configmodels.md +45 -7
  6. {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/configio/convertconfig.md +2 -2
  7. ams_bp-0.3.0/docs/API_Documentation/groundtruth_generators/nuclearporecomplexes.md +1 -0
  8. {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/sim_config.md +47 -7
  9. {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/sim_microscopy.md +1 -1
  10. ams_bp-0.3.0/docs/assets/figures/Fig1_Schema.svg +2249 -0
  11. {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/index.md +18 -1
  12. ams_bp-0.3.0/examples/QuantitativeExperiments/FRAP_methods.ipynb +1030 -0
  13. ams_bp-0.3.0/examples/VisualizingIndividualModules/laser_modulation.ipynb +1089 -0
  14. ams_bp-0.3.0/examples/VisualizingIndividualModules/modules_explained.ipynb +1471 -0
  15. {ams_bp-0.0.251 → ams_bp-0.3.0}/pyproject.toml +3 -1
  16. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/__init__.py +1 -1
  17. ams_bp-0.3.0/src/AMS_BP/cells/__init__.py +31 -0
  18. ams_bp-0.3.0/src/AMS_BP/cells/budding_yeast_cell.py +274 -0
  19. ams_bp-0.3.0/src/AMS_BP/cells/cell_factory.py +148 -0
  20. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/configio/configmodels.py +9 -6
  21. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/configio/convertconfig.py +37 -29
  22. ams_bp-0.3.0/src/AMS_BP/groundtruth_generators/__init__.py +3 -0
  23. ams_bp-0.3.0/src/AMS_BP/groundtruth_generators/nuclearporecomplexes.py +68 -0
  24. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/motion/condensate_movement.py +28 -29
  25. ams_bp-0.3.0/src/AMS_BP/motion/movement/__init__.py +5 -0
  26. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/motion/movement/boundary_conditions.py +12 -1
  27. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/motion/track_gen.py +35 -84
  28. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/optics/lasers/laser_profiles.py +23 -18
  29. ams_bp-0.3.0/src/AMS_BP/optics/lasers/scanning_patterns.py +102 -0
  30. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/optics/psf/psf_engine.py +25 -8
  31. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/photophysics/photon_physics.py +4 -4
  32. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/photophysics/state_kinetics.py +33 -1
  33. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/probabilityfuncs/probability_functions.py +33 -100
  34. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/sample/sim_sampleplane.py +55 -24
  35. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/sim_config.toml +13 -8
  36. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/sim_microscopy.py +37 -8
  37. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/utils/util_functions.py +9 -0
  38. {ams_bp-0.0.251 → ams_bp-0.3.0}/uv.lock +143 -508
  39. ams_bp-0.0.251/docs/API_Documentation/cells/base_cell.md +0 -121
  40. ams_bp-0.0.251/docs/API_Documentation/cells/rectangular_cell.md +0 -109
  41. ams_bp-0.0.251/docs/API_Documentation/cells/rod_cell.md +0 -0
  42. ams_bp-0.0.251/docs/API_Documentation/cells/spherical_cell.md +0 -0
  43. ams_bp-0.0.251/examples/QuantitativeExperiments/FRAP_methods.ipynb +0 -1025
  44. ams_bp-0.0.251/examples/VisualizingIndividualModules/laser_modulation.ipynb +0 -1094
  45. ams_bp-0.0.251/examples/VisualizingIndividualModules/modules_explained.ipynb +0 -1466
  46. ams_bp-0.0.251/src/AMS_BP/cells/__init__.py +0 -5
  47. ams_bp-0.0.251/src/AMS_BP/cells/base_cell.py +0 -55
  48. ams_bp-0.0.251/src/AMS_BP/cells/rectangular_cell.py +0 -82
  49. ams_bp-0.0.251/src/AMS_BP/cells/rod_cell.py +0 -98
  50. ams_bp-0.0.251/src/AMS_BP/cells/spherical_cell.py +0 -74
  51. ams_bp-0.0.251/src/AMS_BP/motion/movement/__init__.py +0 -10
  52. ams_bp-0.0.251/src/AMS_BP/motion/movement/fbm_BP.py +0 -244
  53. {ams_bp-0.0.251 → ams_bp-0.3.0}/.github/workflows/lint.yml +0 -0
  54. {ams_bp-0.0.251 → ams_bp-0.3.0}/.gitignore +0 -0
  55. {ams_bp-0.0.251 → ams_bp-0.3.0}/LICENSE +0 -0
  56. {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/configio/experiments.md +0 -0
  57. {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/configio/saving.md +0 -0
  58. {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/metadata/metadata.md +0 -0
  59. {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/motion/condensate_movement.md +0 -0
  60. {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/motion/movement/boundary_conditions.md +0 -0
  61. {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/motion/movement/fbm_BP.md +0 -0
  62. {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/motion/track_gen.md +0 -0
  63. {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/optics/camera/detectors.md +0 -0
  64. {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/optics/camera/quantum_eff.md +0 -0
  65. {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/optics/filters/channels/channelschema.md +0 -0
  66. {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/optics/filters/filters.md +0 -0
  67. {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/optics/lasers/laser_profiles.md +0 -0
  68. {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/optics/psf/psf_engine.md +0 -0
  69. {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/photophysics/photon_physics.md +0 -0
  70. {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/photophysics/state_kinetics.md +0 -0
  71. {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/probabilityfuncs/markov_chain.md +0 -0
  72. {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/probabilityfuncs/probability_functions.md +0 -0
  73. {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/run_cell_simulation.md +0 -0
  74. {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/sample/flurophore/flurophore_schema.md +0 -0
  75. {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/sample/sim_sampleplane.md +0 -0
  76. {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/utils/constants.md +0 -0
  77. {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/utils/errors.md +0 -0
  78. {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/API_Documentation/utils/util_functions.md +0 -0
  79. {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/assets/icons/Cells-actin-like-a-tree-Jamie-Whitelaw-1.png +0 -0
  80. {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/assets/icons/drawing.pdf +0 -0
  81. {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/assets/icons/drawing.png +0 -0
  82. {ams_bp-0.0.251 → ams_bp-0.3.0}/docs/assets/icons/drawing.svg +0 -0
  83. {ams_bp-0.0.251 → ams_bp-0.3.0}/examples/QuantitativeExperiments/FRAP_base_[[0. 0.]].txt +0 -0
  84. {ams_bp-0.0.251 → ams_bp-0.3.0}/examples/QuantitativeExperiments/FRAP_base_[[0.04 0.04]].txt +0 -0
  85. {ams_bp-0.0.251 → ams_bp-0.3.0}/examples/QuantitativeExperiments/FRAP_base_[[0.1 0.1]].txt +0 -0
  86. {ams_bp-0.0.251 → ams_bp-0.3.0}/examples/QuantitativeExperiments/FRAP_base_[[0.4 0.4]].txt +0 -0
  87. {ams_bp-0.0.251 → ams_bp-0.3.0}/examples/QuantitativeExperiments/FRAP_data_[[0. 0.]].txt +0 -0
  88. {ams_bp-0.0.251 → ams_bp-0.3.0}/examples/QuantitativeExperiments/FRAP_data_[[0.04 0.04]].txt +0 -0
  89. {ams_bp-0.0.251 → ams_bp-0.3.0}/examples/QuantitativeExperiments/FRAP_data_[[0.1 0.1]].txt +0 -0
  90. {ams_bp-0.0.251 → ams_bp-0.3.0}/examples/QuantitativeExperiments/FRAP_data_[[0.4 0.4]].txt +0 -0
  91. {ams_bp-0.0.251 → ams_bp-0.3.0}/mkdocs.yml +0 -0
  92. {ams_bp-0.0.251 → ams_bp-0.3.0}/pytest.ini +0 -0
  93. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/configio/__init__.py +0 -0
  94. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/configio/experiments.py +0 -0
  95. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/configio/saving.py +0 -0
  96. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/metadata/__init__.py +0 -0
  97. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/metadata/metadata.py +0 -0
  98. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/motion/__init__.py +0 -0
  99. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/optics/__init__.py +0 -0
  100. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/optics/camera/__init__.py +0 -0
  101. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/optics/camera/detectors.py +0 -0
  102. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/optics/camera/quantum_eff.py +0 -0
  103. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/optics/filters/__init__.py +0 -0
  104. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/optics/filters/channels/__init__.py +0 -0
  105. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/optics/filters/channels/channelschema.py +0 -0
  106. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/optics/filters/filters.py +0 -0
  107. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/optics/lasers/__init__.py +0 -0
  108. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/optics/psf/__init__.py +0 -0
  109. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/photophysics/__init__.py +0 -0
  110. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/probabilityfuncs/__init__.py +0 -0
  111. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/probabilityfuncs/markov_chain.py +0 -0
  112. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/run_cell_simulation.py +0 -0
  113. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/sample/__init__.py +0 -0
  114. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/sample/flurophores/__init__.py +0 -0
  115. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/sample/flurophores/flurophore_schema.py +0 -0
  116. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/utils/__init__.py +0 -0
  117. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/utils/constants.py +0 -0
  118. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/utils/decorators.py +0 -0
  119. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/utils/errors.py +0 -0
  120. {ams_bp-0.0.251 → ams_bp-0.3.0}/src/AMS_BP/utils/maskMaker.py +0 -0
@@ -13,7 +13,7 @@ jobs:
13
13
  strategy:
14
14
  fail-fast: false
15
15
  matrix:
16
- python-version: ["3.10.13"]
16
+ python-version: ["3.12"]
17
17
 
18
18
  steps:
19
19
  - uses: actions/checkout@v4
@@ -68,7 +68,7 @@ jobs:
68
68
  name: python-package-distributions
69
69
  path: dist/
70
70
  - name: Sign the dists with Sigstore
71
- uses: sigstore/gh-action-sigstore-python@v2.1.1
71
+ uses: sigstore/gh-action-sigstore-python@v3.0.0
72
72
  with:
73
73
  inputs: >-
74
74
  ./dist/*.tar.gz
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: AMS_BP
3
- Version: 0.0.251
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.10
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
+ ![Overview Schematic](./docs/assets/figures/Fig1_Schema.svg)
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
+ ![Overview Schematic](./docs/assets/figures/Fig1_Schema.svg)
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
- - `cell_space: List[List[float]]`
17
- - Description: Cell space dimensions in micrometers
18
- - Format: 2D array defining spatial boundaries
19
- - Automatically converted to numpy array
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
- - `cell_axial_radius: float`
22
- - Description: Axial radius in micrometers
23
- - Defines the cell's axial dimension
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, cell_params) -> SamplePlane
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
- - `cell_params`: Cell parameters
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
- ### `cell_space`
34
- - **Type**: Array of Arrays of Numbers
35
- - **Shape**: `[[x_min, x_max], [y_min, y_max]]`
36
- - **Description**: Defines the spatial boundaries of the cell in micrometers (`um`).
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: Dict[str, float], xyoffset: Tuple[float, float], laser_position: Dict[str, Tuple[float, float, float]] | None, duration_total: Optional[int] = None, exposure_time: Optional[int] = None, interval_time: Optional[int] = None) -> Tuple[np.ndarray, MetaData]`
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