Skip to content

Commit 937ec5b

Browse files
add tutorial, add clustering modification
1 parent ab59d9e commit 937ec5b

3 files changed

Lines changed: 764 additions & 842 deletions

File tree

src/netmap/downstream/clustering.py

Lines changed: 37 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -10,32 +10,51 @@
1010

1111

1212

13-
def downstream_recipe(grn_adata, config = {'min_cells':1, 'n_neighbors': 30, 'leiden_resolution': 0.1, 'n_components': 100, 'knn_neighbors': 50})-> anndata.AnnData:
13+
def downstream_recipe(grn_adata, **kwargs) -> sc.AnnData:
1414
"""
15-
Minimal downstream processing for GRN object. Runs sc.pca (without scaling),
16-
sc.neighbours, sc.leiden, sc. umap
17-
18-
Parameters
19-
----------
20-
grn_adata : AnnData
21-
A GRN anndata object to process
22-
23-
config: dict
24-
Parameters for the processing
25-
26-
Returns
27-
-------
28-
grn_adata : AnnData
29-
Processed Anndata object
15+
Runs sc.pca, sc.neighbors, sc.leiden, and sc.umap.
16+
Parameters are pulled from kwargs, with defaults provided.
3017
"""
18+
# Define defaults and update with any provided kwargs
19+
config = {
20+
'n_neighbors': 30,
21+
'leiden_resolution': 0.1,
22+
'n_components': 100,
23+
'knn_neighbors': 50,
24+
'svd_solver': 'randomized'
25+
}
26+
config.update(kwargs)
27+
28+
# Use the config values in the scanpy functions
29+
sc.tl.pca(grn_adata, svd_solver=config['svd_solver'], zero_center=False)
3130

32-
sc.tl.pca(grn_adata, svd_solver = 'randomized', zero_center = False)
31+
# Note: sc.pp.neighbors uses n_neighbors.
32+
# If you specifically want to use your 'knn_neighbors' key:
3333
sc.pp.neighbors(grn_adata, n_neighbors=config['knn_neighbors'])
34+
3435
sc.tl.leiden(grn_adata, resolution=config['leiden_resolution'])
35-
sc.tl.umap(grn_adata, n_components = config['n_components'])
36+
37+
# n_components in UMAP usually refers to the dimensions of the embedding (default 2)
38+
sc.tl.umap(grn_adata, n_components=config['n_components'])
3639

3740
return grn_adata
3841

42+
def process(grn_adata, n_clu=2, key_added='spectral', **kwargs):
43+
"""
44+
Wrapper function that passes all extra keyword arguments to downstream_recipe.
45+
"""
46+
47+
if not scs.issparse(grn_adata.X):
48+
grn_adata.X[np.isnan(grn_adata.X)] = 0
49+
50+
# Pass the kwargs directly into the recipe
51+
grn_adata = downstream_recipe(grn_adata, **kwargs)
52+
53+
# Assuming spectral_clustering is defined elsewhere
54+
grn_adata = spectral_clustering(grn_adata, n_clu=n_clu, key_added=key_added)
55+
56+
return grn_adata
57+
3958

4059
def spectral_clustering(adata, n_clu = 2, key_added = 'spectral'):
4160
"""
@@ -73,32 +92,7 @@ def spectral_clustering(adata, n_clu = 2, key_added = 'spectral'):
7392

7493

7594

76-
def process(grn_adata, n_clu=2, key_added = 'spectral'):
77-
"""
78-
Wrapper function for convenience processing and clustering
79-
80-
Parameters
81-
----------
82-
grn_adata : AnnData
83-
A GRN anndata object to process
84-
85-
n_clu: int
86-
Number of clusters to compute
87-
key_added: str
88-
The key to add the new labelling to [Default: spectral]
89-
90-
Returns
91-
-------
92-
grn_adata : AnnData
93-
Processed Anndata object with an additional column in the .obs
94-
slot of the object named `key_added`
95-
"""
9695

97-
if not scs.issparse(grn_adata.X):
98-
grn_adata.X[np.isnan(grn_adata.X) ] = 0
99-
grn_adata = downstream_recipe(grn_adata)
100-
grn_adata = spectral_clustering(grn_adata, n_clu=n_clu, key_added = key_added)
101-
return grn_adata
10296

10397

10498

tutorials/netmap_tutorial_new_api.ipynb

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
"outputs": [],
99
"source": [
1010
"import sys\n",
11-
"sys.path.append('/data_nfs/og86asub/netmap/netmap-evaluation/')\n",
1211
"\n",
1312
"import scanpy as sc\n",
1413
"import time \n",
@@ -4233,6 +4232,10 @@
42334232
"display_name": "pixi_netmap",
42344233
"language": "python",
42354234
"name": "pixi_netmap"
4235+
},
4236+
"language_info": {
4237+
"name": "python",
4238+
"version": "3.11.6"
42364239
}
42374240
},
42384241
"nbformat": 4,

tutorials/use_case.ipynb

Lines changed: 723 additions & 798 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)