Skip to main content

The Modular Autonomous Discovery for Science (MADSci) Experiment Manager.

Project description

MADSci Experiment Manager

Manages experimental runs and campaigns across a MADSci-powered lab, providing experiment design, tracking, and lifecycle management.

Features

  • Experiment Campaigns: Organize related experiments under a common research goal
  • Experiment Designs: Define experimental parameters, conditions, and metadata
  • Experiment Runs: Track individual experiment executions with status and results
  • Lifecycle Management: Monitor experiment progress from design to completion
  • Integration: Works with all MADSci managers for comprehensive lab coordination

Installation

See the main README for installation options. This package is available as:

Dependencies: MongoDB database (see example_lab)

Usage

Quick Start

Use the example_lab as a starting point:

# Start with working example
docker compose up  # From repo root
# Experiment Manager available at http://localhost:8002/docs

# Or run standalone
python -m madsci.experiment_manager.experiment_server

Manager Setup

For custom deployments, see example_experiment.manager.yaml for configuration options.

Experiment Client

Use ExperimentClient to manage experiments programmatically:

from madsci.client.experiment_client import ExperimentClient
from madsci.common.types.experiment_types import (
    ExperimentDesign,
    ExperimentRegistration,
    ExperimentalCampaign
)

client = ExperimentClient("http://localhost:8002")

# Create an experiment campaign
campaign = ExperimentalCampaign(
    name="Drug Discovery Campaign",
    description="Testing compound effectiveness",
    principal_investigator="Dr. Smith"
)
created_campaign = client.create_campaign(campaign)

# Design an experiment
design = ExperimentDesign(
    name="Compound Screen Experiment",
    description="Screen compounds for activity",
    campaign_id=created_campaign.campaign_id,
    parameters={"compounds": ["A", "B", "C"], "concentrations": [1, 10, 100]}
)
created_design = client.create_experiment_design(design)

# Register and run an experiment
registration = ExperimentRegistration(
    experiment_design_id=created_design.design_id,
    parameters={"compound": "A", "concentration": 10}
)
experiment = client.register_experiment(registration)

# Track experiment status
status = client.get_experiment_status(experiment.experiment_id)

Core Concepts

Experiment Campaigns

Group related experiments under a research theme or project:

  • Campaign management: Track multiple related experiments
  • Principal investigator: Associate experiments with researchers
  • Metadata: Store campaign-level information and goals

Experiment Designs

Templates defining experimental parameters and structure:

  • Parameter definitions: Specify experiment variables and ranges
  • Conditions: Define prerequisites and constraints
  • Metadata: Store design rationale and protocols

Experiment Runs

Individual executions of an experiment design:

  • Status tracking: Monitor progress from registration to completion
  • Results storage: Capture experimental outcomes and data
  • Lineage: Link runs to their designs and campaigns

Experiment Application

The ExperimentApplication class provides scaffolding for custom experiment logic:

from madsci.experiment_application import ExperimentApplication

class MyExperiment(ExperimentApplication):
    def run_experiment(self, experiment_id: str) -> dict:
        # Custom experimental logic
        # Use other MADSci clients (workcell, data, etc.)
        return {"result": "success"}

app = MyExperiment(experiment_server_url="http://localhost:8002")
app.start()

Integration with MADSci Ecosystem

The Experiment Manager coordinates with other MADSci components:

  • Workcell Manager: Execute workflows as part of experiments
  • Data Manager: Store experimental results and files
  • Event Manager: Log experimental events and milestones
  • Resource Manager: Track samples and consumables used

Example: See example_lab/ for complete integration examples with all managers working together.

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

madsci_experiment_manager-0.5.0rc3.tar.gz (5.5 kB view details)

Uploaded Source

Built Distribution

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

madsci_experiment_manager-0.5.0rc3-py3-none-any.whl (5.2 kB view details)

Uploaded Python 3

File details

Details for the file madsci_experiment_manager-0.5.0rc3.tar.gz.

File metadata

  • Download URL: madsci_experiment_manager-0.5.0rc3.tar.gz
  • Upload date:
  • Size: 5.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: pdm/2.26.0 CPython/3.9.23 Linux/6.11.0-1018-azure

File hashes

Hashes for madsci_experiment_manager-0.5.0rc3.tar.gz
Algorithm Hash digest
SHA256 729190de4a72cb9e88e6be628fa48e4382a88ead5f1d9a22a1ecacce953a65af
MD5 5b070fd89b59153fa4661e3eefdd0b84
BLAKE2b-256 8c867f061a8fc3bb8f5e9103b9752832f04215a2f6fb89836cfc07b3ccd52f76

See more details on using hashes here.

File details

Details for the file madsci_experiment_manager-0.5.0rc3-py3-none-any.whl.

File metadata

File hashes

Hashes for madsci_experiment_manager-0.5.0rc3-py3-none-any.whl
Algorithm Hash digest
SHA256 74be0de2c66f20f9033c00cdfea512b9d6ea774c9079b74b4c866762be0b3c18
MD5 6e239ae0df8fe5b9e87f668117e6be2e
BLAKE2b-256 2736ecfa74e8ad5731c9f1192be286283d2de895cb96029c66868cecd7f001ca

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