scverse / scverse/spatialdata-plot

3D visualize

Open
#385 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
86
Forks
21
Avg merge
14h 50m
Merged PRs (30d)
3

Description

Hi developer.

Thanks alot for the useful tools and sorry for keep bothering.

I need a 3D visualiza on my xenium dataset. Now I can correctly load my xenium data and check the transcripts point on 2D shape.
I'm wondering if there is any plan to add the 3D visualize feature.

I also try to subset my sdata["transcripts"] based on the z value. however, after subset, I try to construct the sdata, it's not working. and showed error code. ValueError('Unable to coerce to Series, length must be 11: given 2')

Please also let me know if you have better recommendation on 3D visualization of xenium data.


ValueError Traceback (most recent call last)
d:\Yifan_Wang\Software\envs\SP\lib\site-packages\dask\dataframe\utils.py in ?(funcname, udf)
214 )
215 msg = msg.format(f" in {funcname}" if funcname else "", repr(e), tb)
--> 216 raise ValueError(msg) from e

d:\Yifan_Wang\Software\envs\SP\lib\site-packages\dask\dataframe\core.py in ?(op, meta, out, transform_divisions, *args, **kwargs)
6624 for d in dasks
6625 ]
-> 6626 with raise_on_meta_error(funcname(op)):
6627 meta = partial_by_order(*parts, function=op, other=other)

d:\Yifan_Wang\Software\envs\SP\lib\site-packages\dask\utils.py in ?(*args, **kwargs)
1474 for i, arg in other:
1475 args2.insert(i, arg)
-> 1476 return function(*args2, **kwargs)

d:\Yifan_Wang\Software\envs\SP\lib\site-packages\pandas\core\ops\common.py in ?(self, other)
74 other = item_from_zerodim(other)
75
---> 76 return method(self, other)

d:\Yifan_Wang\Software\envs\SP\lib\site-packages\pandas\core\arraylike.py in ?(self, other)
80 @unpack_zerodim_and_defer("ror")
81 def ror(self, other):
---> 82 return self.logical_method(other, roperator.ror)

d:\Yifan_Wang\Software\envs\SP\lib\site-packages\pandas\core\frame.py in ?(self, other, op)
7908 other = ops.maybe_prepare_scalar_for_op(other, (self.shape[axis],))
7909
-> 7910 self, other = self._align_for_op(other, axis, flex=True, level=None)
7911

d:\Yifan_Wang\Software\envs\SP\lib\site-packages\pandas\core\frame.py in ?(self, other, axis, flex, level)
8185 )
8186 # GH#17901
-> 8187 right = to_series(right)
8188

d:\Yifan_Wang\Software\envs\SP\lib\site-packages\pandas\core\frame.py in ?(right)
8131 else:
8132 if len(left.columns) != len(right):
-> 8133 raise ValueError(
8134 msg.format(req_len=len(left.columns), given_len=len(right))

ValueError: Unable to coerce to Series, length must be 11: given 2

The above exception was the direct cause of the following exception:

ValueError Traceback (most recent call last)
Cell In[46], line 1
----> 1 merged_dict_crop = my_images | my_labels | filtered_data | my_shapes | my_tables
2 print(merged_dict.keys())

File d:\Yifan_Wang\Software\envs\SP\lib\site-packages\dask\dataframe\core.py:2124, in _Frame._get_binary_operator..(self, other)
2121 @classmethod
2122 def _get_binary_operator(cls, op, inv=False):
2123 if inv:
-> 2124 return lambda self, other: elemwise(op, other, self)
2125 else:
2126 return lambda self, other: elemwise(op, self, other)

File d:\Yifan_Wang\Software\envs\SP\lib\site-packages\dask\dataframe\core.py:6626, in elemwise(op, meta, out, transform_divisions, *args, **kwargs)
6617 # For broadcastable series, use no rows.
6618 parts = [
6619 d._meta
6620 if _is_broadcastable(d)
(...)
6624 for d in dasks
6625 ]
-> 6626 with raise_on_meta_error(funcname(op)):
6627 meta = partial_by_order(*parts, function=op, other=other)
6629 result = new_dd_object(graph, _name, meta, divisions)

File d:\Yifan_Wang\Software\envs\SP\lib\contextlib.py:153, in _GeneratorContextManager.exit(self, typ, value, traceback)
151 value = typ()
152 try:
--> 153 self.gen.throw(typ, value, traceback)
154 except StopIteration as exc:
155 # Suppress StopIteration unless it's the same exception that
156 # was passed to throw(). This prevents a StopIteration
157 # raised inside the "with" statement from being suppressed.
158 return exc is not value

File d:\Yifan_Wang\Software\envs\SP\lib\site-packages\dask\dataframe\utils.py:216, in raise_on_meta_error(funcname, udf)
207 msg += (
208 "Original error is below:\n"
209 "------------------------\n"
(...)
213 "{2}"
214 )
215 msg = msg.format(f" in {funcname}" if funcname else "", repr(e), tb)
--> 216 raise ValueError(msg) from e

ValueError: Metadata inference failed in or_.

Original error is below:

ValueError('Unable to coerce to Series, length must be 11: given 2')

Traceback:

File "d:\Yifan_Wang\Software\envs\SP\lib\site-packages\dask\dataframe\utils.py", line 195, in raise_on_meta_error
yield
File "d:\Yifan_Wang\Software\envs\SP\lib\site-packages\dask\dataframe\core.py", line 6627, in elemwise
meta = partial_by_order(*parts, function=op, other=other)
File "d:\Yifan_Wang\Software\envs\SP\lib\site-packages\dask\utils.py", line 1476, in partial_by_order
return function(*args2, **kwargs)
File "d:\Yifan_Wang\Software\envs\SP\lib\site-packages\pandas\core\ops\common.py", line 76, in new_method
return method(self, other)
File "d:\Yifan_Wang\Software\envs\SP\lib\site-packages\pandas\core\arraylike.py", line 82, in ror
return self.logical_method(other, roperator.ror)
File "d:\Yifan_Wang\Software\envs\SP\lib\site-packages\pandas\core\frame.py", line 7910, in _arith_method
self, other = self._align_for_op(other, axis, flex=True, level=None)
File "d:\Yifan_Wang\Software\envs\SP\lib\site-packages\pandas\core\frame.py", line 8187, in _align_for_op
right = to_series(right)
File "d:\Yifan_Wang\Software\envs\SP\lib\site-packages\pandas\core\frame.py", line 8133, in to_series
raise ValueError(

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the reported notebook operation that combines my_images, my_labels, filtered_data, my_shapes, and my_tables after subsetting sdata["transcripts"] by z. Read the existing 2D Xenium plotting entry points and inspect how transcript data is reconstructed; no source file or test is named in the issue. Done would require a defined 3D visualization path or a documented limitation, along with resolution or clearer isolation of the reported ValueError.

Written by the indexing model from the issue text.

Assessment

Tech stack
pandas, python
Domain
data-visualization
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.