Skip to main content

well plate layout designer and exporter for napari

Project description

WellMapper

A flexible, configurable well plate layout designer and exporter for napari. Design plate layouts with dynamic field configuration and export to local or cloud storage (AWS S3, Azure Blob, Google Cloud Storage).

License Python Version napari hub

Features

  • Flexible Configuration: Define experiment and well metadata fields via YAML config
  • Visual Plate Design: Interactive grid for selecting and annotating wells
  • Color-Coded Wells: Automatic color assignment based on well metadata for easy visualization
  • Multiple Storage Backends: Export to local filesystem, AWS S3, Azure Blob Storage, or Google Cloud Storage
  • Dynamic Field Types: Support for text, integer, date fields with autocompletion
  • Incomplete Well Detection: Visual warnings for partially filled wells
  • Configuration GUI: Built-in editors for plate parameters and storage settings

Installation

Basic Installation

pip install WellMapper

With Cloud Storage Support

For AWS S3:

pip install WellMapper[s3]

For Azure Blob Storage:

pip install WellMapper[azure]

For Google Cloud Storage:

pip install WellMapper[gcs]

For all storage backends:

pip install WellMapper[all]

Quick Start

  1. Launch napari and open the plugin:

    • Plugins → WellMapper → Well Plate Layout
  2. Configure your plate (optional):

    • Plugins → WellMapper → Set Plate Layout Parameters
    • Add/remove experiment and well information fields
  3. Set up storage (optional):

    • Plugins → WellMapper → Set Storage Solution
    • Configure local or cloud storage backend
  4. Design your layout:

    • Fill in experiment information (barcode, date, etc.)
    • Select wells and apply metadata
    • Export to CSV

Usage

Basic Workflow

  1. Enter Experiment Information

    • Barcode (required)
    • Number of rows and columns
    • Date and any custom fields
    • Click "Confirm Experiment Info"
  2. Annotate Wells

    • Fill in well metadata fields (donor, condition, concentration, etc.)
    • Select one or multiple wells in the plate grid
    • Click "Apply to Selected"
    • Wells are automatically color-coded based on their metadata
  3. Export Layout

    • Click "Export CSV"
    • File is saved to configured storage backend
    • Default location: ./data/{barcode}/layout.csv

Configuration

Plate Parameters (plate_config.yaml)

Define custom fields for your experiments:

experiment_information:
  barcode:
    label: Barcode
    type: text
    required: true
  date:
    label: Date
    type: date
    default: today
    required: true
  interval:
    label: Interval (min)
    type: int
    default: 10
    min: 1
    max: 1440

well_information:
  donor:
    label: Donor ID
    type: text
  condition:
    label: Treatment
    type: text
    completer:
      - Control
      - Drug A
      - Drug B
  concentration:
    label: Concentration (µM)
    type: text
    completer:
      - "0"
      - "0.1"
      - "1"
      - "10"

Field Types:

  • text: Free text input with optional autocomplete
  • int: Integer input with min/max constraints
  • date: Date picker

Mandatory Fields:

  • rows, cols, barcode, date in experiment_information

Storage Configuration

Configure storage via GUI (Plugins → Set Storage Solution) or manually create .env:

Local Storage (default):

STORAGE_TYPE=local
STORAGE_PATH=./data

AWS S3:

STORAGE_TYPE=s3
S3_BUCKET=my-bucket
S3_PREFIX=plate-layouts
AWS_REGION=us-east-1
AWS_ACCESS_KEY_ID=your-key
AWS_SECRET_ACCESS_KEY=your-secret

Azure Blob Storage:

STORAGE_TYPE=azure
AZURE_STORAGE_CONNECTION_STRING=DefaultEndpointsProtocol=https;AccountName=...
AZURE_CONTAINER=data
AZURE_PREFIX=plate-layouts

Google Cloud Storage:

STORAGE_TYPE=gcs
GCS_BUCKET=my-bucket
GCS_PREFIX=plate-layouts
GCS_PROJECT=my-project
GOOGLE_APPLICATION_CREDENTIALS=/path/to/credentials.json

CSV Output Format

The exported CSV includes all configured fields:

barcode,date,interval,well,donor,condition,concentration
ABC123,2024-01-15,10,A1,D001,Control,0
ABC123,2024-01-15,10,A2,D001,Drug A,0.1
ABC123,2024-01-15,10,A3,D001,Drug A,1
ABC123,2024-01-15,10,B1,D002,Control,0
...

