pyimgal 0.1.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 (77) hide show
  1. pyimgal-0.1.0/Cargo.lock +488 -0
  2. pyimgal-0.1.0/Cargo.toml +16 -0
  3. pyimgal-0.1.0/PKG-INFO +82 -0
  4. pyimgal-0.1.0/README.md +54 -0
  5. pyimgal-0.1.0/imgal/Cargo.toml +22 -0
  6. pyimgal-0.1.0/imgal/README.md +97 -0
  7. pyimgal-0.1.0/imgal/src/colocalization/mod.rs +3 -0
  8. pyimgal-0.1.0/imgal/src/colocalization/saca.rs +591 -0
  9. pyimgal-0.1.0/imgal/src/distribution/gaussian.rs +55 -0
  10. pyimgal-0.1.0/imgal/src/distribution/mod.rs +2 -0
  11. pyimgal-0.1.0/imgal/src/error/array.rs +98 -0
  12. pyimgal-0.1.0/imgal/src/error/mod.rs +2 -0
  13. pyimgal-0.1.0/imgal/src/filter/convolve.rs +142 -0
  14. pyimgal-0.1.0/imgal/src/filter/mod.rs +2 -0
  15. pyimgal-0.1.0/imgal/src/integration/mod.rs +6 -0
  16. pyimgal-0.1.0/imgal/src/integration/rectangle.rs +28 -0
  17. pyimgal-0.1.0/imgal/src/integration/simpson.rs +97 -0
  18. pyimgal-0.1.0/imgal/src/kernel/mod.rs +1 -0
  19. pyimgal-0.1.0/imgal/src/kernel/neighborhood.rs +233 -0
  20. pyimgal-0.1.0/imgal/src/lib.rs +12 -0
  21. pyimgal-0.1.0/imgal/src/parameter/diffraction.rs +29 -0
  22. pyimgal-0.1.0/imgal/src/parameter/mod.rs +5 -0
  23. pyimgal-0.1.0/imgal/src/parameter/omega.rs +29 -0
  24. pyimgal-0.1.0/imgal/src/phasor/calibration.rs +183 -0
  25. pyimgal-0.1.0/imgal/src/phasor/mod.rs +3 -0
  26. pyimgal-0.1.0/imgal/src/phasor/plot.rs +165 -0
  27. pyimgal-0.1.0/imgal/src/phasor/time_domain.rs +231 -0
  28. pyimgal-0.1.0/imgal/src/simulation/decay.rs +377 -0
  29. pyimgal-0.1.0/imgal/src/simulation/instrument.rs +31 -0
  30. pyimgal-0.1.0/imgal/src/simulation/mod.rs +3 -0
  31. pyimgal-0.1.0/imgal/src/simulation/noise.rs +232 -0
  32. pyimgal-0.1.0/imgal/src/statistics/kendall_tau.rs +163 -0
  33. pyimgal-0.1.0/imgal/src/statistics/mod.rs +8 -0
  34. pyimgal-0.1.0/imgal/src/statistics/sample.rs +35 -0
  35. pyimgal-0.1.0/imgal/src/statistics/sort.rs +145 -0
  36. pyimgal-0.1.0/imgal/src/statistics/sum.rs +37 -0
  37. pyimgal-0.1.0/imgal/src/threshold/manual.rs +33 -0
  38. pyimgal-0.1.0/imgal/src/threshold/mod.rs +2 -0
  39. pyimgal-0.1.0/imgal/src/traits/mod.rs +1 -0
  40. pyimgal-0.1.0/imgal/src/traits/numeric.rs +40 -0
  41. pyimgal-0.1.0/imgal/tests/test_distribution.rs +12 -0
  42. pyimgal-0.1.0/imgal/tests/test_filter.rs +68 -0
  43. pyimgal-0.1.0/imgal/tests/test_integration.rs +34 -0
  44. pyimgal-0.1.0/imgal/tests/test_kernel.rs +49 -0
  45. pyimgal-0.1.0/imgal/tests/test_parameter.rs +14 -0
  46. pyimgal-0.1.0/imgal/tests/test_phasor.rs +264 -0
  47. pyimgal-0.1.0/imgal/tests/test_simulation.rs +261 -0
  48. pyimgal-0.1.0/imgal/tests/test_statistics.rs +27 -0
  49. pyimgal-0.1.0/imgal_python/Cargo.toml +18 -0
  50. pyimgal-0.1.0/imgal_python/README.md +54 -0
  51. pyimgal-0.1.0/imgal_python/src/child_modules/colocalization_module.rs +25 -0
  52. pyimgal-0.1.0/imgal_python/src/child_modules/distribution_module.rs +21 -0
  53. pyimgal-0.1.0/imgal_python/src/child_modules/filter_module.rs +25 -0
  54. pyimgal-0.1.0/imgal_python/src/child_modules/integration_module.rs +29 -0
  55. pyimgal-0.1.0/imgal_python/src/child_modules/kernel_module.rs +36 -0
  56. pyimgal-0.1.0/imgal_python/src/child_modules/mod.rs +10 -0
  57. pyimgal-0.1.0/imgal_python/src/child_modules/parameter_module.rs +25 -0
  58. pyimgal-0.1.0/imgal_python/src/child_modules/phasor_module.rs +74 -0
  59. pyimgal-0.1.0/imgal_python/src/child_modules/simulation_module.rs +78 -0
  60. pyimgal-0.1.0/imgal_python/src/child_modules/statistics_module.rs +33 -0
  61. pyimgal-0.1.0/imgal_python/src/child_modules/threshold_module.rs +21 -0
  62. pyimgal-0.1.0/imgal_python/src/error.rs +48 -0
  63. pyimgal-0.1.0/imgal_python/src/functions/colocalization_functions.rs +162 -0
  64. pyimgal-0.1.0/imgal_python/src/functions/distribution_functions.rs +37 -0
  65. pyimgal-0.1.0/imgal_python/src/functions/filter_functions.rs +54 -0
  66. pyimgal-0.1.0/imgal_python/src/functions/integration_functions.rs +64 -0
  67. pyimgal-0.1.0/imgal_python/src/functions/kernel_functions.rs +113 -0
  68. pyimgal-0.1.0/imgal_python/src/functions/mod.rs +10 -0
  69. pyimgal-0.1.0/imgal_python/src/functions/parameter_functions.rs +37 -0
  70. pyimgal-0.1.0/imgal_python/src/functions/phasor_functions.rs +334 -0
  71. pyimgal-0.1.0/imgal_python/src/functions/simulation_functions.rs +462 -0
  72. pyimgal-0.1.0/imgal_python/src/functions/statistics_functions.rs +133 -0
  73. pyimgal-0.1.0/imgal_python/src/functions/threshold_functions.rs +41 -0
  74. pyimgal-0.1.0/imgal_python/src/lib.rs +5 -0
  75. pyimgal-0.1.0/imgal_python/src/parent_module.rs +23 -0
  76. pyimgal-0.1.0/imgal_python/src/utils.rs +25 -0
  77. pyimgal-0.1.0/pyproject.toml +39 -0
