ConStrain logo

ConStrain: Literate programming can streamline bioengineering workflows

https://badge.fury.io/py/ConStrain.svg https://github.com/hiyama341/ConStrain/actions/workflows/main.yml/badge.svg Documentation Status https://img.shields.io/github/license/hiyama341/ConStrain Supported Python Versions https://codecov.io/gh/hiyama341/ConStrain/branch/main/graph/badge.svg?token=P4457QACUY https://img.shields.io/badge/code%20style-black-black

What is ConStrain?

ConStrain is an easy-to-use python package with functions that can be used in literate programming to simulate steps of a strain construction cycle from generating genetic parts, to designing a combinatorial library along with instructions for the assembly. A fully integrated LIMS system is presented to keep track of samples and allocation through both a commercial Benchling API and a low-level CSV file database.

Here, we demonstrate the use of ConStrain in a complex machine learning-guided metabolic engineering task. We envision that literate programming for biology can be adapted for any experimental workflow and be mixed and matched for the benefit of the user. As this tool is built to be flexible through its open-source Python platform, future repetitive tasks can be automated and thus increase the speed at which we engineer biology.

Curious about how you can build strains easier and faster? Head over to our Google Colab notebooks and give it a try.

Please cite our paper (link tba) if you’ve used ConStrain in a scientific publication.

Features

  • Combinatorial library generation

  • HT cloning and transformation workflows

  • Flowbot One instructions

  • CSV-based LIMS system as well as integration to Benchling

  • Genotyping of microbial strains

  • Advanced Machine Learning of biological datasets with the AutoML H2O

  • Workflows for selecting enzyme homologs

  • Promoter selection workflows from RNA-seq datasets

  • Data analysis of large LC-MS datasets along with workflows for analysis

Overview of ConStrain's features throughout the DBTL cycle.

Getting started

To get started with making microbial strains in an HT manner please follow the steps below:

  1. Install ConStrain. You will find the necessary information below for installation.

  2. Check out our notebooks for inspiration to make HT strain construction with ConStrain.

  3. You can start making your own workflows by importing ConStrain into either Google colab or Jupyter lab/notebooks.

Colab notebooks

As a proof of concept we show how ConStrain and literate programming can be used to streamline bioengineering workflows. These workflows should serve as a guide or a help to build your own workflows and thereby harnessing the power of literate programming with ConStrain.

Specifically, in this study we present how ConStrain and literate programming to build simulation-guided, iterative, and evolution-guided laboratory workflows for optimizing strictosidine production in yeast.

Below you can find all the notebooks developed in this work. Just click the Google colab badge to start the workflows.

First DBTL cycle

DESIGN:

  1. Describes how we can automatically fetch homologs from NCBI from a query in a standardizable and repeatable way Notebook 00.

  2. Describes how promoters can be selected from RNAseq data and fetched from online database with various quality measurements implemented Notebook 01.

  3. Describes how a combinatorial library can be generated with the DesignAssembly class along with robot executable intructions Notebook 02.

BUILD:

  1. Describes the assembly of a CRISPR plasmid with USER cloning Notebook 03.

  2. Describes the construction of the background strain by K/O of G8H and CPR Notebook 04.

  3. Shows how the first combinatorial library was generated for 1280 possible combinations Notebook 05.

TEST:

  1. Describes data processing of LC-MS data and genotyping of the generated strains Notebook 06.

LEARN:

  1. Describes how we use AutoML to predict the best combinations for a targeted second round of library construction Notebook 07.

Second DBTL cycle

DESIGN:

  1. Shows how results from the ML can be translated into making a target library of strains Notebook 08.

BUILD:

  1. Shows the construction of a targeted library of strains Notebook 09.

TEST:

  1. Describes the data processing of LC-MS data like in notebook 7 Notebook 10.

LEARN:

  1. Second ML cycle of ML showing how the model increased performance and saturation of best performing strains Notebook 11.

Installation

Use pip to install ConStrain from PyPI.

$ pip install constrain

If you want to develop or if you cloned the repository from our GitHub you can install ConStrain in the following way.

$ pip install -e <path-to-constrain-repo>

You might need to run these commands with administrative privileges if you’re not using a virtual environment (using sudo for example). Please check the documentation for further details.

Documentation and Examples

Documentation is available on through numerous Google Colab notebooks with examples on how to use ConStrain and how we use these notebooks for strain construnction. The Colab notebooks can be found here constrain.notebooks.

Contributions

Contributions are very welcome! Check our guidelines for instructions how to contribute.

License

  • Free software: MIT license

Credits

  • ConStrains logo was made by Jonas Krogh Fischer. Check out his website.