spacr 0.4.15__py3-none-any.whl → 0.5.0__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.
Files changed (54) hide show
  1. spacr/__init__.py +2 -2
  2. spacr/core.py +52 -10
  3. spacr/deep_spacr.py +2 -3
  4. spacr/gui.py +0 -1
  5. spacr/gui_core.py +247 -41
  6. spacr/gui_elements.py +133 -2
  7. spacr/gui_utils.py +22 -17
  8. spacr/io.py +624 -149
  9. spacr/ml.py +141 -258
  10. spacr/plot.py +76 -34
  11. spacr/resources/MEDIAR/__pycache__/SetupDict.cpython-39.pyc +0 -0
  12. spacr/resources/MEDIAR/__pycache__/evaluate.cpython-39.pyc +0 -0
  13. spacr/resources/MEDIAR/__pycache__/generate_mapping.cpython-39.pyc +0 -0
  14. spacr/resources/MEDIAR/__pycache__/main.cpython-39.pyc +0 -0
  15. spacr/resources/MEDIAR/core/Baseline/__pycache__/Predictor.cpython-39.pyc +0 -0
  16. spacr/resources/MEDIAR/core/Baseline/__pycache__/Trainer.cpython-39.pyc +0 -0
  17. spacr/resources/MEDIAR/core/Baseline/__pycache__/__init__.cpython-39.pyc +0 -0
  18. spacr/resources/MEDIAR/core/Baseline/__pycache__/utils.cpython-39.pyc +0 -0
  19. spacr/resources/MEDIAR/core/MEDIAR/__pycache__/EnsemblePredictor.cpython-39.pyc +0 -0
  20. spacr/resources/MEDIAR/core/MEDIAR/__pycache__/Predictor.cpython-39.pyc +0 -0
  21. spacr/resources/MEDIAR/core/MEDIAR/__pycache__/Trainer.cpython-39.pyc +0 -0
  22. spacr/resources/MEDIAR/core/MEDIAR/__pycache__/__init__.cpython-39.pyc +0 -0
  23. spacr/resources/MEDIAR/core/MEDIAR/__pycache__/utils.cpython-39.pyc +0 -0
  24. spacr/resources/MEDIAR/core/__pycache__/BasePredictor.cpython-39.pyc +0 -0
  25. spacr/resources/MEDIAR/core/__pycache__/BaseTrainer.cpython-39.pyc +0 -0
  26. spacr/resources/MEDIAR/core/__pycache__/__init__.cpython-39.pyc +0 -0
  27. spacr/resources/MEDIAR/core/__pycache__/utils.cpython-39.pyc +0 -0
  28. spacr/resources/MEDIAR/train_tools/__pycache__/__init__.cpython-39.pyc +0 -0
  29. spacr/resources/MEDIAR/train_tools/__pycache__/measures.cpython-39.pyc +0 -0
  30. spacr/resources/MEDIAR/train_tools/__pycache__/utils.cpython-39.pyc +0 -0
  31. spacr/resources/MEDIAR/train_tools/data_utils/__pycache__/__init__.cpython-39.pyc +0 -0
  32. spacr/resources/MEDIAR/train_tools/data_utils/__pycache__/datasetter.cpython-39.pyc +0 -0
  33. spacr/resources/MEDIAR/train_tools/data_utils/__pycache__/transforms.cpython-39.pyc +0 -0
  34. spacr/resources/MEDIAR/train_tools/data_utils/__pycache__/utils.cpython-39.pyc +0 -0
  35. spacr/resources/MEDIAR/train_tools/data_utils/custom/__pycache__/CellAware.cpython-39.pyc +0 -0
  36. spacr/resources/MEDIAR/train_tools/data_utils/custom/__pycache__/LoadImage.cpython-39.pyc +0 -0
  37. spacr/resources/MEDIAR/train_tools/data_utils/custom/__pycache__/NormalizeImage.cpython-39.pyc +0 -0
  38. spacr/resources/MEDIAR/train_tools/data_utils/custom/__pycache__/__init__.cpython-39.pyc +0 -0
  39. spacr/resources/MEDIAR/train_tools/models/__pycache__/MEDIARFormer.cpython-39.pyc +0 -0
  40. spacr/resources/MEDIAR/train_tools/models/__pycache__/__init__.cpython-39.pyc +0 -0
  41. spacr/sequencing.py +73 -38
  42. spacr/settings.py +161 -135
  43. spacr/submodules.py +618 -215
  44. spacr/timelapse.py +197 -29
  45. spacr/toxo.py +23 -23
  46. spacr/utils.py +186 -128
  47. {spacr-0.4.15.dist-info → spacr-0.5.0.dist-info}/METADATA +5 -2
  48. {spacr-0.4.15.dist-info → spacr-0.5.0.dist-info}/RECORD +53 -24
  49. spacr/stats.py +0 -221
  50. /spacr/{cellpose.py → spacr_cellpose.py} +0 -0
  51. {spacr-0.4.15.dist-info → spacr-0.5.0.dist-info}/LICENSE +0 -0
  52. {spacr-0.4.15.dist-info → spacr-0.5.0.dist-info}/WHEEL +0 -0
  53. {spacr-0.4.15.dist-info → spacr-0.5.0.dist-info}/entry_points.txt +0 -0
  54. {spacr-0.4.15.dist-info → spacr-0.5.0.dist-info}/top_level.txt +0 -0