Advanced Features

Color Coding

Wells are automatically assigned distinct colors based on their complete metadata profile. This helps visually identify:

  • White: Empty wells
  • Colored: Wells with complete metadata (same metadata = same color)
  • Yellow "!" marker: Incomplete wells (partial metadata)

Multi-Well Selection

  • Click individual wells or drag to select multiple wells
  • Apply the same metadata to all selected wells at once
  • Efficient for replicates and structured plate designs

Configuration Editor

Use the built-in GUI to:

  • Add/remove experiment and well fields
  • Set field types and constraints
  • Define autocomplete options
  • Configure default values

Storage Backend Testing

The storage configuration widget includes a "Test Connection" button to verify:

  • Credentials are valid
  • Bucket/container exists and is accessible
  • Write permissions are correct

File Structure

WellMapper/
├── WellMapper/
│   ├── __init__.py
│   ├── _layout_widget.py       # Main plate layout widget
│   ├── _parameter_widget.py    # Configuration editor
│   ├── _storage_widget.py      # Storage setup widget
│   ├── storage_backends.py     # Storage implementations
│   ├── plate_config.yaml       # Default plate configuration
│   └── .env                    # Storage configuration (user-created)
├── napari.yaml                 # Plugin manifest
├── pyproject.toml             # Package configuration
└── README.md

Examples

Example 1: Drug Screening Plate

experiment_information:
  barcode:
    label: Plate Barcode
    type: text
    required: true
  assay_date:
    label: Assay Date
    type: date
    default: today
    required: true
  cell_line:
    label: Cell Line
    type: text
  passage:
    label: Passage Number
    type: int
    min: 1
    max: 100

well_information:
  compound:
    label: Compound
    type: text
    completer:
      - DMSO (Control)
      - Compound A
      - Compound B
      - Compound C
  concentration:
    label: Concentration (µM)
    type: text
    completer:
      - "0"
      - "0.01"
      - "0.1"
      - "1"
      - "10"
      - "100"
  replicate:
    label: Replicate
    type: text
    completer:
      - "1"
      - "2"
      - "3"

Troubleshooting

Storage Configuration Not Found

Error: "Could not initialize storage backend"

Solution: Create .env file in napari by Plugins -> WellMapper -> Set Storage Solution

Cloud Storage Dependencies Missing

Error: "boto3 required for S3 storage"

Solution: Install with storage extras:

pip install WellMapper[s3]

Wells Not Updating Colors

Issue: Wells stay white after applying metadata

Solution: Ensure all fields are filled. Partial data triggers incomplete well warning (yellow "!").

CSV Export Path Issues

Issue: Can't find exported files

Solution: Check storage configuration. Default is ./data/{barcode}/layout.csv relative to where napari was launched.

License

This project is licensed under the Apache License 2.0 License - see the LICENSE file for details.

Citation

If you use this plugin in your research, please cite:

@software{WellMapper,
  author = {van der Steen, Krijn H.},
  affiliation = {Lab of Cellular Disease Models, Regenerative Medicine Center Utrecht, UMC Utrecht, The Netherlands},
  title = {WellMapper: Well Plate Layout Designer for napari},
  year = {2026},
  url = {https://github.com/Living-Technologies/WellMapper}
}

Acknowledgments

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wellmapper-0.1.3.tar.gz (25.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wellmapper-0.1.3-py3-none-any.whl (24.9 kB view details)

Uploaded Python 3

File details

Details for the file wellmapper-0.1.3.tar.gz.

File metadata

  • Download URL: wellmapper-0.1.3.tar.gz
  • Upload date:
  • Size: 25.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.9

File hashes

Hashes for wellmapper-0.1.3.tar.gz
Algorithm Hash digest
SHA256 77cbb2eafcc54ad1eb985c415d5ba17e764c8eafbdb7a7ef55527b5410bf066b
MD5 23f3e134873b0e05a51e38b198023496
BLAKE2b-256 37f9a59f49ed146f530468c072f97f8843590e7b776d45e9dd1cdd50356c1c10

See more details on using hashes here.

File details

Details for the file wellmapper-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: wellmapper-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 24.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.9

File hashes

Hashes for wellmapper-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 6e61d95e9797464dd359e0f476e2fae618235267375a72d69719d69a5221ebca
MD5 17d3157855bd81e1ddb634c018b2e576
BLAKE2b-256 925d17636f67d70dd3f76eefc37a77502b37f0f47244f28453ca1b7d310e5880

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page