-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsimple_tool_comparison.py
More file actions
60 lines (53 loc) · 2.79 KB
/
simple_tool_comparison.py
File metadata and controls
60 lines (53 loc) · 2.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# Simple comparison: All tools (regular embeddings) + Kompot (both flavors)
from gather_stability_columns import gather_stability_columns, plot_multi_tool_correlation_vs_parameter
import os
# Create plots directory
os.makedirs('plots', exist_ok=True)
def load_tool_data(directory, column_name, table_type, tool_name):
"""Load tool data with error handling."""
try:
print(f"Loading {tool_name}...")
df, _ = gather_stability_columns(directory, column_name, table_type)
print(f"✓ {tool_name}: {df.shape[0]} genes/cells, {df.shape[1]} samples")
return df
except Exception as e:
print(f"✗ {tool_name}: {e}")
return None
# Define tool configurations
tools_config = [
('data/processed/aging_scanpy_subsampling', 'scanpy_de_log_fold_change_Young_to_Old', 'var', 'Scanpy'),
('data/processed/aging_mrvi_subsampling', 'mrvi_de_log_fold_change_Young_to_Old', 'var', 'mrVI'),
('data/processed/aging_lemur_subsampling', 'lemur_de_log_fold_change_Young_to_Old', 'var', 'LEMUR'),
('data/processed/aging_seurat_subsampling', 'seurat_de_log_fold_change_Young_to_Old', 'var', 'Seurat'),
('data/processed/aging_milo_subsampling', 'milo_da_log_fold_change_Young_to_Old', 'obs', 'Milo'),
('data/processed/aging_meld_subsampling', 'meld_da_log_fold_change_Young_to_Old', 'obs', 'MELD'),
('data/processed/aging_deseq2_subsampling', 'deseq2_de_log_fold_change_Young_to_Old', 'var', 'DESeq2'),
]
# Load all available tools
tool_data = {}
print("Loading tools with regular embeddings...")
for directory, column_name, table_type, tool_name in tools_config:
df = load_tool_data(directory, column_name, table_type, tool_name)
if df is not None:
tool_data[tool_name] = df
# Load Kompot with both embedding strategies
print("\nLoading Kompot with both embedding strategies...")
kompot_regular = load_tool_data('data/processed/aging_subsampling', 'kompot_de_mahalanobis_Young_to_Old', 'var', 'Kompot (Regular)')
kompot_precomputed = load_tool_data('data/processed/aging_precomputed_embeddings_subsampling', 'kompot_de_mahalanobis_Young_to_Old', 'var', 'Kompot (Precomputed)')
if kompot_regular is not None:
tool_data['Kompot (Regular)'] = kompot_regular
if kompot_precomputed is not None:
tool_data['Kompot (Precomputed)'] = kompot_precomputed
# Create comparison plot if we have data
if tool_data:
print(f"\nCreating plot with {len(tool_data)} tools...")
fig = plot_multi_tool_correlation_vs_parameter(
tool_data=tool_data,
correlation_method='spearman',
title='DE/DA Tool Comparison: Regular Embeddings + Kompot Both Flavors',
reference_index=0,
save_path='plots/all_tools_kompot_both_flavors.png'
)
print("✓ Saved: plots/all_tools_kompot_both_flavors.png")
else:
print("No tool data loaded successfully.")