Latest commit

History

52 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Build StatusbioRxivPyPI - VersionLicense

SpatialDIVA - disentangling spatial transcriptomics and histopathology imaging data

This repository contains code for the SpatialDIVA method, associated preprocessing, and evaluations performed in the manuscript - "Multi-modal disentanglement of spatial transcriptomics and histopathology imaging".

If you use our work, please consider citing the preprint.

Table of Contents

Installation

The requirements can be installed via pip:

pip install SpatialDIVA

Alternatively, poetry can be used to install the package after cloning:

git clone https://github.com/hsmaan/SpatialDIVA.git
poetry install

We also recommend cloning the git repository to access the tutorials and preprocessing code.

Processed datasets

Valdeolivas et al. - colorectal cancer (https://www.nature.com/articles/s41698-023-00488-4)

This dataset can be downloaded from Figshare at https://figshare.com/s/e12b576b1b05cb1ab77d. After downloading, please move the data to the following directory:

mkdir spatialdiva/data
unzip valdeolivas_processed.zip
mv valdeolivas_processed spatialdiva/data

Zhou et al. - pancreatic ductal adenocarcinoma (https://www.nature.com/articles/s41588-022-01157-1)

Similar to the Valdeolivas et al. data, the data can be downloaded from Figshare https://figshare.com/s/1cd18b65fc0cd7079e41. After downloaded, the data can be moved to the appropriate directory:

unzip zhou_processed.zip
mv zhou_processed spatialdiva/data

Usage

The easiest way to get set up and use SpatialDIVA is the through the high-level API defined in spatialdiva/api.

For more full control, users can directly import the lightning module (LitSpatialDIVA) from spatialdiva/models/diva_spatial.py - a full tutorial on this is coming soon!

You'll need an anndata object where each observation is a spot from Visium or similar technologies, and .X quantifies the expression of different genes per spot. To use the model outlined in the manuscript, clusters or annotations for the histology data and spatial transcriptomics (ST) data will be needed and stored in the obs attribute of the anndata object. Sample information (i.e. batch) will also be stored in .obs and the spatial coordinates are stored in .obsm['spatial'].

We'll need to featurize the histopathology data, and the best way to do this is to use a histpathology foundation model and spot-aligned image patches, such that we obtain spot-aligned features for the histology modality. For using the UNI foundation model, code to do this is available in spatialdiva/preprocessing.

Once the data is preprocessed, the SpatialDIVA model can be used as follows:

importscanpyasscimportanndataasannfromapiimportStDIVA# Load the anndata objectadata=sc.read_h5ad("path/to/adata.h5ad") # Initialize the SpatialDIVA model stdiva=StDIVA(
counts_dim=30000, # We're assuming 30'000 genes are present in the datahist_dim=1024, # The number of features extracted from the histology data - e.g. via the UNI foundation modely1_dim=10, # The number of clusters/classes for the ST-labels y2_dim=100, # The dimensionality of the spatial covariate - the API will automatically infer this from the spatial coordinatesy3_dim=2, # The number of clusters/classes for the pathology labels d_dim=5# The number of batches/samples in the data
)
# Add the anndata object to the model for preprocessingstdiva.add_data(
adata=adata,
label_key_y1="Cell-type", # We're assuming the label in .obs for y1 is "Cell-type"label_key_y3="Pathologist Annotation", # We're assuming the label in .obs for y3 is "Pathologist Annotation"hist_col_key="UNI"# We're assuming the histology features are stored in columns starting with "UNI" in .obs
)
# Train the model - this will train using the default parameters and pytorch lightning stdiva.train(max_epochs=100)
# Extract embeddingszd_samples, zy1_samples, zy2_samples, zy3_samples, zx_samples=stdiva.get_embeddings(type="full") 

To see a full workup of this process, please see the tutorials below.

Tutorials

The following notebooks offer more in-depth tutorials on how to use the SpatialDIVA model for relevant analyses of histopathology and spatial transcriptomics data:

  1. Factor covariance analysis with SpatialDIVA - spatialdiva/tutorials/01_colorectal_cancer_spdiva_analysis.ipynb

  2. Conditional generation analysis with SpatialDIVA - Coming soon!

  3. Tumor annotation and subtyping with SpatialDIVA - Coming soon!

Preprocessing

