STOmics / Stereopy

A toolkit of spatial transcriptomic analysis.
MIT License
179 stars 59 forks source link

Met typeError when following quick start(multi-sample) #299

Open Mr-grasscarp opened 2 weeks ago

Mr-grasscarp commented 2 weeks ago

After integration, I met the following error when I tried to conduct quality control. ms_data.tl.cal_qc(scope=slice_generator[:],mode='integrate') ms_data

TypeError Traceback (most recent call last) Cell In[42], line 1 ----> 1 ms_data.tl.cal_qc(scope=slice_generator[:],mode='integrate') 2 ms_data

File C:\ProgramData\anaconda3\envs\st\lib\site-packages\stereopy-1.3.0-py3.8.egg\stereo\core\ms_pipeline.py:266, in MSDataPipeLine.getattr..temp(*args, kwargs) 263 kwargs["mode"] = self.__mode 265 if kwargs["mode"] == "integrate": --> 266 return self._use_integrate_method(item, *args, *kwargs) 267 elif kwargs["mode"] == "isolated": 268 self._run_isolated_method(item, args, kwargs)

File C:\ProgramData\anaconda3\envs\st\lib\site-packages\stereopy-1.3.0-py3.8.egg\stereo\core\ms_pipeline.py:107, in MSDataPipeLine._use_integrate_method(self, item, *args, **kwargs) 104 ms_data_view = self.ms_data[scope] 106 scope_key = self.ms_data.generate_scope_key(ms_data_view._names) --> 107 self.ms_data.scopes_data[scope_key] = ms_data_view.merged_data 109 # def callback_func(key, value): 110 # # keyname = "scope[" + ",".join( 111 # # [str(self.ms_data._names.index(name)) for name in ms_data_view._names]) + "]" (...) 147 148 # ms_data_view._merged_data.tl.reset_key_record = reset_key_record 150 new_attr = self.class.BASE_CLASS.dict.get(item, None)

TypeError: unhashable type: 'list'

tanliwei-genomics-cn commented 2 weeks ago

Please show me all your codes.

Mr-grasscarp commented 1 week ago

import sys import os from natsort import natsorted import stereo as st from stereo.core.ms_data import MSData from stereo.core.ms_pipeline import slice_generator

import warnings warnings.filterwarnings('ignore')

data_dir = r'D:\devLr\bestsamples'

data_list=[] for fn in os.listdir(data_dir): data_list.append(os.path.join(data_dir, fn))

data_list = natsorted(data_list)

ms_data = MSData(_relationship='other', _var_type='intersect')

for sample in data_list: ms_data += st.io.read_gef(file_path=sample, bin_type='bins', bin_size=15)

ms_data.relationship='ts'

ms_data.integrate()

ms_data.tl.cal_qc(scope=slice_generator[:],mode='integrate')


TypeError Traceback (most recent call last) Cell In[6], line 1 ----> 1 ms_data.tl.cal_qc(scope=slice_generator[:],mode='integrate') 2 ms_data

File C:\ProgramData\anaconda3\envs\st\lib\site-packages\stereopy-1.3.0-py3.8.egg\stereo\core\ms_pipeline.py:266, in MSDataPipeLine.getattr..temp(*args, kwargs) 263 kwargs["mode"] = self.__mode 265 if kwargs["mode"] == "integrate": --> 266 return self._use_integrate_method(item, *args, *kwargs) 267 elif kwargs["mode"] == "isolated": 268 self._run_isolated_method(item, args, kwargs)

File C:\ProgramData\anaconda3\envs\st\lib\site-packages\stereopy-1.3.0-py3.8.egg\stereo\core\ms_pipeline.py:107, in MSDataPipeLine._use_integrate_method(self, item, *args, **kwargs) 104 ms_data_view = self.ms_data[scope] 106 scope_key = self.ms_data.generate_scope_key(ms_data_view._names) --> 107 self.ms_data.scopes_data[scope_key] = ms_data_view.merged_data 109 # def callback_func(key, value): 110 # # keyname = "scope[" + ",".join( 111 # # [str(self.ms_data._names.index(name)) for name in ms_data_view._names]) + "]" (...) 147 148 # ms_data_view._merged_data.tl.reset_key_record = reset_key_record 150 new_attr = self.class.BASE_CLASS.dict.get(item, None)

