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: