AMS-BP 0.0.11__tar.gz → 0.0.21__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.11 → ams_bp-0.0.21}/PKG-INFO +19 -42
- {ams_bp-0.0.11 → ams_bp-0.0.21}/README.md +17 -40
- {ams_bp-0.0.11 → ams_bp-0.0.21}/docs/API_Documentation/configio/configmodels.md +12 -11
- {ams_bp-0.0.11 → ams_bp-0.0.21}/docs/API_Documentation/configio/convertconfig.md +3 -3
- {ams_bp-0.0.11 → ams_bp-0.0.21}/docs/API_Documentation/sim_config.md +7 -7
- ams_bp-0.0.21/docs/assets/icons/Cells-actin-like-a-tree-Jamie-Whitelaw-1.png +0 -0
- ams_bp-0.0.21/docs/assets/icons/drawing.pdf +0 -0
- ams_bp-0.0.21/docs/assets/icons/drawing.png +0 -0
- ams_bp-0.0.21/docs/assets/icons/drawing.svg +107 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/docs/index.md +4 -1
- {ams_bp-0.0.11 → ams_bp-0.0.21}/mkdocs.yml +1 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/pyproject.toml +1 -1
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/__init__.py +1 -1
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/configio/configmodels.py +14 -11
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/configio/convertconfig.py +30 -22
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/sim_config.toml +40 -11
- {ams_bp-0.0.11 → ams_bp-0.0.21}/.github/workflows/lint.yml +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/.github/workflows/pages.yml +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/.github/workflows/publish_pypi.yml +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/.gitignore +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/LICENSE +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/docs/API_Documentation/cells/base_cell.md +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/docs/API_Documentation/cells/rectangular_cell.md +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/docs/API_Documentation/cells/rod_cell.md +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/docs/API_Documentation/cells/spherical_cell.md +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/docs/API_Documentation/configio/experiments.md +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/docs/API_Documentation/configio/saving.md +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/docs/API_Documentation/metadata/metadata.md +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/docs/API_Documentation/motion/condensate_movement.md +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/docs/API_Documentation/motion/movement/boundary_conditions.md +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/docs/API_Documentation/motion/movement/fbm_BP.md +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/docs/API_Documentation/motion/track_gen.md +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/docs/API_Documentation/optics/camera/detectors.md +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/docs/API_Documentation/optics/camera/quantum_eff.md +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/docs/API_Documentation/optics/filters/channels/channelschema.md +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/docs/API_Documentation/optics/filters/filters.md +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/docs/API_Documentation/optics/lasers/laser_profiles.md +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/docs/API_Documentation/optics/psf/psf_engine.md +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/docs/API_Documentation/photophysics/photon_physics.md +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/docs/API_Documentation/photophysics/state_kinetics.md +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/docs/API_Documentation/probabilityfuncs/markov_chain.md +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/docs/API_Documentation/probabilityfuncs/probability_functions.md +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/docs/API_Documentation/run_cell_simulation.md +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/docs/API_Documentation/sample/flurophore/flurophore_schema.md +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/docs/API_Documentation/sample/sim_sampleplane.md +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/docs/API_Documentation/sim_microscopy.md +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/docs/API_Documentation/utils/constants.md +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/docs/API_Documentation/utils/errors.md +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/docs/API_Documentation/utils/util_functions.md +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/pytest.ini +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/cells/__init__.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/cells/base_cell.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/cells/rectangular_cell.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/cells/rod_cell.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/cells/spherical_cell.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/configio/__init__.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/configio/experiments.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/configio/saving.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/metadata/__init__.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/metadata/metadata.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/motion/__init__.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/motion/condensate_movement.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/motion/movement/__init__.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/motion/movement/boundary_conditions.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/motion/movement/fbm_BP.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/motion/track_gen.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/optics/__init__.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/optics/camera/__init__.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/optics/camera/detectors.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/optics/camera/quantum_eff.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/optics/filters/__init__.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/optics/filters/channels/__init__.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/optics/filters/channels/channelschema.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/optics/filters/filters.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/optics/lasers/__init__.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/optics/lasers/laser_profiles.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/optics/psf/__init__.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/optics/psf/psf_engine.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/photophysics/__init__.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/photophysics/photon_physics.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/photophysics/state_kinetics.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/probabilityfuncs/__init__.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/probabilityfuncs/markov_chain.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/probabilityfuncs/probability_functions.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/run_cell_simulation.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/sample/__init__.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/sample/flurophores/__init__.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/sample/flurophores/flurophore_schema.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/sample/sim_sampleplane.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/sim_microscopy.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/utils/__init__.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/utils/constants.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/utils/decorators.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/utils/errors.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/utils/maskMaker.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/src/AMS_BP/utils/util_functions.py +0 -0
- {ams_bp-0.0.11 → ams_bp-0.0.21}/uv.lock +0 -0
@@ -1,7 +1,7 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: AMS_BP
|
3
|
-
Version: 0.0.
|
4
|
-
Summary: Advanced
|
3
|
+
Version: 0.0.21
|
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
|
7
7
|
Author-email: Baljyot Singh Parmar <baljyotparmar@hotmail.com>
|
@@ -19,11 +19,17 @@ Requires-Dist: tomli>=2.0.2
|
|
19
19
|
Requires-Dist: typer>=0.12.5
|
20
20
|
Description-Content-Type: text/markdown
|
21
21
|
|
22
|
-
# AMS-BP
|
23
|
-
|
22
|
+
# AMS-BP
|
23
|
+
<p>
|
24
|
+
<img src="./docs/assets/icons/drawing.svg" alt="AMS-BP Logo" width="500" height="200">
|
25
|
+
</p>
|
26
|
+
|
27
|
+
## Advanced Fluorescence Microscopy Simulation Tool
|
24
28
|
|
25
29
|
AMS-BP is a powerful simulation tool for advanced fluorescence microscopy experiments. This guide covers both command-line usage and library integration.
|
26
30
|
|
31
|
+
> **_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.
|
32
|
+
|
27
33
|
## Table of Contents
|
28
34
|
- [Installation](#installation)
|
29
35
|
- [Command Line Interface](#command-line-interface)
|
@@ -49,6 +55,14 @@ uv tool install AMS_BP
|
|
49
55
|
- `run_AMS_BP config` : This is a helper tool to generate a template config file for the simulation. (see `run_AMS_BP config --help` for more details)
|
50
56
|
- Note: using `run_AMS_BP --help` will show you all the available commands.
|
51
57
|
4. You can now use these tools (they are isolated in their own env created by uv, which is cool).
|
58
|
+
|
59
|
+
### ***PyPi***
|
60
|
+
|
61
|
+
1. Run:
|
62
|
+
```bash
|
63
|
+
pip install AMS_BP
|
64
|
+
```
|
65
|
+
|
52
66
|
## Command Line Interface
|
53
67
|
|
54
68
|
AMS-BP provides a command-line interface with two main commands:
|
@@ -70,7 +84,7 @@ run_AMS_BP runsim CONFIG_FILE
|
|
70
84
|
|
71
85
|
The configuration file (sim_config.toml) is divided into several key sections:
|
72
86
|
|
73
|
-
#### For a detailed description of the configuration file, refer to the [Configuration File Reference](
|
87
|
+
#### For a detailed description of the configuration file, refer to the [Configuration File Reference](https://joemans3.github.io/AMS_BP/API_Documentation/sim_config/).
|
74
88
|
### Basic Units
|
75
89
|
```toml
|
76
90
|
version = "0.1"
|
@@ -158,40 +172,3 @@ frames, metadata = function_exp(microscope=microscope, config=config_exp)
|
|
158
172
|
from AMS_BP.configio.saving import save_config_frames
|
159
173
|
save_config_frames(metadata, frames, setup_config["base_config"].OutputParameters)
|
160
174
|
```
|
161
|
-
|
162
|
-
### Key Components When Using as Library
|
163
|
-
|
164
|
-
1. **ConfigLoader**: Handles configuration file parsing and validation
|
165
|
-
2. **Microscope**: Represents the virtual microscope setup
|
166
|
-
3. **Experiment Functions**: Control experiment execution
|
167
|
-
4. **Save Functions**: Handle data output
|
168
|
-
|
169
|
-
### Custom Experiment Types
|
170
|
-
|
171
|
-
When using AMS-BP as a library, you can create custom experiment types by:
|
172
|
-
|
173
|
-
1. Extending the base experiment class
|
174
|
-
2. Implementing custom scanning patterns
|
175
|
-
3. Defining new molecule behaviors
|
176
|
-
4. Creating specialized analysis routines
|
177
|
-
|
178
|
-
## Tips and Best Practices
|
179
|
-
|
180
|
-
1. **Configuration Management**
|
181
|
-
- Keep separate config files for different experiment types
|
182
|
-
- Version control your configurations
|
183
|
-
- Document any custom modifications
|
184
|
-
|
185
|
-
2. **Resource Usage**
|
186
|
-
- Monitor memory usage for large simulations
|
187
|
-
- Use appropriate sampling rates
|
188
|
-
|
189
|
-
3. **Data Output**
|
190
|
-
- Set appropriate output paths
|
191
|
-
- Use meaningful naming conventions
|
192
|
-
- Consider data format requirements for analysis
|
193
|
-
|
194
|
-
## Troubleshooting
|
195
|
-
|
196
|
-
Common issues and their solutions:
|
197
|
-
TODO
|
@@ -1,8 +1,14 @@
|
|
1
|
-
# AMS-BP
|
2
|
-
|
1
|
+
# AMS-BP
|
2
|
+
<p>
|
3
|
+
<img src="./docs/assets/icons/drawing.svg" alt="AMS-BP Logo" width="500" height="200">
|
4
|
+
</p>
|
5
|
+
|
6
|
+
## Advanced Fluorescence Microscopy Simulation Tool
|
3
7
|
|
4
8
|
AMS-BP is a powerful simulation tool for advanced fluorescence microscopy experiments. This guide covers both command-line usage and library integration.
|
5
9
|
|
10
|
+
> **_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.
|
11
|
+
|
6
12
|
## Table of Contents
|
7
13
|
- [Installation](#installation)
|
8
14
|
- [Command Line Interface](#command-line-interface)
|
@@ -28,6 +34,14 @@ uv tool install AMS_BP
|
|
28
34
|
- `run_AMS_BP config` : This is a helper tool to generate a template config file for the simulation. (see `run_AMS_BP config --help` for more details)
|
29
35
|
- Note: using `run_AMS_BP --help` will show you all the available commands.
|
30
36
|
4. You can now use these tools (they are isolated in their own env created by uv, which is cool).
|
37
|
+
|
38
|
+
### ***PyPi***
|
39
|
+
|
40
|
+
1. Run:
|
41
|
+
```bash
|
42
|
+
pip install AMS_BP
|
43
|
+
```
|
44
|
+
|
31
45
|
## Command Line Interface
|
32
46
|
|
33
47
|
AMS-BP provides a command-line interface with two main commands:
|
@@ -49,7 +63,7 @@ run_AMS_BP runsim CONFIG_FILE
|
|
49
63
|
|
50
64
|
The configuration file (sim_config.toml) is divided into several key sections:
|
51
65
|
|
52
|
-
#### For a detailed description of the configuration file, refer to the [Configuration File Reference](
|
66
|
+
#### For a detailed description of the configuration file, refer to the [Configuration File Reference](https://joemans3.github.io/AMS_BP/API_Documentation/sim_config/).
|
53
67
|
### Basic Units
|
54
68
|
```toml
|
55
69
|
version = "0.1"
|
@@ -137,40 +151,3 @@ frames, metadata = function_exp(microscope=microscope, config=config_exp)
|
|
137
151
|
from AMS_BP.configio.saving import save_config_frames
|
138
152
|
save_config_frames(metadata, frames, setup_config["base_config"].OutputParameters)
|
139
153
|
```
|
140
|
-
|
141
|
-
### Key Components When Using as Library
|
142
|
-
|
143
|
-
1. **ConfigLoader**: Handles configuration file parsing and validation
|
144
|
-
2. **Microscope**: Represents the virtual microscope setup
|
145
|
-
3. **Experiment Functions**: Control experiment execution
|
146
|
-
4. **Save Functions**: Handle data output
|
147
|
-
|
148
|
-
### Custom Experiment Types
|
149
|
-
|
150
|
-
When using AMS-BP as a library, you can create custom experiment types by:
|
151
|
-
|
152
|
-
1. Extending the base experiment class
|
153
|
-
2. Implementing custom scanning patterns
|
154
|
-
3. Defining new molecule behaviors
|
155
|
-
4. Creating specialized analysis routines
|
156
|
-
|
157
|
-
## Tips and Best Practices
|
158
|
-
|
159
|
-
1. **Configuration Management**
|
160
|
-
- Keep separate config files for different experiment types
|
161
|
-
- Version control your configurations
|
162
|
-
- Document any custom modifications
|
163
|
-
|
164
|
-
2. **Resource Usage**
|
165
|
-
- Monitor memory usage for large simulations
|
166
|
-
- Use appropriate sampling rates
|
167
|
-
|
168
|
-
3. **Data Output**
|
169
|
-
- Set appropriate output paths
|
170
|
-
- Use meaningful naming conventions
|
171
|
-
- Consider data format requirements for analysis
|
172
|
-
|
173
|
-
## Troubleshooting
|
174
|
-
|
175
|
-
Common issues and their solutions:
|
176
|
-
TODO
|
@@ -107,23 +107,24 @@ class CondensateParameters(BaseModel)
|
|
107
107
|
```
|
108
108
|
|
109
109
|
#### Fields
|
110
|
-
|
110
|
+
First dimension represents the types of molecules. (similar to the MoleculeParameters)
|
111
|
+
- `initial_centers: List[List[List[float]]]`
|
111
112
|
- Description: Initial centers in micrometers
|
112
113
|
- 2D array automatically converted to numpy array
|
113
114
|
|
114
|
-
- `initial_scale: List[float]`
|
115
|
+
- `initial_scale: List[List[float]]`
|
115
116
|
- Description: Initial scale in micrometers
|
116
117
|
- Automatically converted to numpy array
|
117
118
|
|
118
|
-
- `diffusion_coefficient: List[float]`
|
119
|
+
- `diffusion_coefficient: List[List[float]]`
|
119
120
|
- Description: Diffusion coefficients in μm²/s
|
120
121
|
- Automatically converted to numpy array
|
121
122
|
|
122
|
-
- `hurst_exponent: List[float]`
|
123
|
+
- `hurst_exponent: List[List[float]]`
|
123
124
|
- Description: Hurst exponents for motion
|
124
125
|
- Automatically converted to numpy array
|
125
126
|
|
126
|
-
- `density_dif: int`
|
127
|
+
- `density_dif: List[int]`
|
127
128
|
- Description: Density difference parameter
|
128
129
|
|
129
130
|
### OutputParameters
|
@@ -190,11 +191,11 @@ config = ConfigList(
|
|
190
191
|
oversample_motion_time=10
|
191
192
|
),
|
192
193
|
CondensateParameters=CondensateParameters(
|
193
|
-
initial_centers=[[5.0, 5.0]],
|
194
|
-
initial_scale=[2.0],
|
195
|
-
diffusion_coefficient=[0.1],
|
196
|
-
hurst_exponent=[0.7],
|
197
|
-
density_dif=2
|
194
|
+
initial_centers=[[[5.0, 5.0]]],
|
195
|
+
initial_scale=[[2.0]],
|
196
|
+
diffusion_coefficient=[[0.1]],
|
197
|
+
hurst_exponent=[[0.7]],
|
198
|
+
density_dif=[2]
|
198
199
|
),
|
199
200
|
OutputParameters=OutputParameters(
|
200
201
|
output_path="./output",
|
@@ -208,4 +209,4 @@ config = ConfigList(
|
|
208
209
|
## Dependencies
|
209
210
|
- `pydantic`: For data validation and settings management
|
210
211
|
- `numpy`: For array operations
|
211
|
-
- `typing`: For type hints
|
212
|
+
- `typing`: For type hints
|
@@ -108,13 +108,13 @@ Creates sample plane from parameters.
|
|
108
108
|
|
109
109
|
### `make_condensatedict`
|
110
110
|
```python
|
111
|
-
def make_condensatedict(condensate_params, cell) -> dict
|
111
|
+
def make_condensatedict(condensate_params, cell) -> List[dict]
|
112
112
|
```
|
113
|
-
Creates condensate
|
113
|
+
Creates condensate dictionaries from parameters.
|
114
114
|
- **Parameters:**
|
115
115
|
- `condensate_params`: Condensate parameters
|
116
116
|
- `cell`: Cell instance
|
117
|
-
- **Returns:** Condensate
|
117
|
+
- **Returns:** Condensate dictionaries
|
118
118
|
|
119
119
|
### `get_tracks`
|
120
120
|
```python
|
@@ -122,24 +122,24 @@ This document provides a detailed explanation of the TOML configuration file use
|
|
122
122
|
## 5. **Condensate Parameters**
|
123
123
|
|
124
124
|
### `initial_centers`
|
125
|
-
- **Type**: Array of Arrays of Numbers
|
126
|
-
- **Shape**: `[[x, y, z], ...]`
|
127
|
-
- **Description**: The initial centers of condensates in micrometers (`um`).
|
125
|
+
- **Type**: Array of Array of Arrays of Numbers
|
126
|
+
- **Shape**: `[[[x, y, z], ...], ...]`
|
127
|
+
- **Description**: The initial centers of condensates in micrometers (`um`). The first dimension is the types of different molecules. Similarr to the `num_molecules` array in the molecule parameters.
|
128
128
|
|
129
129
|
### `initial_scale`
|
130
|
-
- **Type**: Array of Numbers
|
130
|
+
- **Type**: Array of Array of Numbers
|
131
131
|
- **Description**: The initial scale of condensates in micrometers (`um`).
|
132
132
|
|
133
133
|
### `diffusion_coefficient`
|
134
|
-
- **Type**: Array of Numbers
|
134
|
+
- **Type**: Array of Array of Numbers
|
135
135
|
- **Description**: The diffusion coefficients of condensates in `um^2/s`.
|
136
136
|
|
137
137
|
### `hurst_exponent`
|
138
|
-
- **Type**: Array of Numbers
|
138
|
+
- **Type**: Array of Array of Numbers
|
139
139
|
- **Description**: The Hurst exponents of condensates.
|
140
140
|
|
141
141
|
### `density_dif`
|
142
|
-
- **Type**: Number
|
142
|
+
- **Type**: Array of Number
|
143
143
|
- **Description**: The density difference between the condensate and the background.
|
144
144
|
|
145
145
|
---
|
Binary file
|
Binary file
|
@@ -0,0 +1,107 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
|
+
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
3
|
+
|
4
|
+
<svg
|
5
|
+
width="125.97778mm"
|
6
|
+
height="53.644855mm"
|
7
|
+
viewBox="0 0 125.97776 53.644857"
|
8
|
+
version="1.1"
|
9
|
+
id="svg5"
|
10
|
+
xml:space="preserve"
|
11
|
+
inkscape:version="1.2.1 (9c6d41e4, 2022-07-14)"
|
12
|
+
sodipodi:docname="drawing.svg"
|
13
|
+
inkscape:export-filename="drawing.png"
|
14
|
+
inkscape:export-xdpi="96"
|
15
|
+
inkscape:export-ydpi="96"
|
16
|
+
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
17
|
+
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
18
|
+
xmlns:xlink="http://www.w3.org/1999/xlink"
|
19
|
+
xmlns="http://www.w3.org/2000/svg"
|
20
|
+
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
|
21
|
+
id="namedview7"
|
22
|
+
pagecolor="#ffffff"
|
23
|
+
bordercolor="#000000"
|
24
|
+
borderopacity="0.25"
|
25
|
+
inkscape:showpageshadow="2"
|
26
|
+
inkscape:pageopacity="0.0"
|
27
|
+
inkscape:pagecheckerboard="0"
|
28
|
+
inkscape:deskcolor="#d1d1d1"
|
29
|
+
inkscape:document-units="mm"
|
30
|
+
showgrid="false"
|
31
|
+
inkscape:zoom="0.73986917"
|
32
|
+
inkscape:cx="160.83925"
|
33
|
+
inkscape:cy="87.85337"
|
34
|
+
inkscape:window-width="1309"
|
35
|
+
inkscape:window-height="456"
|
36
|
+
inkscape:window-x="0"
|
37
|
+
inkscape:window-y="37"
|
38
|
+
inkscape:window-maximized="0"
|
39
|
+
inkscape:current-layer="g3684" /><defs
|
40
|
+
id="defs2" /><g
|
41
|
+
inkscape:label="Layer 1"
|
42
|
+
inkscape:groupmode="layer"
|
43
|
+
id="layer1"
|
44
|
+
transform="translate(-27.086214,-76.914915)"><g
|
45
|
+
id="g3684"
|
46
|
+
transform="matrix(1.9992994,0,0,2.2020296,-94.700072,-124.92117)"><rect
|
47
|
+
style="fill:#000000;fill-opacity:1;stroke:#020003;stroke-width:0.995148;stroke-linejoin:bevel;stroke-dasharray:none;stroke-opacity:1"
|
48
|
+
id="rect3488"
|
49
|
+
width="38.09753"
|
50
|
+
height="22.701815"
|
51
|
+
x="62.086613"
|
52
|
+
y="92.491959"
|
53
|
+
ry="2.0249722" /><g
|
54
|
+
id="g3010"
|
55
|
+
transform="matrix(0.06365389,0,0,0.06365391,96.148715,87.667151)"><path
|
56
|
+
d="M 402.773,182.731 272.587,122.942 v -4.525 A 35.36,35.36 0 0 0 237.267,83.1 h -8.619 a 35.36,35.36 0 0 0 -35.32,35.321 v 64.531 a 21.723,21.723 0 0 0 14.946,20.643 v 34.972 a 24.684,24.684 0 0 0 49.367,0 V 203.6 a 21.732,21.732 0 0 0 14.946,-20.648 v -4.1 l 37.313,46.205 c 0.027,0.032 0.053,0.065 0.08,0.1 a 33.611,33.611 0 0 1 7.9,21.628 v 28.13 h -160.9 a 18.456,18.456 0 1 0 0,36.911 h 95.32 a 31.079,31.079 0 0 0 -6.655,19.241 v 30.479 a 31.079,31.079 0 0 0 6.655,19.241 H 104.373 a 21.924,21.924 0 0 0 -21.9,21.9 v 4.323 a 21.924,21.924 0 0 0 21.9,21.9 h 319.153 a 6,6 0 0 0 6,-6 V 224.23 a 45.635,45.635 0 0 0 -26.753,-41.499 z m -169.815,68.514 a 12.7,12.7 0 0 1 -12.684,-12.682 v -33.847 l 0.006,-0.011 h 25.361 v 33.858 a 12.7,12.7 0 0 1 -12.683,12.682 z m 27.629,-68.3 a 9.74,9.74 0 0 1 -9.229,9.739 c -0.178,0.008 -0.349,0.018 -0.527,0.018 h -35.748 c -0.178,0 -0.348,-0.01 -0.5,-0.017 a 9.744,9.744 0 0 1 -9.25,-9.74 V 118.417 A 23.347,23.347 0 0 1 228.648,95.1 h 8.619 a 23.348,23.348 0 0 1 23.32,23.321 z M 150.523,293.366 a 6.463,6.463 0 0 1 6.456,-6.455 h 160.9 v 12.911 h -160.9 a 6.463,6.463 0 0 1 -6.456,-6.456 z m 107.118,68.176 v -30.479 a 19.261,19.261 0 0 1 19.24,-19.241 h 41 v 68.961 h -41 a 19.262,19.262 0 0 1 -19.24,-19.241 z M 417.526,416.9 H 104.373 a 9.91,9.91 0 0 1 -9.9,-9.9 v -4.323 a 9.911,9.911 0 0 1 9.9,-9.9 h 313.153 z m 0,-36.121 h -87.643 v -134 a 45.622,45.622 0 0 0 -10.68,-29.31 l -45.948,-56.9 a 6.023,6.023 0 0 0 -0.668,-0.694 v -23.727 l 125.21,57.5 a 33.626,33.626 0 0 1 19.729,30.58 z"
|
57
|
+
id="path2881"
|
58
|
+
style="fill:#d0ce2d;fill-opacity:1;stroke:#648ddb;stroke-opacity:1" /><path
|
59
|
+
d="m 374,288 a 38,38 0 1 0 38,38 38.043,38.043 0 0 0 -38,-38 z m 0,64 a 26,26 0 1 1 26,-26 26.029,26.029 0 0 1 -26,26 z"
|
60
|
+
id="path2883"
|
61
|
+
style="fill:#000000;fill-opacity:1" /></g><g
|
62
|
+
id="g3652"
|
63
|
+
transform="matrix(0.9,0,0,0.9,8.29375,10.389063)"><g
|
64
|
+
id="g1060"><image
|
65
|
+
width="15.875"
|
66
|
+
height="22.489582"
|
67
|
+
preserveAspectRatio="none"
|
68
|
+
xlink:href="data:image/PNG;base64, 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 rkJggg== "
|
69
|
+
id="image140"
|
70
|
+
x="86.665413"
|
71
|
+
y="92.645836" /><image
|
72
|
+
width="15.875"
|
73
|
+
height="22.489582"
|
74
|
+
preserveAspectRatio="none"
|
75
|
+
xlink:href="data:image/PNG;base64, iVBORw0KGgoAAAANSUhEUgAAADwAAABVCAMAAAAi2XfSAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAA B6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAACN1BMVEUAAAABAAAEAAAIAAAOAAAW AAAdAAAkAAArAAAwAAAuAAApAAAhAAAgAAAnAAAfAAAXAAAQAAANAAAUAAAYAAAaAAAmAAAqAAAiAA AVAAAlAAAvAAARAAACAAADAAAHAAASAAAjAAAbAAAPAAATAAAxAAAyAAAeAAAKAAAFAAAoAAAsAAA5 AABDAABEAAA/AAA2AAAZAAALAAA3AAAcAAAzAABNAABQAABOAAAJAAAtAABMAABSAABGAAA6AAAGAA A0AAA+AABFAAA9AAAMAAA1AAA4AAA7AAA8AABAAABCAABPAABBAABKAABIAABmAAB9AAB+AABwAABb AABYAABpAAB1AAB3AAB2AAByAABqAABgAABLAABJAABlAACQAACuAACzAACiAACGAAB0AACFAACaAA CpAACvAACrAACkAACVAAB/AABnAABRAAC0AADbAADhAADSAACyAACXAACTAAC5AADKAADRAADTAADJ AAC4AACZAABTAACKAADAAADtAAD9AADvAADQAACxAACjAACtAAC/AADOAADgAADdAADGAACgAABaAA C6AADnAAD/AAD5AAC3AAClAACoAADPAADZAADcAADUAAC7AADpAADlAADMAACbAACsAAC9AADLAACc AABVAAB4AAChAACLAAB6AACNAACmAACWAABtAABZAACBAAB7AABWAABUAABHAABfAABoAABeAACDAA CCAABXAABvAACeAACfAACRAABhAAD///81K/IXAAAAAWJLR0S8StLi7wAAAAd0SU1FB+gMGAw1NgIP D3UAAA3LSURBVFjDbViHe+PmeT+R2MAHgMQekrBIUAAlESRwd8T5KOpEUuN0lziOR5u7NE3itnFq1x 1uWjvubrrS60r3dtKZjqtbd/5z/UFXH6k8pR6Jkp7n5fd+7/gN3LiB11arTdEMy/GCKBGJlVlF7XSp jqYbjGRalmwbjmO4gse5LGF0ze+2W9s3/u+1tb2z2w0MxeUslpBQxlsUxJ1EZ4jtcr2+IKeO7zCuG4 auyZJI9Qd7Wx/Hbm3vtbu+ykiuGRLJ5fp8ltKJhn+wcj7cPzgcmVES0IURpaFsskoUDFrr4NbuOE70 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 OjUzOjU0KzAwOjAw6yLFsgAAAABJRU5ErkJggg== "
|
76
|
+
id="image152"
|
77
|
+
x="73.332962"
|
78
|
+
y="92.645836" /><image
|
79
|
+
width="15.875"
|
80
|
+
height="22.489584"
|
81
|
+
preserveAspectRatio="none"
|
82
|
+
xlink:href="data:image/PNG;base64, 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 "
|
83
|
+
id="image164"
|
84
|
+
x="60"
|
85
|
+
y="92.645836" /></g><text
|
86
|
+
xml:space="preserve"
|
87
|
+
style="font-weight:bold;font-size:17.0365px;line-height:11.6365px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';text-align:center;letter-spacing:0px;text-anchor:middle;fill:none;fill-opacity:1;stroke:#fefcff;stroke-width:0.252758;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke"
|
88
|
+
x="89.708412"
|
89
|
+
y="99.697433"
|
90
|
+
id="text501"
|
91
|
+
transform="scale(0.90157797,1.1091664)"><tspan
|
92
|
+
sodipodi:role="line"
|
93
|
+
id="tspan499"
|
94
|
+
style="fill:none;fill-opacity:1;stroke:#fefcff;stroke-width:0.252758;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke"
|
95
|
+
x="89.708412"
|
96
|
+
y="99.697433">AMS</tspan></text></g><text
|
97
|
+
xml:space="preserve"
|
98
|
+
style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.18572px;line-height:1.60776px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Italic';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;fill:#000000;stroke:none;stroke-width:0.290723;stroke-linecap:round;paint-order:fill markers stroke"
|
99
|
+
x="114.30348"
|
100
|
+
y="114.54252"
|
101
|
+
id="text738"
|
102
|
+
transform="scale(1.0494764,0.95285612)"><tspan
|
103
|
+
sodipodi:role="line"
|
104
|
+
id="tspan736"
|
105
|
+
style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.18572px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Italic';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke:none;stroke-width:0.290723"
|
106
|
+
x="114.30348"
|
107
|
+
y="114.54252">BP</tspan></text></g></g></svg>
|
@@ -1,5 +1,8 @@
|
|
1
1
|
# AMS-BP User Guide
|
2
|
-
|
2
|
+
<p>
|
3
|
+
<img src="assets/icons/drawing.svg" alt="AMS-BP Logo" width="500" height="200">
|
4
|
+
</p>
|
5
|
+
## Advanced Fluorescence Microscopy Simulation Tool
|
3
6
|
|
4
7
|
AMS-BP is a powerful simulation tool for advanced fluorescence microscopy experiments. This guide covers both command-line usage and library integration.
|
5
8
|
|
@@ -3,7 +3,7 @@ name = "AMS_BP"
|
|
3
3
|
|
4
4
|
dynamic = ["version"]
|
5
5
|
|
6
|
-
description = "Advanced
|
6
|
+
description = "Advanced Microscopy Simulations developed for the Weber Lab by Baljyot Singh Parmar"
|
7
7
|
|
8
8
|
readme = "README.md"
|
9
9
|
|
@@ -60,19 +60,22 @@ class GlobalParameters(BaseModel):
|
|
60
60
|
|
61
61
|
|
62
62
|
class CondensateParameters(BaseModel):
|
63
|
-
initial_centers: List[List[float]] = Field(
|
64
|
-
|
65
|
-
diffusion_coefficient: List[float] = Field(
|
66
|
-
description="Diffusion coefficients in um^2/s"
|
63
|
+
initial_centers: List[List[List[float]]] = Field(
|
64
|
+
description="Initial centers in um"
|
67
65
|
)
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
@field_validator(
|
72
|
-
"initial_centers", "initial_scale", "diffusion_coefficient", "hurst_exponent"
|
66
|
+
initial_scale: List[List[float]] = Field(description="Initial scale in um")
|
67
|
+
diffusion_coefficient: List[List[float]] = Field(
|
68
|
+
description="Diffusion coefficients in um^2/s"
|
73
69
|
)
|
74
|
-
|
75
|
-
|
70
|
+
hurst_exponent: List[List[float]]
|
71
|
+
density_dif: List[int]
|
72
|
+
|
73
|
+
# @field_validator(
|
74
|
+
# "initial_centers", "initial_scale", "diffusion_coefficient", "hurst_exponent"
|
75
|
+
# )
|
76
|
+
# def convert_to_array(cls, v):
|
77
|
+
# return np.array(v)
|
78
|
+
#
|
76
79
|
|
77
80
|
|
78
81
|
class OutputParameters(BaseModel):
|
@@ -680,7 +680,7 @@ class ConfigLoader:
|
|
680
680
|
)
|
681
681
|
|
682
682
|
# make sampling function
|
683
|
-
|
683
|
+
sampling_functions = make_samplingfunction(
|
684
684
|
condensate_params=base_config.CondensateParameters, cell=cell
|
685
685
|
)
|
686
686
|
|
@@ -689,7 +689,7 @@ class ConfigLoader:
|
|
689
689
|
molecule_params=base_config.MoleculeParameters,
|
690
690
|
cell=cell,
|
691
691
|
condensate_params=base_config.CondensateParameters,
|
692
|
-
|
692
|
+
sampling_functions=sampling_functions,
|
693
693
|
)
|
694
694
|
|
695
695
|
# create the track generator
|
@@ -776,34 +776,42 @@ def make_sample(global_params, cell_params) -> SamplePlane:
|
|
776
776
|
return sample_plane
|
777
777
|
|
778
778
|
|
779
|
-
def make_condensatedict(condensate_params, cell) -> dict:
|
780
|
-
condensates_dict =
|
781
|
-
|
782
|
-
|
783
|
-
|
784
|
-
|
785
|
-
|
786
|
-
|
779
|
+
def make_condensatedict(condensate_params, cell) -> List[dict]:
|
780
|
+
condensates_dict = []
|
781
|
+
for i in range(len(condensate_params.initial_centers)):
|
782
|
+
condensates_dict.append(
|
783
|
+
create_condensate_dict(
|
784
|
+
initial_centers=condensate_params.initial_centers[i],
|
785
|
+
initial_scale=condensate_params.initial_scale[i],
|
786
|
+
diffusion_coefficient=condensate_params.diffusion_coefficient[i],
|
787
|
+
hurst_exponent=condensate_params.hurst_exponent[i],
|
788
|
+
cell=cell,
|
789
|
+
)
|
790
|
+
)
|
787
791
|
return condensates_dict
|
788
792
|
|
789
793
|
|
790
|
-
def make_samplingfunction(condensate_params, cell) -> Callable:
|
791
|
-
|
792
|
-
|
793
|
-
|
794
|
-
|
795
|
-
|
796
|
-
|
797
|
-
|
798
|
-
|
794
|
+
def make_samplingfunction(condensate_params, cell) -> List[Callable]:
|
795
|
+
sampling_functions = []
|
796
|
+
for i in range(len(condensate_params.initial_centers)):
|
797
|
+
sampling_functions.append(
|
798
|
+
tp(
|
799
|
+
num_subspace=len(condensate_params.initial_centers[i]),
|
800
|
+
subspace_centers=condensate_params.initial_centers[i],
|
801
|
+
subspace_radius=condensate_params.initial_scale[i],
|
802
|
+
density_dif=condensate_params.density_dif[i],
|
803
|
+
cell=cell,
|
804
|
+
)
|
805
|
+
)
|
806
|
+
return sampling_functions
|
799
807
|
|
800
808
|
|
801
|
-
def gen_initial_positions(molecule_params, cell, condensate_params,
|
809
|
+
def gen_initial_positions(molecule_params, cell, condensate_params, sampling_functions):
|
802
810
|
initials = []
|
803
811
|
for i in range(len(molecule_params.num_molecules)):
|
804
812
|
num_molecules = molecule_params.num_molecules[i]
|
805
813
|
initial_positions = gen_points(
|
806
|
-
pdf=
|
814
|
+
pdf=sampling_functions[i],
|
807
815
|
total_points=num_molecules,
|
808
816
|
min_x=cell.origin[0],
|
809
817
|
max_x=cell.origin[0] + cell.dimensions[0],
|
@@ -811,7 +819,7 @@ def gen_initial_positions(molecule_params, cell, condensate_params, sampling_fun
|
|
811
819
|
max_y=cell.origin[1] + cell.dimensions[1],
|
812
820
|
min_z=-cell.dimensions[2] / 2,
|
813
821
|
max_z=cell.dimensions[2] / 2,
|
814
|
-
density_dif=condensate_params.density_dif,
|
822
|
+
density_dif=condensate_params.density_dif[i],
|
815
823
|
)
|
816
824
|
initials.append(initial_positions)
|
817
825
|
return initials
|
@@ -77,20 +77,49 @@ oversample_motion_time = 20 # ms
|
|
77
77
|
[Condensate_Parameters]
|
78
78
|
initial_centers = [
|
79
79
|
[
|
80
|
-
|
81
|
-
|
82
|
-
|
80
|
+
[
|
81
|
+
5.5,
|
82
|
+
5,
|
83
|
+
0.05,
|
84
|
+
],
|
85
|
+
[
|
86
|
+
5,
|
87
|
+
5,
|
88
|
+
-0.15,
|
89
|
+
],
|
90
|
+
[
|
91
|
+
5,
|
92
|
+
6,
|
93
|
+
-0.15,
|
94
|
+
],
|
95
|
+
[
|
96
|
+
5,
|
97
|
+
5.5,
|
98
|
+
-0.15,
|
99
|
+
],
|
100
|
+
[
|
101
|
+
6,
|
102
|
+
5.5,
|
103
|
+
-0.15,
|
104
|
+
],
|
83
105
|
],
|
84
106
|
[
|
85
|
-
|
86
|
-
|
87
|
-
|
107
|
+
[
|
108
|
+
5.5,
|
109
|
+
5,
|
110
|
+
0.05,
|
111
|
+
],
|
112
|
+
[
|
113
|
+
5,
|
114
|
+
7,
|
115
|
+
-0.15,
|
116
|
+
],
|
88
117
|
],
|
89
|
-
] # um
|
90
|
-
initial_scale = [0.26, 0.26] # um
|
91
|
-
diffusion_coefficient = [0, 0] # um^2/s
|
92
|
-
hurst_exponent = [0.2, 0.2]
|
93
|
-
density_dif = 10 # density of the condensate vs the background.
|
118
|
+
] # um. First dimension is the types of molecules as in Molecule Parameters.num_molecules. second dimension is the # of condentates. center = [x,y,z]
|
119
|
+
initial_scale = [[0.26, 0.26, 0.13, 0.13, 0.26], [0.26, 0.26]] # um
|
120
|
+
diffusion_coefficient = [[0, 0, 0, 0, 0], [0, 0]] # um^2/s
|
121
|
+
hurst_exponent = [[0.2, 0.2, 0.2, 0.2, 0.2], [0.2, 0.2]]
|
122
|
+
density_dif = [10, 10] # density of the condensate vs the background.
|
94
123
|
|
95
124
|
[Output_Parameters]
|
96
125
|
output_path = "<YOUR-PATH-HERE-CAN-BE-ABSOLUTE-OR-RELATIVE>"
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{ams_bp-0.0.11 → ams_bp-0.0.21}/docs/API_Documentation/motion/movement/boundary_conditions.md
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{ams_bp-0.0.11 → ams_bp-0.0.21}/docs/API_Documentation/optics/filters/channels/channelschema.md
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{ams_bp-0.0.11 → ams_bp-0.0.21}/docs/API_Documentation/probabilityfuncs/probability_functions.md
RENAMED
File without changes
|
File without changes
|
{ams_bp-0.0.11 → ams_bp-0.0.21}/docs/API_Documentation/sample/flurophore/flurophore_schema.md
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|