theislab / cellrank

CellRank: dynamics from multi-view single-cell data
https://cellrank.org
BSD 3-Clause "New" or "Revised" License
350 stars 46 forks source link

bone_marrow dataset is gone #1229

Closed hyjforesight closed 1 month ago

hyjforesight commented 1 month ago

Hello CellRank, Tuturial Getting Started with CellRank calls https://figshare.com/ndownloader/files/35826944 for downloading bone_marrow dataset. But the data is gone in figshare.

image

I found the data is in https://explore.data.humancellatlas.org/projects/091cf39b-01bc-42e5-9437-f419a66c8a45/project-matrices. Could you please let me know which one is the right one?

image

Thank you! Best, YJ

cr.datasets.bone_marrow()
HTTPError                                 Traceback (most recent call last)
File [~\anaconda3\envs\py310\lib\site-packages\scanpy\readwrite.py:999](http://localhost:8890/lab/tree/OneDrive/Python/PyTutorial/CellRank/v2/~/anaconda3/envs/py310/lib/site-packages/scanpy/readwrite.py#line=998), in _download(url, path)
    998 try:
--> 999     open_url = urlopen(req)
   1000 except URLError:

File [~\anaconda3\envs\py310\lib\urllib\request.py:216](http://localhost:8890/lab/tree/OneDrive/Python/PyTutorial/CellRank/v2/~/anaconda3/envs/py310/lib/urllib/request.py#line=215), in urlopen(url, data, timeout, cafile, capath, cadefault, context)
    215     opener = _opener
--> 216 return opener.open(url, data, timeout)

File [~\anaconda3\envs\py310\lib\urllib\request.py:525](http://localhost:8890/lab/tree/OneDrive/Python/PyTutorial/CellRank/v2/~/anaconda3/envs/py310/lib/urllib/request.py#line=524), in OpenerDirector.open(self, fullurl, data, timeout)
    524     meth = getattr(processor, meth_name)
--> 525     response = meth(req, response)
    527 return response

File [~\anaconda3\envs\py310\lib\urllib\request.py:634](http://localhost:8890/lab/tree/OneDrive/Python/PyTutorial/CellRank/v2/~/anaconda3/envs/py310/lib/urllib/request.py#line=633), in HTTPErrorProcessor.http_response(self, request, response)
    633 if not (200 <= code < 300):
--> 634     response = self.parent.error(
    635         'http', request, response, code, msg, hdrs)
    637 return response

File [~\anaconda3\envs\py310\lib\urllib\request.py:563](http://localhost:8890/lab/tree/OneDrive/Python/PyTutorial/CellRank/v2/~/anaconda3/envs/py310/lib/urllib/request.py#line=562), in OpenerDirector.error(self, proto, *args)
    562 args = (dict, 'default', 'http_error_default') + orig_args
--> 563 return self._call_chain(*args)

File [~\anaconda3\envs\py310\lib\urllib\request.py:496](http://localhost:8890/lab/tree/OneDrive/Python/PyTutorial/CellRank/v2/~/anaconda3/envs/py310/lib/urllib/request.py#line=495), in OpenerDirector._call_chain(self, chain, kind, meth_name, *args)
    495 func = getattr(handler, meth_name)
--> 496 result = func(*args)
    497 if result is not None:

File [~\anaconda3\envs\py310\lib\urllib\request.py:643](http://localhost:8890/lab/tree/OneDrive/Python/PyTutorial/CellRank/v2/~/anaconda3/envs/py310/lib/urllib/request.py#line=642), in HTTPDefaultErrorHandler.http_error_default(self, req, fp, code, msg, hdrs)
    642 def http_error_default(self, req, fp, code, msg, hdrs):
--> 643     raise HTTPError(req.full_url, code, msg, hdrs, fp)

HTTPError: HTTP Error 403: Forbidden

During handling of the above exception, another exception occurred:

HTTPError                                 Traceback (most recent call last)
Cell In[3], line 2
      1 # 1. load raw data
----> 2 adata = cr.datasets.bone_marrow()
      3 adata

File [~\anaconda3\envs\py310\lib\site-packages\cellrank\datasets.py:292](http://localhost:8890/lab/tree/OneDrive/Python/PyTutorial/CellRank/v2/~/anaconda3/envs/py310/lib/site-packages/cellrank/datasets.py#line=291), in bone_marrow(path, **kwargs)
    271 @d.dedent
    272 def bone_marrow(
    273     path: Union[str, pathlib.Path] = "datasets/bone_marrow.h5ad",
    274     **kwargs: Any,
    275 ) -> AnnData:  # pragma: no cover
    276     """sc-RNA-seq dataset early human hematopoiesis (CD34+ bone marrow cells) assayed using 10X Chromium.
    277 
    278     This dataset contains raw spliced and unspliced counts estimated using *velocyto* :cite:`manno:18`.
   (...)
    290     Annotated data object.
    291     """
--> 292     return _load_dataset_from_url(path, *_datasets["bone_marrow"], **kwargs)

File [~\anaconda3\envs\py310\lib\site-packages\cellrank\datasets.py:67](http://localhost:8890/lab/tree/OneDrive/Python/PyTutorial/CellRank/v2/~/anaconda3/envs/py310/lib/site-packages/cellrank/datasets.py#line=66), in _load_dataset_from_url(fpath, url, expected_shape, **kwargs)
     64 kwargs.setdefault("sparse", True)
     65 kwargs.setdefault("cache", True)
---> 67 adata = read(fpath, backup_url=url, **kwargs)
     69 if adata.shape != expected_shape:
     70     raise ValueError(f"Expected `anndata.AnnData` object to have shape `{expected_shape}`, found `{adata.shape}`.")

File [~\anaconda3\envs\py310\lib\site-packages\legacy_api_wrap\__init__.py:80](http://localhost:8890/lab/tree/OneDrive/Python/PyTutorial/CellRank/v2/~/anaconda3/envs/py310/lib/site-packages/legacy_api_wrap/__init__.py#line=79), 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 [~\anaconda3\envs\py310\lib\site-packages\scanpy\readwrite.py:129](http://localhost:8890/lab/tree/OneDrive/Python/PyTutorial/CellRank/v2/~/anaconda3/envs/py310/lib/site-packages/scanpy/readwrite.py#line=128), in read(filename, backed, sheet, ext, delimiter, first_column_names, backup_url, cache, cache_compression, **kwargs)
    127 filename = Path(filename)  # allow passing strings
    128 if is_valid_filename(filename):
--> 129     return _read(
    130         filename,
    131         backed=backed,
    132         sheet=sheet,
    133         ext=ext,
    134         delimiter=delimiter,
    135         first_column_names=first_column_names,
    136         backup_url=backup_url,
    137         cache=cache,
    138         cache_compression=cache_compression,
    139         **kwargs,
    140     )
    141 # generate filename and read to dict
    142 filekey = str(filename)

File [~\anaconda3\envs\py310\lib\site-packages\scanpy\readwrite.py:758](http://localhost:8890/lab/tree/OneDrive/Python/PyTutorial/CellRank/v2/~/anaconda3/envs/py310/lib/site-packages/scanpy/readwrite.py#line=757), in _read(filename, backed, sheet, ext, delimiter, first_column_names, backup_url, cache, cache_compression, suppress_cache_warning, **kwargs)
    756 else:
    757     ext = is_valid_filename(filename, return_ext=True)
--> 758 is_present = _check_datafile_present_and_download(filename, backup_url=backup_url)
    759 if not is_present:
    760     logg.debug(f"... did not find original file {filename}")

File [~\anaconda3\envs\py310\lib\site-packages\scanpy\readwrite.py:1052](http://localhost:8890/lab/tree/OneDrive/Python/PyTutorial/CellRank/v2/~/anaconda3/envs/py310/lib/site-packages/scanpy/readwrite.py#line=1051), in _check_datafile_present_and_download(path, backup_url)
   1049     logg.info(f"creating directory {path.parent}/ for saving data")
   1050     path.parent.mkdir(parents=True)
-> 1052 _download(backup_url, path)
   1053 return True

File [~\anaconda3\envs\py310\lib\site-packages\scanpy\readwrite.py:1009](http://localhost:8890/lab/tree/OneDrive/Python/PyTutorial/CellRank/v2/~/anaconda3/envs/py310/lib/site-packages/scanpy/readwrite.py#line=1008), in _download(url, path)
   1005     from ssl import create_default_context
   1007     from certifi import where
-> 1009     open_url = urlopen(req, context=create_default_context(cafile=where()))
   1011 with open_url as resp:
   1012     total = resp.info().get("content-length", None)

File [~\anaconda3\envs\py310\lib\urllib\request.py:216](http://localhost:8890/lab/tree/OneDrive/Python/PyTutorial/CellRank/v2/~/anaconda3/envs/py310/lib/urllib/request.py#line=215), in urlopen(url, data, timeout, cafile, capath, cadefault, context)
    214 else:
    215     opener = _opener
--> 216 return opener.open(url, data, timeout)

File [~\anaconda3\envs\py310\lib\urllib\request.py:525](http://localhost:8890/lab/tree/OneDrive/Python/PyTutorial/CellRank/v2/~/anaconda3/envs/py310/lib/urllib/request.py#line=524), in OpenerDirector.open(self, fullurl, data, timeout)
    523 for processor in self.process_response.get(protocol, []):
    524     meth = getattr(processor, meth_name)
--> 525     response = meth(req, response)
    527 return response

File [~\anaconda3\envs\py310\lib\urllib\request.py:634](http://localhost:8890/lab/tree/OneDrive/Python/PyTutorial/CellRank/v2/~/anaconda3/envs/py310/lib/urllib/request.py#line=633), in HTTPErrorProcessor.http_response(self, request, response)
    631 # According to RFC 2616, "2xx" code indicates that the client's
    632 # request was successfully received, understood, and accepted.
    633 if not (200 <= code < 300):
--> 634     response = self.parent.error(
    635         'http', request, response, code, msg, hdrs)
    637 return response

File [~\anaconda3\envs\py310\lib\urllib\request.py:563](http://localhost:8890/lab/tree/OneDrive/Python/PyTutorial/CellRank/v2/~/anaconda3/envs/py310/lib/urllib/request.py#line=562), in OpenerDirector.error(self, proto, *args)
    561 if http_err:
    562     args = (dict, 'default', 'http_error_default') + orig_args
--> 563     return self._call_chain(*args)

File [~\anaconda3\envs\py310\lib\urllib\request.py:496](http://localhost:8890/lab/tree/OneDrive/Python/PyTutorial/CellRank/v2/~/anaconda3/envs/py310/lib/urllib/request.py#line=495), in OpenerDirector._call_chain(self, chain, kind, meth_name, *args)
    494 for handler in handlers:
    495     func = getattr(handler, meth_name)
--> 496     result = func(*args)
    497     if result is not None:
    498         return result

File [~\anaconda3\envs\py310\lib\urllib\request.py:643](http://localhost:8890/lab/tree/OneDrive/Python/PyTutorial/CellRank/v2/~/anaconda3/envs/py310/lib/urllib/request.py#line=642), in HTTPDefaultErrorHandler.http_error_default(self, req, fp, code, msg, hdrs)
    642 def http_error_default(self, req, fp, code, msg, hdrs):
--> 643     raise HTTPError(req.full_url, code, msg, hdrs, fp)

HTTPError: HTTP Error 403: Forbidden

Versions:

scanpy==1.10.2 anndata==0.10.9 umap==0.5.6 numpy==1.26.4 scipy==1.11.4 pandas==2.2.2 scikit-learn==1.5.2 statsmodels==0.14.3 igraph==0.11.6 pynndescent==0.5.13 cellrank==2.0.6 scanpy==1.10.2 anndata==0.10.9 numpy==1.26.4 numba==0.60.0 scipy==1.11.4 pandas==2.2.2 pygpcca==1.0.4 scikit-learn==1.5.2 statsmodels==0.14.3 python-igraph==0.11.6 scvelo==0.3.2 pygam==0.9.1 matplotlib==3.9.2 seaborn==0.13.2

hyjforesight commented 1 month ago

Please disregard this issue. It's the problem of network. I switch to Singapore. Solved.