Git Product home page Git Product logo

Comments (8)

HelenaLC avatar HelenaLC commented on July 18, 2024 1

Yes. I can see how the term "interactions" might be misleading here. plotInteractions does not per se inspect cell-cell interaction in terms of physical (Euclidean) distances. But simply "how subpopulation proportions cooccur within spots".

I think the motivation of the name might stem from the fact that in Visium, each spot capture a couple cells already. The spots are then separated by some center-center distance. So it's hard (perhaps biologically not possible?) to capture cell-cell interaction/communication in the classical sense, because we do not have single cells. Hence, checking which subpopulations are captured by the same spot is a proxy of "interaction".

(All that is just my interpretation, but maybe Marc had something else in mind when he implemented this back then ;)

Also to note that, in newer higher-resolution spot-based such as STEREO-seq and HDST, "classical" cell-cell interaction that incorporates expression, cellular distances, and ligand-receptor pairs etc. might be applicable (especially when sub-cellular spots can be segmented). But for Visium, I am not that sure.

from spotlight.

HelenaLC avatar HelenaLC commented on July 18, 2024
  • As with any ggplot, the data underlying the plot can be retrieved via gg <- plotInteractions(...); gg@data.
  • Functions proceeded by a . are internals only / not exported. You can view their code here or from R via ::: (e.g., SPOTLIGHT:::.count_interactions).

from spotlight.

cf98 avatar cf98 commented on July 18, 2024
  • As with any ggplot, the data underlying the plot can be retrieved via gg <- plotInteractions(...); gg@data.
  • Functions proceeded by a . are internals only / not exported. You can view their code here or from R via ::: (e.g., SPOTLIGHT:::.count_interactions).

Hi Helena,

Can I ask a question based on this?
It seems that the interaction calculation is not based on spatial distance information, but just the cell type composition of each spot, correct?

Thanks!

from spotlight.

MarcElosua avatar MarcElosua commented on July 18, 2024

I agree with Helena that the function's name is misleading, apologies for that. I will update the description of the function in the updated version!

Helena is spot on with her explanation. Ultimately, this function checks how many times each cell type is co-localized with another using the proportion of co-localizing or the Jaccard index.

A useful tool to carry out Spatially aware Ligand-Receptor analysis is CellChat. Be aware of the assumptions of it makes, but it is a very good starting point.

from spotlight.

cf98 avatar cf98 commented on July 18, 2024

Yes. I can see how the term "interactions" might be misleading here. plotInteractions does not per se inspect cell-cell interaction in terms of physical (Euclidean) distances. But simply "how subpopulation proportions cooccur within spots".

I think the motivation of the name might stem from the fact that in Visium, each spot capture a couple cells already. The spots are then separated by some center-center distance. So it's hard (perhaps biologically not possible?) to capture cell-cell interaction/communication in the classical sense, because we do not have single cells. Hence, checking which subpopulations are captured by the same spot is a proxy of "interaction".

(All that is just my interpretation, but maybe Marc had something else in mind when he implemented this back then ;)

Also to note that, in newer higher-resolution spot-based such as STEREO-seq and HDST, "classical" cell-cell interaction that incorporates expression, cellular distances, and ligand-receptor pairs etc. might be applicable (especially when sub-cellular spots can be segmented). But for Visium, I am not that sure.

Thank you Helena!

from spotlight.

cf98 avatar cf98 commented on July 18, 2024

I agree with Helena that the function's name is misleading, apologies for that. I will update the description of the function in the updated version!

Helena is spot on with her explanation. Ultimately, this function checks how many times each cell type is co-localized with another using the proportion of co-localizing or the Jaccard index.

A useful tool to carry out Spatially aware Ligand-Receptor analysis is CellChat. Be aware of the assumptions of it makes, but it is a very good starting point.

Thank you! I think co-localization is also very helpful. Can I ask a follow-up question?
I thought about using this function to visualize deconvolution results from multiple tools, but it seems many other tools won't give absolute 0 values to a specific cell type fraction, but very small values (it seems Spotlight is not this case?), that way using this function might not be appropriate. Would it allow us to set min_frac to different values, or is 0 the most optimal for Spotlight output?

Thanks!

from spotlight.

MarcElosua avatar MarcElosua commented on July 18, 2024

Hi @cf98

In SPOTlight I usually use a threshold that if a cell type is predicted to contribute less than 3% to a spot it is fitting noise. Maybe you can do something similar. Something else that you can use is to measure the proportionality between them using the propr package.

from spotlight.

cf98 avatar cf98 commented on July 18, 2024

Thank you! Just realized it's an option. I will check out the propr package.

from spotlight.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.