@@ -1,4 +1,4 @@
1
- spacr/__init__.py,sha256=iPlE-WRc1CjSNGPMbVvEKlJsTQlKjq29VjzvNUCpcOM,1401
1
+ spacr/__init__.py,sha256=EoZXwl4lmLKd3TqSTDAw6f6w7PxldhmfxnA3BECsNq8,1413
2
2
  spacr/__main__.py,sha256=bkAJJD2kjIqOP-u1kLvct9jQQCeUXzlEjdgitwi1Lm8,75
3
3
  spacr/app_annotate.py,sha256=W9eLPa_LZIvXsXx_-0iDFEU938LBDvRy6prXo0qF4KQ,2533
4
4
  spacr/app_classify.py,sha256=urTP_wlZ58hSyM5a19slYlBxN0PdC-9-ga0hvq8CGWc,165
@@ -7,30 +7,29 @@ spacr/app_mask.py,sha256=l-dBY8ftzCMdDe6-pXc2Nh_u-idNL9G7UOARiLJBtds,153
7
7
  spacr/app_measure.py,sha256=_K7APYIeOKpV6e_LcqabBjvEi7mfq9Fch8175x1x0k8,162
8
8
  spacr/app_sequencing.py,sha256=DjG26jy4cpddnV8WOOAIiExtOe9MleVMY4MFa5uTo5w,157
9
9
  spacr/app_umap.py,sha256=ZWAmf_OsIKbYvolYuWPMYhdlVe-n2CADoJulAizMiEo,153
10
- spacr/cellpose.py,sha256=RBHMs2vwXcfkj0xqAULpALyzJYXddSRycgZSzmwI7v0,14755
11
10
  spacr/chat_bot.py,sha256=n3Fhqg3qofVXHmh3H9sUcmfYy9MmgRnr48663MVdY9E,1244
12
- spacr/core.py,sha256=JfeXuLa-IR0Qn5SfNPj2NCyxRkVXE3MDy0ywPFLIFVY,49014
13
- spacr/deep_spacr.py,sha256=WN64EaQqF87JZg3Uan46t5Y28xsAGD2KMjr2ht6CyDs,54563
14
- spacr/gui.py,sha256=ARyn9Q_g8HoP-cXh1nzMLVFCKqthY4v2u9yORyaQqQE,8230
15
- spacr/gui_core.py,sha256=DFzYiauhLJF7koEeKSXZAoUeUHd74LRgdt6Xktqi254,46892
16
- spacr/gui_elements.py,sha256=HmITDncklKwtdFhxLhtYXOwndsRfgwWIPVi83VlXHB4,146419
17
- spacr/gui_utils.py,sha256=ZiRMYSBj1w5jIjoTBw9_kf9RbAZD9D0DYCNHUmxNrh8,41342
18
- spacr/io.py,sha256=BtmxZcA_fr8jFsuwisnG95E5DS14JGA9isqiI-iYdII,138923
11
+ spacr/core.py,sha256=AwyOjoTti9jN-eGG8j78Rv7ujSxEu13L1R27AS-byyc,51408
12
+ spacr/deep_spacr.py,sha256=055tIo3WP3elGFiIuSZaLURgu2XyUDxAdbw5ezASEqM,54526
13
+ spacr/gui.py,sha256=NhMh96KoArrSAaJBV6PhDQpIC1cQpxgb6SclhRbYG8s,8122
14
+ spacr/gui_core.py,sha256=AYXZpdKMRezJfS7Xcfztdc2yco6lV21ovwkyKQGbIZg,56206
15
+ spacr/gui_elements.py,sha256=5a3BOpctBPklsT1NungqS72h1Bg1FArUndE0OfvWD8Y,152646
16
+ spacr/gui_utils.py,sha256=RFXxGTe6x749S1i4X66_JtWnzduvFLQJD92pNEirR78,41578
17
+ spacr/io.py,sha256=TfjurnvojZiLrOUscia4QoEoqyNodNVsUxzx9Q1zBss,158050
19
18
  spacr/logger.py,sha256=lJhTqt-_wfAunCPl93xE65Wr9Y1oIHJWaZMjunHUeIw,1538
20
19
  spacr/measure.py,sha256=Z3u4BU5RzcY82IZuboQ0OsxuXaPVwOlH65Rw6FrL5z4,55045
21
20
  spacr/mediar.py,sha256=FwLvbLQW5LQzPgvJZG8Lw7GniA2vbZx6Jv6vIKu7I5c,14743
22
- spacr/ml.py,sha256=MrIAtUUxMOibWVL1SjCUnYlizawCp3l3SeY4Y9yEsPw,97251
21
+ spacr/ml.py,sha256=XCRZeX7UkbMctQICIoskeWVx8CCmmCoHNauUOAkfFq0,91692
23
22
  spacr/openai.py,sha256=5vBZ3Jl2llYcW3oaTEXgdyCB2aJujMUIO5K038z7w_A,1246
