AMS-BP 0.3.1__tar.gz → 0.4.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 (170) hide show
  1. {ams_bp-0.3.1 → ams_bp-0.4.0}/PKG-INFO +46 -27
  2. {ams_bp-0.3.1 → ams_bp-0.4.0}/README.md +41 -26
  3. ams_bp-0.4.0/docs/API_Documentation/configio/convertconfig.md +193 -0
  4. ams_bp-0.4.0/docs/API_Documentation/main_cli.md +184 -0
  5. {ams_bp-0.3.1 → ams_bp-0.4.0}/docs/API_Documentation/sim_config.md +1 -1
  6. {ams_bp-0.3.1 → ams_bp-0.4.0}/examples/QuantitativeExperiments/FRAP/FRAP_methods.ipynb +6 -6
  7. ams_bp-0.4.0/examples/VisualizingIndividualModules/laser_modulation.ipynb +1087 -0
  8. ams_bp-0.4.0/examples/VisualizingIndividualModules/modules_explained.ipynb +1468 -0
  9. {ams_bp-0.3.1 → ams_bp-0.4.0}/pyproject.toml +5 -1
  10. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/__init__.py +1 -1
  11. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/configio/configmodels.py +26 -12
  12. ams_bp-0.4.0/src/AMS_BP/configio/convertconfig.py +795 -0
  13. ams_bp-0.4.0/src/AMS_BP/gui/README.md +77 -0
  14. ams_bp-0.4.0/src/AMS_BP/gui/assets/drawing.svg +107 -0
  15. ams_bp-0.4.0/src/AMS_BP/gui/configuration_window.py +333 -0
  16. ams_bp-0.4.0/src/AMS_BP/gui/help_docs/cell_help.md +45 -0
  17. ams_bp-0.4.0/src/AMS_BP/gui/help_docs/channels_help.md +78 -0
  18. ams_bp-0.4.0/src/AMS_BP/gui/help_docs/condensate_help.md +59 -0
  19. ams_bp-0.4.0/src/AMS_BP/gui/help_docs/detector_help.md +57 -0
  20. ams_bp-0.4.0/src/AMS_BP/gui/help_docs/experiment_help.md +92 -0
  21. ams_bp-0.4.0/src/AMS_BP/gui/help_docs/fluorophore_help.md +128 -0
  22. ams_bp-0.4.0/src/AMS_BP/gui/help_docs/general_help.md +43 -0
  23. ams_bp-0.4.0/src/AMS_BP/gui/help_docs/global_help.md +47 -0
  24. ams_bp-0.4.0/src/AMS_BP/gui/help_docs/laser_help.md +76 -0
  25. ams_bp-0.4.0/src/AMS_BP/gui/help_docs/molecule_help.md +78 -0
  26. ams_bp-0.4.0/src/AMS_BP/gui/help_docs/output_help.md +5 -0
  27. ams_bp-0.4.0/src/AMS_BP/gui/help_docs/psf_help.md +51 -0
  28. ams_bp-0.4.0/src/AMS_BP/gui/help_window.py +26 -0
  29. ams_bp-0.4.0/src/AMS_BP/gui/logging_window.py +93 -0
  30. ams_bp-0.4.0/src/AMS_BP/gui/main.py +255 -0
  31. ams_bp-0.4.0/src/AMS_BP/gui/sim_worker.py +58 -0
  32. ams_bp-0.4.0/src/AMS_BP/gui/template_window_selection.py +100 -0
  33. ams_bp-0.4.0/src/AMS_BP/gui/widgets/camera_config_widget.py +213 -0
  34. ams_bp-0.4.0/src/AMS_BP/gui/widgets/cell_config_widget.py +225 -0
  35. ams_bp-0.4.0/src/AMS_BP/gui/widgets/channel_config_widget.py +307 -0
  36. ams_bp-0.4.0/src/AMS_BP/gui/widgets/condensate_config_widget.py +341 -0
  37. ams_bp-0.4.0/src/AMS_BP/gui/widgets/experiment_config_widget.py +259 -0
  38. ams_bp-0.4.0/src/AMS_BP/gui/widgets/flurophore_config_widget.py +513 -0
  39. ams_bp-0.4.0/src/AMS_BP/gui/widgets/general_config_widget.py +47 -0
  40. ams_bp-0.4.0/src/AMS_BP/gui/widgets/global_config_widget.py +142 -0
  41. ams_bp-0.4.0/src/AMS_BP/gui/widgets/laser_config_widget.py +255 -0
  42. ams_bp-0.4.0/src/AMS_BP/gui/widgets/molecule_config_widget.py +714 -0
  43. ams_bp-0.4.0/src/AMS_BP/gui/widgets/output_config_widget.py +61 -0
  44. ams_bp-0.4.0/src/AMS_BP/gui/widgets/psf_config_widget.py +128 -0
  45. ams_bp-0.4.0/src/AMS_BP/gui/widgets/utility_widgets/scinotation_widget.py +21 -0
  46. ams_bp-0.4.0/src/AMS_BP/gui/widgets/utility_widgets/spectrum_widget.py +115 -0
  47. ams_bp-0.4.0/src/AMS_BP/logging/logutil.py +83 -0
  48. ams_bp-0.4.0/src/AMS_BP/logging/setup_run_directory.py +35 -0
  49. ams_bp-0.3.1/src/AMS_BP/run_cell_simulation.py → ams_bp-0.4.0/src/AMS_BP/main_cli.py +27 -72
  50. ams_bp-0.4.0/src/AMS_BP/optics/__init__.py +0 -0
  51. ams_bp-0.4.0/src/AMS_BP/optics/filters/channels/__init__.py +0 -0
  52. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/optics/filters/filters.py +2 -0
  53. ams_bp-0.4.0/src/AMS_BP/photophysics/__init__.py +0 -0
  54. ams_bp-0.4.0/src/AMS_BP/probabilityfuncs/__init__.py +0 -0
  55. ams_bp-0.4.0/src/AMS_BP/resources/template_configs/metadata_configs.json +20 -0
  56. ams_bp-0.4.0/src/AMS_BP/resources/template_configs/sim_config.toml +408 -0
  57. ams_bp-0.4.0/src/AMS_BP/resources/template_configs/twocolor_widefield_timeseries_live.toml +399 -0
  58. ams_bp-0.4.0/src/AMS_BP/resources/template_configs/twocolor_widefield_zstack_fixed.toml +406 -0
  59. ams_bp-0.4.0/src/AMS_BP/resources/template_configs/twocolor_widefield_zstack_live.toml +408 -0
  60. ams_bp-0.4.0/src/AMS_BP/run_sim_util.py +76 -0
  61. ams_bp-0.4.0/src/AMS_BP/sample/__init__.py +0 -0
  62. ams_bp-0.4.0/src/AMS_BP/utils/__init__.py +0 -0
  63. {ams_bp-0.3.1 → ams_bp-0.4.0}/uv.lock +1000 -1
  64. ams_bp-0.3.1/docs/API_Documentation/configio/convertconfig.md +0 -166
  65. ams_bp-0.3.1/docs/API_Documentation/run_cell_simulation.md +0 -140
  66. ams_bp-0.3.1/examples/VisualizingIndividualModules/laser_modulation.ipynb +0 -1089
  67. ams_bp-0.3.1/examples/VisualizingIndividualModules/modules_explained.ipynb +0 -1471
  68. ams_bp-0.3.1/src/AMS_BP/configio/convertconfig.py +0 -919
  69. {ams_bp-0.3.1 → ams_bp-0.4.0}/.github/workflows/lint.yml +0 -0
  70. {ams_bp-0.3.1 → ams_bp-0.4.0}/.github/workflows/pages.yml +0 -0
  71. {ams_bp-0.3.1 → ams_bp-0.4.0}/.github/workflows/publish_pypi.yml +0 -0
  72. {ams_bp-0.3.1 → ams_bp-0.4.0}/.gitignore +0 -0
  73. {ams_bp-0.3.1 → ams_bp-0.4.0}/LICENSE +0 -0
  74. {ams_bp-0.3.1 → ams_bp-0.4.0}/docs/API_Documentation/configio/configmodels.md +0 -0
  75. {ams_bp-0.3.1 → ams_bp-0.4.0}/docs/API_Documentation/configio/experiments.md +0 -0
  76. {ams_bp-0.3.1 → ams_bp-0.4.0}/docs/API_Documentation/configio/saving.md +0 -0
  77. {ams_bp-0.3.1 → ams_bp-0.4.0}/docs/API_Documentation/groundtruth_generators/nuclearporecomplexes.md +0 -0
  78. {ams_bp-0.3.1 → ams_bp-0.4.0}/docs/API_Documentation/metadata/metadata.md +0 -0
  79. {ams_bp-0.3.1 → ams_bp-0.4.0}/docs/API_Documentation/motion/condensate_movement.md +0 -0
  80. {ams_bp-0.3.1 → ams_bp-0.4.0}/docs/API_Documentation/motion/movement/boundary_conditions.md +0 -0
  81. {ams_bp-0.3.1 → ams_bp-0.4.0}/docs/API_Documentation/motion/movement/fbm_BP.md +0 -0
  82. {ams_bp-0.3.1 → ams_bp-0.4.0}/docs/API_Documentation/motion/track_gen.md +0 -0
  83. {ams_bp-0.3.1 → ams_bp-0.4.0}/docs/API_Documentation/optics/camera/detectors.md +0 -0
  84. {ams_bp-0.3.1 → ams_bp-0.4.0}/docs/API_Documentation/optics/camera/quantum_eff.md +0 -0
  85. {ams_bp-0.3.1 → ams_bp-0.4.0}/docs/API_Documentation/optics/filters/channels/channelschema.md +0 -0
  86. {ams_bp-0.3.1 → ams_bp-0.4.0}/docs/API_Documentation/optics/filters/filters.md +0 -0
  87. {ams_bp-0.3.1 → ams_bp-0.4.0}/docs/API_Documentation/optics/lasers/laser_profiles.md +0 -0
  88. {ams_bp-0.3.1 → ams_bp-0.4.0}/docs/API_Documentation/optics/psf/psf_engine.md +0 -0
  89. {ams_bp-0.3.1 → ams_bp-0.4.0}/docs/API_Documentation/photophysics/photon_physics.md +0 -0
  90. {ams_bp-0.3.1 → ams_bp-0.4.0}/docs/API_Documentation/photophysics/state_kinetics.md +0 -0
  91. {ams_bp-0.3.1 → ams_bp-0.4.0}/docs/API_Documentation/probabilityfuncs/markov_chain.md +0 -0
  92. {ams_bp-0.3.1 → ams_bp-0.4.0}/docs/API_Documentation/probabilityfuncs/probability_functions.md +0 -0
  93. {ams_bp-0.3.1 → ams_bp-0.4.0}/docs/API_Documentation/sample/flurophore/flurophore_schema.md +0 -0
  94. {ams_bp-0.3.1 → ams_bp-0.4.0}/docs/API_Documentation/sample/sim_sampleplane.md +0 -0
  95. {ams_bp-0.3.1 → ams_bp-0.4.0}/docs/API_Documentation/sim_microscopy.md +0 -0
  96. {ams_bp-0.3.1 → ams_bp-0.4.0}/docs/API_Documentation/utils/constants.md +0 -0
  97. {ams_bp-0.3.1 → ams_bp-0.4.0}/docs/API_Documentation/utils/errors.md +0 -0
  98. {ams_bp-0.3.1 → ams_bp-0.4.0}/docs/API_Documentation/utils/util_functions.md +0 -0
  99. {ams_bp-0.3.1 → ams_bp-0.4.0}/docs/assets/buttons/ButtonFigure_FRAP.svg +0 -0
  100. {ams_bp-0.3.1 → ams_bp-0.4.0}/docs/assets/buttons/ButtonFigure_fPALM_NPC.svg +0 -0
  101. {ams_bp-0.3.1 → ams_bp-0.4.0}/docs/assets/buttons/ButtonFigure_sptPALM_mmaple.svg +0 -0
  102. {ams_bp-0.3.1 → ams_bp-0.4.0}/docs/assets/buttons/ButtonFigure_zstack_twocolor_confocal.svg +0 -0
  103. {ams_bp-0.3.1 → ams_bp-0.4.0}/docs/assets/buttons/ButtonFigure_zstack_twocolor_widefield.svg +0 -0
  104. {ams_bp-0.3.1 → ams_bp-0.4.0}/docs/assets/figures/Fig1_Schema.svg +0 -0
  105. {ams_bp-0.3.1 → ams_bp-0.4.0}/docs/assets/icons/Cells-actin-like-a-tree-Jamie-Whitelaw-1.png +0 -0
  106. {ams_bp-0.3.1 → ams_bp-0.4.0}/docs/assets/icons/drawing.pdf +0 -0
  107. {ams_bp-0.3.1 → ams_bp-0.4.0}/docs/assets/icons/drawing.png +0 -0
  108. {ams_bp-0.3.1 → ams_bp-0.4.0}/docs/assets/icons/drawing.svg +0 -0
  109. {ams_bp-0.3.1 → ams_bp-0.4.0}/docs/index.md +0 -0
  110. {ams_bp-0.3.1 → ams_bp-0.4.0}/examples/QuantitativeExperiments/FRAP/FRAP_base_[[0. 0.]].txt +0 -0
  111. {ams_bp-0.3.1 → ams_bp-0.4.0}/examples/QuantitativeExperiments/FRAP/FRAP_base_[[0.04 0.04]].txt +0 -0
  112. {ams_bp-0.3.1 → ams_bp-0.4.0}/examples/QuantitativeExperiments/FRAP/FRAP_base_[[0.1 0.1]].txt +0 -0
  113. {ams_bp-0.3.1 → ams_bp-0.4.0}/examples/QuantitativeExperiments/FRAP/FRAP_base_[[0.4 0.4]].txt +0 -0
  114. {ams_bp-0.3.1 → ams_bp-0.4.0}/examples/QuantitativeExperiments/FRAP/FRAP_data_[[0. 0.]].txt +0 -0
  115. {ams_bp-0.3.1 → ams_bp-0.4.0}/examples/QuantitativeExperiments/FRAP/FRAP_data_[[0.04 0.04]].txt +0 -0
  116. {ams_bp-0.3.1 → ams_bp-0.4.0}/examples/QuantitativeExperiments/FRAP/FRAP_data_[[0.1 0.1]].txt +0 -0
  117. {ams_bp-0.3.1 → ams_bp-0.4.0}/examples/QuantitativeExperiments/FRAP/FRAP_data_[[0.4 0.4]].txt +0 -0
  118. {ams_bp-0.3.1 → ams_bp-0.4.0}/examples/QuantitativeExperiments/MotionModels/groundtruth_boundedfbm.ipynb +0 -0
  119. {ams_bp-0.3.1 → ams_bp-0.4.0}/examples/QuantitativeExperiments/PALM/fPALM/export_full2_0039_039.csv +0 -0
  120. {ams_bp-0.3.1 → ams_bp-0.4.0}/examples/QuantitativeExperiments/PALM/fPALM/npc_palm.ipynb +0 -0
  121. {ams_bp-0.3.1 → ams_bp-0.4.0}/examples/QuantitativeExperiments/PALM/sptPALM/motionmodels_sptmmaple.ipynb +0 -0
  122. {ams_bp-0.3.1 → ams_bp-0.4.0}/examples/QuantitativeExperiments/TwoColor/Confocal/confocal_twocolor.ipynb +0 -0
  123. {ams_bp-0.3.1 → ams_bp-0.4.0}/examples/QuantitativeExperiments/TwoColor/Widefield/widefield_twocolor.ipynb +0 -0
  124. {ams_bp-0.3.1 → ams_bp-0.4.0}/mkdocs.yml +0 -0
  125. {ams_bp-0.3.1 → ams_bp-0.4.0}/pytest.ini +0 -0
  126. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/cells/__init__.py +0 -0
  127. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/cells/budding_yeast_cell.py +0 -0
  128. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/cells/cell_factory.py +0 -0
  129. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/configio/__init__.py +0 -0
  130. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/configio/experiments.py +0 -0
  131. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/configio/saving.py +0 -0
  132. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/groundtruth_generators/__init__.py +0 -0
  133. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/groundtruth_generators/nuclearporecomplexes.py +0 -0
  134. {ams_bp-0.3.1/src/AMS_BP/metadata → ams_bp-0.4.0/src/AMS_BP/gui}/__init__.py +0 -0
  135. {ams_bp-0.3.1/src/AMS_BP/optics → ams_bp-0.4.0/src/AMS_BP/gui/assets}/__init__.py +0 -0
  136. {ams_bp-0.3.1/src/AMS_BP/optics/filters/channels → ams_bp-0.4.0/src/AMS_BP/gui/help_docs}/__init__.py +0 -0
  137. {ams_bp-0.3.1/src/AMS_BP/photophysics → ams_bp-0.4.0/src/AMS_BP/gui/widgets}/__init__.py +0 -0
  138. {ams_bp-0.3.1/src/AMS_BP/probabilityfuncs → ams_bp-0.4.0/src/AMS_BP/gui/widgets/utility_widgets}/__init__.py +0 -0
  139. {ams_bp-0.3.1/src/AMS_BP/sample → ams_bp-0.4.0/src/AMS_BP/logging}/__init__.py +0 -0
  140. {ams_bp-0.3.1/src/AMS_BP/utils → ams_bp-0.4.0/src/AMS_BP/metadata}/__init__.py +0 -0
  141. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/metadata/metadata.py +0 -0
  142. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/motion/__init__.py +0 -0
  143. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/motion/condensate_movement.py +0 -0
  144. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/motion/movement/__init__.py +0 -0
  145. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/motion/movement/boundary_conditions.py +0 -0
  146. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/motion/track_gen.py +0 -0
  147. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/optics/camera/__init__.py +0 -0
  148. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/optics/camera/detectors.py +0 -0
  149. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/optics/camera/quantum_eff.py +0 -0
  150. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/optics/filters/__init__.py +0 -0
  151. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/optics/filters/channels/channelschema.py +0 -0
  152. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/optics/lasers/__init__.py +0 -0
  153. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/optics/lasers/laser_profiles.py +0 -0
  154. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/optics/lasers/scanning_patterns.py +0 -0
  155. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/optics/psf/__init__.py +0 -0
  156. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/optics/psf/psf_engine.py +0 -0
  157. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/photophysics/photon_physics.py +0 -0
  158. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/photophysics/state_kinetics.py +0 -0
  159. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/probabilityfuncs/markov_chain.py +0 -0
  160. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/probabilityfuncs/probability_functions.py +0 -0
  161. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/sample/flurophores/__init__.py +0 -0
  162. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/sample/flurophores/flurophore_schema.py +0 -0
  163. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/sample/sim_sampleplane.py +0 -0
  164. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/sim_config.toml +0 -0
  165. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/sim_microscopy.py +0 -0
  166. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/utils/constants.py +0 -0
  167. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/utils/decorators.py +0 -0
  168. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/utils/errors.py +0 -0
  169. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/utils/maskMaker.py +0 -0
  170. {ams_bp-0.3.1 → ams_bp-0.4.0}/src/AMS_BP/utils/util_functions.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: AMS_BP
