Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ov.single.cytotrace2 bug #115

Closed
qbly27 opened this issue Jul 24, 2024 · 1 comment
Closed

ov.single.cytotrace2 bug #115

qbly27 opened this issue Jul 24, 2024 · 1 comment

Comments

@qbly27
Copy link

qbly27 commented Jul 24, 2024

AttributeError: 'float' object has no attribute 'upper'

I have already found the error.

The code does not work. duplicate_genes = [i for i in duplicate_genes if i is not np.nan]

so the duplicate_genes has many nan. When NaN appears as a column name, its data type is a floating point number type.

Looking forward to you fixing this bug.

details are above


AttributeError Traceback (most recent call last)
Cell In[13], line 1
----> 1 results = ov.single.cytotrace2(adata,
2 use_model_dir="./cytotrace2/5_models_weights",
3 species="human",
4 batch_size = 10000,
5 smooth_batch_size = 1000,
6 disable_parallelization = False,
7 max_cores = None,
8 max_pcs = 200,
9 seed = 14,
10 output_dir = './'
11 )

File ~/miniconda3/envs/ov/lib/python3.11/site-packages/omicverse/single/_cytotrace2.py:207, in cytotrace2(adata, use_model_dir, species, batch_size, smooth_batch_size, disable_parallelization, max_cores, max_pcs, seed, output_dir)
201 results.append(executor.submit(process_subset, idx,
202 chunked_expression, smooth_batch_size,
203 smooth_cores_to_use, species,
204 use_model_dir, output_dir, max_pcs, seed))
206 for f in concurrent.futures.as_completed(results):
--> 207 smooth_by_knn_df = f.result()
208 predictions.append(smooth_by_knn_df)
212 for idx in range(chunk_number):

File ~/miniconda3/envs/ov/lib/python3.11/concurrent/futures/_base.py:449, in Future.result(self, timeout)
447 raise CancelledError()
448 elif self._state == FINISHED:
--> 449 return self.__get_result()
451 self._condition.wait(timeout)
453 if self._state in [CANCELLED, CANCELLED_AND_NOTIFIED]:

File ~/miniconda3/envs/ov/lib/python3.11/concurrent/futures/_base.py:401, in Future.__get_result(self)
399 if self._exception:
400 try:
--> 401 raise self._exception
402 finally:
403 # Break a reference cycle with the exception in self._exception
404 self = None

File ~/miniconda3/envs/ov/lib/python3.11/concurrent/futures/thread.py:58, in _WorkItem.run(self)
55 return
57 try:
---> 58 result = self.fn(*self.args, **self.kwargs)
59 except BaseException as exc:
60 self.future.set_exception(exc)

File ~/miniconda3/envs/ov/lib/python3.11/site-packages/omicverse/single/_cytotrace2.py:21, in process_subset(idx, chunked_expression, smooth_batch_size, smooth_cores_to_use, species, use_model_dir, output_dir, max_pcs, seed)
17 def process_subset(idx, chunked_expression, smooth_batch_size, smooth_cores_to_use,
18 species, use_model_dir, output_dir, max_pcs, seed):
19
20 # map and rank
---> 21 cell_names, gene_names, ranked_data = preprocess(chunked_expression, species)
23 # top variable genes
24 top_col_inds = top_var_genes(ranked_data)

File ~/miniconda3/envs/ov/lib/python3.11/site-packages/omicverse/externel/cytotrace2/gen_utils.py:121, in preprocess(expression, species)
119 duplicate_genes = expression.columns[expression.columns.duplicated()].values
120 duplicate_genes = [i for i in duplicate_genes if i is not np.nan]
--> 121 idx = [unmapped_genes[i.upper()] for i in duplicate_genes if i.upper() in unmapped_genes.keys()]
122 expression = expression.iloc[:, [j for j, c in enumerate(expression.columns) if j not in idx]]
124 else:

File ~/miniconda3/envs/ov/lib/python3.11/site-packages/omicverse/externel/cytotrace2/gen_utils.py:121, in (.0)
119 duplicate_genes = expression.columns[expression.columns.duplicated()].values
120 duplicate_genes = [i for i in duplicate_genes if i is not np.nan]
--> 121 idx = [unmapped_genes[i.upper()] for i in duplicate_genes if i.upper() in unmapped_genes.keys()]
122 expression = expression.iloc[:, [j for j, c in enumerate(expression.columns) if j not in idx]]
124 else:

AttributeError: 'float' object has no attribute 'upper'

@Starlitnightly
Copy link
Owner

#116

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants