Write Plot Notebooks from Workflows
Use Artifacts API to create a new Plot notebook downstream of a workflow
With the Plots Artifacts API, your Latch workflow can generate a new notebook from a standard Plot template and automatically populate it with parameters and outputs from earlier steps in your pipeline.
For example, in the video below, a DESeq2 workflow execution outputs a Plots Artifact on Latch Data with all the notebook parameters filled out. This eliminates the need for manual parameter entry by scientists, thereby minimizing rooms for errors.
Every Plot notebook is backed by a dedicated computer. To save costs, this new computer is only spun up when the end user double-clicks on the Artifact on Latch Data for the first time.
Usage
First, define the PlotsArtifact
dataclass:
How to fill out the `PlotsArtifactTemplate`
How to fill out the `PlotsArtifactTemplate`
To fill out the PlotsArtifactTemplate
dataclass, we need to define four things:
- The plot template ID
- The ID of the Python transform cell that contains the widget
- The unique ID of the widget (as one Python transform cell may contain many widgets)
- The value we want to populate the widget with
How to find:
Plot Template ID
Plot Template ID
- Navigate to https://console.latch.bio/plots
- Click on the + Layout icon.
- Click on the screwdriver icon to access the Template’s settings.
- See the Plot Template’s ID circled in the screenshot below. The template ID is the number to the right.
Transform Cell ID
Transform Cell ID
- Create a new notebook from the template
- Make sure you turn on Dev Mode for the notebook.
- Navigate to the cell of interest.
- Copy the ID underneath the cell.
Widget Key
Widget Key
When creating the Plot notebook’s template, provide the widget with key like so:
Pro-tip: Not all the widgets in your original template have explicitly defined keys. If not, the key value is the order of the widget in that cell.
Example: Let’s say a Python transform cell has three widgets:
- widget 1: (no key) => Key value is “0”
- widget 2: (key = “k”) => Key value is “k”
- widget 3: (no key) => Key value is “1”
Next, dump the dataclass into a JSON file and upload it to Latch Data.