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.
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.
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.
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.
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.
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.
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.
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
Architecture Reference - Detailed architecture documentation
API Reference - API reference documentation
User Guide - User guides and tutorials