Skip to content

Commit 9d4ee9b

Browse files
Add 'keep_var' variable to make sure variable names don't disappear
1 parent 8a44f27 commit 9d4ee9b

File tree

2 files changed

+12
-6
lines changed

2 files changed

+12
-6
lines changed

benj/aggregate.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,7 @@ def aggregate_concat(metadata=None, directory:Union[_PathLike, List[_PathLike]]=
134134
sample_key="Sample", calc_qc:bool=True,
135135
min_cells_per_sample:int=30,
136136
sep="\t", verbose:bool=True,
137+
keep_var:bool=True
137138
**kwargs):
138139
"""Metadata+directory, or h5ad with or without metadata"""
139140
import os
@@ -190,7 +191,7 @@ def aggregate_concat(metadata=None, directory:Union[_PathLike, List[_PathLike]]=
190191
else:
191192
if var_same is None:
192193
var_same = adata.var.copy()
193-
else:
194+
elif not keep_var:
194195
### Idea: Keep one .var that keeps track of when the same items are there
195196
### If the column values are all the same, save and delete in all anndata
196197
###
@@ -222,8 +223,9 @@ def aggregate_concat(metadata=None, directory:Union[_PathLike, List[_PathLike]]=
222223
tk = list(adata_tbl.keys())
223224
del adata_tbl
224225
gc.collect()
225-
for vn in var_same.columns:
226-
adata.var[vn] = var_same[vn]
226+
if not keep_var:
227+
for vn in var_same.columns:
228+
adata.var[vn] = var_same[vn]
227229
if len(tk) == len(scrub_tbl.keys()):
228230
adata.uns["scrublet"] = {"batches": scrub_tbl,
229231
"batched_by": sample_key}

benj/utils.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,18 @@ def pg(adata, color_map="Reds"):
66

77
def read_elems(path: str, elems: Union[str, List[str]], retry:int=2) -> Union[Dict[str, any], any]:
88
import h5py
9-
import anndata.experimental
9+
try:
10+
from anndata.io import read_elem
11+
except ModuleNotFoundError:
12+
from anndata.experimental import read_elem
1013
if retry < 0:
1114
return {}
1215
try:
1316
with h5py.File(path, "r") as F:
1417
if isinstance(elems, str):
15-
return anndata.experimental.read_elem(F[elems])
18+
return read_elem(F[elems])
1619
else:
17-
return {elem: anndata.experimental.read_elem(F[elem]) for elem in elems}
20+
return {elem: read_elem(F[elem]) for elem in elems}
1821
except KeyError:
1922
import time
2023
print("Key error for %s, sleeping 5 seconds and retrying..." % path)
@@ -140,6 +143,7 @@ def weighted_pearson_correlation(A, B, wt=None):
140143

141144
def is_nonzero_combinatorial(adata, genes, label:str="Combination", prefix:str="Combo ", inplace:bool=True):
142145
import numpy as np
146+
import pandas as pd
143147
import scipy.sparse
144148
I = adata.var_names.get_indexer(genes)
145149
X = adata.X[:, I]

0 commit comments

Comments
 (0)