spacr 0.4.60__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 (47) hide show
  1. spacr/__init__.py +2 -2
  2. spacr/core.py +0 -1
  3. spacr/gui.py +0 -1
  4. spacr/gui_utils.py +5 -2
  5. spacr/io.py +168 -178
  6. spacr/resources/MEDIAR/__pycache__/SetupDict.cpython-39.pyc +0 -0
  7. spacr/resources/MEDIAR/__pycache__/evaluate.cpython-39.pyc +0 -0
  8. spacr/resources/MEDIAR/__pycache__/generate_mapping.cpython-39.pyc +0 -0
  9. spacr/resources/MEDIAR/__pycache__/main.cpython-39.pyc +0 -0
  10. spacr/resources/MEDIAR/core/Baseline/__pycache__/Predictor.cpython-39.pyc +0 -0
  11. spacr/resources/MEDIAR/core/Baseline/__pycache__/Trainer.cpython-39.pyc +0 -0
  12. spacr/resources/MEDIAR/core/Baseline/__pycache__/__init__.cpython-39.pyc +0 -0
  13. spacr/resources/MEDIAR/core/Baseline/__pycache__/utils.cpython-39.pyc +0 -0
  14. spacr/resources/MEDIAR/core/MEDIAR/__pycache__/EnsemblePredictor.cpython-39.pyc +0 -0
  15. spacr/resources/MEDIAR/core/MEDIAR/__pycache__/Predictor.cpython-39.pyc +0 -0
  16. spacr/resources/MEDIAR/core/MEDIAR/__pycache__/Trainer.cpython-39.pyc +0 -0
  17. spacr/resources/MEDIAR/core/MEDIAR/__pycache__/__init__.cpython-39.pyc +0 -0
  18. spacr/resources/MEDIAR/core/MEDIAR/__pycache__/utils.cpython-39.pyc +0 -0
  19. spacr/resources/MEDIAR/core/__pycache__/BasePredictor.cpython-39.pyc +0 -0
  20. spacr/resources/MEDIAR/core/__pycache__/BaseTrainer.cpython-39.pyc +0 -0
  21. spacr/resources/MEDIAR/core/__pycache__/__init__.cpython-39.pyc +0 -0
  22. spacr/resources/MEDIAR/core/__pycache__/utils.cpython-39.pyc +0 -0
  23. spacr/resources/MEDIAR/train_tools/__pycache__/__init__.cpython-39.pyc +0 -0
  24. spacr/resources/MEDIAR/train_tools/__pycache__/measures.cpython-39.pyc +0 -0
  25. spacr/resources/MEDIAR/train_tools/__pycache__/utils.cpython-39.pyc +0 -0
  26. spacr/resources/MEDIAR/train_tools/data_utils/__pycache__/__init__.cpython-39.pyc +0 -0
  27. spacr/resources/MEDIAR/train_tools/data_utils/__pycache__/datasetter.cpython-39.pyc +0 -0
  28. spacr/resources/MEDIAR/train_tools/data_utils/__pycache__/transforms.cpython-39.pyc +0 -0
  29. spacr/resources/MEDIAR/train_tools/data_utils/__pycache__/utils.cpython-39.pyc +0 -0
  30. spacr/resources/MEDIAR/train_tools/data_utils/custom/__pycache__/CellAware.cpython-39.pyc +0 -0
  31. spacr/resources/MEDIAR/train_tools/data_utils/custom/__pycache__/LoadImage.cpython-39.pyc +0 -0
  32. spacr/resources/MEDIAR/train_tools/data_utils/custom/__pycache__/NormalizeImage.cpython-39.pyc +0 -0
  33. spacr/resources/MEDIAR/train_tools/data_utils/custom/__pycache__/__init__.cpython-39.pyc +0 -0
  34. spacr/resources/MEDIAR/train_tools/models/__pycache__/MEDIARFormer.cpython-39.pyc +0 -0
  35. spacr/resources/MEDIAR/train_tools/models/__pycache__/__init__.cpython-39.pyc +0 -0
  36. spacr/settings.py +26 -8
  37. spacr/submodules.py +10 -13
  38. spacr/timelapse.py +172 -4
  39. spacr/utils.py +26 -41
  40. {spacr-0.4.60.dist-info → spacr-0.5.0.dist-info}/METADATA +4 -2
  41. {spacr-0.4.60.dist-info → spacr-0.5.0.dist-info}/RECORD +46 -17
  42. spacr/stats.py +0 -221
  43. /spacr/{cellpose.py → spacr_cellpose.py} +0 -0
  44. {spacr-0.4.60.dist-info → spacr-0.5.0.dist-info}/LICENSE +0 -0
  45. {spacr-0.4.60.dist-info → spacr-0.5.0.dist-info}/WHEEL +0 -0
  46. {spacr-0.4.60.dist-info → spacr-0.5.0.dist-info}/entry_points.txt +0 -0
  47. {spacr-0.4.60.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,15 +7,14 @@ 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=ghesCiRKxdHqnujztb9XiuhhZ-3gBs7aQIIzvqaf-iI,51409
11
+ spacr/core.py,sha256=AwyOjoTti9jN-eGG8j78Rv7ujSxEu13L1R27AS-byyc,51408
13
12
  spacr/deep_spacr.py,sha256=055tIo3WP3elGFiIuSZaLURgu2XyUDxAdbw5ezASEqM,54526
14
- spacr/gui.py,sha256=ARyn9Q_g8HoP-cXh1nzMLVFCKqthY4v2u9yORyaQqQE,8230
13
+ spacr/gui.py,sha256=NhMh96KoArrSAaJBV6PhDQpIC1cQpxgb6SclhRbYG8s,8122
15
14
  spacr/gui_core.py,sha256=AYXZpdKMRezJfS7Xcfztdc2yco6lV21ovwkyKQGbIZg,56206
16
15
  spacr/gui_elements.py,sha256=5a3BOpctBPklsT1NungqS72h1Bg1FArUndE0OfvWD8Y,152646
17
- spacr/gui_utils.py,sha256=dWVPFwDj793Z3ERG4mMC0hI0MKkOrvXJpUYlcjpCBsU,41357
18
- spacr/io.py,sha256=eZj5RCqje3xb_4BwPC0ASBqI-c7_6EeQYv8zrQf0tCc,159371
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
@@ -23,14 +22,14 @@ spacr/ml.py,sha256=XCRZeX7UkbMctQICIoskeWVx8CCmmCoHNauUOAkfFq0,91692
23
22
  spacr/openai.py,sha256=5vBZ3Jl2llYcW3oaTEXgdyCB2aJujMUIO5K038z7w_A,1246
24
23
  spacr/plot.py,sha256=lmpIJozfxMyOyGAMno4j-C7NPjDYRMr29SDAnrV-bb4,170815
25
24
  spacr/sequencing.py,sha256=EY12RdW5QRKpHDRQCw1QoAlxCq8FK2v6WoVa5uuDBXQ,26745
26
- spacr/settings.py,sha256=j2H5OieJKwu-TITlfP5tAnUGUhBjng8ECy3jXm3JMb8,86599
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=dNiUqwDYwJ2J1s3DkwGLOTB-TzyGq_GXoojpCrLMm7A,82812
31
- spacr/timelapse.py,sha256=lh3Aev5S7Ou1YWPBYBYeSGU0I-NPb0-4znYfm2NYf_I,39629
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
32
31
  spacr/toxo.py,sha256=GoNfgyH-NJx3WOzNQPgzODir7Jp65fs7UM46XpzcrUo,26056
33
- spacr/utils.py,sha256=20FRbevoFmPA61vS50tR48g6DpGkIvInGPv9nE810gQ,231668
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.60.dist-info/LICENSE,sha256=SR-2MeGc6SCM1UORJYyarSWY_A-JaOMFDj7ReSs9tRM,1083
157
- spacr-0.4.60.dist-info/METADATA,sha256=Na4GGSJEuobmjgAo8HSbejQ0h8E1etVHb249v5oBB6Y,6096
158
- spacr-0.4.60.dist-info/WHEEL,sha256=HiCZjzuy6Dw0hdX5R3LCFPDmFS4BWl8H-8W39XfmgX4,91
159
- spacr-0.4.60.dist-info/entry_points.txt,sha256=BMC0ql9aNNpv8lUZ8sgDLQMsqaVnX5L535gEhKUP5ho,296
160
- spacr-0.4.60.dist-info/top_level.txt,sha256=GJPU8FgwRXGzKeut6JopsSRY2R8T3i9lDgya42tLInY,6
161
- spacr-0.4.60.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