Configuration (YAML Settings)
WormLib uses YAML configuration files to define analysis pipelines. A single config file specifies input/output paths, microscope parameters, channel definitions, and which pipeline steps to run.
—
Configuration Structure
Minimal Example:
input:
path: ./data/my_images/
output_directory: ./output/
microscope:
voxel_size_nm: [1448, 450, 450] # Z, Y, X in nanometers
channels:
nuclei:
name: DAPI
index: 3
pipeline:
cell_segmentation: true
spot_detection: true
Full Example:
input:
path: ../../data/my_data_folder
output_directory: ../../output_temp/results
microscope:
voxel_size_nm: [1448, 450, 450] # Z, Y, X
channels:
nuclei:
name: DAPI
index: 3
brightfield:
name: brightfield
source: ref_file # Load from _R3D_REF file
index: null
rna:
- name: mRNA1
fluorophore: Cy5
index: 0
spot_radius_nm: [1409, 340, 340]
detection_color: red
- name: mRNA2
fluorophore: mCherry
index: 1
spot_radius_nm: [1283, 310, 310]
detection_color: blue
segmentation:
embryo_diameter: 500
nuclei_diameter: 70
pipeline:
cell_segmentation: true
cell_classification: true
embryo_segmentation: false
spot_detection: true
heatmaps: true
rna_density: true
line_scan: true
—
Input Section
path — Directory containing microscopy files (.dv, .nd2, .tiff)
output_directory — Where analysis results will be saved
Microscope Section
voxel_size_nm — [Z, Y, X] voxel dimensions in nanometers
For C. elegans 4-cell embryos on DeltaVision: [1448, 450, 450]
Channels Section
Define how to extract channels from your images.
nuclei — Nuclear stain (required for cell segmentation)
name— Display name (e.g., “DAPI”)index— Channel index in the image file (0, 1, 2, 3, …)
brightfield — Optional brightfield/transmission image
name— Display namesource—"ref_file"to load from DeltaVision reference file (_R3D_REF)index— Set tonullfor brightfield
rna — One or more mRNA channels to detect
For each RNA channel:
name— Gene name (e.g., “set3_mRNA”)fluorophore— Dye label (e.g., “Cy5”, “mCherry”)index— Channel indexspot_radius_nm—[Z, Y, X]PSF (Point Spread Function) in nmdetection_color— Visualization color for detection plots (“red”, “blue”, etc.)
Segmentation Section
embryo_diameter — Expected embryo diameter in pixels (for whole-embryo segmentation)
nuclei_diameter — Expected nucleus diameter in pixels (for nuclear segmentation)
These values help Cellpose optimize segmentation. Typical values:
Embryo diameter: 375–500 pixels
Nuclei diameter: 30–70 pixels
Pipeline Section
Control which analysis steps run (true/false):
cell_segmentation — Segment individual cells
cell_classification — Predict cell identity (AB, ABa, EMS, etc.)
embryo_segmentation — Segment whole embryo
spot_detection — Detect individual mRNA spots
heatmaps — Generate grid-based abundance heatmaps
rna_density — Analyze RNA density along embryo axis
line_scan — Generate line scan intensity plots
Disable steps to save computation time if not needed.
Example Configs
WormLib includes example configurations in config/examples/:
one_rna_full.yml— Single channel with all steps enabledtwo_rna_full.yml— Two RNA channels with cell classificationrna_only_spot_detection.yml— Only spot detection, skip segmentationdapi_one_rna_no_brightfield.yml— Nuclear and mRNA, no brightfield
Using Configuration Files
Via Jupyter notebook:
import yaml
with open('config/examples/two_rna_full.yml') as f:
config = yaml.safe_load(f)
# Access settings
voxel_size = config['microscope']['voxel_size_nm']
output_dir = config['input']['output_directory']
Via command line (future):
python src/wormlib.py --config config/examples/two_rna_full.yml
—
Next Steps
See Input to understand supported image formats
See Output Files and Results Structure to understand generated result files