M3Drop 0.4.53__tar.gz → 0.4.55__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.
- {m3drop-0.4.53 → m3drop-0.4.55/M3Drop.egg-info}/PKG-INFO +1 -1
- {m3drop-0.4.53/M3Drop.egg-info → m3drop-0.4.55}/PKG-INFO +1 -1
- {m3drop-0.4.53 → m3drop-0.4.55}/m3Drop/NormalizationGPU.py +17 -5
- {m3drop-0.4.53 → m3drop-0.4.55}/setup.py +1 -1
- {m3drop-0.4.53 → m3drop-0.4.55}/LICENSE +0 -0
- {m3drop-0.4.53 → m3drop-0.4.55}/M3Drop.egg-info/SOURCES.txt +0 -0
- {m3drop-0.4.53 → m3drop-0.4.55}/M3Drop.egg-info/dependency_links.txt +0 -0
- {m3drop-0.4.53 → m3drop-0.4.55}/M3Drop.egg-info/requires.txt +0 -0
- {m3drop-0.4.53 → m3drop-0.4.55}/M3Drop.egg-info/top_level.txt +0 -0
- {m3drop-0.4.53 → m3drop-0.4.55}/README.md +0 -0
- {m3drop-0.4.53 → m3drop-0.4.55}/m3Drop/ControlDeviceCPU.py +0 -0
- {m3drop-0.4.53 → m3drop-0.4.55}/m3Drop/ControlDeviceGPU.py +0 -0
- {m3drop-0.4.53 → m3drop-0.4.55}/m3Drop/CoreCPU.py +0 -0
- {m3drop-0.4.53 → m3drop-0.4.55}/m3Drop/CoreGPU.py +0 -0
- {m3drop-0.4.53 → m3drop-0.4.55}/m3Drop/DiagnosticsCPU.py +0 -0
- {m3drop-0.4.53 → m3drop-0.4.55}/m3Drop/DiagnosticsGPU.py +0 -0
- {m3drop-0.4.53 → m3drop-0.4.55}/m3Drop/NormalizationCPU.py +0 -0
- {m3drop-0.4.53 → m3drop-0.4.55}/m3Drop/__init__.py +0 -0
- {m3drop-0.4.53 → m3drop-0.4.55}/pyproject.toml +0 -0
- {m3drop-0.4.53 → m3drop-0.4.55}/setup.cfg +0 -0
|
@@ -176,6 +176,7 @@ def NBumiPearsonResidualsCombinedGPU(
|
|
|
176
176
|
cupy.get_default_memory_pool().free_all_blocks()
|
|
177
177
|
|
|
178
178
|
# --- VIZ ACCUMULATION 1: RAW MEAN ---
|
|
179
|
+
# Add raw sums to accumulator (column-wise sum)
|
|
179
180
|
acc_raw_sum += cupy.sum(counts_dense, axis=0)
|
|
180
181
|
|
|
181
182
|
# --- VIZ SAMPLING: GENERATE INDICES ---
|
|
@@ -305,19 +306,29 @@ def NBumiPearsonResidualsCombinedGPU(
|
|
|
305
306
|
ax.set_xlabel("Mean Raw Expression (log)")
|
|
306
307
|
ax.set_ylabel("Variance of Residuals (log)")
|
|
307
308
|
ax.legend()
|
|
308
|
-
ax.grid(True, alpha=0.
|
|
309
|
+
ax.grid(True, which='both', linestyle='--', alpha=0.5)
|
|
309
310
|
ax.text(0.5, -0.15, "Goal: Blue dots should form a flat line at y=1",
|
|
310
311
|
transform=ax.transAxes, ha='center', fontsize=9,
|
|
311
312
|
bbox=dict(facecolor='#f0f0f0', edgecolor='black', alpha=0.7))
|
|
312
313
|
|
|
313
|
-
# Plot 3: Distribution
|
|
314
|
+
# Plot 3: Distribution (Histogram + KDE Overlay) - LOG SCALE FIXED
|
|
314
315
|
ax = ax1[1]
|
|
315
316
|
if len(flat_approx) > 100:
|
|
316
317
|
mask_kde = (flat_approx > -10) & (flat_approx < 10)
|
|
317
|
-
|
|
318
|
-
|
|
318
|
+
|
|
319
|
+
# Histograms (The Truth)
|
|
320
|
+
bins = np.linspace(-5, 5, 100)
|
|
321
|
+
ax.hist(flat_approx[mask_kde], bins=bins, color='red', alpha=0.2, density=True, label='_nolegend_')
|
|
322
|
+
ax.hist(flat_full[mask_kde], bins=bins, color='blue', alpha=0.2, density=True, label='_nolegend_')
|
|
323
|
+
|
|
324
|
+
# KDEs (The Trend)
|
|
325
|
+
sns.kdeplot(flat_approx[mask_kde], fill=False, color='red', linewidth=2, label='Approx', ax=ax, warn_singular=False)
|
|
326
|
+
sns.kdeplot(flat_full[mask_kde], fill=False, color='blue', linewidth=2, label='Full', ax=ax, warn_singular=False)
|
|
327
|
+
|
|
328
|
+
ax.set_yscale('log') # <--- THE CRITICAL FIX FOR "SHIT GRAPH"
|
|
329
|
+
ax.set_ylim(bottom=0.001) # Safety floor for log(0)
|
|
319
330
|
ax.set_xlim(-5, 5)
|
|
320
|
-
ax.set_title("Distribution of Residuals")
|
|
331
|
+
ax.set_title("Distribution of Residuals (Log Scale)")
|
|
321
332
|
ax.set_xlabel("Residual Value")
|
|
322
333
|
ax.legend()
|
|
323
334
|
ax.grid(True, alpha=0.3)
|
|
@@ -335,6 +346,7 @@ def NBumiPearsonResidualsCombinedGPU(
|
|
|
335
346
|
|
|
336
347
|
if len(flat_approx) > 0:
|
|
337
348
|
ax2.scatter(flat_approx, flat_full, s=1, alpha=0.5, color='purple')
|
|
349
|
+
|
|
338
350
|
lims = [
|
|
339
351
|
np.min([ax2.get_xlim(), ax2.get_ylim()]),
|
|
340
352
|
np.max([ax2.get_xlim(), ax2.get_ylim()]),
|
|
@@ -5,7 +5,7 @@ with open("README.md", "r", encoding="utf-8") as fh:
|
|
|
5
5
|
|
|
6
6
|
setuptools.setup(
|
|
7
7
|
name="M3Drop", # Name for pip (pip install M3Drop)
|
|
8
|
-
version="0.4.
|
|
8
|
+
version="0.4.55",
|
|
9
9
|
author="Tallulah Andrews",
|
|
10
10
|
author_email="tandrew6@uwo.ca",
|
|
11
11
|
description="A Python implementation of the M3Drop single-cell RNA-seq analysis tool.",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|