Cook amazing genetic parts using our cookbook. Recipes and synthetic biology tools to take your breath away.



friendzymes-cookbook Friendzymes Cookbook

Friendly tools for a friendly community. A collection of tutorials and genetic tools for synthetic biology.

This cookbook is a summarization of tutorials, ideas and tools that could help people beyond our own project. The repository is not only a collection of scripts for design automation but also as an Educational Tool, so newcomers in the Software Team, interested people from the Friendzymes, teams from iGEM/iGEM Design League, and others in the SynBio Community could all have a way to learn more about Poly, common problems, and how to design new tools!

Poly

Poly is a new organism engineering library, written in the Go programming language. This package is at the core of our development process. The team relies on poly when implementing CI/CD pipelines, and we continue to enhance the core library with new features. If you're interested, we highly recommend you to take a look in Poly repository, and see with your own eyes this incredible piece of software!

Actions

We are currently building a toolchain with the help of continuous integration utilities called GitHub Actions. These discrete, modular functions enable construction of larger, composite pipelines for reliable, affordable, and automated engineering of organisms. Part of the cookbook is a collection of data samples and configuration files for use with these actions, comprising:

codon-optimize is a Github Action that receives a path for an amino acid fasta file (faa), a codon table with the absolute frequency of each triplet in JSON format, and a path and name of an output file that will be written. This action will use the provided codon table to codon optimize a given sequence.

The cookbook contains starter materials for this action in data/codon-optimize.

dna-annotate is a Github Action that receives a path for an input directory, a regex pattern that should be used to filter genbank files or another interetsing file name pattern, and a directory where the output will be written. This action will use all this information to annotate problematic parts of a given sequence.

The cookbook contains starter materials for this action in data/dna-annotate.

dna-is-synthesizable is a Github Action that receives a path for an input directory, a regex pattern that should be used to filter genbank files or another interesting file name pattern, a directory where the output will be written, and also username, password, clientId and clientSecret from Integrated DNA Technologies (IDT) API. This action will use this information to annotate problematic parts of a given sequence.

The cookbook contains starter materials for this action in data/dna-is-synthesizable.

Notebooks

Part of the cookbook is a collection of Colab notebooks, currently comprising:

Poly is our key tool for the software. It was a planned decision to build workflows that integrate with Poly, to show ways to use the package, as well as create some new features; therefore, it is very important that you understand how the Poly package works and what its structure is in general before you begin manipulating it. Thus, we created this brief overview of Poly, its sub-packages, and a collection of use cases. We strongly recommend that you do the tutorials in the order they appear.

A very common task for the design of parts is Codon Optimization, so here we will show how you can create customized Codon Tables and how you can use this to do codon optimization of a given Coding Sequence (CDS).

Have you designed your sequence? Now it is time to remove small forbidden parts that can hinder you, not only when sequencing (e.g. hairpins, repetitive regions), but also when cloning (e.g. restriction binding sites). What this tutorial shows is the automatic annotation of these problems. It will give you a genbank file (with these annotations attached) that you can drop into your favorite viewer, like Benchling or Snapgene.

In this notebook, you will input your CDS sequence(s) and receive your CDS corrected without the problematic sequences. This is done by replacing the codons with synonymous ones, thus keeping the same amino acid sequence at the end. Kind reminder that this tutorial was NOT written for non-coding sequences such as promoters, rbs, and terminators. If you have found problematic sequences in it, review case by case and be careful not to lose biological meaning.

How about designing your final plasmid without worrying about each separate part and using a script to add the restriction binding sites, spacer, and overhangs? That’s what you find here!

In this notebook, you will run a simulation of a Golden Gate reaction and see if everything is theoretically acceptable before physically synthesizing your parts.

If you have some feature that you think will make this cookbook better, please feel free to create an issue.


Owner
iGEM Software 2021
Github for the 2021 iGEM Competition for Software Track teams and for teams submitting Software Tools.
iGEM Software 2021
Similar Resources

This tutorial walks you through using the Cloud Functions minimal instances feature to mitigate cold starts.

