-
Notifications
You must be signed in to change notification settings - Fork 23
Description
Dear developer team of GraphST,
Thank you so much for developing this great tool!
I was exploring how to use GraphST for analyzing multiple slices with vertical integration.
However, the steps in the tutorial and some additional posts here were a bit confusing to me and hope to get some advice on whether I'm using the tool correctly or not.
If I understand correctly, to integratively analyze multiple slices, the slices can first be aligned (such as using PASTE). (such as in #14 )
Then GraphST can be run to learn & identify spatial cell clusters utilizing the aligned spatial information.
The confusing point is whether or not GraphST takes 3-dimensional information into consideration or not, and how it should be specified.
- According to this post take 3D spots position into account #32 , "3D information" is taken into consideration when training the model.
- That is, if I understand correctly, x, y, z-coordinates are considered.
- However, the output from
PASTEis just an aligned set of x & y-coordinates (without z-axis coordinates).- In addition, the example in the tutorial (tutorial 5) does not include z-coordinates either. (The .h5ad file only has x&y-coordinates in the
adata.obsm['spatial']).
- In addition, the example in the tutorial (tutorial 5) does not include z-coordinates either. (The .h5ad file only has x&y-coordinates in the
[1]
From the code in the GraphST.py script, it appears that the model is trained on the spatial information (coordinates) stored in the adata.obsm['spatial'].
So does that mean that if adata.obsm['spatial'] is a 2-column array (with only x- and y-coordinates), then it is trained on the 2D information, and if adata.obsm['spatial'] is a 3-column array (with all x-, y-, and z-coordinates), then it is possible that it learns the 3D information as well?
This is quite important especially when analyzing multiple slices with significant heterogeneity among the slices (such as different sections of an organ because the central slices can be quite different from those on the margins - i.e. considering only 2D information or 3D information may lead to striking differences).
I think It is also important to clarify this in order to understand the potential limitations of the current tool, if 3D information is actually not taken into consideration by default.
[2]
The tutorial mentioned that the slice information is stored in adata.obs['data'] (with values like S1, S2, ...).
If 3D information can be taken into consideration during the training step, is it specified through setting the values in this adata.obs['data'] column?
As in the example in [1], in the cases where the order of the slices is important, can this be addressed in the design of the current version of GraphST or is it implicitly learned during the training process (such as because the order among slices can be specified through the z-coordinates)?
Sorry for a long post here, but I believe this is extremely important in correctly interpreting the results from GraphST when analyzing multiple slices.
Thank you for your advice in advance!
Best regards,
Jason Leong.