TypeError: unhashable type: 'list'

tanliwei-genomics-cn commented 1 week ago

I note that there is a line ms_data.relationship='ts' in your codes, it should raise an Exception beacuse the available values of relationship only include ['continuous', 'time_series', 'other'], but not in your codes, that is so weird, except for this line, your codes look no problem, I commented this line and tried the codes with my data, there were also no errors you met, I am so sorry for that I can not find the reason.

Mr-grasscarp commented 1 week ago

It's really strange, these codes can run normally in stereopy 1.2.0.

tanliwei-genomics-cn commented 6 days ago

You can try creating a new conda evironment from scratch and installing the latest stereopy(don't install any other sofwares) to see if you still meet this error.

Mr-grasscarp commented 4 days ago

I created a new conda environment with python 3.8.19 for stereopy1.3.1,and then I installed jupter notebook using conda install jupyter,but the notebook can't run properly.Traceback (most recent call last):   File "C:\ProgramData\anaconda3\envs\stereopy131\Scripts\jupyter-notebook-script.py", line 6, in <module>     from notebook.app import main   File "C:\ProgramData\anaconda3\envs\stereopy131\lib\site-packages\notebook\app.py", line 20, in <module>     from jupyterlab.commands import (  # type:ignore[import-untyped]   File "C:\ProgramData\anaconda3\envs\stereopy131\lib\site-packages\jupyterlab__init.py", line 8, in <module>     from .handlers.announcements import (   File "C:\ProgramData\anaconda3\envs\stereopy131\lib\site-packages\jupyterlab\handlers\announcements.py", line 15, in <module>     from jupyterlab_server.translation_utils import translator   File "C:\ProgramData\anaconda3\envs\stereopy131\lib\site-packages\jupyterlab_server__init__.py", line 6, in <module>     from .app import LabServerApp   File "C:\ProgramData\anaconda3\envs\stereopy131\lib\site-packages\jupyterlab_server\app.py", line 15, in <module>     from .handlers import LabConfig, add_handlers   File "C:\ProgramData\anaconda3\envs\stereopy131\lib\site-packages\jupyterlab_server\handlers.py", line 21, in <module>     from .listings_handler import ListingsHandler, fetch_listings   File "C:\ProgramData\anaconda3\envs\stereopy131\lib\site-packages\jupyterlab_server\listings_handler.py", line 10, in <module>     import requests   File "C:\ProgramData\anaconda3\envs\stereopy131\lib\site-packages\requests__init__.py", line 48, in <module>     from charset_normalizer import version__ as charset_normalizer_version   File "C:\ProgramData\anaconda3\envs\stereopy131\lib\site-packages\charset_normalizer__init.py", line 23, in <module>     from charset_normalizer.api import from_fp, from_path, from_bytes, normalize   File "C:\ProgramData\anaconda3\envs\stereopy131\lib\site-packages\charset_normalizer\api.py", line 10, in <module>     from charset_normalizer.md import mess_ratio AttributeError: partially initialized module 'charset_normalizer' has no attribute 'mdmypyc' (most likely due to a circular import)

------------------ 原始邮件 ------------------ 发件人: @.>; 发送时间: 2024年7月1日(星期一) 下午2:21 收件人: @.>; 抄送: @.>; @.>; 主题: Re: [STOmics/Stereopy] Met typeError when following quick start(multi-sample) (Issue #299)

You can try creating a new conda evironment from scratch and installing the latest stereopy(don't install any other sofwares) to see if you still meet this error.

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>