Source code for moclo.kits.ecoflex

# coding: utf-8
"""An implementation of the EcoFlex ToolKit for the Python MoClo library.

References:
    1. `Moore, S. J., Lai, H.-E., Kelwick, R. J. R., Chee, S. M., Bell, D. J.,
       Polizzi, K. M., Freemont, P. S. (2016).
       EcoFlex: A Multifunctional MoClo Kit for E. coli Synthetic Biology.
       ACS Synthetic Biology, 5(10), 1059–1069.
       <https://doi.org/10.1021/acssynbio.6b00031>`_
    2. `Weber, E., Engler, C., Gruetzner, R., Werner, S., Marillonnet, S. (2011).
       A Modular Cloning System for Standardized Assembly of Multigene Constructs.
       PLOS ONE, 6(2), e16765.
       <https://doi.org/10.1371/journal.pone.0016765>`_

"""

import six
from Bio.Restriction import BsmBI, BsaI

from ..core import parts, modules, vectors

__author__ = "Martin Larralde <martin.larralde@ens-paris-saclay.fr>"
__version__ = (
    __import__("pkg_resources")
    .resource_string(__name__, "ecoflex.version")
    .strip()
    .decode("ascii")
)


### VECTORS

# TODO
# class EcoFlexEntryVector(vectors.EntryVector):
#     """An EcoFlex MoClo entry vector.
#     """
#
#     cutter = NotImplemented


[docs]class EcoFlexCassetteVector(vectors.CassetteVector): """An EcoFlex MoClo cassette vector. """ cutter = BsaI
[docs] @staticmethod def structure(): # noqa: D105 return ( "CGTCTC" # BsmBI "N" "NNNN" # Cassette overhang (start) "(NNNN)" # Vector overhang (start) "(N" "GAGACC" # BsaI "N*?" # Placeholder sequence "GGTCTC" # BsaI "N)" "(NNNN)" # Vector overhang (end) "NNNN" # Cassette overhang (end) "N" "GAGACG" # BsmBI )
[docs]class EcoFlexDeviceVector(vectors.DeviceVector): """An EcoFlex MoClo device vector. """ cutter = BsmBI
[docs] @staticmethod def structure(): # noqa: D105 return ( "GGTCTC" # BsaI "N" "NNNN" # Device overhang (start) "(NNNN)" # Vector overhang (start) "(N" "GAGACG" # BsmBI "N*" # Placeholder sequence "CGTCTC" # BsmBI "N)" "(NNNN)" # Vector overhang (end) "NNNN" # Device overhang (end) "N" "GAGACC" # BsaI )
### MODULES # TODO # class EcoFlexProduct(modules.Product): # """An EcoFlex MoClo product. # """ # # cutter = BsaI
[docs]class EcoFlexEntry(modules.Entry): """An EcoFlex MoClo entry. EcoFlex entries are stored and shared as plasmids flanked by *BsaI* binding sites at both ends of the target sequence. """ cutter = BsaI
[docs]class EcoFlexCassette(modules.Cassette): """An EcoFlex MoClo cassette. """ cutter = BsmBI
[docs]class EcoFlexDevice(modules.Device): """An EcoFlex MoClo device. """ cutter = BsaI
### PARTS class EcoFlexPart(parts.AbstractPart): """An EcoFlex MoClo standard part. """ cutter = BsaI signature = NotImplemented
[docs]class EcoFlexPromoter(EcoFlexPart, EcoFlexEntry): """An EcoFlex MoClo promoter. .. image: promoter.svg :align: center """ signature = ("CTAT", "GTAC")
[docs]class EcoFlexRBS(EcoFlexPart, EcoFlexEntry): """An EcoFlex MoClo ribosome binding site. .. image:: rbs.svg :align: center Parts of this type contain a ribosome binding site (RBS). The last adenosine serves as the beginning of the start codon of the following CDS. """ signature = ("GTAC", "CATA")
[docs]class EcoFlexTagLinker(EcoFlexPart, EcoFlexEntry): """An EcoFlex MoClo tag linker. .. image:: linker.svg :align: center Parts of this type also contain a RBS, but they allow adding a N-terminal tag sequence before the CDS. """ signature = ("GTAC", "TAAA")
[docs]class EcoFlexTag(EcoFlexPart, EcoFlexEntry): """An EcoFlex MoClo N-terminal tag. .. image:: tag.svg :align: center Parts of this type typically contain tags that are added to the N-terminus of the translated protein, such as a *hexa histidine* or a *Strep(II)* tag. """ signature = ("TAAA", "CATA")
[docs]class EcoFlexCodingSequence(EcoFlexPart, EcoFlexEntry): """An EcoFlex MoClo coding sequence. .. image:: cds.svg :align: center Parts of this type contain a coding sequence (CDS), with the start codon beginning on the upstream overhang. Caution: Although the start codon is located on the upstream overhang, a STOP codon is expected to be found within this part target sequence before the downstream overhang. """ signature = ("CATA", "TCGA")
[docs]class EcoFlexTerminator(EcoFlexPart, EcoFlexEntry): """An EcoFlex MoClo terminator. .. image:: terminator.svg :align: center """ signature = ("TCGA", "TGTT")
class EcoFlexPromoterRBS(EcoFlexPart, EcoFlexEntry): """An EcoFlex Moclo promoter followed by an RBS. .. image:: promoter-rbs.svg :align: center These parts contain a promoter (official parts use the T7 consensus) followed by a ribosome binding site, and possibly a proteic tag. """ signature = ("CTAT", "CATA")