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

AttributeError: 'Ingest' object has no attribute '_pca_use_hvg' #3074

Closed
2 of 3 tasks
siebrenf opened this issue May 22, 2024 · 0 comments · Fixed by #3079 · May be fixed by #3075
Closed
2 of 3 tasks

AttributeError: 'Ingest' object has no attribute '_pca_use_hvg' #3074

siebrenf opened this issue May 22, 2024 · 0 comments · Fixed by #3079 · May be fixed by #3075
Assignees
Labels
Milestone

Comments

@siebrenf
Copy link

Please make sure these conditions are met

  • I have checked that this issue has not already been reported.
  • I have confirmed this bug exists on the latest version of scanpy.
  • (optional) I have confirmed this bug exists on the main branch of scanpy.

What happened?

Attempted label transfer using ingest, using the example code on the docs page

The fix is trivial (you must run sc.pp.pca(adata_ref) as well), but the error message is cryptic so I got stuck for a bit! I'll create the PR too.

Minimal code sample

import scanpy as sc
import pandas as pd

sc.settings.verbosity = 1  # verbosity: errors (0), warnings (1), info (2), hints (3)
sc.logging.print_versions()
sc.settings.set_figure_params(dpi=80, frameon=False, figsize=(3, 3), facecolor="white")

adata_ref = sc.datasets.pbmc3k_processed()
adata = sc.datasets.pbmc68k_reduced()

var_names = adata_ref.var_names.intersection(adata.var_names)
adata_ref = adata_ref[:, var_names]
adata = adata[:, var_names]

# start from scratch
del adata.obs["louvain"]
adata.uns = {}
adata_ref.uns = {}

# example code for ingest function:
sc.pp.neighbors(adata_ref)
sc.tl.umap(adata_ref)
sc.tl.ingest(adata, adata_ref, obs="louvain")

Error output

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Cell In[11], line 23
     21 sc.pp.neighbors(adata_ref)
     22 sc.tl.umap(adata_ref)
---> 23 sc.tl.ingest(adata, adata_ref, obs="louvain")

File ~/miniconda3/envs/sc/lib/python3.12/site-packages/legacy_api_wrap/__init__.py:80, in legacy_api.<locals>.wrapper.<locals>.fn_compatible(*args_all, **kw)
     77 @wraps(fn)
     78 def fn_compatible(*args_all: P.args, **kw: P.kwargs) -> R:
     79     if len(args_all) <= n_positional:
---> 80         return fn(*args_all, **kw)
     82     args_pos: P.args
     83     args_pos, args_rest = args_all[:n_positional], args_all[n_positional:]

File ~/miniconda3/envs/sc/lib/python3.12/site-packages/scanpy/tools/_ingest.py:141, in ingest(adata, adata_ref, obs, embedding_method, labeling_method, neighbors_key, inplace, **kwargs)
    138     labeling_method = labeling_method * len(obs)
    140 ing = Ingest(adata_ref, neighbors_key)
--> 141 ing.fit(adata)
    143 for method in embedding_method:
    144     ing.map_embedding(method)

File ~/miniconda3/envs/sc/lib/python3.12/site-packages/scanpy/tools/_ingest.py:404, in Ingest.fit(self, adata_new)
    401 self._obsm = _DimDict(adata_new.n_obs, axis=0)
    403 self._adata_new = adata_new
--> 404 self._obsm["rep"] = self._same_rep()

File ~/miniconda3/envs/sc/lib/python3.12/site-packages/scanpy/tools/_ingest.py:371, in Ingest._same_rep(self)
    369 adata = self._adata_new
    370 if self._n_pcs is not None:
--> 371     return self._pca(self._n_pcs)
    372 if self._use_rep == "X":
    373     return adata.X

File ~/miniconda3/envs/sc/lib/python3.12/site-packages/scanpy/tools/_ingest.py:361, in Ingest._pca(self, n_pcs)
    359 X = self._adata_new.X
    360 X = X.toarray() if issparse(X) else X.copy()