This tutorial walks you through using the Cloud Functions minimal instances feature to mitigate cold starts.

Tutorial This tutorial walks you through using the Cloud Functions minimal instances feature to mitigate cold starts. Let’s take a deeper look at min

Jun 1, 2022

Boilerplate for writing Go applications without framework using hexagonal application development approach

Boilerplate for writing Go applications without framework using hexagonal application development approach

Boilerplate for writing Go applications without framework using hexagonal application development approach

Dec 2, 2022

An e-book on building network applications using golang

Network programming with Go

Dec 7, 2021

Program that checks if the switch OLED is available on Nintendo using ChromeDP.

Nintendo Switch OLED stock checker Program that checks if the switch OLED is available on Nintendo using ChromeDP. It will check the pages for the Add

Nov 29, 2021

Check-location - A golang service to check user location using their IP address

this is a golang service to check user location using their IP address. The purp

Aug 29, 2022

A demo of using Go channels as a function composition technique.

Channels Example This is a Go program containing functions that consume and produce channels. I think this is potentially a nicer API shape than e.g.

Jan 16, 2022

Tool (in Go!) to compare and diff container and host environments. Dinosaur fun!

Compe compare environments and other things between containers, and host 📦️ This is a simple tool to compare environments and other features of conta

Sep 24, 2022

Go Cheat Sheet - An overview of Go syntax and features.

Go Cheat Sheet - An overview of Go syntax and features.

Dec 31, 2022

An online book focusing on Go syntax/semantics and runtime related things

Go 101 is a book focusing on Go syntax/semantics and all kinds of runtime related things. It tries to help gophers gain a deep and thorough understanding of Go. This book also collects many details of Go and in Go programming. The book is expected to be helpful for both beginner and experienced Go programmers.

Dec 29, 2022
Go from the beginning - A book on Go, contains fundamentals but also recipes

Go from the beginning Welcome to Go from the beginning, a free book containing 25+ lessons that will take you from "zero to hero" in the amazing langu

Dec 28, 2022
This project is a collection of many of the basic tools used on Unix-like operating systems implemented in Go as a learning exercize.

GoUnix This project is a collection of many of the basic tools used on Unix-like operating systems implemented in Go as a learning exercize. The idea

Jul 21, 2022
The Babylon project is a re-creation of my original PBX network integration tools from the early 1990's, in go.

What is Babylon? The Babylon project is a re-creation of many of my original PBX network integration tools from the early 1990's, in go. Many of these

Jan 23, 2022
Assert your Go code is inlined and bounds-check eliminated

gcassert gcassert is a program for making assertions about compiler decisions in Golang programs, via inline comment directives like //gcassert:inline

Oct 27, 2022
This is an example of a keep-it-simple directory layout for Go projects that was created using DDD principles, please copy and share if you like it.

DDD Go Template This project was created to illustrate a great architectural structure I developed together with @fabiorodrigues in the period I was w

Dec 5, 2022
💯 Materials to help you rock your next coding interview

Tech Interview Handbook Credits: Illustration by @leftaligned Read on the website Black Lives Matter. Support the Equal Justice Initiative What is thi

Jan 4, 2023
Publish posts to your personal facebook profile.

FB Post Publish posts to your personal facebook profile. Usage Get list of codes for 2FA. then copy them and paste them in txt/codes.txt use the comma

Jan 13, 2022
Easily kick-start your python project with very opinionated best practices.

Pyproject Easily kickstart your Python project with very opionionated best practices. Manage your project using poetry https://python-poetry.org/ Add

Jan 24, 2022
VHDL Simulator, code VHDL in your browser! 🤖
VHDL Simulator, code VHDL in your browser! 🤖

VHDL Runner ?? VHDL Simulator, code VHDL in your browser! ?? Usage Go to https://vhdl.mateuszwozniak.com/ Next, type some VHDL code, with appropriate

Feb 6, 2022
roguelike tutorial in Go using the framework gruid

Gruid Go Roguelike Tutorial This tutorial follows the overall structure of the TCOD Python Tutorial, but makes use of the Go programming language and

Jul 25, 2022