LieberInstitute / spatialLIBD

Code for the spatialLIBD R/Bioconductor package and shiny app
http://LieberInstitute.github.io/spatialLIBD/
82 stars 16 forks source link

upload multiple Visium samples to the spatialLIBD shiny app #76

Open cathalgking opened 5 months ago

cathalgking commented 5 months ago

Maybe this is already possible? But I have 6 10x Visium datasets that I would like to upload to 1 shiny app for data mining and sharing. If possible, would the best approach be to construct 1 master SPE consisting of the 6 Visium's OR 6 SPE's and somehow format them to work with spatialLIBD::run_app()

Side question -- is it possible to remove all of the YouTube links, Human brain example dataset etc info from the spatialLIBD::run_app() call? When I run it, I just want my data and no extra's ideally.

lcolladotor commented 5 months ago

Hi,

As you can see at apps like those at https://research.libd.org/spatialDLPFC/#interactive-websites, we do host 1 single app with data with a single SPE object that has multiple capture areas. We typically have a single SPE per project though, and I'm not sure from your question whether your 6 Visium capture areas are related or not.

As for the question on how to document your app, check the default values for docs_path at https://research.libd.org/spatialLIBD/reference/run_app.html and see how we edited at https://github.com/LieberInstitute/spatialDLPFC/tree/main/code/deploy_app_k09/www and other projects. An example of this is also showcased at https://github.com/lmweber/BestPracticesST-resources/tree/main/spatialLIBD_demo/www and https://lmweber.org/BestPracticesST/chapters/workflow-Visium-spatialLIBD.html#sharing-your-website.

Best, Leo

cathalgking commented 5 months ago

Thanks for your reply @lcolladotor

My 6 Visium samples will be contained within their own seperate SPE objects so I have 6 SPE's in total. They are related in terms of treatment and control and are all human data but are all seperate Visium experiments.

I would like to have 1 SpatialLIBD shiny app containing all of my 6 samples so that I can choose which one to view with "sample to plot" dropdown.

lcolladotor commented 5 months ago

Hi @cathalgking,

In your situation, I would encourage you then to make a single SPE object with the data from the 6 samples. You might have to put object together manually instead of using cbind(). This will involve having the same colData() column names across the 6 samples, even if some columns are just NAs for 1 or more samples (aka present in at least just 1 sample). The assayNames() and reducedDimNames() will also have to be the same ones, but that in theory should be straightforward to do. It doesn't matter to spatialLIBD that say the logcounts assay for sample 1 was computed differently than the logcounts assay for sample 2.

In other words, spatialLIBD::run_app() does not support an input list() of SPE objects, only 1 SPE object.

If the data was public, I could help you put together the code prior to running cbind(). In the absence of it, you could makeup 2 example SPE objects and we can go from there.

Best, Leo