Integration Guides

These guides explain how OpenHCS systems work together to provide seamless bioimage analysis workflows. Each guide focuses on the integration between major system components.

Complete Examples

Working Examples: Comprehensive scripts demonstrating major OpenHCS functionality and practical usage patterns.

Complete OpenHCS Examples

System Integration Guides

Memory Type Integration

Learn how OpenHCS automatically converts between NumPy, CuPy, PyTorch, JAX, TensorFlow, and pyclesperanto arrays. Understand GPU device management, zero-copy conversions, and memory type decorators.

Memory Type System Integration

Pipeline Compilation Workflow

Understand the 5-phase compilation system that transforms pipeline definitions into optimized execution plans. Learn about path planning, materialization, memory contract validation, and GPU resource assignment.

Pipeline Compilation Workflow

OMERO Integration

Complete server-side execution support for OpenHCS on OMERO servers with zero data transfer overhead. Learn about virtual backends, multiprocessing-safe connection management, and automatic instance management.

OMERO Integration

Viewer Management

Learn how to manage Napari and Fiji viewer processes across OpenHCS components. Understand viewer reuse, parallel startup, persistent viewers, and automatic reconnection for real-time visualization workflows.

Viewer Management Guide

Fiji Viewer Management

Learn how to manage Fiji/ImageJ viewer processes for OpenHCS visualization. Understand PyImageJ integration, automatic hyperstack building, persistent viewers, and ZMQ-based streaming for leveraging the ImageJ ecosystem.

Fiji Viewer Management

Testing Guide

Comprehensive guide for running OpenHCS integration tests with different configurations. Learn how to test with Napari/Fiji visualizers, OMERO backend, and various execution modes using VSCode test discovery or command-line.

Testing Guide

Quick Reference

Memory Type Decorators:

from openhcs.core.memory.decorators import numpy, cupy, torch, jax, pyclesperanto

@numpy
def cpu_function(image): pass

@torch(oom_recovery=True)
def gpu_function(image): pass

Pipeline Compilation:

# Automatic compilation in orchestrator
orchestrator = PipelineOrchestrator(
    plate_paths=plate_paths,
    steps=steps,
    global_config=global_config
)

# 5-phase compilation happens automatically
orchestrator.run()

Function Patterns:

# Single function
FunctionStep(func=my_function)

# Function with parameters
FunctionStep(func=(my_function, {'param': value}))

# Function chain
FunctionStep(func=[
    (func1, {'param1': value1}),
    (func2, {'param2': value2})
])

# Dict pattern (channel-specific)
FunctionStep(func={
    '1': nuclei_function,
    '2': neurite_function
}, variable_components=[VariableComponents.CHANNEL])

Integration Patterns

Memory Type + Function Registry: Functions are automatically discovered and registered with their memory type contracts, enabling automatic conversion planning during compilation.

Pipeline Compilation + GPU Management: The compilation system assigns GPU resources and validates memory requirements before execution begins.

Special I/O + VFS System: Cross-step communication uses the VFS system for efficient data transfer between pipeline steps.

Configuration + All Systems: The configuration system provides unified settings that affect memory management, compilation, and execution across all components.

See Also