API Reference¶
FOCUS exposes Python APIs for preprocessing, alignment, registration, annotation transfer, config validation, and orchestration.
This page reflects the current implementation in src/focus.
Import map (implemented)¶
# Preprocessing
from focus.preprocessing import (
preprocess_modality,
BaseSample,
BaseDataset,
MicroscopyImage,
MicroscopyImageDataset,
MsiSample,
MsiDataset,
RamanImage,
RamanMetadata,
RamanDataset,
SpatialTranscriptomic,
SpatialTranscriptomicDataset,
)
# Alignment
from focus.alignment import DirectMappingAligner
# Registration
from focus.registration import FeatureExtractorRegistration, SpotInterpolationRegistration
# Annotations
from focus.annotations import transfer_annotations
from focus.annotations.annotations import load_geojson
# Config + orchestration
from focus.utils import parse_config
from focus.orchestrator import run
Notes:
focus.annotationsexportstransfer_annotationsonly.load_geojsonis implemented infocus.annotations.annotations.- Orchestrator entry point is
run(config: dict, progress_callback=None).
Core preprocessing abstractions¶
BaseSample¶
Behavior:
- validates
source_pathreadability - sets
source_path,sample_id,modality_name - creates output directory:
<source_path>/<sample_id>/preprocessing/<modality_name>/
BaseDataset¶
Defines abstract interface:
Includes helper:
Progress reporting utility¶
StepReporter lives in focus.preprocessing._utils. Preprocessing and orchestration use it for CLI and GUI progress updates.
Main methods:
step(desc, current=0, total=0)update(desc, current, total)tqdm(iterable, desc, total=None, **kwargs)message(msg)set_sample(sample_id, index, total)
Programmatic full pipeline run¶
import json
from focus.utils import parse_config
from focus.orchestrator import run
with open("focus_config.json", "r") as f:
config = json.load(f)
config = parse_config(config)
outputs = run(config)
parse_config expects a dictionary, not a file path.
API docs in this folder¶
docs/api/preprocessing.mddocs/api/data_types.md