Introduction to the Workflow Execution Interface (WEI)

The Workflow Execution Interface (WEI) is a set of tools and software intended to enable Self Directed Laboratories and Autonomous Scientific Discovery. In order to do this WEI provides:

  • A common interface for controlling and communicating with scientific instruments, robots, devices, and software

  • A workflow scheduler and executor that can run scientific workflows using these interfaces to automate laboratory processes

  • A python library to help implement these interfaces for new devices

  • A python client for integrating these workflows into python-based experiment applications

The system is designed to be modular and extensible, so that it can be used with a wide variety of scientific instruments and devices. It is also designed to be distributed, so that it can be used in a variety of laboratory environments, from small academic labs to large research facilities.

Core Concepts

  • Workcells: A collection of scientific instruments, robots, devices, and software that are used together to perform scientific workflows. A WEI workcell is defined using a YAML file that includes all the information necessary to complete tasks on the workcell, including a list of the modules that are compose the workcell.

  • Workflows: A workflow is a sequence of steps to be performed on a workcell. A WEI workflow is defined using a YAML file that includes a list of steps, each of which specifies an action to perform on a module in the workcell.

  • Modules: A module is a software package that controls a scientific instrument, robot, or device, and implements WEI’s Module Interface. A WEI module consists of the software implementing the interface, the physical hardware being controlled, and any drivers or integrations used to control that hardware.

  • Experiments: An experiment is a collection of workflow runs and related logic that utilizes WEI to control a workcell. Experiment applications are able to run workflows on the workcell, analyze the results, and iterate to pursue closed-loop autonomous discovery.

  • Data Points: A datapoint is any piece of data collected by the system during an experiment. These datapoints primarily come from instrument measurements, but can also include metadata, logs, and other information collected during the experiment.

strict digraph sdl_architecture_example {
    //Formatting
    fontname="Helvetica,Arial,sans-serif"
    node [fontname="Helvetica,Arial,sans-serif"]
    edge [fontname="Helvetica,Arial,sans-serif"]
    graph [
        rankdir = "TD"
        pad = 0.1;
    ];
    node [
        fontsize = "16"
        shape = "box"
        colorscheme = "dark28" //https://graphviz.org/doc/info/colors.html#brewer
        style = "filled"
    ];
    edge [
        style = "filled"
        colorscheme = "dark28" //https://graphviz.org/doc/info/colors.html#brewer
    ];

    //Nodes
    SDL [
        label = "Self Driving Lab"
        fillcolor=1
    ]

    WA [
        label = "Workcell A"
        fillcolor=2
    ]
    WB [
        label = "Workcell B"
        fillcolor=2
    ]

    M1 [
        label = "Liquidhandling Module"
        fillcolor=3
    ]
    M2 [
        label = "Robotic Arm Module"
        fillcolor=3
    ]
    M3 [
        label = "Platereader Module"
        fillcolor=3
    ]
    M4 [
        label = "Robotic Arm Module"
        fillcolor=3
    ]

    D1 [
        label = "Liquidhandling Robot"
        fillcolor = 4
    ]
    D2 [
        label = "Robotic Arm 1"
        fillcolor = 4
    ]
    D3 [
        label = "Platereader"
        fillcolor = 4
    ]
    D4 [
        label = "Robotic Arm 2"
        fillcolor = 4
    ]

    //Edges
    SDL -> {WA WB} [dir=both color=1];

    WA -> {M1 M2} [dir=both color=2];
    WB -> {M3 M4} [dir=both color=2]

    M1 -> D1 [dir=both color=3]
    M2 -> D2 [dir=both color=3]
    M3 -> D3 [dir=both color=3]
    M4 -> D4 [dir=both color=3]


    //Graph
    label="Diagram of a Self Driving Lab with multiple workcells, each controlling \na variety of modules, which correspond 1:1 with devices";
    labelloc=bottom;
    labeljust=center;
}

Next Steps

  • To learn how to install and use WEI, consult the Quickstart Guide.

  • To delve deeper into the Core Concepts underlying WEI, consult the Core Concepts.