Skip to content

Pioneer-Research-Labs/ngs_library_prep

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

215 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pioneer Labs    PyLabRobot

Automated Illumina NGS Library Prep with PyLabRobot

This repository contains scripts for running automated Illumina NGS library preparation on a Hamilton STARlet liquid handler using PyLabRobot. This method originally was designed for the Illumina NGS Library Prep workflow at Pioneer Labs.

The full workflow includes:

  • Sample consolidation — consolidating samples across 96-well plates
  • Adapter PCR — running adapter PCR with the same primers across all samples
  • Index PCR — running index PCR with different primers per sample

Each step can also be run independently.

Method Overview

Method Overview

Recommended workflow

  1. Read docs/LPM_USERGUIDE.md to learn more about the workflow
  2. Follow installation instructions below to set up your environment and install PyLabRobot
  3. Execute method

Prerequisites

  • Hardware: Hamilton STARlet liquid handler (required for real runs; simulation mode is available without hardware — see methods/startup.py)
  • Python: 3.12
  • PyLabRobot: Version 0.2 as of March, 2026 (see PyLabRobot Resources below)
  • Package manager: conda (recommended) or pip/venv
  • Slack workspace: optional, for run notifications

Installation

1. Clone the repository

git clone https://github.com/your-org/ngs-library-prep.git
cd ngs-library-prep

2. Set up the environment

Choose either conda (recommended) or venv.

Option A — conda (environment.yml)

conda env create -f environment.yml
conda activate ngs_library_prep

Option B — venv (requirements.txt)

python3 -m venv .venv
source .venv/bin/activate        # macOS/Linux
# .venv\Scripts\activate         # Windows
pip install -r requirements.txt

3. Clone PyLabRobot (following User Guide on PyLabRobot.org) inside the ngs_library_prep repo

git clone https://github.com/pylabrobot/pylabrobot.git
cd pylabrobot
pip install -e '.[dev]'

Scripts

Notebook When to use
scripts/library_prep.ipynb Full workflow: lysis resuspension → sample consolidation → adapter PCR setup
scripts/adapter_to_index_PCR.ipynb Mid-workflow entry: adapter PCR → optional Exo1 dispense → index PCR

Repository Structure

ngs_library_prep/
├── docs/                        # Documentation and user guides
│   ├── LPM_USERGUIDE.md         # Step-by-step user guide for the full workflow
│   └── imgs/                    # Images referenced by the user guide
├── methods/                     # Core Python functions for each workflow step
│   ├── library_prep.py
│   └── startup.py
├── resources/                   # Custom labware definitions
│   ├── __init__.py
│   └── custom_labware.py
├── scripts/                     # Jupyter notebooks for executing workflows on the robot
│   ├── library_prep.ipynb
│   └── adapter_to_index_PCR.ipynb
├── utils/                       # Shared utility helpers
│   ├── labware_utils.py
│   └── robot_utils.py
├── worklists/                   # Example input worklists
│   └── example_worklist.csv
├── environment.yml              # Conda environment spec
├── requirements.txt             # pip/venv dependency list
└── example.config.json          # Example configuration file for Slack API integration

Resources for Pioneer Labs

Resources for PyLabRobot

Documentation

docs.pylabrobot.org

Support

About

Code for running Illumina Library Prep on Hamilton STARlet with PyLabRobot, originally built for in-house use at Pioneer Labs (Emeryville, CA USA)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors