M3Drop 0.4.57__py3-none-any.whl → 0.4.59__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.
- m3Drop/CoreCPU.py +13 -4
- m3Drop/CoreGPU.py +13 -2
- m3Drop/DiagnosticsCPU.py +24 -4
- m3Drop/DiagnosticsGPU.py +25 -7
- m3Drop/NormalizationCPU.py +15 -4
- m3Drop/NormalizationGPU.py +7 -4
- {m3drop-0.4.57.dist-info → m3drop-0.4.59.dist-info}/METADATA +1 -1
- m3drop-0.4.59.dist-info/RECORD +14 -0
- m3drop-0.4.57.dist-info/RECORD +0 -14
- {m3drop-0.4.57.dist-info → m3drop-0.4.59.dist-info}/WHEEL +0 -0
- {m3drop-0.4.57.dist-info → m3drop-0.4.59.dist-info}/licenses/LICENSE +0 -0
- {m3drop-0.4.57.dist-info → m3drop-0.4.59.dist-info}/top_level.txt +0 -0
m3Drop/CoreCPU.py
CHANGED
|
@@ -22,10 +22,19 @@ from scipy.stats import norm
|
|
|
22
22
|
from scipy import sparse
|
|
23
23
|
from statsmodels.stats.multitest import multipletests
|
|
24
24
|
|
|
25
|
-
#
|
|
26
|
-
#
|
|
27
|
-
#
|
|
28
|
-
|
|
25
|
+
# ==========================================
|
|
26
|
+
# HYBRID IMPORT (PACKAGE VS LOCAL)
|
|
27
|
+
# ==========================================
|
|
28
|
+
try:
|
|
29
|
+
# Case 1: Running as an installed package
|
|
30
|
+
from .ControlDeviceCPU import ControlDevice
|
|
31
|
+
except ImportError:
|
|
32
|
+
# Case 2: Running locally
|
|
33
|
+
try:
|
|
34
|
+
from ControlDeviceCPU import ControlDevice
|
|
35
|
+
except ImportError:
|
|
36
|
+
print("CRITICAL ERROR: 'ControlDeviceCPU.py' not found.")
|
|
37
|
+
sys.exit(1)
|
|
29
38
|
|
|
30
39
|
# ==========================================
|
|
31
40
|
# NUMBA KERNELS (CPU OPTIMIZED)
|
m3Drop/CoreGPU.py
CHANGED
|
@@ -22,8 +22,19 @@ import matplotlib.pyplot as plt
|
|
|
22
22
|
from scipy.stats import norm
|
|
23
23
|
from statsmodels.stats.multitest import multipletests
|
|
24
24
|
|
|
25
|
-
#
|
|
26
|
-
|
|
25
|
+
# ==========================================
|
|
26
|
+
# HYBRID IMPORT (PACKAGE VS LOCAL)
|
|
27
|
+
# ==========================================
|
|
28
|
+
try:
|
|
29
|
+
# Case 1: Running as an installed package (e.g. import m3drop.CoreGPU)
|
|
30
|
+
from .ControlDeviceGPU import ControlDevice
|
|
31
|
+
except ImportError:
|
|
32
|
+
# Case 2: Running locally (e.g. python CoreGPU.py)
|
|
33
|
+
try:
|
|
34
|
+
from ControlDeviceGPU import ControlDevice
|
|
35
|
+
except ImportError:
|
|
36
|
+
print("CRITICAL ERROR: 'ControlDeviceGPU.py' not found.")
|
|
37
|
+
sys.exit(1)
|
|
27
38
|
|
|
28
39
|
# ==========================================
|
|
29
40
|
# FUSED KERNELS
|
m3Drop/DiagnosticsCPU.py
CHANGED
|
@@ -14,9 +14,29 @@ import statsmodels.api as sm
|
|
|
14
14
|
from scipy.stats import norm
|
|
15
15
|
from statsmodels.stats.multitest import multipletests
|
|
16
16
|
|
|
17
|
-
#
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
# ==========================================
|
|
18
|
+
# HYBRID IMPORT (PACKAGE VS LOCAL)
|
|
19
|
+
# ==========================================
|
|
20
|
+
|
|
21
|
+
# [FIX] Hybrid Import: ControlDeviceCPU
|
|
22
|
+
try:
|
|
23
|
+
from .ControlDeviceCPU import ControlDevice
|
|
24
|
+
except ImportError:
|
|
25
|
+
try:
|
|
26
|
+
from ControlDeviceCPU import ControlDevice
|
|
27
|
+
except ImportError:
|
|
28
|
+
print("CRITICAL ERROR: 'ControlDeviceCPU.py' not found.")
|
|
29
|
+
sys.exit(1)
|
|
30
|
+
|
|
31
|
+
# [FIX] Hybrid Import: CoreCPU
|
|
32
|
+
try:
|
|
33
|
+
from .CoreCPU import hidden_calc_valsCPU, NBumiFitModelCPU, NBumiFitDispVsMeanCPU, dropout_prob_kernel_cpu
|
|
34
|
+
except ImportError:
|
|
35
|
+
try:
|
|
36
|
+
from CoreCPU import hidden_calc_valsCPU, NBumiFitModelCPU, NBumiFitDispVsMeanCPU, dropout_prob_kernel_cpu
|
|
37
|
+
except ImportError:
|
|
38
|
+
print("CRITICAL ERROR: 'CoreCPU.py' not found.")
|
|
39
|
+
sys.exit(1)
|
|
20
40
|
|
|
21
41
|
# ==========================================
|
|
22
42
|
# DIAGNOSTICS & COMPARISON (CPU)
|
|
@@ -244,7 +264,7 @@ def NBumiCompareModelsCPU(
|
|
|
244
264
|
stats: dict,
|
|
245
265
|
fit_adjust: dict,
|
|
246
266
|
mask_filename: str = None,
|
|
247
|
-
mode: str = "auto",
|
|
267
|
+
mode: str = "auto",
|
|
248
268
|
manual_target: int = 3000,
|
|
249
269
|
suppress_plot=False,
|
|
250
270
|
plot_filename=None
|
m3Drop/DiagnosticsGPU.py
CHANGED
|
@@ -13,13 +13,31 @@ from scipy import sparse
|
|
|
13
13
|
from scipy import stats
|
|
14
14
|
import anndata
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
16
|
+
# ==========================================
|
|
17
|
+
# HYBRID IMPORT (PACKAGE VS LOCAL)
|
|
18
|
+
# ==========================================
|
|
19
|
+
try:
|
|
20
|
+
# Case 1: Package
|
|
21
|
+
from .ControlDeviceGPU import ControlDevice
|
|
22
|
+
from .CoreGPU import (
|
|
23
|
+
hidden_calc_valsGPU,
|
|
24
|
+
NBumiFitModelGPU,
|
|
25
|
+
NBumiFitDispVsMeanGPU,
|
|
26
|
+
dropout_prob_kernel
|
|
27
|
+
)
|
|
28
|
+
except ImportError:
|
|
29
|
+
# Case 2: Local
|
|
30
|
+
try:
|
|
31
|
+
from ControlDeviceGPU import ControlDevice
|
|
32
|
+
from CoreGPU import (
|
|
33
|
+
hidden_calc_valsGPU,
|
|
34
|
+
NBumiFitModelGPU,
|
|
35
|
+
NBumiFitDispVsMeanGPU,
|
|
36
|
+
dropout_prob_kernel
|
|
37
|
+
)
|
|
38
|
+
except ImportError:
|
|
39
|
+
print("CRITICAL ERROR: Dependencies (ControlDeviceGPU, CoreGPU) not found.")
|
|
40
|
+
sys.exit(1)
|
|
23
41
|
|
|
24
42
|
from cupy.sparse import csr_matrix as cp_csr_matrix
|
|
25
43
|
import scipy.sparse as sp
|
m3Drop/NormalizationCPU.py
CHANGED
|
@@ -16,8 +16,19 @@ except ImportError:
|
|
|
16
16
|
print("CRITICAL ERROR: 'numba' not found. Please install it (pip install numba).")
|
|
17
17
|
sys.exit(1)
|
|
18
18
|
|
|
19
|
-
#
|
|
20
|
-
|
|
19
|
+
# ==========================================
|
|
20
|
+
# HYBRID IMPORT (PACKAGE VS LOCAL)
|
|
21
|
+
# ==========================================
|
|
22
|
+
try:
|
|
23
|
+
# Case 1: Running as an installed package
|
|
24
|
+
from .ControlDeviceCPU import ControlDevice
|
|
25
|
+
except ImportError:
|
|
26
|
+
# Case 2: Running locally
|
|
27
|
+
try:
|
|
28
|
+
from ControlDeviceCPU import ControlDevice
|
|
29
|
+
except ImportError:
|
|
30
|
+
print("CRITICAL ERROR: 'ControlDeviceCPU.py' not found.")
|
|
31
|
+
sys.exit(1)
|
|
21
32
|
|
|
22
33
|
# ==========================================
|
|
23
34
|
# NUMBA KERNELS (CPU)
|
|
@@ -259,7 +270,7 @@ def NBumiPearsonResidualsCombinedCPU(
|
|
|
259
270
|
print(f"Phase [Viz]: Samples Collected... n = {len(flat_approx):,}")
|
|
260
271
|
|
|
261
272
|
# --- FILE 1: SUMMARY (1080p) ---
|
|
262
|
-
print(f"Saving
|
|
273
|
+
print(f"Saving plot to: {plot_summary_filename}")
|
|
263
274
|
fig1, ax1 = plt.subplots(1, 2, figsize=(16, 7))
|
|
264
275
|
|
|
265
276
|
# Plot 1: Variance Stabilization
|
|
@@ -299,7 +310,7 @@ def NBumiPearsonResidualsCombinedCPU(
|
|
|
299
310
|
plt.close()
|
|
300
311
|
|
|
301
312
|
# --- FILE 2: DETAIL (4K) ---
|
|
302
|
-
print(f"Saving plot
|
|
313
|
+
print(f"Saving plot to: {plot_detail_filename}")
|
|
303
314
|
fig2, ax2 = plt.subplots(figsize=(20, 11))
|
|
304
315
|
|
|
305
316
|
if len(flat_approx) > 0:
|
m3Drop/NormalizationGPU.py
CHANGED
|
@@ -18,10 +18,14 @@ except ImportError:
|
|
|
18
18
|
cupy = None
|
|
19
19
|
HAS_GPU = False
|
|
20
20
|
|
|
21
|
-
#
|
|
21
|
+
# ==========================================
|
|
22
|
+
# HYBRID IMPORT (PACKAGE VS LOCAL)
|
|
23
|
+
# ==========================================
|
|
22
24
|
try:
|
|
25
|
+
# Case 1: Package
|
|
23
26
|
from .ControlDeviceGPU import ControlDevice
|
|
24
27
|
except ImportError:
|
|
28
|
+
# Case 2: Local
|
|
25
29
|
try:
|
|
26
30
|
from ControlDeviceGPU import ControlDevice
|
|
27
31
|
except ImportError:
|
|
@@ -292,7 +296,7 @@ def NBumiPearsonResidualsCombinedGPU(
|
|
|
292
296
|
print(f"Phase [Viz]: Samples Collected... n = {len(flat_approx):,}")
|
|
293
297
|
|
|
294
298
|
# --- FILE 1: SUMMARY (1080p) ---
|
|
295
|
-
print(f"Saving
|
|
299
|
+
print(f"Saving plot to: {plot_summary_filename}")
|
|
296
300
|
fig1, ax1 = plt.subplots(1, 2, figsize=(16, 7))
|
|
297
301
|
|
|
298
302
|
# Plot 1: Variance Stabilization
|
|
@@ -341,7 +345,7 @@ def NBumiPearsonResidualsCombinedGPU(
|
|
|
341
345
|
plt.close()
|
|
342
346
|
|
|
343
347
|
# --- FILE 2: DETAIL (4K) ---
|
|
344
|
-
print(f"Saving plot
|
|
348
|
+
print(f"Saving plot to: {plot_detail_filename}")
|
|
345
349
|
fig2, ax2 = plt.subplots(figsize=(20, 11))
|
|
346
350
|
|
|
347
351
|
if len(flat_approx) > 0:
|
|
@@ -367,4 +371,3 @@ def NBumiPearsonResidualsCombinedGPU(
|
|
|
367
371
|
|
|
368
372
|
if hasattr(adata_in, "file") and adata_in.file is not None: adata_in.file.close()
|
|
369
373
|
print(f"Total time: {time.perf_counter() - start_time:.2f} seconds.\n")
|
|
370
|
-
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
m3Drop/ControlDeviceCPU.py,sha256=8P-hxd4thc2wSeon73b9rz3clIGkE3x0cEE82RiGFds,8880
|
|
2
|
+
m3Drop/ControlDeviceGPU.py,sha256=4nzPtgyV0RsEOeezwCVJ7oyDOsp9-dRVLczlduUocpU,9143
|
|
3
|
+
m3Drop/CoreCPU.py,sha256=bJ-4eSW5Q5FXIRdxv6Q8Aj-hF4VhvVq0fFJpTPZGwDA,18922
|
|
4
|
+
m3Drop/CoreGPU.py,sha256=phOUJ6PyOCczY3x_9FzVuOtC-oyHOkDte8bqA1yX7b4,20227
|
|
5
|
+
m3Drop/DiagnosticsCPU.py,sha256=YnKK6mkPEUS8IkQ-vKPE3aZaVJQBsSUp3YsO98sPNV0,13569
|
|
6
|
+
m3Drop/DiagnosticsGPU.py,sha256=wtVC2O48vcfS0sEl7RlXTHGZRBNDehszXEtxgLOqTJc,14994
|
|
7
|
+
m3Drop/NormalizationCPU.py,sha256=Qfj2IRMQyxkvJaAlbH9_H6SMFIWs_UCw3LhY2mOTFSA,13038
|
|
8
|
+
m3Drop/NormalizationGPU.py,sha256=FJLzfYdEB96v9OXld64FZO7r5_M9AU00OSuSlaM0ThY,15541
|
|
9
|
+
m3Drop/__init__.py,sha256=W_TQ9P8_7Tdsa6kDZ6IJKT0FMkX_JFvBqiP821CZIrk,2180
|
|
10
|
+
m3drop-0.4.59.dist-info/licenses/LICENSE,sha256=44Iqpp8Fc10Xzd5T7cT9UhO31Qftk3gBiCjtpwilP_k,1074
|
|
11
|
+
m3drop-0.4.59.dist-info/METADATA,sha256=S9HaM8uJ_X5BfUnho10yRoYV62o8yXkBfm9oWYCKWY4,5248
|
|
12
|
+
m3drop-0.4.59.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
13
|
+
m3drop-0.4.59.dist-info/top_level.txt,sha256=AEULFEFIgFtAwS-KBlIFoYXrqczX_rwqrEcdK46GIrA,7
|
|
14
|
+
m3drop-0.4.59.dist-info/RECORD,,
|
m3drop-0.4.57.dist-info/RECORD
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
m3Drop/ControlDeviceCPU.py,sha256=8P-hxd4thc2wSeon73b9rz3clIGkE3x0cEE82RiGFds,8880
|
|
2
|
-
m3Drop/ControlDeviceGPU.py,sha256=4nzPtgyV0RsEOeezwCVJ7oyDOsp9-dRVLczlduUocpU,9143
|
|
3
|
-
m3Drop/CoreCPU.py,sha256=csRg5TLQx1Sup7k3lDJm9OO5Oe5-1aC3u_6ldE_GIX8,18679
|
|
4
|
-
m3Drop/CoreGPU.py,sha256=6LToLuWyHxX_7sC2z0Xnvy_qqgmpew5DmnCV0PxmTZQ,19785
|
|
5
|
-
m3Drop/DiagnosticsCPU.py,sha256=l0Imkh3F3zo4ovihUjx7cYWYgzPdztWCN1hcBFO43nY,12943
|
|
6
|
-
m3Drop/DiagnosticsGPU.py,sha256=bsatHyHszgbufneeJvFvHBTLzDuY006nP2yHPHs8s7M,14389
|
|
7
|
-
m3Drop/NormalizationCPU.py,sha256=TrDLq7Urh5OnmaHw34rAalQLoTQ3AfKeIxZNjsbd3_g,12675
|
|
8
|
-
m3Drop/NormalizationGPU.py,sha256=PxYCTmuwU0BEVJllOAQiBalJiclNe-51xmZT5PubloQ,15414
|
|
9
|
-
m3Drop/__init__.py,sha256=W_TQ9P8_7Tdsa6kDZ6IJKT0FMkX_JFvBqiP821CZIrk,2180
|
|
10
|
-
m3drop-0.4.57.dist-info/licenses/LICENSE,sha256=44Iqpp8Fc10Xzd5T7cT9UhO31Qftk3gBiCjtpwilP_k,1074
|
|
11
|
-
m3drop-0.4.57.dist-info/METADATA,sha256=QZnDCH2cSgaXVLzQlxnKueKlaZqAUKQvIWeZinrIJwM,5248
|
|
12
|
-
m3drop-0.4.57.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
13
|
-
m3drop-0.4.57.dist-info/top_level.txt,sha256=AEULFEFIgFtAwS-KBlIFoYXrqczX_rwqrEcdK46GIrA,7
|
|
14
|
-
m3drop-0.4.57.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|