3
- Version: 0.3.1
3
+ Version: 0.4.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
@@ -11,12 +11,16 @@ Keywords: SMS
11
11
  Requires-Python: >=3.12
12
12
  Requires-Dist: boundedfbm>=0.4.0
13
13
  Requires-Dist: jsonschema>=4.23.0
14
+ Requires-Dist: napari[all]>=0.5.6
14
15
  Requires-Dist: numpy>=1.21.2
15
16
  Requires-Dist: pydantic>=2.9.2
17
+ Requires-Dist: pyqt6>=6.9.0
16
18
  Requires-Dist: pyvista>=0.44.2
17
19
  Requires-Dist: scikit-image>=0.18.3
18
20
  Requires-Dist: scipy>=1.7.1
21
+ Requires-Dist: tifffile>=2024.12.12
19
22
  Requires-Dist: tomli>=2.0.2
23
+ Requires-Dist: tomlkit>=0.13.2
20
24
  Requires-Dist: typer>=0.12.5
21
25
  Description-Content-Type: text/markdown
22
26
 
@@ -50,6 +54,7 @@ Find detailed API references for the library at: [joemans3/github.io/AMS_BP](htt
50
54
  ## Table of Contents
51
55
  - [Installation](#installation)
52
56
  - [Command Line Interface](#command-line-interface)
57
+ - [GUI](#gui)
53
58
  - [Configuration File](#configuration-file)
54
59
  - [Running Experiments](#running-experiments)
55
60
  - [Advanced Usage](#advanced-usage)
@@ -90,6 +95,9 @@ run_AMS_BP config [OPTIONS]
90
95
 
91
96
  # Run a simulation using a configuration file
92
97
  run_AMS_BP runsim CONFIG_FILE
98
+
99
+ #start the GUI
100
+ run_AMS_BP gui
93
101
  ```
94
102
 
95
103
  ### Config Command Options
@@ -97,6 +105,40 @@ run_AMS_BP runsim CONFIG_FILE
97
105
  - `-o, --output_path PATH`: Specify the output directory for the configuration file
98
106
  - `-r, --recursive_o`: Create output directory if it doesn't exist
99
107
 
108
+ ## GUI
109
+ In addition to the CLI and programmatic API, AMS-BP comes with a graphical interface to guide users through the configuration, simulation, and analysis pipeline.
110
+
111
+ ### Main GUI Features
112
+ The GUI provides the following tools from a single interface:
113
+
114
+ **Create Configuration File** — Launches the visual configuration builder
115
+ **Run Simulation from Config** — Select a .toml file and run the simulation with logging and progress tracking
116
+ **Visualize Microscopy Data (Napari)** — Open TIFF, PNG, ND2, or Zarr image files and view with the Napari viewer
117
+ **Package Logs for Sharing** — Package run directories (e.g., run_2024_04_20_001) into a .zip file for archival or collaboration
118
+
119
+ ### Launch the GUI
120
+ To start the GUI, run:
121
+
122
+ ```bash
123
+
124
+ run_AMS_BP gui
125
+ ```
126
+ #### Configuration Builder
127
+ Clicking "Create Configuration File" opens a template selector where you can choose a preconfigured simulation (with preview images), and then visually edit all configuration options through dedicated tabs.
128
+
129
+ Each section of the configuration is editable via structured UI forms, with contextual help and validation. Tabs include:
130
+
131
+ - Global/Cell/Molecule/Condensate/Fluorophore parameters
132
+ - Laser and optical configuration
133
+ - Camera and channel settings
134
+ - Experiment setup (e.g., z-stack vs time-series)
135
+ Once ready, click "Preview Configuration TOML" to inspect the final file, and "Save" to export.
136
+
137
+ #### Running Simulations from GUI
138
+ Clicking "Run Simulation from Config" lets you select any .toml configuration file. A real-time log viewer shows progress, and outputs are saved in a structured AMS_runs/run_*/ directory.
139
+
140
+ #### Sharing Logs
141
+ Run into an issue? Use the packge logs button to select the logs corresponding to the simulation you just ran, save them and send them over to us! It will help you diagnose the issue!
100
142
 
101
143
  ## Configuration File
102
144
 
@@ -175,32 +217,6 @@ run_AMS_BP config
175
217
  run_AMS_BP runsim sim_config.toml
176
218
  ```
177
219
  4. View the results in the newly created folder, whose name is defined in the config file.
178
- ## Advanced Usage
179
-
180
- ### Using AMS-BP as a Library
181
-
182
- For programmatic control, you can import and use AMS-BP as a Python library:
183
-
184
- ```python
185
- from AMS_BP.configio.convertconfig import ConfigLoader
186
-
187
- # Configuration loader intialization
188
- config_loader = ConfigLoader(config_path="path/to/config.toml")
189
-
190
- # Setup microscope
191
- setup_config = config_loader.setup_microscope()
192
- microscope = setup_config["microscope"]
193
- config_exp = setup_config["experiment_config"]
194
- function_exp = setup_config["experiment_func"]
195
-
196
- # Run simulation
197
- frames, metadata = function_exp(microscope=microscope, config=config_exp)
198
-
199
- # Save results
200
- from AMS_BP.configio.saving import save_config_frames
201
- save_config_frames(metadata, frames, setup_config["base_config"].OutputParameters)
202
- ```
203
- > **_NOTE:_** Please note that this application DOES NOT currently model the process of stimulated emission, and as such is not suitable for simulating stimulated emission microscopy ([STED](https://en.wikipedia.org/wiki/STED_microscopy))-type experiments. Work in this area is ongoing.
204
220
 
205
221
  ## High Priority Features
206
222
  ~~1. Irregular cell shapes with motion models~~ (supported with release of v0.2.0)
@@ -208,3 +224,6 @@ save_config_frames(metadata, frames, setup_config["base_config"].OutputParameter
208
224
  3. STORM workflow examples
209
225
  4. CTRW motion models
210
226
  5. Simpler configurations
227
+ > **_NOTE:_** Please note that this application DOES NOT currently model the process of stimulated emission, and as such is not suitable for simulating stimulated emission microscopy ([STED](https://en.wikipedia.org/wiki/STED_microscopy))-type experiments. Work in this area is ongoing.
228
+
229
+
@@ -28,6 +28,7 @@ Find detailed API references for the library at: [joemans3/github.io/AMS_BP](htt
28
28
  ## Table of Contents
29
29
  - [Installation](#installation)
30
30
  - [Command Line Interface](#command-line-interface)
31
+ - [GUI](#gui)
31
32
  - [Configuration File](#configuration-file)
32
33
  - [Running Experiments](#running-experiments)
33
34
  - [Advanced Usage](#advanced-usage)
@@ -68,6 +69,9 @@ run_AMS_BP config [OPTIONS]
68
69
 
69
70
  # Run a simulation using a configuration file
70
71
  run_AMS_BP runsim CONFIG_FILE
72
+
73
+ #start the GUI
74
+ run_AMS_BP gui
71
75
  ```
72
76
 
73
77
  ### Config Command Options
@@ -75,6 +79,40 @@ run_AMS_BP runsim CONFIG_FILE
75
79
  - `-o, --output_path PATH`: Specify the output directory for the configuration file
76
80
  - `-r, --recursive_o`: Create output directory if it doesn't exist
77
81
 
82
+ ## GUI
83
+ In addition to the CLI and programmatic API, AMS-BP comes with a graphical interface to guide users through the configuration, simulation, and analysis pipeline.
84
+
85
+ ### Main GUI Features
86
+ The GUI provides the following tools from a single interface:
87
+
88
+ **Create Configuration File** — Launches the visual configuration builder
89
+ **Run Simulation from Config** — Select a .toml file and run the simulation with logging and progress tracking
90
+ **Visualize Microscopy Data (Napari)** — Open TIFF, PNG, ND2, or Zarr image files and view with the Napari viewer
91
+ **Package Logs for Sharing** — Package run directories (e.g., run_2024_04_20_001) into a .zip file for archival or collaboration
92
+
93
+ ### Launch the GUI
94
+ To start the GUI, run:
95
+
96
+ ```bash
97
+
98
+ run_AMS_BP gui
99
+ ```
100
+ #### Configuration Builder
101
+ Clicking "Create Configuration File" opens a template selector where you can choose a preconfigured simulation (with preview images), and then visually edit all configuration options through dedicated tabs.
102
+
103
+ Each section of the configuration is editable via structured UI forms, with contextual help and validation. Tabs include:
104
+
105
+ - Global/Cell/Molecule/Condensate/Fluorophore parameters
106
+ - Laser and optical configuration
107
+ - Camera and channel settings
108
+ - Experiment setup (e.g., z-stack vs time-series)
109
+ Once ready, click "Preview Configuration TOML" to inspect the final file, and "Save" to export.
110
+
111
+ #### Running Simulations from GUI
112
+ Clicking "Run Simulation from Config" lets you select any .toml configuration file. A real-time log viewer shows progress, and outputs are saved in a structured AMS_runs/run_*/ directory.
113
+
114
+ #### Sharing Logs
115
+ Run into an issue? Use the packge logs button to select the logs corresponding to the simulation you just ran, save them and send them over to us! It will help you diagnose the issue!
78
116
 
79
117
  ## Configuration File
80
118
 
@@ -153,32 +191,6 @@ run_AMS_BP config
153
191
  run_AMS_BP runsim sim_config.toml
154
192
  ```
155
193
  4. View the results in the newly created folder, whose name is defined in the config file.
156
- ## Advanced Usage
157
-
158
- ### Using AMS-BP as a Library
159
-
160
- For programmatic control, you can import and use AMS-BP as a Python library:
161
-
162
- ```python
163
- from AMS_BP.configio.convertconfig import ConfigLoader
164
-
165
- # Configuration loader intialization
166
- config_loader = ConfigLoader(config_path="path/to/config.toml")
167
-
168
- # Setup microscope
169
- setup_config = config_loader.setup_microscope()
170
- microscope = setup_config["microscope"]
171
- config_exp = setup_config["experiment_config"]
172
- function_exp = setup_config["experiment_func"]
173
-
174
- # Run simulation
175
- frames, metadata = function_exp(microscope=microscope, config=config_exp)
176
-
177
- # Save results
178
- from AMS_BP.configio.saving import save_config_frames
179
- save_config_frames(metadata, frames, setup_config["base_config"].OutputParameters)
180
- ```
181
- > **_NOTE:_** Please note that this application DOES NOT currently model the process of stimulated emission, and as such is not suitable for simulating stimulated emission microscopy ([STED](https://en.wikipedia.org/wiki/STED_microscopy))-type experiments. Work in this area is ongoing.
182
194
 
183
195
  ## High Priority Features
184
196
  ~~1. Irregular cell shapes with motion models~~ (supported with release of v0.2.0)
@@ -186,3 +198,6 @@ save_config_frames(metadata, frames, setup_config["base_config"].OutputParameter
186
198
  3. STORM workflow examples
187
199
  4. CTRW motion models
188
200
  5. Simpler configurations
201
+ > **_NOTE:_** Please note that this application DOES NOT currently model the process of stimulated emission, and as such is not suitable for simulating stimulated emission microscopy ([STED](https://en.wikipedia.org/wiki/STED_microscopy))-type experiments. Work in this area is ongoing.
202
+
203
+
@@ -0,0 +1,193 @@
1
+ # Virtual Microscope Configuration Parser Documentation
2
+
3
+ ## Overview
4
+
5
+ This module provides functionality to parse TOML configuration files and set up a virtual microscope simulation environment. It handles all aspects of configuration including global parameters, cell parameters, molecule parameters, condensate parameters, fluorophores, PSF (Point Spread Function), lasers, filters, channels, detectors, and experimental settings.
6
+
7
+ ## Key Components
8
+
9
+ ### Configuration Loading
10
+
11
+ ```python
12
+ load_config(config_path: Union[str, Path]) -> Dict[str, Any]
13
+ ```
14
+
15
+ Loads and parses a TOML configuration file from the specified path.
16
+
17
+ ### Data Model Schema Population
18
+
19
+ ```python
20
+ populate_dataclass_schema(config: Dict[str, Any]) -> Tuple[GlobalParameters, CellParameters, MoleculeParameters, CondensateParameters, OutputParameters]
21
+ ```
22
+
23
+ Populates Pydantic schema models from configuration data, returning structured parameter objects.
24
+
25
+ ### Experiment Configuration
26
+
27
+ ```python
28
+ create_experiment_from_config(config: Dict[str, Any]) -> Tuple[BaseExpConfig, Callable]
29
+ ```
30
+
31
+ Creates an experiment configuration and associated callable function based on the experiment type (time-series or z-stack).
32
+
33
+ ### Fluorophore Configuration
34
+
35
+ ```python
36
+ create_fluorophores_from_config(config: Dict[str, Any]) -> List[Fluorophore]
37
+ ```
38
+
39
+ Creates a list of fluorophore objects from configuration data, including states and transitions.
40
+
41
+ ### PSF (Point Spread Function) Configuration
42
+
43
+ ```python
44
+ create_psf_from_config(config: Dict[str, Any]) -> Tuple[Callable, Dict[str, Any]]
45
+ ```
46
+
47
+ Creates a PSF engine function and additional configuration from the config data.
48
+
49
+ ### Laser Configuration
50
+
51
+ ```python
52
+ create_lasers_from_config(config: Dict[str, Any]) -> Dict[str, LaserProfile]
53
+ ```
54
+
55
+ Creates laser profile instances (Gaussian, Widefield, HiLo) from configuration data.
56
+
57
+ ### Filter Configuration
58
+
59
+ ```python
60
+ create_filter_set_from_config(config: Dict[str, Any]) -> FilterSet
61
+ ```
62
+
63
+ Creates a filter set (excitation, emission, dichroic) from configuration data.
64
+
65
+ ### Channel Configuration
66
+
67
+ ```python
68
+ create_channels(config: Dict[str, Any]) -> Channels
69
+ ```
70
+
71
+ Creates channel objects from configuration data.
72
+
73
+ ### Detector Configuration
74
+
75
+ ```python
76
+ create_detector_from_config(config: Dict[str, Any]) -> Tuple[Detector, QuantumEfficiency]
77
+ ```
78
+
79
+ Creates a detector instance (CMOS or EMCCD) and quantum efficiency from configuration data.
80
+
81
+ ### Cell Creation
82
+
83
+ ```python
84
+ create_cell_from_params(cell_params) -> BaseCell
85
+ ```
86
+
87
+ Creates a cell object based on cell parameters.
88
+
89
+ ### Sample Plane Creation
90
+
91
+ ```python
92
+ create_sample_plane(global_params: GlobalParameters, cell: BaseCell) -> SamplePlane
93
+ ```
94
+
95
+ Creates a sample plane object based on global parameters and cell information.
96
+
97
+ ### Condensate Configuration
98
+
99
+ ```python
100
+ create_condensates_dict(condensate_params: CondensateParameters, cell: BaseCell) -> List[dict]
101
+ ```
102
+
103
+ Creates a list of condensate dictionaries based on condensate parameters.
104
+
105
+ ### Sampling Function Creation
106
+
107
+ ```python
108
+ create_sampling_functions(condensate_params, cell) -> List[Callable]
109
+ ```
110
+
111
+ Creates sampling functions for initial molecule positions.
112
+
113
+ ### Molecule Position Generation
114
+
115
+ ```python
116
+ generate_initial_positions(molecule_params: MoleculeParameters, cell: BaseCell, condensate_params: CondensateParameters, sampling_functions: List[Callable]) -> List
117
+ ```
118
+
119
+ Generates initial positions for molecules.
120
+
121
+ ### Track Generation
122
+
123
+ ```python
124
+ create_track_generator(global_params: GlobalParameters, cell: BaseCell) -> Track_generator
125
+ ```
126
+
127
+ Creates a track generator object for molecule motion.
128
+
129
+ ```python
130
+ get_tracks(molecule_params: MoleculeParameters, global_params: GlobalParameters, initial_positions: List, track_generator: Track_generator) -> Tuple[List, List]
131
+ ```
132
+
133
+ Generates tracks for molecules based on parameters.
134
+
135
+ ### Sample Creation
136
+
137
+ ```python
138
+ add_tracks_to_sample(tracks: List, sample_plane: SamplePlane, fluorophore: List[Fluorophore], ID_counter=0) -> SamplePlane
139
+ ```
140
+
141
+ Adds tracks to the sample plane.
142
+
143
+ ### Microscope Setup
144
+
145
+ ```python
146
+ setup_microscope(config: Dict[str, Any]) -> dict
147
+ ```
148
+
149
+ The main function that orchestrates the entire setup process and returns a dictionary containing all created components including:
150
+ - Virtual microscope instance
151
+ - Base configuration
152
+ - PSF engine and configuration
153
+ - Channels
154
+ - Lasers
155
+ - Sample plane
156
+ - Tracks
157
+ - Points per time
158
+ - Condensate dictionary
159
+ - Cell
160
+ - Experiment configuration
161
+ - Experiment function
162
+
163
+ ## Usage
164
+
165
+ To use this module, create a TOML configuration file with all necessary parameters and call the `setup_microscope` function:
166
+
167
+ ```python
168
+ config = load_config("path/to/config.toml")
169
+ microscope_setup = setup_microscope(config)
170
+
171
+ # Access the virtual microscope instance
172
+ vm = microscope_setup["microscope"]
173
+
174
+ # Run an experiment
175
+ experiment_func = microscope_setup["experiment_func"]
176
+ experiment_config = microscope_setup["experiment_config"]
177
+ results = experiment_func(vm, experiment_config)
178
+ ```
179
+
180
+ ## Configuration Structure
181
+
182
+ The TOML configuration file should contain the following sections:
183
+ - Global_Parameters: General simulation parameters
184
+ - Cell_Parameters: Cell-specific parameters
185
+ - Molecule_Parameters: Molecule-specific parameters
186
+ - Condensate_Parameters: Condensate-specific parameters
187
+ - Output_Parameters: Output and saving parameters
188
+ - experiment: Experiment-specific parameters
189
+ - fluorophores: Fluorophore definitions
190
+ - psf: PSF configuration
191
+ - lasers: Laser configurations
192
+ - channels: Channel configurations
193
+ - camera: Camera and detector configurations
@@ -0,0 +1,184 @@
1
+ # AMS_BP CLI API Reference
2
+
3
+ ## Module: `main_cli.py`
4
+
5
+ This module provides the command-line interface for the AMS_BP package.
6
+
7
+ ### Dependencies
8
+
9
+ ```python
10
+ import shutil
11
+ import sys
12
+ from pathlib import Path
13
+ from typing import Optional
14
+
15
+ import rich
16
+ import typer
17
+ from PyQt6.QtWidgets import QApplication
18
+ from rich.progress import Progress, SpinnerColumn, TextColumn
19
+ from typing_extensions import Annotated
20
+
21
+ from . import __version__
22
+ from .gui.main import MainWindow
23
+ from .run_sim_util import run_simulation_from_file
24
+ ```
25
+
26
+ ## Main Application Object
27
+
28
+ ### `typer_app_asms_bp`
29
+
30
+ The main Typer application instance that defines the CLI.
31
+
32
+ ```python
33
+ typer_app_asms_bp = typer.Typer(
34
+ name="AMS_BP CLI Tool",
35
+ help=cli_help_doc,
36
+ short_help="CLI tool for AMS_BP.",
37
+ rich_markup_mode="rich",
38
+ pretty_exceptions_show_locals=False,
39
+ add_completion=False,
40
+ no_args_is_help=True,
41
+ context_settings={"help_option_names": ["-h", "--help"]},
42
+ )
43
+ ```
44
+
45
+ ## Functions
46
+
47
+ ### `cell_simulation()`
48
+
49
+ **Description:**
50
+ Callback function that displays version information when the CLI is invoked without a specific command.
51
+
52
+ **Usage:**
53
+ Automatically called when running the CLI without commands.
54
+
55
+ **Returns:**
56
+ None
57
+
58
+ **Example:**
59
+ ```bash
60
+ python -m main_cli
61
+ ```
62
+
63
+ ---
64
+
65
+ ### `run_gui() -> None`
66
+
67
+ **Description:**
68
+ Starts the PyQt GUI for the AMS_BP application.
69
+
70
+ **Parameters:**
71
+ None
72
+
73
+ **Returns:**
74
+ None
75
+
76
+ **Example:**
77
+ ```bash
78
+ python -m main_cli gui
79
+ ```
80
+
81
+ ---
82
+
83
+ ### `generate_config(output_path: Path = Path("."), output_path_make_recursive: Optional[bool] = None) -> None`
84
+
85
+ **Description:**
86
+ Generates a sample configuration file for the cell simulation.
87
+
88
+ **Parameters:**
89
+ - `output_path`: Path where the configuration file will be saved.
90
+ - Type: `Path`
91
+ - Default: Current directory (`Path(".")`)
92
+ - CLI Option: `--output_path, -o`
93
+
94
+ - `output_path_make_recursive`: Whether to create the output directory if it doesn't exist.
95
+ - Type: `Optional[bool]`
96
+ - Default: `None`
97
+ - CLI Option: `--recursive_o, -r`
98
+
99
+ **Returns:**
100
+ None
101
+
102
+ **Raises:**
103
+ - `typer.Abort`: If there's an error creating the configuration file or the output directory.
104
+
105
+ **Example:**
106
+ ```bash
107
+ python -m main_cli config --output_path /path/to/directory --recursive_o
108
+ ```
109
+
110
+ ---
111
+
112
+ ### `run_cell_simulation(config_file: Path) -> None`
113
+
114
+ **Description:**
115
+ Runs the cell simulation using the provided configuration file.
116
+
117
+ **Parameters:**
118
+ - `config_file`: Path to the configuration file.
119
+ - Type: `Path`
120
+ - Required: Yes
121
+ - CLI Argument: First positional argument
122
+
123
+ **Returns:**
124
+ None
125
+
126
+ **Example:**
127
+ ```bash
128
+ python -m main_cli runsim path/to/config.toml
129
+ ```
130
+
131
+ ---
132
+
133
+ ### `validate_config(config: dict) -> None`
134
+
135
+ **Description:**
136
+ Validates that the configuration dictionary has the required structure.
137
+
138
+ **Parameters:**
139
+ - `config`: Configuration dictionary to validate.
140
+ - Type: `dict`
141
+ - Required: Yes
142
+
143
+ **Returns:**
144
+ None
145
+
146
+ **Raises:**
147
+ - `typer.Abort`: If the configuration doesn't have the required structure.
148
+
149
+ **Internal Details:**
150
+ - Checks for the presence of an `Output_Parameters` section
151
+ - Checks for the presence of an `output_path` field within the `Output_Parameters` section
152
+
153
+ ---
154
+
155
+ ## CLI Commands
156
+
157
+ | Command | Description | Arguments | Options |
158
+ |---------|-------------|-----------|---------|
159
+ | `config` | Generate sample configuration file | - | `--output_path, -o`: Output directory<br>`--recursive_o, -r`: Create directories if they don't exist |
160
+ | `runsim` | Run cell simulation | `CONFIG_FILE`: Path to config file | - |
161
+ | `gui` | Start the PyQt GUI | - | - |
162
+
163
+ ## Import and Use in Other Code
164
+
165
+ To use this CLI as a module in other Python code:
166
+
167
+ ```python
168
+ from ams_bp.main_cli import typer_app_asms_bp, generate_config, run_cell_simulation, run_gui
169
+
170
+ # Generate a config file
171
+ generate_config(Path("/path/to/output"), True)
172
+
173
+ # Run a simulation
174
+ run_cell_simulation(Path("/path/to/config.toml"))
175
+
176
+ # Run the GUI
177
+ run_gui()
178
+ ```
179
+
180
+ ## Related Files
181
+
182
+ - `run_sim_util.py`: Contains the `run_simulation_from_file()` function used by the `runsim` command
183
+ - `gui/main.py`: Contains the `MainWindow` class used by the `gui` command
184
+ - `sim_config.toml`: Template configuration file that gets copied when using the `config` command
@@ -408,7 +408,7 @@ Each channel has its own filter set with the following parameters:
408
408
  - **Description**: The type of experiment.
409
409
 
410
410
  ### `z_position`
411
- - **Type**: Array of Numbers
411
+ - **Type**: Array of Numbers, or Number ( if "z-stack" or "time-series")
412
412
  - **Description**: The z-positions for the experiment.
413
413
 
414
414
  ### `laser_names_active`