synbio

a DNA assembly library

https://github.com/lattice-automation/synbio

Science Score: 39.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.5%) to scientific vocabulary

Keywords

annotation dna-assembly picklist plasmids protocols robotics seqrecord
Last synced: 6 months ago · JSON representation

Repository

a DNA assembly library

Basic Info
Statistics
  • Stars: 22
  • Watchers: 7
  • Forks: 2
  • Open Issues: 5
  • Releases: 0
Topics
annotation dna-assembly picklist plasmids protocols robotics seqrecord
Created over 6 years ago · Last pushed 6 months ago
Metadata Files
Readme License

README.md

synbio

synbio is a library for designing and assembling DNA. Users can design plasmids or libraries and export multi-step build protocols. Input SeqRecords. Output assembly SeqRecords, protocols, plate maps, and robotic picklists.

Documentation is available at https://lattice-automation.github.io/synbio

Installation

bash pip install synbio

Models

synbio only expects the user to define their Design and Protocol. Several protocols are pre-defined.

Designs

All are in synbio.designs:

  • Combinatorial - list of SeqRecords to combinatorially anneal into all valid assemblies
  • CombinatorialBins - list of bins of SeqRecords for combinatorial assembly of records between bins
  • Plasmid - single list of SeqRecords to combine into a plasmid
  • PlasmidLibrary - list of list of SeqRecords to combine into plasmids

Protocols

All are in synbio.protocols:

Example

In the example below, the user specifies a combinatorial library design. All SeqRecords are tested for circularization with other SeqRecords. New and valid plasmids are assembled.

Behind the scenes, synbio is filtering all combinations of SeqRecords from the design that will circularize into valid plasmids (via circuits in a graph). After running the protocol, users can export plate maps (to_csv()), composite plasmids (to_fasta(), to_genbank()), and assembly instructions (to_txt(), to_picklists()).

```python """Example of a Combinatorial Golden Gate assembly with human and robot output protocols."""

import os from Bio.SeqIO import parse from synbio.designs import Combinatorial from synbio.protocols import GoldenGate

def readallrecords(): ggdir = os.path.join(".", "data", "goldengate") records = [] for file in os.listdir(ggdir): if file.endswith(".gb"): records.extend(parse(os.path.join(gg_dir, file), "genbank")) return records

create a combinatorial library design from all valid combinations

design = Combinatorial(readallrecords())

create a protocol using Golden Gate as the sole composite step and run

protocol = GoldenGate( name="Combinatorial Golden Gate", design=design, include=["KanR"], # only keep circularized plasmids with a KanR SeqFeature mincount=5, # only keep circularized plasmids from >=5 SeqRecords ) protocol.tofasta("plasmids.fasta") # export multi-FASTA protocol.tocsv("plates.csv") # export plate layouts protocol.totxt("protocol.txt") # export human protocol protocol.to_picklists("picklist", platform="hamilton") # export a hamilton picklist ```

plasmids.fasta:

```txt

J23100AB+B0032mBC+C0012mCD+B0015DE+DVK_AE GGAGTTGACGGCTAGCTCAGTCCTAGGTACAGTGCTAGCTACTAGAGTCACACAGGAAAG TACTAAATGATGGTGAATGTGAAACCAGTAACGTTATACGATGTCGCAGAGTATGCCGGT ... ```

plates.csv:

csv Setup Wells with volumes (uL) shown: Plate:1,1,2,3,4,5,6,7,8,9,10,11,12 A,B0015_DE(4),C0080_CD(18),R0010_AB(54),water(36) B,B0015_DE(160),DVK_AE(160),cre_CD(18),water(156) ...

protocol.txt:

txt Combinatorial GoldenGate: 1. Setup PCR plate with (volumes) shown: 1.1. Dilute plasmid DNA to 75 ng/µL in 'water' 1.2. Create 'assembly-mix' from 1:1 T4 Ligase Buffer (10X) and NEB Golden Gate Assembly Mix ...

picklist.gwl:

txt A;Plate:2;;;15;;2.0;;; D;Plate:3;;;80;;2.0;;; W;;;;;;;;; ...

Annotation

In addition to DNA assembly, synbio exposes a plasmid annotation function in synbio.features. An example below shows a SeqRecord being augmented with additional SeqFeatures from a curated database of common plasmid features.

```python from Bio.SeqIO import parse from synbio.features import annotate

record = next(parse("plasmid.fa", "fasta")) recordwithfeatures = annotate(record, identity=0.96) ```

Alternatives

This is a non-exhaustive list. Contact me for a comparison of these libraries/platforms and synbio.

  • Aquarium is an extensive library/application for LIMS, protocol definition/execution, and workflow design. A lab operating system.
  • Autoprotocol is a specification standard for experiments in the life sciences.
  • BioBricks is a general focus, web-based editor for describing experiments in Biology.
  • Biocoder is a C++ library with extensive protocol step definition capabilities.
  • Plateo is a python library for planning, running and checking laboratory experiments. Great for parsing and exporting plates and picklists form multiple formats.
  • pydna is a python DNA assembly simulation library with a human-readable description of clone and assembly strategies.

Owner

  • Name: Lattice Automation
  • Login: Lattice-Automation
  • Kind: organization
  • Location: Boston, MA

We make software solutions that enable synthetic biology workflows, pipelines, and best practices.

GitHub Events

Total
  • Issues event: 1
  • Watch event: 3
  • Issue comment event: 1
  • Member event: 2
  • Push event: 1
  • Pull request event: 1
  • Pull request review event: 1
Last Year
  • Issues event: 1
  • Watch event: 3
  • Issue comment event: 1
  • Member event: 2
  • Push event: 1
  • Pull request event: 1
  • Pull request review event: 1

Committers

Last synced: almost 3 years ago

All Time
  • Total Commits: 199
  • Total Committers: 2
  • Avg Commits per committer: 99.5
  • Development Distribution Score (DDS): 0.005
Top Committers
Name Email Commits
JJTimmons j****1@g****m 198
leshane l****k@g****m 1

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 12
  • Total pull requests: 4
  • Average time to close issues: 13 days
  • Average time to close pull requests: 7 days
  • Total issue authors: 2
  • Total pull request authors: 2
  • Average comments per issue: 0.42
  • Average comments per pull request: 2.75
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • jjtimmons (11)
  • guzmanvig (1)
  • GabrielleJohnston (1)
Pull Request Authors
  • digithed (4)
  • jjtimmons (1)
Top Labels
Issue Labels
enhancement (8) bug (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 297 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 54
  • Total maintainers: 2
pypi.org: synbio

Synbio design and build library

  • Versions: 54
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 297 Last month
Rankings
Dependent packages count: 10.0%
Downloads: 12.8%
Stargazers count: 15.2%
Average: 15.3%
Forks count: 16.8%
Dependent repos count: 21.7%
Maintainers (2)
Last synced: 6 months ago

Dependencies

requirements.txt pypi
  • biopython >=1.74.0
  • fuzzywuzzy *
  • networkx >=2.3.0
  • primers >=0.2.4
setup.py pypi