Histomic Atlases of Variation Of Cancers (HAVOC) is a versatile tool that helps map histomic heterogeneity across H&E-stained digital slide images to help guide regional deployment of molecular resources to the most relevant/biodiverse tumor niches
Project description
Histomic Atlases of Variation Of Cancers (HAVOC)
HAVOC is a versatile tool that maps histomic heterogeneity across H&E-stained digital slide images to help guide regional deployment of molecular resources to the most relevant/biodiverse tumor niches
Cloud usage
Explore HAVOC on https://www.codido.co to run on the cloud
Version Notes
-
Current: Uses a foundation-model feature extractor (Prov-GigaPath). This is recommended for all new applications.
-
Legacy: VGG19-based implementation used in the original paper. Please visit the
paperbranch for more info (No longer updated).
Installation
Note: HAVOC requires the torch, torchvision, and timm packages, which are not installed automatically. Please install the appropriate PyTorch build (CPU or GPU) before installing HAVOC.
Note: System-level OpenSlide must be installed manually from: https://openslide.org/download/
Use the package manager pip to install havoc-clustering.
pip install havoc-clustering-v2
Usage
from huggingface_hub import login
from havoc_clustering_v2.havoc import HAVOC, HAVOCConfig
from havoc_clustering_v2.general_utility.slide import Slide
# Required to perform initial download of the feature extractor (prov-gigapath) from Huggingface.
login(token=hf_token)
# To run HAVOC, it requires:
# 1. a Slide object
# - if the MPP cannot be detected, you must manually specify
s = Slide(slide_path, mpp=None)
# 2. a HAVOCConfig object
# Below are the default config values
config = HAVOCConfig(
out_dir='./', # root save dir. results will be stored per slide in `root_save_dir`\<slide_name>\`
k_vals=[7, 8, 9],
# save the tiles belonging to each color cluster within the havoc map for a given k
# ie [7,9] would save the colored tiles belonging to k=7 and k=9
# NOTE: this should be a subset of k_vals
save_tiles_k_vals=[],
tile_size=512, # tiles extracted at 20x magnification. tile size must be a multiple of 256
min_tissue_amt=0.5, # blank filtering
# for each k value, make a umap and/or dendrogram and/or pearson coefficient clustermap
extra_metrics=['umap', 'dendrogram', 'corr_clustmap']
)
havoc = HAVOC(config)
havoc.run(s)
Result output
- Colortiled maps
- CSV file of cluster info + DLFVs (cluster_info_df.csv)
- Optionally:
- Original slide thumbnail
- UMAPs
- Dendrograms
- Correlation clustermap
Multi-slide correlation map
By running HAVOC on multiple slides, you may want to combine all the generated correlation clustermaps into a mega clustermap.
- Create a folder containing each slide's cluster_info_df.csv file
from havoc_clustering_v2.correlation_of_dlfv_groups import create_correlation_clustermap_multi_slide
create_correlation_clustermap_multi_slide(folder_of_csvs, target_k=9)
NOTE: the target_k should be a k-value you ran HAVOC with
Citation
Please refer to the paper "HAVOC: Small-scale histomic mapping of cancer biodiversity across large tissue distances using deep neural networks" (DOI: 10.1126/sciadv.adg1894)
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file havoc_clustering_v2-0.0.11.tar.gz.
File metadata
- Download URL: havoc_clustering_v2-0.0.11.tar.gz
- Upload date:
- Size: 35.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7eebe4a42616830576843ab0f0941b68f64b3380c0076402aef7f5e693a1c680
|
|
| MD5 |
74b2cc0906f65071941fcc79b86364fb
|
|
| BLAKE2b-256 |
f596d6356bef65338d35f41e63052777cff79102f60193954cc0bdf827e9070d
|
File details
Details for the file havoc_clustering_v2-0.0.11-py3-none-any.whl.
File metadata
- Download URL: havoc_clustering_v2-0.0.11-py3-none-any.whl
- Upload date:
- Size: 32.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
564c04ffc22412ca9037ed77109822aa7c1a728e53d686dde08bc55727e38e4e
|
|
| MD5 |
be8fae40ac54235abe776ec7e7fb28b9
|
|
| BLAKE2b-256 |
8e535ef7a9d7e3ca8173240924b9b44431cfafd583dcf4b6dffa7efe69006c85
|