@@ -0,0 +1,488 @@
1
+ # This file is automatically @generated by Cargo.
2
+ # It is not intended for manual editing.
3
+ version = 4
4
+
5
+ [[package]]
6
+ name = "autocfg"
7
+ version = "1.5.0"
8
+ source = "registry+https://github.com/rust-lang/crates.io-index"
9
+ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
10
+
11
+ [[package]]
12
+ name = "bitflags"
13
+ version = "2.9.1"
14
+ source = "registry+https://github.com/rust-lang/crates.io-index"
15
+ checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967"
16
+
17
+ [[package]]
18
+ name = "cfg-if"
19
+ version = "1.0.1"
20
+ source = "registry+https://github.com/rust-lang/crates.io-index"
21
+ checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268"
22
+
23
+ [[package]]
24
+ name = "crossbeam-deque"
25
+ version = "0.8.6"
26
+ source = "registry+https://github.com/rust-lang/crates.io-index"
27
+ checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51"
28
+ dependencies = [
29
+ "crossbeam-epoch",
30
+ "crossbeam-utils",
31
+ ]
32
+
33
+ [[package]]
34
+ name = "crossbeam-epoch"
35
+ version = "0.9.18"
36
+ source = "registry+https://github.com/rust-lang/crates.io-index"
37
+ checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
38
+ dependencies = [
39
+ "crossbeam-utils",
40
+ ]
41
+
42
+ [[package]]
43
+ name = "crossbeam-utils"
44
+ version = "0.8.21"
45
+ source = "registry+https://github.com/rust-lang/crates.io-index"
46
+ checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
47
+
48
+ [[package]]
49
+ name = "either"
50
+ version = "1.15.0"
51
+ source = "registry+https://github.com/rust-lang/crates.io-index"
52
+ checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
53
+
54
+ [[package]]
55
+ name = "getrandom"
56
+ version = "0.3.3"
57
+ source = "registry+https://github.com/rust-lang/crates.io-index"
58
+ checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4"
59
+ dependencies = [
60
+ "cfg-if",
61
+ "libc",
62
+ "r-efi",
63
+ "wasi",
64
+ ]
65
+
66
+ [[package]]
67
+ name = "heck"
68
+ version = "0.5.0"
69
+ source = "registry+https://github.com/rust-lang/crates.io-index"
70
+ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
71
+
72
+ [[package]]
73
+ name = "imgal"
74
+ version = "0.1.0"
75
+ dependencies = [
76
+ "ndarray",
77
+ "rand",
78
+ "rand_distr",
79
+ "rayon",
80
+ "rustfft",
81
+ ]
82
+
83
+ [[package]]
84
+ name = "imgal_java"
85
+ version = "0.1.0"
86
+ dependencies = [
87
+ "imgal",
88
+ "ndarray",
89
+ ]
90
+
91
+ [[package]]
92
+ name = "imgal_python"
93
+ version = "0.1.0"
94
+ dependencies = [
95
+ "imgal",
96
+ "numpy",
97
+ "pyo3",
98
+ ]
99
+
100
+ [[package]]
101
+ name = "indoc"
102
+ version = "2.0.6"
103
+ source = "registry+https://github.com/rust-lang/crates.io-index"
104
+ checksum = "f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd"
105
+
106
+ [[package]]
107
+ name = "libc"
108
+ version = "0.2.174"
109
+ source = "registry+https://github.com/rust-lang/crates.io-index"
110
+ checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776"
111
+
112
+ [[package]]
113
+ name = "libm"
114
+ version = "0.2.15"
115
+ source = "registry+https://github.com/rust-lang/crates.io-index"
116
+ checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de"
117
+
118
+ [[package]]
119
+ name = "matrixmultiply"
120
+ version = "0.3.10"
121
+ source = "registry+https://github.com/rust-lang/crates.io-index"
122
+ checksum = "a06de3016e9fae57a36fd14dba131fccf49f74b40b7fbdb472f96e361ec71a08"
123
+ dependencies = [
124
+ "autocfg",
125
+ "rawpointer",
126
+ ]
127
+
128
+ [[package]]
129
+ name = "memoffset"
130
+ version = "0.9.1"
131
+ source = "registry+https://github.com/rust-lang/crates.io-index"
132
+ checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
133
+ dependencies = [
134
+ "autocfg",
135
+ ]
136
+
137
+ [[package]]
138
+ name = "ndarray"
139
+ version = "0.16.1"
140
+ source = "registry+https://github.com/rust-lang/crates.io-index"
141
+ checksum = "882ed72dce9365842bf196bdeedf5055305f11fc8c03dee7bb0194a6cad34841"
142
+ dependencies = [
143
+ "matrixmultiply",
144
+ "num-complex",
145
+ "num-integer",
146
+ "num-traits",
147
+ "portable-atomic",
148
+ "portable-atomic-util",
149
+ "rawpointer",
150
+ "rayon",
151
+ ]
152
+
153
+ [[package]]
154
+ name = "num-complex"
155
+ version = "0.4.6"
156
+ source = "registry+https://github.com/rust-lang/crates.io-index"
157
+ checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495"
158
+ dependencies = [
159
+ "num-traits",
160
+ ]
161
+
162
+ [[package]]
163
+ name = "num-integer"
164
+ version = "0.1.46"
165
+ source = "registry+https://github.com/rust-lang/crates.io-index"
166
+ checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
167
+ dependencies = [
168
+ "num-traits",
169
+ ]
170
+
171
+ [[package]]
172
+ name = "num-traits"
173
+ version = "0.2.19"
174
+ source = "registry+https://github.com/rust-lang/crates.io-index"
175
+ checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
176
+ dependencies = [
177
+ "autocfg",
178
+ "libm",
179
+ ]
180
+
181
+ [[package]]
182
+ name = "numpy"
183
+ version = "0.25.0"
184
+ source = "registry+https://github.com/rust-lang/crates.io-index"
185
+ checksum = "29f1dee9aa8d3f6f8e8b9af3803006101bb3653866ef056d530d53ae68587191"
186
+ dependencies = [
187
+ "libc",
188
+ "ndarray",
189
+ "num-complex",
190
+ "num-integer",
191
+ "num-traits",
192
+ "pyo3",
193
+ "pyo3-build-config",
194
+ "rustc-hash",
195
+ ]
196
+
197
+ [[package]]
198
+ name = "once_cell"
199
+ version = "1.21.3"
200
+ source = "registry+https://github.com/rust-lang/crates.io-index"
201
+ checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
202
+
203
+ [[package]]
204
+ name = "portable-atomic"
205
+ version = "1.11.1"
206
+ source = "registry+https://github.com/rust-lang/crates.io-index"
207
+ checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483"
208
+
209
+ [[package]]
210
+ name = "portable-atomic-util"
211
+ version = "0.2.4"
212
+ source = "registry+https://github.com/rust-lang/crates.io-index"
213
+ checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507"
214
+ dependencies = [
215
+ "portable-atomic",
216
+ ]
217
+
218
+ [[package]]
219
+ name = "ppv-lite86"
220
+ version = "0.2.21"
221
+ source = "registry+https://github.com/rust-lang/crates.io-index"
222
+ checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9"
223
+ dependencies = [
224
+ "zerocopy",
225
+ ]
226
+
227
+ [[package]]
228
+ name = "primal-check"
229
+ version = "0.3.4"
230
+ source = "registry+https://github.com/rust-lang/crates.io-index"
231
+ checksum = "dc0d895b311e3af9902528fbb8f928688abbd95872819320517cc24ca6b2bd08"
232
+ dependencies = [
233
+ "num-integer",
234
+ ]
235
+
236
+ [[package]]
237
+ name = "proc-macro2"
238
+ version = "1.0.95"
239
+ source = "registry+https://github.com/rust-lang/crates.io-index"
240
+ checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778"
241
+ dependencies = [
242
+ "unicode-ident",
243
+ ]
244
+
245
+ [[package]]
246
+ name = "pyo3"
247
+ version = "0.25.1"
248
+ source = "registry+https://github.com/rust-lang/crates.io-index"
249
+ checksum = "8970a78afe0628a3e3430376fc5fd76b6b45c4d43360ffd6cdd40bdde72b682a"
250
+ dependencies = [
251
+ "indoc",
252
+ "libc",
253
+ "memoffset",
254
+ "once_cell",
255
+ "portable-atomic",
256
+ "pyo3-build-config",
257
+ "pyo3-ffi",
258
+ "pyo3-macros",
259
+ "unindent",
260
+ ]
261
+
262
+ [[package]]
263
+ name = "pyo3-build-config"
264
+ version = "0.25.1"
265
+ source = "registry+https://github.com/rust-lang/crates.io-index"
266
+ checksum = "458eb0c55e7ece017adeba38f2248ff3ac615e53660d7c71a238d7d2a01c7598"
267
+ dependencies = [
268
+ "once_cell",
269
+ "target-lexicon",
270
+ ]
271
+
272
+ [[package]]
273
+ name = "pyo3-ffi"
274
+ version = "0.25.1"
275
+ source = "registry+https://github.com/rust-lang/crates.io-index"
276
+ checksum = "7114fe5457c61b276ab77c5055f206295b812608083644a5c5b2640c3102565c"
277
+ dependencies = [
278
+ "libc",
279
+ "pyo3-build-config",
280
+ ]
281
+
282
+ [[package]]
283
+ name = "pyo3-macros"
284
+ version = "0.25.1"
285
+ source = "registry+https://github.com/rust-lang/crates.io-index"
286
+ checksum = "a8725c0a622b374d6cb051d11a0983786448f7785336139c3c94f5aa6bef7e50"
287
+ dependencies = [
288
+ "proc-macro2",
289
+ "pyo3-macros-backend",
290
+ "quote",
291
+ "syn",
292
+ ]
293
+
294
+ [[package]]
295
+ name = "pyo3-macros-backend"
296
+ version = "0.25.1"
297
+ source = "registry+https://github.com/rust-lang/crates.io-index"
298
+ checksum = "4109984c22491085343c05b0dbc54ddc405c3cf7b4374fc533f5c3313a572ccc"
299
+ dependencies = [
300
+ "heck",
301
+ "proc-macro2",
302
+ "pyo3-build-config",
303
+ "quote",
304
+ "syn",
305
+ ]
306
+
307
+ [[package]]
308
+ name = "quote"
309
+ version = "1.0.40"
310
+ source = "registry+https://github.com/rust-lang/crates.io-index"
311
+ checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d"
312
+ dependencies = [
313
+ "proc-macro2",
314
+ ]
315
+
316
+ [[package]]
317
+ name = "r-efi"
318
+ version = "5.3.0"
319
+ source = "registry+https://github.com/rust-lang/crates.io-index"
320
+ checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
321
+
322
+ [[package]]
323
+ name = "rand"
324
+ version = "0.9.1"
325
+ source = "registry+https://github.com/rust-lang/crates.io-index"
326
+ checksum = "9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97"
327
+ dependencies = [
328
+ "rand_chacha",
329
+ "rand_core",
330
+ ]
331
+
332
+ [[package]]
333
+ name = "rand_chacha"
334
+ version = "0.9.0"
335
+ source = "registry+https://github.com/rust-lang/crates.io-index"
336
+ checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb"
337
+ dependencies = [
338
+ "ppv-lite86",
339
+ "rand_core",
340
+ ]
341
+
342
+ [[package]]
343
+ name = "rand_core"
344
+ version = "0.9.3"
345
+ source = "registry+https://github.com/rust-lang/crates.io-index"
346
+ checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38"
347
+ dependencies = [
348
+ "getrandom",
349
+ ]
350
+
351
+ [[package]]
352
+ name = "rand_distr"
353
+ version = "0.5.1"
354
+ source = "registry+https://github.com/rust-lang/crates.io-index"
355
+ checksum = "6a8615d50dcf34fa31f7ab52692afec947c4dd0ab803cc87cb3b0b4570ff7463"
356
+ dependencies = [
357
+ "num-traits",
358
+ "rand",
359
+ ]
360
+
361
+ [[package]]
362
+ name = "rawpointer"
363
+ version = "0.2.1"
364
+ source = "registry+https://github.com/rust-lang/crates.io-index"
365
+ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
366
+
367
+ [[package]]
368
+ name = "rayon"
369
+ version = "1.10.0"
370
+ source = "registry+https://github.com/rust-lang/crates.io-index"
371
+ checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
372
+ dependencies = [
373
+ "either",
374
+ "rayon-core",
375
+ ]
376
+
377
+ [[package]]
378
+ name = "rayon-core"
379
+ version = "1.12.1"
380
+ source = "registry+https://github.com/rust-lang/crates.io-index"
381
+ checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
382
+ dependencies = [
383
+ "crossbeam-deque",
384
+ "crossbeam-utils",
385
+ ]
386
+
387
+ [[package]]
388
+ name = "rustc-hash"
389
+ version = "2.1.1"
390
+ source = "registry+https://github.com/rust-lang/crates.io-index"
391
+ checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d"
392
+
393
+ [[package]]
394
+ name = "rustfft"
395
+ version = "6.4.0"
396
+ source = "registry+https://github.com/rust-lang/crates.io-index"
397
+ checksum = "c6f140db74548f7c9d7cce60912c9ac414e74df5e718dc947d514b051b42f3f4"
398
+ dependencies = [
399
+ "num-complex",
400
+ "num-integer",
401
+ "num-traits",
402
+ "primal-check",
403
+ "strength_reduce",
404
+ "transpose",
405
+ ]
406
+
407
+ [[package]]
408
+ name = "strength_reduce"
409
+ version = "0.2.4"
410
+ source = "registry+https://github.com/rust-lang/crates.io-index"
411
+ checksum = "fe895eb47f22e2ddd4dabc02bce419d2e643c8e3b585c78158b349195bc24d82"
412
+
413
+ [[package]]
414
+ name = "syn"
415
+ version = "2.0.104"
416
+ source = "registry+https://github.com/rust-lang/crates.io-index"
417
+ checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40"
418
+ dependencies = [
419
+ "proc-macro2",
420
+ "quote",
421
+ "unicode-ident",
422
+ ]
423
+
424
+ [[package]]
425
+ name = "target-lexicon"
426
+ version = "0.13.2"
427
+ source = "registry+https://github.com/rust-lang/crates.io-index"
428
+ checksum = "e502f78cdbb8ba4718f566c418c52bc729126ffd16baee5baa718cf25dd5a69a"
429
+
430
+ [[package]]
431
+ name = "transpose"
432
+ version = "0.2.3"
433
+ source = "registry+https://github.com/rust-lang/crates.io-index"
434
+ checksum = "1ad61aed86bc3faea4300c7aee358b4c6d0c8d6ccc36524c96e4c92ccf26e77e"
435
+ dependencies = [
436
+ "num-integer",
437
+ "strength_reduce",
438
+ ]
439
+
440
+ [[package]]
441
+ name = "unicode-ident"
442
+ version = "1.0.18"
443
+ source = "registry+https://github.com/rust-lang/crates.io-index"
444
+ checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512"
445
+
446
+ [[package]]
447
+ name = "unindent"
448
+ version = "0.2.4"
449
+ source = "registry+https://github.com/rust-lang/crates.io-index"
450
+ checksum = "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3"
451
+
452
+ [[package]]
453
+ name = "wasi"
454
+ version = "0.14.2+wasi-0.2.4"
455
+ source = "registry+https://github.com/rust-lang/crates.io-index"
456
+ checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3"
457
+ dependencies = [
458
+ "wit-bindgen-rt",
459
+ ]
460
+
461
+ [[package]]
462
+ name = "wit-bindgen-rt"
463
+ version = "0.39.0"
464
+ source = "registry+https://github.com/rust-lang/crates.io-index"
465
+ checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1"
466
+ dependencies = [
467
+ "bitflags",
468
+ ]
469
+
470
+ [[package]]
471
+ name = "zerocopy"
472
+ version = "0.8.26"
473
+ source = "registry+https://github.com/rust-lang/crates.io-index"
474
+ checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f"
475
+ dependencies = [
476
+ "zerocopy-derive",
477
+ ]
478
+
479
+ [[package]]
480
+ name = "zerocopy-derive"
481
+ version = "0.8.26"
482
+ source = "registry+https://github.com/rust-lang/crates.io-index"
483
+ checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181"
484
+ dependencies = [
485
+ "proc-macro2",
486
+ "quote",
487
+ "syn",
488
+ ]
@@ -0,0 +1,16 @@
1
+ [workspace]
2
+ members = ["imgal", "imgal_python"]
3
+ resolver = "3"
4
+
5
+ [profile.dev]
6
+ debug = true
7
+ lto = "off"
8
+ opt-level = 0
9
+ panic = "unwind"
10
+
11
+ [profile.release]
12
+ codegen-units = 1
13
+ debug = false
14
+ lto = "thin"
15
+ opt-level = 3
16
+ panic = "unwind"
pyimgal-0.1.0/PKG-INFO ADDED
@@ -0,0 +1,82 @@
1
+ Metadata-Version: 2.4
2
+ Name: pyimgal
3
+ Version: 0.1.0
4
+ Classifier: Development Status :: 3 - Alpha
5
+ Classifier: Intended Audience :: Developers
6
+ Classifier: Intended Audience :: Education
7
+ Classifier: Intended Audience :: Science/Research
8
+ Classifier: Operating System :: Microsoft :: Windows
9
+ Classifier: Operating System :: Unix
10
+ Classifier: Operating System :: MacOS
11
+ Classifier: Programming Language :: Python :: 3
12
+ Classifier: Programming Language :: Python :: 3.9
13
+ Classifier: Programming Language :: Python :: 3.10
14
+ Classifier: Programming Language :: Python :: 3.11
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Programming Language :: Python :: 3.13
17
+ Classifier: Programming Language :: Rust
18
+ Classifier: Topic :: Scientific/Engineering
19
+ Classifier: Topic :: Scientific/Engineering :: Image Processing
20
+ Requires-Dist: maturin>=1.8.3
21
+ Summary: Python wrapper and bindings for imgal.
22
+ Keywords: image-processing,algorithm,rust
23
+ Author-email: Edward Evans <elevans2@wisc.edu>
24
+ License-Expression: Unlicense
25
+ Requires-Python: >=3.9
26
+ Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
27
+
28
+ # pyimgal
29
+
30
+ The `pyimgal` package serves as the Python bindings wrapper for [imgal](https://github.com/imgal-sc/imgal).
31
+
32
+ ## Installation
33
+
34
+ ### `pyimgal` from PyPI
35
+
36
+ You can install `pyimgal` from PyPI with:
37
+
38
+ ```bash
39
+ pip install pyimgal
40
+ ```
41
+
42
+ ### `imgal_python` from source
43
+
44
+ To build the `pyimgal` Python bindings from source, use the `maturin` build tool. If you're using `uv` you can do the following in the `imgal_python` crate directory to build the Python bindings:
45
+
46
+ ```bash
47
+ $ cd imgal_python
48
+ $ uv run maturin develop --release
49
+ ```
50
+
51
+ This will create a `.venv` in the local directory, compile the `imgal` Rust library and the `imgal_python` PyO3 bindings and install the bindings in the venv as `pyimgal`.
52
+
53
+ Alternatively if you're using `conda` or `mamba` you can do the following:
54
+
55
+ ```bash
56
+ $ cd imgal_python
57
+ $ mamba activate myenv
58
+ (myenv) $ mamba install maturin
59
+ ...
60
+ (myenv) $ maturin develop --release
61
+ ```
62
+
63
+ ### Using `imgal` with Python
64
+
65
+ Once `pyimgal` has been installed in a compatiable Python environment, `imgal` will be available to import. The example below demonstrates how to obtain a colocalization z-score (_i.e._ colocalization and
66
+ anti-colocalization strength) using the [Spatially Adaptive Colocalization Analysis (SACA)](https://doi.org/10.1109/TIP.2019.2909194) framework. The two number values after the channels are threshold values for channels `a` and `b` respectively.
67
+
68
+ ```python
69
+ import imgal.colocalization as coloc
70
+ from tifffile import imread
71
+
72
+ # load some data
73
+ image = imread("path/to/data.tif")
74
+
75
+ # slice channels to perform colocalization analysis
76
+ ch_a = image[:, :, 0]
77
+ ch_b = image[:, :, 1]
78
+
79
+ # perform SACA 2D
80
+ coloc_zscore = coloc.saca_2d(ch_a, ch_b, 500.0, 500.0)
81
+ ```
82
+
@@ -0,0 +1,54 @@
1
+ # pyimgal
2
+
3
+ The `pyimgal` package serves as the Python bindings wrapper for [imgal](https://github.com/imgal-sc/imgal).
4
+
5
+ ## Installation
6
+
7
+ ### `pyimgal` from PyPI
8
+
9
+ You can install `pyimgal` from PyPI with:
10
+
11
+ ```bash
12
+ pip install pyimgal
13
+ ```
14
+
15
+ ### `imgal_python` from source
16
+
17
+ To build the `pyimgal` Python bindings from source, use the `maturin` build tool. If you're using `uv` you can do the following in the `imgal_python` crate directory to build the Python bindings:
18
+
19
+ ```bash
20
+ $ cd imgal_python
21
+ $ uv run maturin develop --release
22
+ ```
23
+
24
+ This will create a `.venv` in the local directory, compile the `imgal` Rust library and the `imgal_python` PyO3 bindings and install the bindings in the venv as `pyimgal`.
25
+
26
+ Alternatively if you're using `conda` or `mamba` you can do the following:
27
+
28
+ ```bash
29
+ $ cd imgal_python
30
+ $ mamba activate myenv
31
+ (myenv) $ mamba install maturin
32
+ ...
33
+ (myenv) $ maturin develop --release
34
+ ```
35
+
36
+ ### Using `imgal` with Python
37
+
38
+ Once `pyimgal` has been installed in a compatiable Python environment, `imgal` will be available to import. The example below demonstrates how to obtain a colocalization z-score (_i.e._ colocalization and
39
+ anti-colocalization strength) using the [Spatially Adaptive Colocalization Analysis (SACA)](https://doi.org/10.1109/TIP.2019.2909194) framework. The two number values after the channels are threshold values for channels `a` and `b` respectively.
40
+
41
+ ```python
42
+ import imgal.colocalization as coloc
43
+ from tifffile import imread
44
+
45
+ # load some data
46
+ image = imread("path/to/data.tif")
47
+
48
+ # slice channels to perform colocalization analysis
49
+ ch_a = image[:, :, 0]
50
+ ch_b = image[:, :, 1]
51
+
52
+ # perform SACA 2D
53
+ coloc_zscore = coloc.saca_2d(ch_a, ch_b, 500.0, 500.0)
54
+ ```
@@ -0,0 +1,22 @@
1
+ [package]
2
+ name = "imgal"
3
+ description = "A fast and open-source scientific image processing and algorithm library."
4
+ version = "0.1.0"
5
+ authors = ["Edward Evans"]
6
+ edition = "2024"
7
+ license = "Unlicense"
8
+ homepage = "https://docs.rs/imgal"
9
+ repository = "https://github.com/imgal-sc/imgal"
10
+ readme = "README.md"
11
+ categories = ["algorithms", "mathematics", "science"]
12
+
13
+ [lib]
14
+ name = "imgal"
15
+ crate-type = ["rlib"]
16
+
17
+ [dependencies]
18
+ ndarray = { version = "0.16.1", features = ["rayon"] }
19
+ rand = "0.9.1"
20
+ rand_distr = "0.5.1"
21
+ rayon = "1.10.0"
22
+ rustfft = "6.3"