Analyzing spatially resolved data requires the development of new software. The LSP is actively engaged in a wide variety of open source software projects aimed at the analysis of highly multiplexed whole slide images. These include methods for stitching images together into seamless gigapixel mosaics, machine learning tools for interpreting imaging features, visualization tools, and rapid and intuitive interaction with image data.
The two largest software projects in the group are MCMICRO, an end-to-end pipeline for transforming images into quantitative cell x feature data and Minerva, a suite of tools for visualization of large and complex images in a browser.
Multiple-choice microscopy pipeline (MCMICRO)
MCMICRO is the end-to-end processing pipeline for multiplexed whole tissue imaging and tissue microarrays. It comprises stitching and registration, segmentation, and single-cell feature extraction. Each step of the pipeline is containerized to enable portable deployment across an array of compute environments, including local machines, job-scheduling clusters and cloud environments like AWS. The pipeline execution is implemented in Nextflow, a workflow language that facilitates caching of partial results, dynamic restarts, extensive logging and resource usage reports.
Minerva is a suite of software tools for interpreting and interacting with complex images, organized around a guided analysis approach. The software enables fast sharing of large image data that is stored on Amazon S3 and viewed using a zoomable image viewer implemented using OpenSeadragon, making it ideal for integration into multi-omic browsers for data dissemination of tissue atlases. Check out the Minerva Wiki to learn more about the software and for news.
ASHLAR (Alignment by Simultaneous Harmonization of Layer/Adjacency Registration) is Python tool for image registration and stitching that is more rapid and accurate than existing methods in assembling subcellular-resolution, multi-channel images up to several square centimeters in size. ASHLAR uses Bioformats software to read virtually any microscope image files and write the OME-TIFF format files.
Universal Models for Identifying Cells and Segmenting Tissue Nuclei segmentation, especially for tissues, is a challenging and unsolved problem. Convolutional neural networks are particularly well-suited for this task: separating the foreground class (nuclei pixels) from the background class. UnMICST generates probability maps where the intensity at each pixel defines how confident the pixel has been correctly classified to the aforementioned classes. These maps can make downstream image binarization more accurate using tools such as s3segmenter. UnMICST currently uses the UNet architecture (Ronneberger et al., 2015) but Mask R-CNN and Pyramid Scene Parsing (PSP) Net are coming very soon!
Scope2Screen is a scalable software system for focus+context exploration and annotation of whole-slide, high-plex, tissue images. Our approach scales to analyzing 100GB images of 10^9 or more pixels per channel, containing millions of individual cells. A multidisciplinary team of visualization experts, microscopists, and pathologists identified key image exploration and annotation tasks involving finding, magnifying, quantifying, and organizing regions of interest (ROIs) in an intuitive and cohesive manner.
Scimap is a scalable toolkit for analyzing spatial molecular data. The underlying framework is generalizable to spatial datasets mapped to XY coordinates. The package uses the anndata framework making it easy to integrate with other popular single-cell analysis toolkits. It includes preprocessing, phenotyping, visualization, clustering, spatial analysis and differential spatial testing. The Python-based implementation efficiently deals with large datasets of millions of cells.
CyLinter is quality control software for identifying and removing cell segmentation instances corrupted by optical and/or image-processing artifacts in multiplex microscopy images. The tool is user-guided and comprises a set of modular and extensible QC modules instantiated in a configurable Python Class object. Module results are cached to allow for dynamic restarts.