Skip to content

Python package to create multi-well plate layouts for specimen sample data. Automatically distributes quality control samples according to scheme in config file.

License

Notifications You must be signed in to change notification settings

ssi-dk/CD-MRG-PlatePlanner

Repository files navigation

PyPI - Version PyPI - Python Version pages-build-deployment .github/workflows/draft-pdf.yml .github/workflows/publish-to-pypi

PlatePlannerLogo

  • Dynamic QC Sample Patterns: Create plate layouts with customizable QC sample patterns.
  • Flexible Sample Distribution: Distribute samples within groups across plates, accommodating variable numbers of samples per group.
  • Non-Split/Split Group Handling: Control over distributing samples within groups without splitting them over plates or splitting when necessary.
  • Customizable Run Lists & Plate Visualizations: Generate run lists and visualize plate assignments.
  • Block Randomization: Perform sample randomizaition or sample block randomization to prevent run order bias.

Installation

To install PlatePlanner, simply run:

pip install plate-planner

Documentation

For more detailed documentation, visit PlatePlanner Documentation.

Quick Start Guide

Here's a quick example of how to use PlatePlanner:

from plate-planner import Study, QCPlate

# Create a study and load your file with sample records (csv, xls/xlsx)
study_with_qc = Study(name="cancer")
study_with_qc.load_specimen_records(
    records_file="./data/study_samples.csv",
    sample_group_id_column="pair_ID",
    sample_id_column="specimen_ID"
)

# Block randomize groups
study_with_qc.randomize_order(case_control=True, reproducible=False)

# Distribute samples to a 96-well plate with QC samples as defined in the toml file
qc_plate = QCPlate(plate_dim=(8, 12), QC_config="./data/plate_config_dynamic.toml")
study_with_qc.distribute_samples_to_plates(plate_layout=qc_plate)

# Create visualization for plate 3
fig = study_with_qc[2].as_figure(
    color_metadata_key="organ",
    annotation_metadata_key="date_of_birth",
    rotation=45,
    )

Alt text

#mshow distribution of sample attribute across all plates
fig = study_with_qc.plot_attribute_plate_distributions(attribute="organ", normalize=True, plt_style="fivethirtyeight")

attribute distribution across plates visualization example

Contributing

We welcome contributions to PlatePlanner! Please read our Contributing Guidelines for more information on how to get involved.

License

PlatePlanner is distributed under the terms of the MIT license.

About

Python package to create multi-well plate layouts for specimen sample data. Automatically distributes quality control samples according to scheme in config file.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages