AMS-BP 0.0.11__py3-none-any.whl → 0.0.21__py3-none-any.whl

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/__init__.py CHANGED
@@ -10,4 +10,4 @@ Last updated: 2024-12-16
10
10
 
11
11
  """
12
12
 
13
- __version__ = "0.0.11"
13
+ __version__ = "0.0.21"
@@ -60,19 +60,22 @@ class GlobalParameters(BaseModel):
60
60
 
61
61
 
62
62
  class CondensateParameters(BaseModel):
63
- initial_centers: List[List[float]] = Field(description="Initial centers in um")
64
- initial_scale: List[float] = Field(description="Initial scale in um")
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
- hurst_exponent: List[float]
69
- density_dif: int
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
- def convert_to_array(cls, v):
75
- return np.array(v)
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
- sampling_function = make_samplingfunction(
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
- sampling_function=sampling_function,
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 = create_condensate_dict(
781
- initial_centers=condensate_params.initial_centers,
782
- initial_scale=condensate_params.initial_scale,
783
- diffusion_coefficient=condensate_params.diffusion_coefficient,
784
- hurst_exponent=condensate_params.hurst_exponent,
785
- cell=cell,
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
- sampling_function = tp(
792
- num_subspace=len(condensate_params.initial_centers),
793
- subspace_centers=condensate_params.initial_centers,
794
- subspace_radius=condensate_params.initial_scale,
795
- density_dif=condensate_params.density_dif,
796
- cell=cell,
797
- )
798
- return sampling_function
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, sampling_function):
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=sampling_function,
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
AMS_BP/sim_config.toml CHANGED
@@ -77,20 +77,49 @@ oversample_motion_time = 20 # ms
77
77
  [Condensate_Parameters]
78
78
  initial_centers = [
79
79
  [
80
- 5.5,
81
- 5,
82
- 0.05,
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
- 5,
86
- 7,
87
- -0.15,
107
+ [
108
+ 5.5,
109
+ 5,
110
+ 0.05,
111
+ ],
112
+ [
113
+ 5,
114
+ 7,
115
+ -0.15,
116
+ ],
88
117
  ],
89
- ] # um, first dimension is the # of condentates. center = [x,y,z]
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>"
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: AMS_BP
3
- Version: 0.0.11
4
- Summary: Advanced Molecule Simulations and Microscopy Simulations developed for the Weber Lab by Baljyot Singh Parmar
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 User Guide
23
- ## Advanced Molecule Simulation Tool
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](./API_Documentation/sim_config.md).
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,6 +1,6 @@
1
- AMS_BP/__init__.py,sha256=RIbrP3fesid1_nRkAUmjla1c4p2K5T-2exkbTTssitg,327
1
+ AMS_BP/__init__.py,sha256=gA3WHujyg_TRO9bQK9orLK8uNHSObJpmsLkv8GHRzLc,327
2
2
  AMS_BP/run_cell_simulation.py,sha256=fPU1Tuu7hBupGtMk07j2t8QYo_TjFLMJRU9fwmAgU9c,7502
3
- AMS_BP/sim_config.toml,sha256=raxr-VSoVdTbaQX09rkLEiMWY2UfPShpv9v5MSVB4_g,11383
3
+ AMS_BP/sim_config.toml,sha256=FD-OcSDAgRuNIalFe0pC8sbsaSwM-9DV2DNswds2q54,11976
4
4
  AMS_BP/sim_microscopy.py,sha256=7JQ6NQlgNZCvFE-FC1f9Ehh6DoJgn7bLzeqS_Mamq9Y,18619
5
5
  AMS_BP/cells/__init__.py,sha256=yWFScBC1uOGDkeC8i1m1ZBtIREcyt4JHxYa72LxbBZU,177
6
6
  AMS_BP/cells/base_cell.py,sha256=FIPB9J8F40tb53vv7C6qG-SaAFLOI8-MGIk1mmZ-gnI,1503
@@ -8,8 +8,8 @@ AMS_BP/cells/rectangular_cell.py,sha256=5yGxvTXYvgldLXyWXpE_SD9Zx2NLerC-I2j02reH
8
8
  AMS_BP/cells/rod_cell.py,sha256=jQ1kLEk74Pv2rcXPRJ6-QJJhux-mYiDSytzqlxCNWfA,3181
9
9
  AMS_BP/cells/spherical_cell.py,sha256=n3ou3tW0nCxXIwv6uLkVKHkYCfgoNn8VI6CVTLBIll0,2140
10
10
  AMS_BP/configio/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
- AMS_BP/configio/configmodels.py,sha256=KK5A9aFzRuXBWlwEGr84_x3LY60p7cddRgBsSkx5iS8,2986
12
- AMS_BP/configio/convertconfig.py,sha256=OHm9GnKXXObGWIEpeFfHOYJTHNWhjZKhoopLG85zWgY,34271
11
+ AMS_BP/configio/configmodels.py,sha256=Isc6THk3RAIVdjEUBW4c_OD0I122dYufgEvAcGJQ5uo,3046
12
+ AMS_BP/configio/convertconfig.py,sha256=lS7FTDheESdbpaZ0K1LcE8rkdJOKLjzIvcmWpjeebSs,34654
13
13
  AMS_BP/configio/experiments.py,sha256=HdfaSi0gPPJ_wLF87XcW5ICja19Uezx7-ygFEwNzi30,3995
14
14
  AMS_BP/configio/saving.py,sha256=596QgAadV32rzsN4B2FngGFcBWCzCDnLFN-qtQsv3bM,857
15
15
  AMS_BP/metadata/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -48,8 +48,8 @@ AMS_BP/utils/decorators.py,sha256=4qFdvzPJne0dhkhD1znPxRln1Rfr5NX8rdcCDcbATRU,62
48
48
  AMS_BP/utils/errors.py,sha256=7BOd-L4_YeKmWn3Q4EOdTnNF3Bj_exDa3eg5X0yCZrc,759
49
49
  AMS_BP/utils/maskMaker.py,sha256=2ca3n2nc8rFtUh1LurKXOJJsUmhrOpWbRnVX7fjRVvs,335
50
50
  AMS_BP/utils/util_functions.py,sha256=jI6WBh09_khdABnEoVK7SK1WRvCLHuw40f5ALyflzlc,9478
51
- ams_bp-0.0.11.dist-info/METADATA,sha256=unqrYIrskb0xGCrHhqiJtQ8VNxvSRvAzjizx4WUSWxg,5918
52
- ams_bp-0.0.11.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
53
- ams_bp-0.0.11.dist-info/entry_points.txt,sha256=MFUK9bZWW61djfsavqopMqiVPVn4lJtt6v8qzyEFyNM,76
54
- ams_bp-0.0.11.dist-info/licenses/LICENSE,sha256=k_-JV1DQKvO0FR8WjvOisqdTl0kp6VJ7RFM3YZhao0c,1071
55
- ams_bp-0.0.11.dist-info/RECORD,,
51
+ ams_bp-0.0.21.dist-info/METADATA,sha256=RhM8C7dT2SXt-rbPFdQdo_EaiOFUx-7uC7uvic8IpvU,5316
52
+ ams_bp-0.0.21.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
53
+ ams_bp-0.0.21.dist-info/entry_points.txt,sha256=MFUK9bZWW61djfsavqopMqiVPVn4lJtt6v8qzyEFyNM,76
54
+ ams_bp-0.0.21.dist-info/licenses/LICENSE,sha256=k_-JV1DQKvO0FR8WjvOisqdTl0kp6VJ7RFM3YZhao0c,1071
55
+ ams_bp-0.0.21.dist-info/RECORD,,