Overview

Below, you can find code-heavy examples of how to use the L7|ESP SDK. These examples are not meant to be comprehensive, but rather give users a feel for how to best leverage tools in the L7|ESP SDK.

It is highly recommended that readers of this document complete the L7|ESP Quick Start tutorial through the UI and Python client (see core and client L7|ESP documentation) before completing this tutorial via the L7|ESP SDK. This tutorial mirrors building out that content, so users should come in with an understanding of how content definitions work within the context of L7|ESP.

In addition, this documentation refers heavily to the L7|ESP Python client. Please see that documentation for information on usage patters.

Tasks

To demonstrate building out content for a specific lab, we’ll build a simple end-to-end Workflow. Upon completion of this example, we’ll have used L7|ESP to do the following:

  • Create a simple Protocol that tracks values associated with Samples.

  • Create a simple Pipeline that generates a Report for each Sample.

  • Create a Workflow that allows the Protocol and Pipeline to be used together for processing Samples.

  • Organize content in the L7|ESP SDK so that it can be referenced during development.

  • Create tests for evaluating functionality of that Workflow.

  • Update the L7|ESP SDK configuration to automatically load that content on install.

In summary, at the end of this tutorial, we will have a fully functional laboratory management system with one Workflow already set up!

Note

L7|ESP uses many common terms for elements within the platform. Throughout this manual, terms with specific meanings in L7|ESP will always be capitalized, while lowercase versions of the same words are used in the general sense. For example, a laboratory protocol can be captured in an L7|ESP Protocol, and then grouped into an L7|ESP Workflow.

Terminology

While this list is not entirely comprehensive, it covers basic terminology for the scope of this introductory demo.

  • User: Any person who uses L7|ESP

  • File: A reference to a file registered as a Resource and its associated metadata

  • Sample: A physical sample registered within L7|ESP. Note that this term has a general purpose, and can be used to represent a raw sample, an aliquot, etc.

  • Step: A procedural step defined within an L7|ESP Protocol

  • Task: A computational step in an L7|ESP Pipeline

  • Protocol: A sequence of steps performed on a Sample. Note that this guide has the user create both standard and pipeline Protocols. Pipeline Protocols allow users to run Pipelines as part of a larger Sample-processing Workflow.

  • Pipeline: An ordered collection of one or more L7|ESP Tasks

  • Report: A collection of visual elements that display results from an L7|ESP Pipeline

  • Workflow: An ordered collection of L7|ESP Protocols

  • Experiment: An instance of a particular L7|ESP Workflow with associated Samples and data

  • Project: A grouping mechanism for L7|ESP Experiments, Pipelines, Samples, Reports, etc.

A high-level diagram that displays the general relationship between these terms can be viewed below:

../_images/terms-diagram.png