24
- spacr/plot.py,sha256=Q5TbsR2NUWhA7z4HyF_2_FAEBFSNMU-G3UNDbRzW6mM,169485
25
- spacr/sequencing.py,sha256=ClUfwPPK6rNUbUuiEkzcwakzVyDKKUMv9ricrxT8qQY,25227
26
- spacr/settings.py,sha256=7NAW69yE9FNzsQlLE2lTnDFNL4042AI4c-y20ikPlxc,84793
23
+ spacr/plot.py,sha256=lmpIJozfxMyOyGAMno4j-C7NPjDYRMr29SDAnrV-bb4,170815
24
+ spacr/sequencing.py,sha256=EY12RdW5QRKpHDRQCw1QoAlxCq8FK2v6WoVa5uuDBXQ,26745
25
+ spacr/settings.py,sha256=-82YhiT2ox71XikQdbBUHL23dUmsJMB1orxsGWcn1Eo,87191
27
26
  spacr/sim.py,sha256=1xKhXimNU3ukzIw-3l9cF3Znc_brW8h20yv8fSTzvss,71173
28
27
  spacr/sp_stats.py,sha256=mbhwsyIqt5upsSD346qGjdCw7CFBa0tIS7zHU9e0jNI,9536
29
- spacr/stats.py,sha256=mbhwsyIqt5upsSD346qGjdCw7CFBa0tIS7zHU9e0jNI,9536
30
- spacr/submodules.py,sha256=jFlJeVNuIEf63TtCOpTlOZ4iiSLr238kRBiGAAAgKE4,67626
31
- spacr/timelapse.py,sha256=KGfG4L4-QnFfgbF7L6C5wL_3gd_rqr05Foje6RsoTBg,39603
32
- spacr/toxo.py,sha256=TmuhejSIPLBvsgeblsUgSvBFCR1gOkApyTKidooJ5Us,26044
33
- spacr/utils.py,sha256=Cyy0pS-dwvMbH8cn6gu8OG1C-Kg6yUOAEacng-vkDgk,228837
28
+ spacr/spacr_cellpose.py,sha256=RBHMs2vwXcfkj0xqAULpALyzJYXddSRycgZSzmwI7v0,14755
29
+ spacr/submodules.py,sha256=pHa5P3EcpduX-xAEJU7JnK8sLaD5Ay5rSDcfBQBdRxA,82645
30
+ spacr/timelapse.py,sha256=PqN7mXpjYhPiyU1in2xWSbqdlSFI-X4peI4bIp-q2jo,46106
31
+ spacr/toxo.py,sha256=GoNfgyH-NJx3WOzNQPgzODir7Jp65fs7UM46XpzcrUo,26056
32
+ spacr/utils.py,sha256=mHyvI1q5HTjJ62qW9rVjde_oBPUDdS1JM089ZBM5HMw,231189
34
33
  spacr/version.py,sha256=axH5tnGwtgSnJHb5IDhiu4Zjk5GhLyAEDRe-rnaoFOA,409
35
34
  spacr/resources/MEDIAR/.gitignore,sha256=Ff1q9Nme14JUd-4Q3jZ65aeQ5X4uttptssVDgBVHYo8,152
36
35
  spacr/resources/MEDIAR/LICENSE,sha256=yEj_TRDLUfDpHDNM0StALXIt6mLqSgaV2hcCwa6_TcY,1065
@@ -41,6 +40,10 @@ spacr/resources/MEDIAR/generate_mapping.py,sha256=6FqWgAegWExUF2DFc_vOQzH1c7g9-e
41
40
  spacr/resources/MEDIAR/main.py,sha256=8KKelA75anJbvpCGXQbAO5OipHE-hx-q04_OB2Z90NQ,3573
42
41
  spacr/resources/MEDIAR/predict.py,sha256=V2GUdy3LM595gCoAjBOk22-QitaKRKRqJX3Hgdc4FEU,2141
43
42
  spacr/resources/MEDIAR/requirements.txt,sha256=7fapaH6LrDiKsdkjkl8oQ8oR2u49-n-OChMWa5wg7fY,225
43
+ spacr/resources/MEDIAR/__pycache__/SetupDict.cpython-39.pyc,sha256=ZlHtaJj5ar0g69PwxCCK02sYRDsXO0VWsyh9epy-Flw,919
44
+ spacr/resources/MEDIAR/__pycache__/evaluate.cpython-39.pyc,sha256=k1bUiE-kOuxSQgsiPMyx2mBtpjfzRpUJAgBZ3A7p-tI,1810
45
+ spacr/resources/MEDIAR/__pycache__/generate_mapping.cpython-39.pyc,sha256=AqyoimBU40KD2YWAHMQygahEJDvpUUMT7koTR2XA8bA,3147
46
+ spacr/resources/MEDIAR/__pycache__/main.cpython-39.pyc,sha256=fnABJJJyFF_5coyC2F97Ybhc2bh06H5vD6Hn9lOhDeM,2513
44
47
  spacr/resources/MEDIAR/config/baseline.json,sha256=moqZ8Bf0rf1hcoJswp9EvE1IrqSfO4lzJGkj3-emIqc,1603