The preprocessed data for Valdeolivas et al. (colorectal cancer) and Zhou et al. (pancreatic cancer) contains spot-aligned features for histopathology imaging extracted using the UNI foundation model (https://github.com/mahmoodlab/UNI).

Code for preprocessing in-house datasets in a similar manner, as well as environment and installation information is available in the spatialdiva/preprocessing directory.

Paper evaluation code

Coming soon!

Citation

Multi-Modal Disentanglement of Spatial Transcriptomics and Histopathology Imaging

Hassaan Maan, Zongliang Ji, Elliot Sicheri, Tiak Ju Tan, Alina Selega, Ricardo Gonzalez, Rahul G. Krishnan, Bo Wang, Kieran R. Campbell

bioRxiv 2025.02.19.638201; doi: https://doi.org/10.1101/2025.02.19.638201

About

Multi-modal disentanglement of spatial transcriptomics and histopathology imaging

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

52 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Build StatusbioRxivPyPI - VersionLicense

SpatialDIVA - disentangling spatial transcriptomics and histopathology imaging data

This repository contains code for the SpatialDIVA method, associated preprocessing, and evaluations performed in the manuscript - "Multi-modal disentanglement of spatial transcriptomics and histopathology imaging".

If you use our work, please consider citing the preprint.

Table of Contents

Installation

The requirements can be installed via pip:

pip install SpatialDIVA

Alternatively, poetry can be used to install the package after cloning:

git clone https://github.com/hsmaan/SpatialDIVA.git
poetry install

We also recommend cloning the git repository to access the tutorials and preprocessing code.

Processed datasets

Valdeolivas et al. - colorectal cancer (https://www.nature.com/articles/s41698-023-00488-4)

This dataset can be downloaded from Figshare at https://figshare.com/s/e12b576b1b05cb1ab77d. After downloading, please move the data to the following directory:

mkdir spatialdiva/data
unzip valdeolivas_processed.zip
mv valdeolivas_processed spatialdiva/data

Zhou et al. - pancreatic ductal adenocarcinoma (https://www.nature.com/articles/s41588-022-01157-1)

Similar to the Valdeolivas et al. data, the data can be downloaded from Figshare https://figshare.com/s/1cd18b65fc0cd7079e41. After downloaded, the data can be moved to the appropriate directory:

unzip zhou_processed.zip
mv zhou_processed spatialdiva/data

Usage

The easiest way to get set up and use SpatialDIVA is the through the high-level API defined in spatialdiva/api.

For more full control, users can directly import the lightning module (LitSpatialDIVA) from spatialdiva/models/diva_spatial.py - a full tutorial on this is coming soon!

You'll need an anndata object where each observation is a spot from Visium or similar technologies, and .X quantifies the expression of different genes per spot. To use the model outlined in the manuscript, clusters or annotations for the histology data and spatial transcriptomics (ST) data will be needed and stored in the obs attribute of the anndata object. Sample information (i.e. batch) will also be stored in .obs and the spatial coordinates are stored in .obsm['spatial'].

We'll need to featurize the histopathology data, and the best way to do this is to use a histpathology foundation model and spot-aligned image patches, such that we obtain spot-aligned features for the histology modality. For using the UNI foundation model, code to do this is available in spatialdiva/preprocessing.

Once the data is preprocessed, the SpatialDIVA model can be used as follows:

importscanpyasscimportanndataasannfromapiimportStDIVA# Load the anndata objectadata=sc.read_h5ad("path/to/adata.h5ad") # Initialize the SpatialDIVA model stdiva=StDIVA(
counts_dim=30000, # We're assuming 30'000 genes are present in the datahist_dim=1024, # The number of features extracted from the histology data - e.g. via the UNI foundation modely1_dim=10, # The number of clusters/classes for the ST-labels y2_dim=100, # The dimensionality of the spatial covariate - the API will automatically infer this from the spatial coordinatesy3_dim=2, # The number of clusters/classes for the pathology labels d_dim=5# The number of batches/samples in the data
)
# Add the anndata object to the model for preprocessingstdiva.add_data(
adata=adata,
label_key_y1="Cell-type", # We're assuming the label in .obs for y1 is "Cell-type"label_key_y3="Pathologist Annotation", # We're assuming the label in .obs for y3 is "Pathologist Annotation"hist_col_key="UNI"# We're assuming the histology features are stored in columns starting with "UNI" in .obs
)
# Train the model - this will train using the default parameters and pytorch lightning stdiva.train(max_epochs=100)
# Extract embeddingszd_samples, zy1_samples, zy2_samples, zy3_samples, zx_samples=stdiva.get_embeddings(type="full") 

To see a full workup of this process, please see the tutorials below.

Tutorials

The following notebooks offer more in-depth tutorials on how to use the SpatialDIVA model for relevant analyses of histopathology and spatial transcriptomics data:

  1. Factor covariance analysis with SpatialDIVA - spatialdiva/tutorials/01_colorectal_cancer_spdiva_analysis.ipynb

  2. Conditional generation analysis with SpatialDIVA - Coming soon!

  3. Tumor annotation and subtyping with SpatialDIVA - Coming soon!

Preprocessing

The preprocessed data for Valdeolivas et al. (colorectal cancer) and Zhou et al. (pancreatic cancer) contains spot-aligned features for histopathology imaging extracted using the UNI foundation model (https://github.com/mahmoodlab/UNI).

Code for preprocessing in-house datasets in a similar manner, as well as environment and installation information is available in the spatialdiva/preprocessing directory.

Paper evaluation code

Coming soon!

Citation

Multi-Modal Disentanglement of Spatial Transcriptomics and Histopathology Imaging

Hassaan Maan, Zongliang Ji, Elliot Sicheri, Tiak Ju Tan, Alina Selega, Ricardo Gonzalez, Rahul G. Krishnan, Bo Wang, Kieran R. Campbell

bioRxiv 2025.02.19.638201; doi: https://doi.org/10.1101/2025.02.19.638201

About

Multi-modal disentanglement of spatial transcriptomics and histopathology imaging

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

52 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Build StatusbioRxivPyPI - VersionLicense

SpatialDIVA - disentangling spatial transcriptomics and histopathology imaging data

This repository contains code for the SpatialDIVA method, associated preprocessing, and evaluations performed in the manuscript - "Multi-modal disentanglement of spatial transcriptomics and histopathology imaging".

If you use our work, please consider citing the preprint.

Table of Contents

Installation

The requirements can be installed via pip:

pip install SpatialDIVA

Alternatively, poetry can be used to install the package after cloning:

git clone https://github.com/hsmaan/SpatialDIVA.git
poetry install

We also recommend cloning the git repository to access the tutorials and preprocessing code.

Processed datasets

Valdeolivas et al. - colorectal cancer (https://www.nature.com/articles/s41698-023-00488-4)

This dataset can be downloaded from Figshare at https://figshare.com/s/e12b576b1b05cb1ab77d. After downloading, please move the data to the following directory:

mkdir spatialdiva/data
unzip valdeolivas_processed.zip
mv valdeolivas_processed spatialdiva/data

Zhou et al. - pancreatic ductal adenocarcinoma (https://www.nature.com/articles/s41588-022-01157-1)

Similar to the Valdeolivas et al. data, the data can be downloaded from Figshare https://figshare.com/s/1cd18b65fc0cd7079e41. After downloaded, the data can be moved to the appropriate directory:

unzip zhou_processed.zip
mv zhou_processed spatialdiva/data

Usage

The easiest way to get set up and use SpatialDIVA is the through the high-level API defined in spatialdiva/api.

For more full control, users can directly import the lightning module (LitSpatialDIVA) from spatialdiva/models/diva_spatial.py - a full tutorial on this is coming soon!

You'll need an anndata object where each observation is a spot from Visium or similar technologies, and .X quantifies the expression of different genes per spot. To use the model outlined in the manuscript, clusters or annotations for the histology data and spatial transcriptomics (ST) data will be needed and stored in the obs attribute of the anndata object. Sample information (i.e. batch) will also be stored in .obs and the spatial coordinates are stored in .obsm['spatial'].

We'll need to featurize the histopathology data, and the best way to do this is to use a histpathology foundation model and spot-aligned image patches, such that we obtain spot-aligned features for the histology modality. For using the UNI foundation model, code to do this is available in spatialdiva/preprocessing.

Once the data is preprocessed, the SpatialDIVA model can be used as follows:

importscanpyasscimportanndataasannfromapiimportStDIVA# Load the anndata objectadata=sc.read_h5ad("path/to/adata.h5ad") # Initialize the SpatialDIVA model stdiva=StDIVA(
counts_dim=30000, # We're assuming 30'000 genes are present in the datahist_dim=1024, # The number of features extracted from the histology data - e.g. via the UNI foundation modely1_dim=10, # The number of clusters/classes for the ST-labels y2_dim=100, # The dimensionality of the spatial covariate - the API will automatically infer this from the spatial coordinatesy3_dim=2, # The number of clusters/classes for the pathology labels d_dim=5# The number of batches/samples in the data
)
# Add the anndata object to the model for preprocessingstdiva.add_data(
adata=adata,
label_key_y1="Cell-type", # We're assuming the label in .obs for y1 is "Cell-type"label_key_y3="Pathologist Annotation", # We're assuming the label in .obs for y3 is "Pathologist Annotation"hist_col_key="UNI"# We're assuming the histology features are stored in columns starting with "UNI" in .obs
)
# Train the model - this will train using the default parameters and pytorch lightning stdiva.train(max_epochs=100)
# Extract embeddingszd_samples, zy1_samples, zy2_samples, zy3_samples, zx_samples=stdiva.get_embeddings(type="full") 

To see a full workup of this process, please see the tutorials below.

Tutorials

The following notebooks offer more in-depth tutorials on how to use the SpatialDIVA model for relevant analyses of histopathology and spatial transcriptomics data:

  1. Factor covariance analysis with SpatialDIVA - spatialdiva/tutorials/01_colorectal_cancer_spdiva_analysis.ipynb

  2. Conditional generation analysis with SpatialDIVA - Coming soon!

  3. Tumor annotation and subtyping with SpatialDIVA - Coming soon!

Preprocessing

The preprocessed data for Valdeolivas et al. (colorectal cancer) and Zhou et al. (pancreatic cancer) contains spot-aligned features for histopathology imaging extracted using the UNI foundation model (https://github.com/mahmoodlab/UNI).

Code for preprocessing in-house datasets in a similar manner, as well as environment and installation information is available in the spatialdiva/preprocessing directory.

Paper evaluation code

Coming soon!

Citation

Multi-Modal Disentanglement of Spatial Transcriptomics and Histopathology Imaging

Hassaan Maan, Zongliang Ji, Elliot Sicheri, Tiak Ju Tan, Alina Selega, Ricardo Gonzalez, Rahul G. Krishnan, Bo Wang, Kieran R. Campbell

bioRxiv 2025.02.19.638201; doi: https://doi.org/10.1101/2025.02.19.638201

About

Multi-modal disentanglement of spatial transcriptomics and histopathology imaging

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

52 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Build StatusbioRxivPyPI - VersionLicense

SpatialDIVA - disentangling spatial transcriptomics and histopathology imaging data

This repository contains code for the SpatialDIVA method, associated preprocessing, and evaluations performed in the manuscript - "Multi-modal disentanglement of spatial transcriptomics and histopathology imaging".

If you use our work, please consider citing the preprint.

Table of Contents

Installation

The requirements can be installed via pip:

pip install SpatialDIVA

Alternatively, poetry can be used to install the package after cloning:

git clone https://github.com/hsmaan/SpatialDIVA.git
poetry install

We also recommend cloning the git repository to access the tutorials and preprocessing code.

Processed datasets

Valdeolivas et al. - colorectal cancer (https://www.nature.com/articles/s41698-023-00488-4)

This dataset can be downloaded from Figshare at https://figshare.com/s/e12b576b1b05cb1ab77d. After downloading, please move the data to the following directory:

mkdir spatialdiva/data
unzip valdeolivas_processed.zip
mv valdeolivas_processed spatialdiva/data

Zhou et al. - pancreatic ductal adenocarcinoma (https://www.nature.com/articles/s41588-022-01157-1)

Similar to the Valdeolivas et al. data, the data can be downloaded from Figshare https://figshare.com/s/1cd18b65fc0cd7079e41. After downloaded, the data can be moved to the appropriate directory:

unzip zhou_processed.zip
mv zhou_processed spatialdiva/data

Usage

The easiest way to get set up and use SpatialDIVA is the through the high-level API defined in spatialdiva/api.

For more full control, users can directly import the lightning module (LitSpatialDIVA) from spatialdiva/models/diva_spatial.py - a full tutorial on this is coming soon!

You'll need an anndata object where each observation is a spot from Visium or similar technologies, and .X quantifies the expression of different genes per spot. To use the model outlined in the manuscript, clusters or annotations for the histology data and spatial transcriptomics (ST) data will be needed and stored in the obs attribute of the anndata object. Sample information (i.e. batch) will also be stored in .obs and the spatial coordinates are stored in .obsm['spatial'].

We'll need to featurize the histopathology data, and the best way to do this is to use a histpathology foundation model and spot-aligned image patches, such that we obtain spot-aligned features for the histology modality. For using the UNI foundation model, code to do this is available in spatialdiva/preprocessing.

Once the data is preprocessed, the SpatialDIVA model can be used as follows:

importscanpyasscimportanndataasannfromapiimportStDIVA# Load the anndata objectadata=sc.read_h5ad("path/to/adata.h5ad") # Initialize the SpatialDIVA model stdiva=StDIVA(
counts_dim=30000, # We're assuming 30'000 genes are present in the datahist_dim=1024, # The number of features extracted from the histology data - e.g. via the UNI foundation modely1_dim=10, # The number of clusters/classes for the ST-labels y2_dim=100, # The dimensionality of the spatial covariate - the API will automatically infer this from the spatial coordinatesy3_dim=2, # The number of clusters/classes for the pathology labels d_dim=5# The number of batches/samples in the data
)
# Add the anndata object to the model for preprocessingstdiva.add_data(
adata=adata,
label_key_y1="Cell-type", # We're assuming the label in .obs for y1 is "Cell-type"label_key_y3="Pathologist Annotation", # We're assuming the label in .obs for y3 is "Pathologist Annotation"hist_col_key="UNI"# We're assuming the histology features are stored in columns starting with "UNI" in .obs
)
# Train the model - this will train using the default parameters and pytorch lightning stdiva.train(max_epochs=100)
# Extract embeddingszd_samples, zy1_samples, zy2_samples, zy3_samples, zx_samples=stdiva.get_embeddings(type="full") 

To see a full workup of this process, please see the tutorials below.

Tutorials

The following notebooks offer more in-depth tutorials on how to use the SpatialDIVA model for relevant analyses of histopathology and spatial transcriptomics data:

  1. Factor covariance analysis with SpatialDIVA - spatialdiva/tutorials/01_colorectal_cancer_spdiva_analysis.ipynb

  2. Conditional generation analysis with SpatialDIVA - Coming soon!

  3. Tumor annotation and subtyping with SpatialDIVA - Coming soon!

Preprocessing

The preprocessed data for Valdeolivas et al. (colorectal cancer) and Zhou et al. (pancreatic cancer) contains spot-aligned features for histopathology imaging extracted using the UNI foundation model (https://github.com/mahmoodlab/UNI).

Code for preprocessing in-house datasets in a similar manner, as well as environment and installation information is available in the spatialdiva/preprocessing directory.

Paper evaluation code

Coming soon!

Citation

Multi-Modal Disentanglement of Spatial Transcriptomics and Histopathology Imaging

Hassaan Maan, Zongliang Ji, Elliot Sicheri, Tiak Ju Tan, Alina Selega, Ricardo Gonzalez, Rahul G. Krishnan, Bo Wang, Kieran R. Campbell

bioRxiv 2025.02.19.638201; doi: https://doi.org/10.1101/2025.02.19.638201

About

Multi-modal disentanglement of spatial transcriptomics and histopathology imaging

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

52 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Build StatusbioRxivPyPI - VersionLicense

SpatialDIVA - disentangling spatial transcriptomics and histopathology imaging data

This repository contains code for the SpatialDIVA method, associated preprocessing, and evaluations performed in the manuscript - "Multi-modal disentanglement of spatial transcriptomics and histopathology imaging".

If you use our work, please consider citing the preprint.

Table of Contents

Installation

The requirements can be installed via pip:

pip install SpatialDIVA

Alternatively, poetry can be used to install the package after cloning:

git clone https://github.com/hsmaan/SpatialDIVA.git
poetry install

We also recommend cloning the git repository to access the tutorials and preprocessing code.

Processed datasets

Valdeolivas et al. - colorectal cancer (https://www.nature.com/articles/s41698-023-00488-4)

This dataset can be downloaded from Figshare at https://figshare.com/s/e12b576b1b05cb1ab77d. After downloading, please move the data to the following directory:

mkdir spatialdiva/data
unzip valdeolivas_processed.zip
mv valdeolivas_processed spatialdiva/data

Zhou et al. - pancreatic ductal adenocarcinoma (https://www.nature.com/articles/s41588-022-01157-1)

Similar to the Valdeolivas et al. data, the data can be downloaded from Figshare https://figshare.com/s/1cd18b65fc0cd7079e41. After downloaded, the data can be moved to the appropriate directory:

unzip zhou_processed.zip
mv zhou_processed spatialdiva/data

Usage

The easiest way to get set up and use SpatialDIVA is the through the high-level API defined in spatialdiva/api.

For more full control, users can directly import the lightning module (LitSpatialDIVA) from spatialdiva/models/diva_spatial.py - a full tutorial on this is coming soon!

You'll need an anndata object where each observation is a spot from Visium or similar technologies, and .X quantifies the expression of different genes per spot. To use the model outlined in the manuscript, clusters or annotations for the histology data and spatial transcriptomics (ST) data will be needed and stored in the obs attribute of the anndata object. Sample information (i.e. batch) will also be stored in .obs and the spatial coordinates are stored in .obsm['spatial'].

We'll need to featurize the histopathology data, and the best way to do this is to use a histpathology foundation model and spot-aligned image patches, such that we obtain spot-aligned features for the histology modality. For using the UNI foundation model, code to do this is available in spatialdiva/preprocessing.

Once the data is preprocessed, the SpatialDIVA model can be used as follows:

importscanpyasscimportanndataasannfromapiimportStDIVA# Load the anndata objectadata=sc.read_h5ad("path/to/adata.h5ad") # Initialize the SpatialDIVA model stdiva=StDIVA(
counts_dim=30000, # We're assuming 30'000 genes are present in the datahist_dim=1024, # The number of features extracted from the histology data - e.g. via the UNI foundation modely1_dim=10, # The number of clusters/classes for the ST-labels y2_dim=100, # The dimensionality of the spatial covariate - the API will automatically infer this from the spatial coordinatesy3_dim=2, # The number of clusters/classes for the pathology labels d_dim=5# The number of batches/samples in the data
)
# Add the anndata object to the model for preprocessingstdiva.add_data(
adata=adata,
label_key_y1="Cell-type", # We're assuming the label in .obs for y1 is "Cell-type"label_key_y3="Pathologist Annotation", # We're assuming the label in .obs for y3 is "Pathologist Annotation"hist_col_key="UNI"# We're assuming the histology features are stored in columns starting with "UNI" in .obs
)
# Train the model - this will train using the default parameters and pytorch lightning stdiva.train(max_epochs=100)
# Extract embeddingszd_samples, zy1_samples, zy2_samples, zy3_samples, zx_samples=stdiva.get_embeddings(type="full") 

To see a full workup of this process, please see the tutorials below.

Tutorials

The following notebooks offer more in-depth tutorials on how to use the SpatialDIVA model for relevant analyses of histopathology and spatial transcriptomics data:

  1. Factor covariance analysis with SpatialDIVA - spatialdiva/tutorials/01_colorectal_cancer_spdiva_analysis.ipynb

  2. Conditional generation analysis with SpatialDIVA - Coming soon!

  3. Tumor annotation and subtyping with SpatialDIVA - Coming soon!

Preprocessing

The preprocessed data for Valdeolivas et al. (colorectal cancer) and Zhou et al. (pancreatic cancer) contains spot-aligned features for histopathology imaging extracted using the UNI foundation model (https://github.com/mahmoodlab/UNI).

Code for preprocessing in-house datasets in a similar manner, as well as environment and installation information is available in the spatialdiva/preprocessing directory.

Paper evaluation code

Coming soon!

Citation

Multi-Modal Disentanglement of Spatial Transcriptomics and Histopathology Imaging

Hassaan Maan, Zongliang Ji, Elliot Sicheri, Tiak Ju Tan, Alina Selega, Ricardo Gonzalez, Rahul G. Krishnan, Bo Wang, Kieran R. Campbell

bioRxiv 2025.02.19.638201; doi: https://doi.org/10.1101/2025.02.19.638201

About

Multi-modal disentanglement of spatial transcriptomics and histopathology imaging

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

52 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Build StatusbioRxivPyPI - VersionLicense

SpatialDIVA - disentangling spatial transcriptomics and histopathology imaging data

This repository contains code for the SpatialDIVA method, associated preprocessing, and evaluations performed in the manuscript - "Multi-modal disentanglement of spatial transcriptomics and histopathology imaging".

If you use our work, please consider citing the preprint.

Table of Contents

Installation

The requirements can be installed via pip:

pip install SpatialDIVA

Alternatively, poetry can be used to install the package after cloning:

git clone https://github.com/hsmaan/SpatialDIVA.git
poetry install

We also recommend cloning the git repository to access the tutorials and preprocessing code.

Processed datasets

Valdeolivas et al. - colorectal cancer (https://www.nature.com/articles/s41698-023-00488-4)

This dataset can be downloaded from Figshare at https://figshare.com/s/e12b576b1b05cb1ab77d. After downloading, please move the data to the following directory:

mkdir spatialdiva/data
unzip valdeolivas_processed.zip
mv valdeolivas_processed spatialdiva/data

Zhou et al. - pancreatic ductal adenocarcinoma (https://www.nature.com/articles/s41588-022-01157-1)

Similar to the Valdeolivas et al. data, the data can be downloaded from Figshare https://figshare.com/s/1cd18b65fc0cd7079e41. After downloaded, the data can be moved to the appropriate directory:

unzip zhou_processed.zip
mv zhou_processed spatialdiva/data

Usage

The easiest way to get set up and use SpatialDIVA is the through the high-level API defined in spatialdiva/api.

For more full control, users can directly import the lightning module (LitSpatialDIVA) from spatialdiva/models/diva_spatial.py - a full tutorial on this is coming soon!

You'll need an anndata object where each observation is a spot from Visium or similar technologies, and .X quantifies the expression of different genes per spot. To use the model outlined in the manuscript, clusters or annotations for the histology data and spatial transcriptomics (ST) data will be needed and stored in the obs attribute of the anndata object. Sample information (i.e. batch) will also be stored in .obs and the spatial coordinates are stored in .obsm['spatial'].

We'll need to featurize the histopathology data, and the best way to do this is to use a histpathology foundation model and spot-aligned image patches, such that we obtain spot-aligned features for the histology modality. For using the UNI foundation model, code to do this is available in spatialdiva/preprocessing.

Once the data is preprocessed, the SpatialDIVA model can be used as follows:

importscanpyasscimportanndataasannfromapiimportStDIVA# Load the anndata objectadata=sc.read_h5ad("path/to/adata.h5ad") # Initialize the SpatialDIVA model stdiva=StDIVA(
counts_dim=30000, # We're assuming 30'000 genes are present in the datahist_dim=1024, # The number of features extracted from the histology data - e.g. via the UNI foundation modely1_dim=10, # The number of clusters/classes for the ST-labels y2_dim=100, # The dimensionality of the spatial covariate - the API will automatically infer this from the spatial coordinatesy3_dim=2, # The number of clusters/classes for the pathology labels d_dim=5# The number of batches/samples in the data
)
# Add the anndata object to the model for preprocessingstdiva.add_data(
adata=adata,
label_key_y1="Cell-type", # We're assuming the label in .obs for y1 is "Cell-type"label_key_y3="Pathologist Annotation", # We're assuming the label in .obs for y3 is "Pathologist Annotation"hist_col_key="UNI"# We're assuming the histology features are stored in columns starting with "UNI" in .obs
)
# Train the model - this will train using the default parameters and pytorch lightning stdiva.train(max_epochs=100)
# Extract embeddingszd_samples, zy1_samples, zy2_samples, zy3_samples, zx_samples=stdiva.get_embeddings(type="full") 

To see a full workup of this process, please see the tutorials below.

Tutorials

The following notebooks offer more in-depth tutorials on how to use the SpatialDIVA model for relevant analyses of histopathology and spatial transcriptomics data:

  1. Factor covariance analysis with SpatialDIVA - spatialdiva/tutorials/01_colorectal_cancer_spdiva_analysis.ipynb

  2. Conditional generation analysis with SpatialDIVA - Coming soon!

  3. Tumor annotation and subtyping with SpatialDIVA - Coming soon!

Preprocessing

The preprocessed data for Valdeolivas et al. (colorectal cancer) and Zhou et al. (pancreatic cancer) contains spot-aligned features for histopathology imaging extracted using the UNI foundation model (https://github.com/mahmoodlab/UNI).

Code for preprocessing in-house datasets in a similar manner, as well as environment and installation information is available in the spatialdiva/preprocessing directory.

Paper evaluation code

Coming soon!

Citation

Multi-Modal Disentanglement of Spatial Transcriptomics and Histopathology Imaging

Hassaan Maan, Zongliang Ji, Elliot Sicheri, Tiak Ju Tan, Alina Selega, Ricardo Gonzalez, Rahul G. Krishnan, Bo Wang, Kieran R. Campbell

bioRxiv 2025.02.19.638201; doi: https://doi.org/10.1101/2025.02.19.638201

About

Multi-modal disentanglement of spatial transcriptomics and histopathology imaging

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

52 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Build StatusbioRxivPyPI - VersionLicense

SpatialDIVA - disentangling spatial transcriptomics and histopathology imaging data

This repository contains code for the SpatialDIVA method, associated preprocessing, and evaluations performed in the manuscript - "Multi-modal disentanglement of spatial transcriptomics and histopathology imaging".

If you use our work, please consider citing the preprint.

Table of Contents

Installation

The requirements can be installed via pip:

pip install SpatialDIVA

Alternatively, poetry can be used to install the package after cloning:

git clone https://github.com/hsmaan/SpatialDIVA.git
poetry install

We also recommend cloning the git repository to access the tutorials and preprocessing code.

Processed datasets

Valdeolivas et al. - colorectal cancer (https://www.nature.com/articles/s41698-023-00488-4)

This dataset can be downloaded from Figshare at https://figshare.com/s/e12b576b1b05cb1ab77d. After downloading, please move the data to the following directory:

mkdir spatialdiva/data
unzip valdeolivas_processed.zip
mv valdeolivas_processed spatialdiva/data

Zhou et al. - pancreatic ductal adenocarcinoma (https://www.nature.com/articles/s41588-022-01157-1)

Similar to the Valdeolivas et al. data, the data can be downloaded from Figshare https://figshare.com/s/1cd18b65fc0cd7079e41. After downloaded, the data can be moved to the appropriate directory:

unzip zhou_processed.zip
mv zhou_processed spatialdiva/data

Usage

The easiest way to get set up and use SpatialDIVA is the through the high-level API defined in spatialdiva/api.

For more full control, users can directly import the lightning module (LitSpatialDIVA) from spatialdiva/models/diva_spatial.py - a full tutorial on this is coming soon!

You'll need an anndata object where each observation is a spot from Visium or similar technologies, and .X quantifies the expression of different genes per spot. To use the model outlined in the manuscript, clusters or annotations for the histology data and spatial transcriptomics (ST) data will be needed and stored in the obs attribute of the anndata object. Sample information (i.e. batch) will also be stored in .obs and the spatial coordinates are stored in .obsm['spatial'].

We'll need to featurize the histopathology data, and the best way to do this is to use a histpathology foundation model and spot-aligned image patches, such that we obtain spot-aligned features for the histology modality. For using the UNI foundation model, code to do this is available in spatialdiva/preprocessing.

Once the data is preprocessed, the SpatialDIVA model can be used as follows:

importscanpyasscimportanndataasannfromapiimportStDIVA# Load the anndata objectadata=sc.read_h5ad("path/to/adata.h5ad") # Initialize the SpatialDIVA model stdiva=StDIVA(
counts_dim=30000, # We're assuming 30'000 genes are present in the datahist_dim=1024, # The number of features extracted from the histology data - e.g. via the UNI foundation modely1_dim=10, # The number of clusters/classes for the ST-labels y2_dim=100, # The dimensionality of the spatial covariate - the API will automatically infer this from the spatial coordinatesy3_dim=2, # The number of clusters/classes for the pathology labels d_dim=5# The number of batches/samples in the data
)
# Add the anndata object to the model for preprocessingstdiva.add_data(
adata=adata,
label_key_y1="Cell-type", # We're assuming the label in .obs for y1 is "Cell-type"label_key_y3="Pathologist Annotation", # We're assuming the label in .obs for y3 is "Pathologist Annotation"hist_col_key="UNI"# We're assuming the histology features are stored in columns starting with "UNI" in .obs
)
# Train the model - this will train using the default parameters and pytorch lightning stdiva.train(max_epochs=100)
# Extract embeddingszd_samples, zy1_samples, zy2_samples, zy3_samples, zx_samples=stdiva.get_embeddings(type="full") 

To see a full workup of this process, please see the tutorials below.

Tutorials

The following notebooks offer more in-depth tutorials on how to use the SpatialDIVA model for relevant analyses of histopathology and spatial transcriptomics data:

  1. Factor covariance analysis with SpatialDIVA - spatialdiva/tutorials/01_colorectal_cancer_spdiva_analysis.ipynb

  2. Conditional generation analysis with SpatialDIVA - Coming soon!

  3. Tumor annotation and subtyping with SpatialDIVA - Coming soon!

Preprocessing

The preprocessed data for Valdeolivas et al. (colorectal cancer) and Zhou et al. (pancreatic cancer) contains spot-aligned features for histopathology imaging extracted using the UNI foundation model (https://github.com/mahmoodlab/UNI).

Code for preprocessing in-house datasets in a similar manner, as well as environment and installation information is available in the spatialdiva/preprocessing directory.

Paper evaluation code

Coming soon!

Citation

Multi-Modal Disentanglement of Spatial Transcriptomics and Histopathology Imaging

Hassaan Maan, Zongliang Ji, Elliot Sicheri, Tiak Ju Tan, Alina Selega, Ricardo Gonzalez, Rahul G. Krishnan, Bo Wang, Kieran R. Campbell

bioRxiv 2025.02.19.638201; doi: https://doi.org/10.1101/2025.02.19.638201

About

Multi-modal disentanglement of spatial transcriptomics and histopathology imaging

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

52 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Build StatusbioRxivPyPI - VersionLicense

SpatialDIVA - disentangling spatial transcriptomics and histopathology imaging data

This repository contains code for the SpatialDIVA method, associated preprocessing, and evaluations performed in the manuscript - "Multi-modal disentanglement of spatial transcriptomics and histopathology imaging".

If you use our work, please consider citing the preprint.

Table of Contents

Installation

The requirements can be installed via pip:

pip install SpatialDIVA

Alternatively, poetry can be used to install the package after cloning:

git clone https://github.com/hsmaan/SpatialDIVA.git
poetry install

We also recommend cloning the git repository to access the tutorials and preprocessing code.

Processed datasets

Valdeolivas et al. - colorectal cancer (https://www.nature.com/articles/s41698-023-00488-4)

This dataset can be downloaded from Figshare at https://figshare.com/s/e12b576b1b05cb1ab77d. After downloading, please move the data to the following directory:

mkdir spatialdiva/data
unzip valdeolivas_processed.zip
mv valdeolivas_processed spatialdiva/data

Zhou et al. - pancreatic ductal adenocarcinoma (https://www.nature.com/articles/s41588-022-01157-1)

Similar to the Valdeolivas et al. data, the data can be downloaded from Figshare https://figshare.com/s/1cd18b65fc0cd7079e41. After downloaded, the data can be moved to the appropriate directory:

unzip zhou_processed.zip
mv zhou_processed spatialdiva/data

Usage

The easiest way to get set up and use SpatialDIVA is the through the high-level API defined in spatialdiva/api.

For more full control, users can directly import the lightning module (LitSpatialDIVA) from spatialdiva/models/diva_spatial.py - a full tutorial on this is coming soon!

You'll need an anndata object where each observation is a spot from Visium or similar technologies, and .X quantifies the expression of different genes per spot. To use the model outlined in the manuscript, clusters or annotations for the histology data and spatial transcriptomics (ST) data will be needed and stored in the obs attribute of the anndata object. Sample information (i.e. batch) will also be stored in .obs and the spatial coordinates are stored in .obsm['spatial'].

We'll need to featurize the histopathology data, and the best way to do this is to use a histpathology foundation model and spot-aligned image patches, such that we obtain spot-aligned features for the histology modality. For using the UNI foundation model, code to do this is available in spatialdiva/preprocessing.

Once the data is preprocessed, the SpatialDIVA model can be used as follows:

importscanpyasscimportanndataasannfromapiimportStDIVA# Load the anndata objectadata=sc.read_h5ad("path/to/adata.h5ad") # Initialize the SpatialDIVA model stdiva=StDIVA(
counts_dim=30000, # We're assuming 30'000 genes are present in the datahist_dim=1024, # The number of features extracted from the histology data - e.g. via the UNI foundation modely1_dim=10, # The number of clusters/classes for the ST-labels y2_dim=100, # The dimensionality of the spatial covariate - the API will automatically infer this from the spatial coordinatesy3_dim=2, # The number of clusters/classes for the pathology labels d_dim=5# The number of batches/samples in the data
)
# Add the anndata object to the model for preprocessingstdiva.add_data(
adata=adata,
label_key_y1="Cell-type", # We're assuming the label in .obs for y1 is "Cell-type"label_key_y3="Pathologist Annotation", # We're assuming the label in .obs for y3 is "Pathologist Annotation"hist_col_key="UNI"# We're assuming the histology features are stored in columns starting with "UNI" in .obs
)
# Train the model - this will train using the default parameters and pytorch lightning stdiva.train(max_epochs=100)
# Extract embeddingszd_samples, zy1_samples, zy2_samples, zy3_samples, zx_samples=stdiva.get_embeddings(type="full") 

To see a full workup of this process, please see the tutorials below.

Tutorials

The following notebooks offer more in-depth tutorials on how to use the SpatialDIVA model for relevant analyses of histopathology and spatial transcriptomics data:

  1. Factor covariance analysis with SpatialDIVA - spatialdiva/tutorials/01_colorectal_cancer_spdiva_analysis.ipynb

  2. Conditional generation analysis with SpatialDIVA - Coming soon!

  3. Tumor annotation and subtyping with SpatialDIVA - Coming soon!

Preprocessing

The preprocessed data for Valdeolivas et al. (colorectal cancer) and Zhou et al. (pancreatic cancer) contains spot-aligned features for histopathology imaging extracted using the UNI foundation model (https://github.com/mahmoodlab/UNI).

Code for preprocessing in-house datasets in a similar manner, as well as environment and installation information is available in the spatialdiva/preprocessing directory.

Paper evaluation code

Coming soon!

Citation

Multi-Modal Disentanglement of Spatial Transcriptomics and Histopathology Imaging

Hassaan Maan, Zongliang Ji, Elliot Sicheri, Tiak Ju Tan, Alina Selega, Ricardo Gonzalez, Rahul G. Krishnan, Bo Wang, Kieran R. Campbell

bioRxiv 2025.02.19.638201; doi: https://doi.org/10.1101/2025.02.19.638201

About

Multi-modal disentanglement of spatial transcriptomics and histopathology imaging

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages