STOmics / Stereopy

A toolkit of spatial transcriptomic analysis.
MIT License
184 stars 64 forks source link

ms_data.integrate AttributeError: 'NoneType' object has no attribute 'shape' #196

Closed Sophia409 closed 9 months ago

Sophia409 commented 10 months ago

Dear author: Thank you for your contribution. I failed to run the pipline you provided in Time Series Analysis. Could you tell me how to solve it? My stereopy version is 0.14.0b1.

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

file_list = [
    '/data/stereoseq/AnnData_0.7.5/Embyro_E9.5.anndata075.h5ad',
    '/data/stereoseq/AnnData_0.7.5/Embyro_E10.5.anndata075.h5ad',
    '/data/stereoseq/AnnData_0.7.5/Embyro_E11.5.anndata075.h5ad'
]
# reading all slices
ms_data = MSData()
for f in file_list:
    ms_data += st.io.read_h5ad(f,bin_type='bins',bin_size=100)

ms_data.integrate()

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Cell In[27], line 1
----> 1 ms_data.integrate()

File ~/anaconda3/envs/scanpy/lib/python3.8/site-packages/stereo/core/ms_data.py:511, in MSData.integrate(self, reorganize_coordinate, **kwargs)
    509 if self._var_type not in {"union", "intersect"}:
    510     raise Exception("Please specify the operation on samples with the parameter '_var_type'")
--> 511 self.merged_data = merge(*self.data_list, var_type=self._var_type, reorganize_coordinate=reorganize_coordinate, **kwargs)
    512 obs_columns = self.merged_data.cells._obs.columns.tolist()
    513 obs_columns.remove('batch')

File ~/anaconda3/envs/scanpy/lib/python3.8/site-packages/stereo/utils/data_helper.py:207, in merge(reorganize_coordinate, horizontal_offset_additional, vertical_offset_additional, space_between, var_type, *data_list)
    205 new_data.position = data.position
    206 if data.position_z is None:
--> 207     new_data.position_z = np.repeat([[0]], repeats=data.position.shape[0], axis=0).astype(
    208         data.position.dtype)
    209 else:
    210     new_data.position_z = data.position_z

AttributeError: 'NoneType' object has no attribute 'shape'
tanliwei-coder commented 10 months ago

Sorry for replying so late!!

It looks like there is no spatial item in the obsm of those h5ad files, please to confirm it.