🪵 Latch Changelog — December 2024
<aside>
💡
Highlight of the Month: We launched our brand-new landing page!
</aside>
https://latch.bio/
- Snakemake:
- Simplified storage handling by removing the need for
storage.latch
structure in Snakemake workflows.
- Plots
- New default notebook connection behavior:
- Previously, once a machine is allocated and spun up for a notebook, the notebook will enter a “Connected” stage and then auto-run all cells from top to bottom. The auto-running behavior can be confusing when you deliver the notebook to a scientist as an application because the widgets and plots are still interactive.
- Now, the notebook will only enter the “Connected” stage when it has finished auto-running all cells from top to bottom. This ensures that scientists can only interact with a notebook when it’s fully set up.
- Bug fixes:
- “Clear all widgets, tables, plots” button no longer disconnects notebook session.
- Working “+ Plot” icon on Analysis Cells that already has plots displayed
- Cleaner outline: The sidebar is now collapsible based on the markdown headers in Python cells.
- Add a “Shape by column” option to the no-code plot configuration.
- Analysis packages for kit providers:
- Analysis package versioning
- Ability to delete package
- Packages — Add columns/ metadata to the packages page
- Pods:
- Added G6e GPU instances support for both pods and workflows.
- Improved speed performance for the following common usage patterns with
/ldata
FUSE
- Reading files with
pandas
(pd.read_csv)
- Creating directories (os.makedirs)
- Save to a CSV from pandas
🪵 Latch Changelog — November 2024
<aside>
💡
Highlight of the month: By applying learnings from our Nextflow integration, we are currently developing a second version of our Snakemake integration 🐍. This version allows users to specify custom output directories, integrate with Latch Registry, and more. Read about it here.
</aside>
-
📁 Registry
- Optimized search for large Registry tables: As number of biological entities grow in your organization, your Registry table can become very large, spanning tens of thousands of rows. We optimized the search functionality, so you can now enter name and retrieve records almost instantly.
-
🪣 Data
- Improved loading UX for copying large files: Added indicators or when large files are being copied within a bucket or cross-cloud between a GCP and S3 bucket.
-
🚴♀️ Workflows
- Objective FS stable release: One of the main requirements of Nextflow workflows is having a shared, POSIX-compliant file system among all workflow tasks. All of the input files are downloaded and staged into a “workdir,” a mounted shared filesystem directory. The workflow tasks then access these files as part of their computation and write intermediate or output files back to the workdir.
- In addition to EFS, which was released a few months ago, we’re releasing ObjectiveFS.
- What is ObjectiveFS?
Shared Storage - LatchBio
-
Execution filters: Added execution filters to both the “All Executions” page and the workflow-specific executions page.
-
Usage report: Released per-process Nextflow usage report to help developers more easily identify bottlenecks and optimize resources

-
We also added a similar usage report for Snakemake workflows on Latch!


- Multiple Nextflow entrypoints: Users can now register a Nextflow pipeline with multiple entrypoints, each corresponding to a different UI on Latch.
- GPU storage: Increased storage for GPU tasks on all workflows
- Support for new Nextflow versions: Released a major version of
latch
(≥3.X) which now supports the latest version of Nextflow (>=24.04.2) to accomondate newer Nextflow pipelines
-
〽️ Plots
- Displaying
matplotlib
figures: You no longer need to save matplotlib
and seaborn
figures as images on LData before they can be displayed. Simply save the figure into a variable and click on it to see the image in the output of a cell.
Add Custom Plots from Any Library - LatchBio
- New Plot views in the output of a Python cell: If a Python cell outputs dataframes, you can now create new interactive, no-code Plot “views” of these dataframes.
merge-cells.mp4
-
Streaming logs while cell is running: Use w_text_outupt
in conjunction with submit_widget_state
to print out progress logs as a lengthy cell is executing.
-
UI/UX improvements:
- Enabled
Tab
for autocompletion instead of “Enter”
- Displayed hours and credits used past 7 days for every Plot notebook
- Added indicator to display whether a plot is actively being used
-
New Prism Plots theme: For scientists who are familiar with GraphPad Prism, we provide an out-of-the-box Prism-inspired theme.
graphpad-inspired (1).mp4
Appearance - LatchBio
-
Plots Artifacts API improvements: From a workflow, you can call the Plots Artifacts API to pre-populate a Plot notebook based on a template and display a link to it on LData.
plot-artifacts-2 (1).mp4
-
Caching for Latch Data downloads: Users can now add cache=True
to LPath.download()
to prevent data re-downloads.
-
Performance improvements to PlotsAI: Upgraded PlotsAI to use Claude Sonnet 3.5 and prompt engineered it to work with common biological tasks. You can read our blog post on how PlotsAI was used by scientists to ask questions about single-cell datasets below!
https://blog.latch.bio/p/ask-questions-about-your-single-cell
-
🔐 GxP Compliance
- Latch is now GxP compliant! This milestone ensures that Latch adheres to stringent regulatory standards and best practices for quality assurance, enabling life sciences teams working in regulated environments (such as clinical, pharmaceutical, or biotechnology settings) to confidently use Latch for critical workflows. Our GxP compliance encompasses a range of principles and guidelines—including Good Laboratory Practice (GLP), Good Manufacturing Practice (GMP), and Good Clinical Practice (GCP)—to ensure data integrity, validated systems, secure data transfer, and robust audit trails. By meeting these regulatory requirements, Latch empowers organizations to better align their data management and pipeline execution with global quality standards.
-
🔧 Stability improvements & bug fixes:
- Analysis packages: Resolved an issue requiring page refreshes for new Analysis Packages to appear on the Packages page.
- Workflow shipping: Corrected a bug preventing workflows from being shipped via customer packages.
- Database constraints: Addressed internal errors caused by insufficient database capacity to store large widget lengths (e.g., selectors with 60,000+ gene options).
- Cell execution navigation: Fixed a bug that prevented the interface from navigating users to the correct location after cell execution.
- Dormant plots: Ensured the first cell runs properly when plots start in a dormant state.
- Email verification: Improved the email verification flow to function reliably.
- Registry page refresh: Fixed a bug requiring users to refresh the page after creating new columns in the Registry.
- Forked execution inputs: Restored visibility of input fields in forked execution scenarios.
- Empty running notebook cells: Resolved an issue where notebooks appeared empty despite cells running.
- New notebook creation from templates: Fixed a bug preventing the creation of new notebooks from templates.
- Workflow version visibility: Restricted workflow version visibility to only those subscribed to them.
- Invalid widgets in rows: Handled forbidden widgets (e.g., row widgets #1–2) gracefully to prevent errors.
- Auto re-run on typing: Stopped cells from re-running on every character typed within a field, allowing users to type freely.
latch cp
command with GCP bucket: Fixed an issue where using latch cp
from an LData folder to a mounted GCP bucket failed.
- Benchling registry sync: Ensured a single bad API key no longer blocks all Benchling Registry data syncs.
- Multi-select widget updates: Prevented unnecessary cell re-runs when removing items from a multi-select widget until the user finishes interacting with it.