A Python library for analyzing histological annotations alongside spatial transcriptomics data
Project description
HistoMapTx
Documentation is available here : https://histomaptx.readthedocs.io/en/latest/
Installation
pip install histomaptx
Core Functionality
Loading and Processing Annotations
HistoMap automatically processes annotation files in geojson format from QuPath and extracts key information:
import histomaptx as hm
# Initialize with a GeoJSON file
histo = hm.HistoMap("annotations.geojson", visium_spatial_data, '/path/to/image.tiff')
Generating Statistical Summaries
Get comprehensive morphological statistics about each annotation:
# Generate a summary DataFrame with key metrics
summary = histo.generate_summary()
print(summary)
The summary includes metrics such as:
- Total area and perimeter
- Mean aspect ratio, circularity, and compactness
- Centroid coordinates
- Solidity and extent
- Polygon counts
Visualization
HistoMap offers multiple visualization options:
Basic Annotation Plot
# Plot annotations with default settings
histo.plot_annotations()
# Customize fill and contour colors
histo.plot_annotations(fill=True, contour="black")
# Specify custom colors for each annotation
histo.plot_annotations(fill=["red", "blue", "green"], contour=["black", "black", "black"])
3D Visualization by Annotation Order
# Create a 3D plot with annotations at different z-levels
histo.plot_annotation_order()
Controlling Annotation Order
The order in which annotations are plotted can be crucial for generating the final map:
# Display current plot order
histo.display_plot_order()
# Change plot order (annotations listed first will be on top)
histo.change_plot_order(["Tumor", "Stroma", "Immune cells"])
Compute overlap of annotation with spatial units
Compute the overlap between histological annotations and Visium spots:
# Compute overlap between annotations and spots
histo.compute_overlap_annotation()
# Visualize spots colored by their overlap with a specific annotation
histo.plot_annotation_overlay("Tumor")
# Find spots that overlap with two different annotations
histo.plot_combined_annotation_overlap("Tumor", "Immune cells")
Generate the annotation map
Once overlaps are computed and positivity threshold set, we can generate the final annotation map
histomap.generate_annotation_map(annotate_all=True)
hm.plot_annotation_map(histomap, resolution='lowres')
Advanced Usage
Custom Annotation Colors
You can customize the colors used for annotations to make your visualizations match your publication style:
# Define custom colors
annotation_colors = {
"Tumor": "#E41A1C",
"Stroma": "#377EB8",
"Immune cells": "#4DAF4A"
}
# Use a color list matching the annotation order
annotations = histo.data_exploded['Annotation'].unique()
color_list = [annotation_colors[ann] for ann in annotations]
# Plot with custom colors
histo.plot_annotations(fill=color_list, contour="black")
Exporting Results
# Generate and save a summary to CSV
summary = histo.generate_summary()
summary.to_csv("annotation_summary.csv", index=False)
# Save the figure
fig, ax = plt.subplots(figsize=(10, 10))
histo.plot_annotations()
plt.savefig("annotations.png", dpi=300, bbox_inches="tight")
License
This project is licensed under the MIT License - see the LICENSE file for details.
Citation
If you use HistoMap in your research, please cite:
Unpublished
Contact
For questions and feedback, please open an issue on the GitHub repository
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 histomaptx-0.1.1.tar.gz.
File metadata
- Download URL: histomaptx-0.1.1.tar.gz
- Upload date:
- Size: 30.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3c1f90d242010f06a3c4290038392f719d6bd33ddf56922e64395e1742038fc6
|
|
| MD5 |
c10ede917dcd7a8e8810d3ccb20de241
|
|
| BLAKE2b-256 |
619905e7e0d361cfec4bc7356f7fd6f209563115fa89c5797a0df85a94bf1ffe
|
File details
Details for the file histomaptx-0.1.1-py3-none-any.whl.
File metadata
- Download URL: histomaptx-0.1.1-py3-none-any.whl
- Upload date:
- Size: 30.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4c1abd55399770556d7cc9a56707e16795815a55c8387c20fa5e248ab70ec815
|
|
| MD5 |
ab2913ff31cace6b8b651bf96a7bbae0
|
|
| BLAKE2b-256 |
f89cf6d5e9ec1b8c1ac4a90ec22132def85cdcfb2ad1399daa721513d72f7cc7
|