45
48
  spacr/resources/MEDIAR/config/mediar_example.json,sha256=B6mFpDgCpOJpN4Foj1hC_X4zCRyWXra3XsZ0DBqvGnQ,2114
46
49
  spacr/resources/MEDIAR/config/pred/pred_mediar.json,sha256=oE4YmuPFfH6_rK9PFBRX18aIPalZfni3NYGfRtOhTIU,385
@@ -58,11 +61,24 @@ spacr/resources/MEDIAR/core/Baseline/Predictor.py,sha256=mDHSG2jSJyLWr_j2gSzADjf
58
61
  spacr/resources/MEDIAR/core/Baseline/Trainer.py,sha256=OzkFeSF0sRn1Wej253I4h99f7v9wD3tKv88YYXLAtd4,3451
59
62
  spacr/resources/MEDIAR/core/Baseline/__init__.py,sha256=WinVVW50c_UhZDcUkX4RESjy8eSQOjMiU-KynfSGP_I,48
60
63
  spacr/resources/MEDIAR/core/Baseline/utils.py,sha256=V2e4a00ZdYFlHFaorLTI1CgX8gt_KFSfrpm_XikygiA,2370
64
+ spacr/resources/MEDIAR/core/Baseline/__pycache__/Predictor.cpython-39.pyc,sha256=3ibB5dyeWXJx0U839FkacJK8b8cjuiEtA_vbcSbxJXo,1599
65
+ spacr/resources/MEDIAR/core/Baseline/__pycache__/Trainer.cpython-39.pyc,sha256=swuIuLp2D5AUgVaKbHqRH9nEjKoh8upqXDWPLXAiVBE,2900
66
+ spacr/resources/MEDIAR/core/Baseline/__pycache__/__init__.cpython-39.pyc,sha256=aJZtG5eSDLEvX6eIipYi7wB4swsSDSP1tEuIuAUBwOo,222
67
+ spacr/resources/MEDIAR/core/Baseline/__pycache__/utils.cpython-39.pyc,sha256=FNvc-3B_eDkxuGec3H5jYbw3_9PHjl_FiMWWcDnBNwI,1858
61
68
  spacr/resources/MEDIAR/core/MEDIAR/EnsemblePredictor.py,sha256=5BSz3mwe9B26aTQiNhqwDI2VxAOxnvNsjAhYlFMuBDw,3416
62
69
  spacr/resources/MEDIAR/core/MEDIAR/Predictor.py,sha256=FfA012HXmvrMnYJBsovCdgbrWL5-Ca-PwZN1mIsNfik,6763
63
70
  spacr/resources/MEDIAR/core/MEDIAR/Trainer.py,sha256=7OueMwovWxSb8UY033X--KJnk55Mh5EQu6LGdUl8_OU,5745
64
71
  spacr/resources/MEDIAR/core/MEDIAR/__init__.py,sha256=yFkZq29jm8Sf-Bf_h1KAiMaUxU47uBeOMU27m92fjh8,81
65
72
  spacr/resources/MEDIAR/core/MEDIAR/utils.py,sha256=1rcVONsnnPvIEkPW1mu5mCt1YQJqXPtAyEWtxAQIvpE,14641
73
+ spacr/resources/MEDIAR/core/MEDIAR/__pycache__/EnsemblePredictor.cpython-39.pyc,sha256=YpSc4prS2PUij60N-QA0GTith3_IvJtiVSj022xRU9U,2051
74
+ spacr/resources/MEDIAR/core/MEDIAR/__pycache__/Predictor.cpython-39.pyc,sha256=FhpgXKQTxrSEKDmm0rjK2VCpNa26acAMo_mhxb9Yypg,5734
75
+ spacr/resources/MEDIAR/core/MEDIAR/__pycache__/Trainer.cpython-39.pyc,sha256=-VrloUJABkNPALYULmru03q8DffZA6nP4lwt8CwOWdA,3914
76
+ spacr/resources/MEDIAR/core/MEDIAR/__pycache__/__init__.cpython-39.pyc,sha256=E-CiZVrtO3muL41YDl_jQXw5XMaLFg76Z0lrk6q9Aa4,249
77
+ spacr/resources/MEDIAR/core/MEDIAR/__pycache__/utils.cpython-39.pyc,sha256=mwIV8N5FeHvuvp9pfoqA_1GOne27xZBjZQO9NpXGUNg,11792
78
+ spacr/resources/MEDIAR/core/__pycache__/BasePredictor.cpython-39.pyc,sha256=idycg2UkxkFYUk4KMKQi97cVQFceFphsWsQXoAi5cgY,3531
79
+ spacr/resources/MEDIAR/core/__pycache__/BaseTrainer.cpython-39.pyc,sha256=m45zW3B_rrSS7JgdhcecI7K9nC1krIh52BuhbCmofQE,5866
80
+ spacr/resources/MEDIAR/core/__pycache__/__init__.cpython-39.pyc,sha256=ws6IijuYzV2A-bcPAQ6EH6QbZoUfbOw-4w719BkPuks,211
81
+ spacr/resources/MEDIAR/core/__pycache__/utils.cpython-39.pyc,sha256=_4uRfdNgHSqBGYJ3WrzKpcPn8C82Pz8gKT-S47Lcv7o,1078
66
82
  spacr/resources/MEDIAR/image/failure_cases.png,sha256=y9mmqGJ5Q5FNpHCekio_UZdrxGLraRXn2yZLLm__rNI,2390420
67
83
  spacr/resources/MEDIAR/image/mediar_framework.png,sha256=wucJ9Qyoi4Yi_A-D0HyCpEw8-bjFHS7AAeyzfQL7Iks,1048242
68
84
  spacr/resources/MEDIAR/image/mediar_model.PNG,sha256=JQuxGxfGcBY07-JRBGhtDA0FcKnENV_7HVy3uAq3_rE,348059
@@ -72,17 +88,30 @@ spacr/resources/MEDIAR/image/examples/img2.tif,sha256=YAk6yYRVOu6Gg8X4BUo_LaSfMZ
72
88
  spacr/resources/MEDIAR/train_tools/__init__.py,sha256=XXnPlgCbF3GEfnwIbUB2MniUl2Ve6QOf7jhEuiqbiis,71
73
89
  spacr/resources/MEDIAR/train_tools/measures.py,sha256=LOJmJzLVO4XsJX4XHuppuXknN5HncarDV5url39GRzA,5770
74
90
  spacr/resources/MEDIAR/train_tools/utils.py,sha256=7ISUS0Uw-dU83XD-WFzNTOPBX4SwSoF0iWNGMcGmTZM,1911
91
+ spacr/resources/MEDIAR/train_tools/__pycache__/__init__.cpython-39.pyc,sha256=VtwSRmJ5rfez2Nknor9k2aP6X2ZSfjFRL-Wws9vRkRE,239
92
+ spacr/resources/MEDIAR/train_tools/__pycache__/measures.cpython-39.pyc,sha256=WC16KAYzFbvhs5GgqiAEKLXBZk-b3g9WNh8d82eXz74,4069
93
+ spacr/resources/MEDIAR/train_tools/__pycache__/utils.cpython-39.pyc,sha256=qhkTE774c7CcvlopZUw14NwuOcLgTFCCMvg17Fk6jT0,3139
75
94
  spacr/resources/MEDIAR/train_tools/data_utils/__init__.py,sha256=QVo7-uqgr0vdP4s8nZ47LKDqxabnzbO0MKt8E1sR8as,26
76
95
  spacr/resources/MEDIAR/train_tools/data_utils/datasetter.py,sha256=uiPhC46gQMbeYhpTehX4Qm0_dUQJ6NXaVCg3a19HGpA,6323
77
96
  spacr/resources/MEDIAR/train_tools/data_utils/transforms.py,sha256=vNZQB_qPh-Jeovb1FhnbCUFl6HoV6px7QHa4ZC8RO-Q,5147
78
97
  spacr/resources/MEDIAR/train_tools/data_utils/utils.py,sha256=yJo2BSLr9ARwTkuJwIoSJrZXPE4E3DlPRAT97hQzYwY,2556
98
+ spacr/resources/MEDIAR/train_tools/data_utils/__pycache__/__init__.cpython-39.pyc,sha256=mEdr6muJpmYu__BYR3JkUYeJHor5KF-9IeqWIOjgIDo,213
99
+ spacr/resources/MEDIAR/train_tools/data_utils/__pycache__/datasetter.cpython-39.pyc,sha256=7Lzq2gVNRjUIthApeHCk7lBejLrrdD_uFS3aDwNw9kw,4188
100
+ spacr/resources/MEDIAR/train_tools/data_utils/__pycache__/transforms.cpython-39.pyc,sha256=UAiSu1ZOci0C0MQbIUzrD0CR5-OZkYQwNV_K49nIdNI,2643
101
+ spacr/resources/MEDIAR/train_tools/data_utils/__pycache__/utils.cpython-39.pyc,sha256=wKA6gDyZ2S2jo6dcOZMjOQoTLL_3BCDYIpbMnY0iJZI,2254
79
102
  spacr/resources/MEDIAR/train_tools/data_utils/custom/CellAware.py,sha256=bG100wH2okxnnEQh0ZRR3GM8n99azB2z5iu7aINXjm0,2865
80
103
  spacr/resources/MEDIAR/train_tools/data_utils/custom/LoadImage.py,sha256=wK69UHjCzq2L2_Ny5m9I5H6DGYRF8yCfmhCA39DOCW4,5431
81
104
  spacr/resources/MEDIAR/train_tools/data_utils/custom/NormalizeImage.py,sha256=7DfWVusYRRuEyA8eXujNyGJz0dubx7b7uhgEzzrh3-4,2152
82
105
  spacr/resources/MEDIAR/train_tools/data_utils/custom/__init__.py,sha256=SalCNvPyiy0rqLpjdoXPXGoWlKf-8K9vtDQ70HXOXe0,80
83
106
  spacr/resources/MEDIAR/train_tools/data_utils/custom/modalities.pkl,sha256=C1D7NkUZ5er7Kdeyhhwjo0IGUvCsVfKPBzcwfaORd8Q,3762
107
+ spacr/resources/MEDIAR/train_tools/data_utils/custom/__pycache__/CellAware.cpython-39.pyc,sha256=IPYJGexnn0j4SH9tbwLfzDSpbXV5vYCD8GTVUAIWpzo,2588
108
+ spacr/resources/MEDIAR/train_tools/data_utils/custom/__pycache__/LoadImage.cpython-39.pyc,sha256=A5bW39bHTNkRATcZViewTuGNv_B2X90AHuqcED-u1sk,5007
109
+ spacr/resources/MEDIAR/train_tools/data_utils/custom/__pycache__/NormalizeImage.cpython-39.pyc,sha256=8RKtHCfmfTU5gSGCIndm69jwqAv_91VUdAVaKrobO0k,2631
110
+ spacr/resources/MEDIAR/train_tools/data_utils/custom/__pycache__/__init__.cpython-39.pyc,sha256=Ak1y5qjw41KZym40mohudxCmFEAHq2kogSiu3RApSUc,266
84
111
  spacr/resources/MEDIAR/train_tools/models/MEDIARFormer.py,sha256=UN8BYjraTNNdZUAGjl3yF566ERHAHQvj3GAQ6OETUOI,3615
85
112
  spacr/resources/MEDIAR/train_tools/models/__init__.py,sha256=CkY6rZxr-c9XxXNpQbYUYvHXDpf9E6rUmY1bQ47aEP8,28
113
+ spacr/resources/MEDIAR/train_tools/models/__pycache__/MEDIARFormer.cpython-39.pyc,sha256=460gTi1ZuHormHioEsqVr9kKBWuDSHsUsc-v0lZxK1E,2667
114
+ spacr/resources/MEDIAR/train_tools/models/__pycache__/__init__.cpython-39.pyc,sha256=HMafk6-ZBmFOKV85xGF0IaG5Xpu5EYEIqb11m110vdw,211
86
115
  spacr/resources/data/lopit.csv,sha256=ERI5f9W8RdJGiSx_khoaylD374f8kmvLia1xjhD_mII,4421709
87
116
  spacr/resources/data/toxoplasma_metadata.csv,sha256=9TXx0VlClDHAxQmaLhoklE8NuETduXaGHZjhR_6lZfs,2969409
88
117
  spacr/resources/font/open_sans/OFL.txt,sha256=bGMoWBRrE2RcdzDiuYiB8A9OVFlJ0sA2imWwce2DAdo,4484
@@ -153,9 +182,9 @@ spacr/resources/icons/umap.png,sha256=dOLF3DeLYy9k0nkUybiZMe1wzHQwLJFRmgccppw-8b
153
182
  spacr/resources/images/plate1_E01_T0001F001L01A01Z01C02.tif,sha256=Tl0ZUfZ_AYAbu0up_nO0tPRtF1BxXhWQ3T3pURBCCRo,7958528
154
183
  spacr/resources/images/plate1_E01_T0001F001L01A02Z01C01.tif,sha256=m8N-V71rA1TT4dFlENNg8s0Q0YEXXs8slIn7yObmZJQ,7958528
155
184
  spacr/resources/images/plate1_E01_T0001F001L01A03Z01C03.tif,sha256=Pbhk7xn-KUP6RSIhJsxQcrHFImBm3GEpLkzx7WOc-5M,7958528
156
- spacr-0.4.15.dist-info/LICENSE,sha256=SR-2MeGc6SCM1UORJYyarSWY_A-JaOMFDj7ReSs9tRM,1083
157
- spacr-0.4.15.dist-info/METADATA,sha256=S7GQ5vQOQmp_uZPNThj1d29xrjSf_joXTOUVX96UDCY,6073
158
- spacr-0.4.15.dist-info/WHEEL,sha256=HiCZjzuy6Dw0hdX5R3LCFPDmFS4BWl8H-8W39XfmgX4,91
159
- spacr-0.4.15.dist-info/entry_points.txt,sha256=BMC0ql9aNNpv8lUZ8sgDLQMsqaVnX5L535gEhKUP5ho,296
160
- spacr-0.4.15.dist-info/top_level.txt,sha256=GJPU8FgwRXGzKeut6JopsSRY2R8T3i9lDgya42tLInY,6
161
- spacr-0.4.15.dist-info/RECORD,,
185
+ spacr-0.5.0.dist-info/LICENSE,sha256=SR-2MeGc6SCM1UORJYyarSWY_A-JaOMFDj7ReSs9tRM,1083
186
+ spacr-0.5.0.dist-info/METADATA,sha256=MMF3YheSrFOyZa_qnegHEbPsNnBVc4QoTlOk1dgfk6g,6146
187
+ spacr-0.5.0.dist-info/WHEEL,sha256=HiCZjzuy6Dw0hdX5R3LCFPDmFS4BWl8H-8W39XfmgX4,91
188
+ spacr-0.5.0.dist-info/entry_points.txt,sha256=BMC0ql9aNNpv8lUZ8sgDLQMsqaVnX5L535gEhKUP5ho,296
189
+ spacr-0.5.0.dist-info/top_level.txt,sha256=GJPU8FgwRXGzKeut6JopsSRY2R8T3i9lDgya42tLInY,6
190
+ spacr-0.5.0.dist-info/RECORD,,
spacr/stats.py DELETED
@@ -1,221 +0,0 @@
1
- from scipy.stats import shapiro, normaltest, levene, ttest_ind, mannwhitneyu, kruskal, f_oneway
2
- from statsmodels.stats.multicomp import pairwise_tukeyhsd
3
- import scikit_posthocs as sp
4
- import numpy as np
5
- import pandas as pd
6
- from scipy.stats import chi2_contingency, fisher_exact
7
- import itertools
8
- from statsmodels.stats.multitest import multipletests
9
-
10
-
11
- def choose_p_adjust_method(num_groups, num_data_points):
12
- """
13
- Selects the most appropriate p-value adjustment method based on data characteristics.
14
-
15
- Parameters:
16
- - num_groups: Number of unique groups being compared
17
- - num_data_points: Number of data points per group (assuming balanced groups)
18
-
19
- Returns:
20
- - A string representing the recommended p-adjustment method
21
- """
22
- num_comparisons = (num_groups * (num_groups - 1)) // 2 # Number of pairwise comparisons
23
-
24
- # Decision logic for choosing the adjustment method
25
- if num_comparisons <= 10 and num_data_points > 5:
26
- return 'holm' # Balanced between power and Type I error control
27
- elif num_comparisons > 10 and num_data_points <= 5:
28
- return 'fdr_bh' # FDR control for large number of comparisons and small sample size
29
- elif num_comparisons <= 10:
30
- return 'sidak' # Less conservative than Bonferroni, good for independent comparisons
31
- else:
32
- return 'bonferroni' # Very conservative, use for strict control of Type I errors
33
-
34
- def perform_normality_tests(df, grouping_column, data_columns):
35
- """Perform normality tests for each group and data column."""
36
- unique_groups = df[grouping_column].unique()
37
- normality_results = []
38
-
39
- for column in data_columns:
40
- for group in unique_groups:
41
- data = df.loc[df[grouping_column] == group, column].dropna()
42
- n_samples = len(data)
43
-
44
- if n_samples < 3:
45
- # Skip test if there aren't enough data points
46
- print(f"Skipping normality test for group '{group}' on column '{column}' - Not enough data.")
47
- normality_results.append({
48
- 'Comparison': f'Normality test for {group} on {column}',
49
- 'Test Statistic': None,
50
- 'p-value': None,
51
- 'Test Name': 'Skipped',
52
- 'Column': column,
53
- 'n': n_samples
54
- })
55
- continue
56
-
57
- # Choose the appropriate normality test based on the sample size
58
- if n_samples >= 8:
59
- stat, p_value = normaltest(data)
60
- test_name = "D'Agostino-Pearson test"
61
- else:
62
- stat, p_value = shapiro(data)
63
- test_name = "Shapiro-Wilk test"
64
-
65
- normality_results.append({
66
- 'Comparison': f'Normality test for {group} on {column}',
67
- 'Test Statistic': stat,
68
- 'p-value': p_value,
69
- 'Test Name': test_name,
70
- 'Column': column,
71
- 'n': n_samples
72
- })
73
-
74
- # Check if all groups are normally distributed (p > 0.05)
75
- normal_p_values = [result['p-value'] for result in normality_results if result['Column'] == column and result['p-value'] is not None]
76
- is_normal = all(p > 0.05 for p in normal_p_values)
77
-
78
- return is_normal, normality_results
79
-
80
-
81
- def perform_levene_test(df, grouping_column, data_column):
82
- """Perform Levene's test for equal variance."""
83
- unique_groups = df[grouping_column].unique()
84
- grouped_data = [df.loc[df[grouping_column] == group, data_column].dropna() for group in unique_groups]
85
- stat, p_value = levene(*grouped_data)
86
- return stat, p_value
87
-
88
- def perform_statistical_tests(df, grouping_column, data_columns, paired=False):
89
- """Perform statistical tests for each data column."""
90
- unique_groups = df[grouping_column].unique()
91
- test_results = []
92
-
93
- for column in data_columns:
94
- grouped_data = [df.loc[df[grouping_column] == group, column].dropna() for group in unique_groups]
95
- if len(unique_groups) == 2: # For two groups
96
- if paired:
97
- print("Performing paired tests (not implemented in this template).")
98
- continue # Extend as needed
99
- else:
100
- # Check normality for two groups
101
- is_normal, _ = perform_normality_tests(df, grouping_column, [column])
102
- if is_normal:
103
- stat, p = ttest_ind(grouped_data[0], grouped_data[1])
104
- test_name = 'T-test'
105
- else:
106
- stat, p = mannwhitneyu(grouped_data[0], grouped_data[1])
107
- test_name = 'Mann-Whitney U test'
108
- else:
109
- # Check normality for multiple groups
110
- is_normal, _ = perform_normality_tests(df, grouping_column, [column])
111
- if is_normal:
112
- stat, p = f_oneway(*grouped_data)
113
- test_name = 'One-way ANOVA'
114
- else:
115
- stat, p = kruskal(*grouped_data)
116
- test_name = 'Kruskal-Wallis test'
117
-
118
- test_results.append({
119
- 'Column': column,
120
- 'Test Name': test_name,
121
- 'Test Statistic': stat,
122
- 'p-value': p,
123
- 'Groups': len(unique_groups)
124
- })
125
-
126
- return test_results
127
-
128
-
129
- def perform_posthoc_tests(df, grouping_column, data_column, is_normal):
130
- """Perform post-hoc tests for multiple groups with both original and adjusted p-values."""
131
- unique_groups = df[grouping_column].unique()
132
- posthoc_results = []
133
-
134
- if len(unique_groups) > 2:
135
- num_groups = len(unique_groups)
136
- num_data_points = len(df[data_column].dropna()) // num_groups # Assuming roughly equal data points per group
137
- p_adjust_method = choose_p_adjust_method(num_groups, num_data_points)
138
-
139
- if is_normal:
140
- # Tukey's HSD automatically adjusts p-values
141
- tukey_result = pairwise_tukeyhsd(df[data_column], df[grouping_column], alpha=0.05)
142
- for comparison, p_value in zip(tukey_result._results_table.data[1:], tukey_result.pvalues):
143
- posthoc_results.append({
144
- 'Comparison': f"{comparison[0]} vs {comparison[1]}",
145
- 'Original p-value': None, # Tukey HSD does not provide raw p-values
146
- 'Adjusted p-value': p_value,
147
- 'Adjusted Method': 'Tukey HSD',
148
- 'Test Name': 'Tukey HSD'
149
- })
150
- else:
151
- # Dunn's test with p-value adjustment
152
- raw_dunn_result = sp.posthoc_dunn(df, val_col=data_column, group_col=grouping_column, p_adjust=None)
153
- adjusted_dunn_result = sp.posthoc_dunn(df, val_col=data_column, group_col=grouping_column, p_adjust=p_adjust_method)
154
- for i, group_a in enumerate(adjusted_dunn_result.index):
155
- for j, group_b in enumerate(adjusted_dunn_result.columns):
156
- if i < j: # Only consider unique pairs
157
- posthoc_results.append({
158
- 'Comparison': f"{group_a} vs {group_b}",
159
- 'Original p-value': raw_dunn_result.iloc[i, j],
160
- 'Adjusted p-value': adjusted_dunn_result.iloc[i, j],
161
- 'Adjusted Method': p_adjust_method,
162
- 'Test Name': "Dunn's Post-hoc"
163
- })
164
-
165
- return posthoc_results
166
-
167
- def chi_pairwise(raw_counts, verbose=False):
168
- """
169
- Perform pairwise chi-square or Fisher's exact tests between all unique group pairs
170
- and apply p-value correction.
171
-
172
- Parameters:
173
- - raw_counts (DataFrame): Contingency table with group-wise counts.
174
- - verbose (bool): Whether to print results for each pair.
175
-
176
- Returns:
177
- - pairwise_df (DataFrame): DataFrame with pairwise test results, including corrected p-values.
178
- """
179
- pairwise_results = []
180
- groups = raw_counts.index.unique() # Use index from raw_counts for group pairs
181
- raw_p_values = [] # Store raw p-values for correction later
182
-
183
- # Calculate the number of groups and average number of data points per group
184
- num_groups = len(groups)
185
- num_data_points = raw_counts.sum(axis=1).mean() # Average total data points per group
186
- p_adjust_method = choose_p_adjust_method(num_groups, num_data_points)
187
-
188
- for group1, group2 in itertools.combinations(groups, 2):
189
- contingency_table = raw_counts.loc[[group1, group2]].values
190
- if contingency_table.shape[1] == 2: # Fisher's Exact Test for 2x2 tables
191
- oddsratio, p_value = fisher_exact(contingency_table)
192
- test_name = "Fisher's Exact Test"
193
- else: # Chi-Square Test for larger tables
194
- chi2_stat, p_value, _, _ = chi2_contingency(contingency_table)
195
- test_name = 'Pairwise Chi-Square Test'
196
-
197
- pairwise_results.append({
198
- 'Group 1': group1,
199
- 'Group 2': group2,
200
- 'Test Name': test_name,
201
- 'p-value': p_value
202
- })
203
- raw_p_values.append(p_value)
204
-
205
- # Apply p-value correction
206
- corrected_p_values = multipletests(raw_p_values, method=p_adjust_method)[1]
207
-
208
- # Add corrected p-values to results
209
- for i, result in enumerate(pairwise_results):
210
- result['p-value_adj'] = corrected_p_values[i]
211
-
212
- pairwise_df = pd.DataFrame(pairwise_results)
213
-
214
- pairwise_df['adj'] = p_adjust_method
215
-
216
- if verbose:
217
- # Print pairwise results
218
- print("\nPairwise Frequency Analysis Results:")
219
- print(pairwise_df.to_string(index=False))
220
-
221
- return pairwise_df
File without changes
File without changes