Skip to content

Commit bacc2f4

Browse files
committed
fixed gene_adata obs table inference when adding from adata
1 parent 4e8c6a2 commit bacc2f4

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

swan_vis/swangraph.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import sqlite3
1111
import pickle
1212
import anndata
13-
import diffxpy.api as de
1413
from statsmodels.stats.multitest import multipletests
1514
import multiprocessing
1615
from itertools import repeat
@@ -336,14 +335,30 @@ def abundance_to_adata(self,
336335
df = df.T
337336

338337
# get adata components - obs, var, and X
338+
339+
# var
339340
var = df.columns.to_frame()
340341
var.columns = [id_col]
341342
var.index.name = 'tid'
343+
344+
# obs
342345
obs = df.index.to_frame()
343346
obs.columns = ['dataset']
347+
348+
# if we already have transcript abundance and we're adding genes,
349+
# copy the obs information there
350+
if how == 'gene' and self.has_abundance():
351+
self.adata.obs = reset_dupe_index(self.adata.obs, 'dataset')
352+
obs = obs.merge(self.adata.obs, how='left', on='dataset')
353+
obs.drop('dataset_back', axis=1, inplace=True)
354+
self.adata.obs = set_dupe_index(self.adata.obs, 'dataset')
355+
344356
obs.index.name = 'dataset'
357+
358+
# X
345359
X = sparse.csr_matrix(df.to_numpy())
346360

361+
347362
# create transcript-level adata object and filter out unexpressed transcripts
348363
adata = anndata.AnnData(var=var, obs=obs, X=X)
349364
genes, _ = sc.pp.filter_genes(adata, min_counts=1, inplace=False)

0 commit comments

Comments
 (0)