--> 361 if self._pca_use_hvg:
    362     X = X[:, self._adata_ref.var["highly_variable"]]
    363 if self._pca_centered:

AttributeError: 'Ingest' object has no attribute '_pca_use_hvg'

Versions

-----
anndata     0.10.7
scanpy      1.10.1
-----
PIL                         10.3.0
anyio                       NA
arrow                       1.3.0
asttokens                   NA
attr                        23.2.0
attrs                       23.2.0
babel                       2.14.0
brotli                      1.1.0
certifi                     2024.02.02
cffi                        1.16.0
charset_normalizer          3.3.2
colorama                    0.4.6
comm                        0.2.2
cycler                      0.12.1
cython_runtime              NA
dateutil                    2.9.0
debugpy                     1.8.1
decorator                   5.1.1
defusedxml                  0.7.1
executing                   2.0.1
fastjsonschema              NA
fqdn                        NA
h5py                        3.11.0
idna                        3.7
igraph                      0.10.8
ipykernel                   6.29.3
ipywidgets                  8.1.2
isoduration                 NA
jedi                        0.19.1
jinja2                      3.1.3
joblib                      1.4.0
json5                       0.9.25
jsonpointer                 2.4
jsonschema                  4.21.1
jsonschema_specifications   NA
jupyter_events              0.10.0
jupyter_server              2.14.0
jupyterlab_server           2.27.0
kiwisolver                  1.4.5
legacy_api_wrap             NA
leidenalg                   0.10.2
llvmlite                    0.42.0
markupsafe                  2.1.5
matplotlib                  3.8.4
matplotlib_inline           0.1.7
mpl_toolkits                NA
natsort                     8.4.0
nbformat                    5.10.4
numba                       0.59.1
numpy                       1.26.4
overrides                   NA
packaging                   24.0
pandas                      1.5.3
parso                       0.8.4
pickleshare                 0.7.5
platformdirs                4.2.0
prometheus_client           NA
prompt_toolkit              3.0.42
psutil                      5.9.8
pure_eval                   0.2.2
pycparser                   2.22
pydev_ipython               NA
pydevconsole                NA
pydevd                      2.9.5
pydevd_file_utils           NA
pydevd_plugins              NA
pydevd_tracing              NA
pygments                    2.17.2
pynndescent                 0.5.12
pyparsing                   3.1.2
pythonjsonlogger            NA
pytz                        2024.1
referencing                 NA
requests                    2.31.0
rfc3339_validator           0.1.4
rfc3986_validator           0.1.1
rpds                        NA
scipy                       1.13.0
send2trash                  NA
session_info                1.0.0
six                         1.16.0
sklearn                     1.4.2
sniffio                     1.3.1
socks                       1.7.1
stack_data                  0.6.2
texttable                   1.7.0
threadpoolctl               3.4.0
tornado                     6.4
tqdm                        4.66.2
traitlets                   5.14.3
umap                        0.5.5
uri_template                NA
urllib3                     2.2.1
wcwidth                     0.2.13
webcolors                   1.13
websocket                   1.7.0
yaml                        6.0.1
zmq                         26.0.2
-----
IPython             8.22.2
jupyter_client      8.6.1
jupyter_core        5.7.2
jupyterlab          4.1.6
notebook            7.1.3
-----
Python 3.12.3 | packaged by conda-forge | (main, Apr 15 2024, 18:38:13) [GCC 12.3.0]
Linux-5.4.0-150-generic-x86_64-with-glibc2.27
-----
Session information updated at 2024-05-22 17:19


@siebrenf siebrenf added Bug 🐛 Triage 🩺 This issue needs to be triaged by a maintainer labels May 22, 2024
@ilan-gold ilan-gold added this to the 1.10.2 milestone May 29, 2024
@ilan-gold ilan-gold self-assigned this May 29, 2024
@flying-sheep flying-sheep removed the Triage 🩺 This issue needs to be triaged by a maintainer label Oct 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment