The MoClo system is a standard for molecular cloning that relies on the Golden Gate Assembly technique.
The MoClo standard was first presented in the Weber et al., 2011 [21364738] paper, as an attempt to standardize the process of assembling complex DNA molecules from smaller genetic elements. It is inspired by two previous standards:
The MoClo standard enhances both of these assembly standards by relying on the Golden Gate Assembly, which allows single-step assembly of an arbitrary number of modules into a vector. Furthermore, MoClo parts are flanked by stereotypical overhangs, enforcing a particular assembly order, therefore allowing only the desired contruct to be obtained.
Restriction enzymes are enzymes that are able to cut DNA at or near specific recognition sites. Among those enzymes, Type IIS enzymes cut DNA out of the sequence they recognize, at a defined distance. The cut can produce cohesive ends, which can then recombine with other sequences sharing the complementary cohesive ends, or blunt ends, which cannot recombine. The design of the cohesive ends is of great importance when using Type II-S enzymes to do molecular cloning.
The Golden Gate Assembly relies on Type II-S enzymes to assemble several DNA sequences. The sequences are first cut by restriction enzymes, and then assembled together using a T4 DNA ligase. These two steps can be repeated in a single reaction tube using a thermo cycler, as the two enzymes typically do not work at the same temperature. As standard Type II-S enzymes, such as BsaI or BsmBI, create a 4-base-long cohesive end when cutting the DNA, there can be as much as 256 fragments combined together in a deterministic way in a single assembly, although in vivo the chemical properties of the nucleotides will most likely prevent assemblies that large to succeed.
Example GoldenGate assembly of two modules in a vector using BsaI.
The MoClo system combines the idea of a standard part format from the BioBrick standard, with the Golden Gate assembly protocol, allowing several modules to be assembled in a vector at the same time.
MoClo modules and vectors are divided into several levels, describing their structural and transcriptional features:
Furthermore, the enzyme used during the Golden Gate Assembly depends on the assembly level. Alternating between the two enzymes makes it possible for an infinite number of genes to be inserted in the same plasmid, although biological limits are reached in vivo.
Although transcription units can be assembled in any possible order in their destination vectors, level 0 modules must be assembled in a specific order to obtain a functional genetic construct. In order to enforce the assembly order, parts are flanked by fusion sites with standard sequences, which are unique to the type of the part. A valid level 1 module is obtained by assembling a part of each type into the destination vector.
Once the Golden Gate Assembly is finished, the obtained constructs can be amplified using a bacterial host. After transformation, bacteria are selected using two different factors:
This double screening makes it possible to select only the bacterias that contain the expected construct, discarding the others, and retrieving the assembled plasmid through a miniprep.
[8855278] | Rebatchouk, D, N Daraselia, and J O Narita. ‘NOMAD: A Versatile Strategy for in Vitro DNA Manipulation Applied to Promoter Analysis and Vector Design.’ Proceedings of the National Academy of Sciences of the United States of America 93, no. 20 (1 October 1996): 10891–96. pmid:8855278 |
[18410688] | Shetty, Reshma P, Drew Endy, and Thomas F Knight. ‘Engineering BioBrick Vectors from BioBrick Parts’. Journal of Biological Engineering 2 (14 April 2008): 5. doi:10.1186/1754-1611-2-5 |
[21364738] | Weber, Ernst, Carola Engler, Ramona Gruetzner, Stefan Werner, and Sylvestre Marillonnet. ‘A Modular Cloning System for Standardized Assembly of Multigene Constructs’. PLOS ONE 6, no. 2 (18 February 2011): e16765. doi:10.1371/journal.pone.0016765 |
This section introduces the theory that was developed to support the software implementation of the modular cloning logic. It introduces mathematical definitions of biological concepts, relying on particular on formal language theory.
Definition
A genetic alphabet \(\langle \Sigma,\sim \rangle\) is an algebraic structure on an alphabet \(\Sigma\) with a unary operation \(\sim\) verifying the following properties:
Note
To stay consistent with the biology lexicon, we will be referring to a word over a genetic alphabet as a sequence, only explicitly naming a mathematical sequence when needed to.
Examples
Definition
A circular word over an alphabet \(\Sigma\) is a finite word with no end. It can be noted \(w^{(c)}\), where \(w\) is a finite word of \(\Sigma^\star\).
Definition: Cardinality
Given a circular sequence \(s^{(c)}\), the cardinal of \(s^{(c)}\), noted \(\lvert s^{(c)} \rvert\), is defined as:
Definition: Equality
Given two sequences \(a^{(c)}\) and \(b^{(c)}\) with
let the \(=\) relation be defined as:
where \(\sigma\) is the circular shift defined as:
Property
\(=\) is a relation of equivalence over \(\Sigma^{(c)}\)
Demonstration
Given the set of circular sequences \(\Sigma^{(c)}\) using an alphabet \(\Sigma\):
Reflexivity:
Symetry: \(\forall s_1^{(c)}, s_2^{(c)} \in \Sigma^{(c)} \times \Sigma^{(c)}\):
Transitivity: \(\forall s_1, s_2, s_3 \in \Sigma^{(c)} \times \Sigma^{(c)} \times \Sigma^{(c)}\)
Definition: Automaton acception
Given a finite automaton \(A\) over an alphabet \(\Sigma\), and \(u^{(c)}\) a sequence of \(\Sigma^{(c)}\), \(A\) accepts \(u^{(c)}\) iff there exist a sequence \(v\) of \(\Sigma^\star\) such that:
Definition
Given a genetic alphabet \(\langle \Sigma, \sim \rangle\), a restriction enzyme \(e\) can be defined as a tuple \((S, n, k)\) where:
Note
This definition only covers single-cut restriction enzymes found in vivo, but we don’t need to cover the case of double-cut restriction enzymes since they are not used in modular cloning.
Definition: Enzyme types
A restriction enzyme \((S, n, k)\) is:
Definition
An assembly is a function of \(\mathcal{P}(\Sigma^\star \cup \Sigma^{(c)}) \times \mathcal{P}(E)\) to \(\mathcal{P}(\Sigma^\star \cup \Sigma^{(c)})\), which to a set of distinct sequences \(\{d_1, \dots, d_m\}\) and a set of restriction enzymes \(\{e_1, \dots, e_n\}\) associates the set of digested/ligated sequences \(A = \{a_1, \dots a_k\}\).
The notation for an assembly is:
Definition
Given a genetic alphabet \(\langle \Sigma, \sim \rangle\), a Modular Cloning System \(S\) is defined as a mathematical sequence
where:
Definition: \(k\)-cyclicity
A Modular Cloning System \((M_l, V_l, e_l)_ {l \ge -1}\) is said to be \(k\)-cyclic after a level \(\lambda\) if:
Definition: \(\lambda\)-limit
A Modular Cloning System \((M_l, V_l, e_l)_ {l \ge -1}\) is said to be \(\lambda\)-limited if:
Definition
For a given level \(l\), \(M_l\) is defined as the set of modules \(m \in \Sigma^\star \cup \Sigma^{(c)}\) for which:
with:
Note
This decomposition is called the canonic module decomposition, where:
Property
\(\forall \langle \Sigma, \sim \rangle\), \(\forall l \ge -1\), \(\forall e_l \subset E\):
Demonstration
Let there be a genetic alphabet \(\langle \Sigma, \sim \rangle\) and a Modular Cloning System \((M_l, V_l, e_l)_ {l \ge -1}\) over it.
\(\forall l \ge -1\), the regular expression:
where:
matches a sequence \(m \in \Sigma^\star \cup \Sigma^{(c)}\) if and only if \(m \in M_l\).
\(M_l\) is regular, so given Kleene’s Theorem, \(M_l\) is rational.
Definition
For a given level \(l\), \(V_l\) is defined as the set of vectors \(v \in \Sigma^{(c)}\) for which:
with:
Note
This decomposition is called the canonic vector decomposition, where:
By definition, every valid level \(l\) module and vector only have a single canonic decomposition where they have unique \(o_5\) and \(o_3\) overhangs. As such, let the function \(up\) (resp. \(down\)) be defined as the function which:
Definition: Standard MoClo Assembly
Given an assembly of level \(l\), where \(m_1, \dots, m_k \in M_l^k, v \in V_l\):
and the partial order \(le\) over \(S = \{m_1, \dots, m_k\}\) defined as:
then a chain \(\langle S\prime, \le \rangle \subset \langle S, \le \rangle\) is an insert if:
\(a\) is:
Corollary
If an assembly \(a\) is complete, then there exist a permutation \(\pi\) of \([\![1, k]\!]\) such that:
and:
Property: Uniqueness of the cohesive ends
If an assembly
is unambiguous and complete, then \(\forall i \in [\![1, k]\!]\),
Demonstration
Let there be an unambiguous complete assembly
\(up(m_i) \ne down(m_i)\)
Let’s suppose that \(\exists i \in [\![1, k]\!]\) such that
then \(\langle \{m_1, \dots, m_k\} \backslash \{m_i\}, \le \rangle\) is also an insert, which cannot be since \(a\) is complete.
\(up(m_i) \ne up(m_j)\)
Let’s suppose that \(\exists (i, j) \in [\![1, k]\!]^2\) such that
Since the \(a\) is complete, there exists \(pi\) such that
and since \(a\) is unambiguous, \(\langle \{m_1, \dots, m_k\}, \le \rangle\) is the only insert.
\(down(m_i) \ne down(m_j)\)
TODO
Property: Uniqueness of the assembled plasmid
If an assembly
is unambiguous, then
with
(\(n \le k\), \(n = k\) if \(a\) is complete).
Demonstration
TODO
Definition
Given a genetic alphabet \(\langle \Sigma, \sim \rangle\), a Typed Modular Cloning System \(S\) is defined as a mathematical sequence
where:
Definition
\(\forall l \ge -1\), we define types using their signatures (i.e. the sets of upstream and downstream overhangs of elements using this type):
Corollary
\(\forall l \ge -1\),
Property: Structural equivalence of module types
Given a valid (resp. unambiguous) (resp. complete) assembly
then if there exist \(t \in \mathcal{M}_l\) such that
then \(\forall m_1\prime \in t(M_l)\),
is valid (resp. unambiguous) (resp. complete).
The moclo
module is designed to be modular, and as such, you only need to
install whatever functionalities you are willing to use. Packages are distributed
on PyPI, and it is advised to use pip
to install them. See the
pip documentation to get pip if
it is not installed on your system.
Commands below use pip
in user mode: the packages will be installed in a
user-dependent location, and no additional permissions are needed. If for some
reason you need a system-wide setup, remove the --user
flag. Installing in
user-mode should be prefered to avoid dependency issues, in particular when on
an OS which provides a package manager (such as aptitude
on Debian, or even
homebrew
on Mac OSX).
pip
To download the latest release from the Python Package Index:
$ pip install --user moclo moclo-ytk moclo-cidar
pip
To download the development version from the source repository, you can specify a subfolder in the installation command and directly install it:
$ pip install --user git+https://github.com/althonos/moclo#subdirectory=moclo
$ pip install --user git+https://github.com/althonos/moclo#subdirectory=moclo-ytk
$ pip install --user git+https://github.com/althonos/moclo#subdirectory=moclo-cidar
Check the CI build is passing, or else you may be installing a broken version of the library !
This page contains examples in Python code, generated from Jupyter notebooks with nbsphinx.
In this example, we will be using the moclo
library as well as the moclo-ytk
extension kit to generate the pre-assembled YTK integration vector (pYTK096) from the available YTK parts, as described in the *Lee et al.* paper
The list of parts, as well as the vector structure, can be found in the Supporting Table S1 from the Lee et al. supplementary materials:
We’ll be loading each of the desired parts from the moclo-ytk
registry. It is generated from the GenBank distributed with the YTK kits. They can be found on the AddGene YTK page.
[2]:
from moclo.registry.ytk import YTKRegistry
registry = YTKRegistry()
vector = registry['pYTK090'].entity # Part 8a
modules = [registry['pYTK008'].entity, # Part 1
registry['pYTK047'].entity, # Part 234r
registry['pYTK073'].entity, # Part 5
registry['pYTK074'].entity, # Part 6
registry['pYTK086'].entity, # Part 7
registry['pYTK092'].entity] # Part 8b
We can use dna_features_viewer
to visualize your records before proceeding (for readability purposes, we’ll show the records as linear although they are plasmids):
[3]:
import itertools
import dna_features_viewer as dfv
import matplotlib.pyplot as plt
translator = dfv.BiopythonTranslator([lambda f: f.type != 'source'])
plt.figure(1, figsize=(24, 10))
for index, entity in enumerate(itertools.chain(modules, [vector])):
ax = plt.subplot(2, 4, index + 1)
translator.translate_record(entity.record).plot(ax)
plt.title(entity.record.id)
plt.show()
We use the Part 8a
as our base assembly vector, and then assemble all the other parts into that vector:
[4]:
assembly = vector.assemble(*modules)
When creating an assembly, corresponding regions of the obtained sequence will be annotated with the ID of the sequence they come from.
[6]:
vec_translator = IntegrationVectorTranslator([lambda f: f.type == 'source'])
vec_translator.translate_record(assembly, dfv.CircularGraphicRecord).plot(figure_width=8)
plt.show()
Hopefully the obtained assembly should look like the pYTK096
plasmid, distributed with the official YTK parts:
[7]:
plt.figure(3, figsize=(24, 10))
ax = plt.subplot(2, 1, 1)
translator.translate_record(assembly).plot(ax)
plt.title('Assembly')
ax = plt.subplot(2, 1, 2)
translator.translate_record(registry['pYTK096'].entity.record).plot(ax)
plt.title('Expected')
plt.show()
[ ]:
moclo.record.
CircularRecord
(SeqRecord)[source]¶A derived SeqRecord
that contains a circular DNA sequence.
It handles the in
operator as expected, and removes the implementation
of the +
operator since circular DNA sequence do not have an end to
append more nucleotides to. In addition, it overloads the >>
and <<
operators to allow rotating the sequence and its annotations, effectively
changing the 0 position.
See also
Bio.SeqRecord.SeqRecord
documentation on the Biopython wiki.
__add__
(other)[source]¶Add another sequence or string to this sequence.
Since adding an arbitrary sequence to a plasmid is ambiguous (there is
no sequence end), trying to add a sequence to a CircularRecord
will raise a TypeError
.
__getitem__
(index)[source]¶Return a sub-sequence or an individual letter.
The sub-sequence is always returned as a SeqRecord
, since it is
probably not circular anymore.
__init__
(seq, id='<unknown id>', name='<unknown name>', description='<unknown description>', dbxrefs=None, features=None, annotations=None, letter_annotations=None)[source]¶Create a new CircularRecord
instance.
If given a SeqRecord
as the first argument, it will simply copy all
attributes of the record. This allows using Bio.SeqIO.read
to open
records, then loading them into a CircularRecord
.
Moclo module classes.
A module is a sequence of DNA that contains a sequence of interest, such as a promoter, a CDS, a protein binding site, etc., organised in a way it can be combined to other modules to create an assembly. This involves flanking that target sequence with Type IIS restriction sites, which depend on the level of the module, as well as the chosen MoClo protocol.
moclo.core.modules.
AbstractModule
(object)[source]¶An abstract modular cloning module.
cutter
¶the enzyme used to cut the target sequence from the backbone plasmid during Golden Gate assembly.
Type: | RestrictionType |
---|
__init__
(record)¶Initialize self. See help(type(self)) for accurate signature.
is_valid
()¶Check if the wrapped record follows the required class structure.
Returns: | True if the record is valid, False otherwise. |
---|---|
Return type: | bool |
overhang_end
()[source]¶Get the downstream overhang of the target sequence.
Returns: | the downstream overhang. |
---|---|
Return type: | Seq |
overhang_start
()[source]¶Get the upstream overhang of the target sequence.
Returns: | the downstream overhang. |
---|---|
Return type: | Seq |
structure
()[source]¶Get the module structure, as a DNA regex pattern.
Warning
If overloading this method, the returned pattern must include 3 capture groups to capture the following features:
target_sequence
()[source]¶Get the target sequence of the module.
Modules are often stored in a standardized way, and contain more than the sequence of interest: for instance they can contain an antibiotic marker, that will not be part of the assembly when that module is assembled into a vector; only the target sequence is inserted.
Returns: | the target sequence with annotations. |
---|---|
Return type: | SeqRecord |
Note
Depending on the cutting direction of the restriction enzyme used during assembly, the overhang will be left at the beginning or at the end, so the obtained record is exactly the sequence the enzyme created during restriction.
moclo.core.modules.
Cassette
(AbstractModule)[source]¶A level 1 module, also refered as a Transcriptional Unit.
Cassettes can either express genes in their target organism, or be assembled into multigene modules for expressing many genes at once, depending on the chosen cassette vector during level 0 assembly.
moclo.core.modules.
Device
(AbstractModule)[source]¶A level 2 module, also refered as a Multigene plasmid.
Modules of this level are assembled from several transcriptional units so that they contain several genes that can be expressed all at once. Most of the MoClo implementations are designed so that multiple devices can be assembled into a module that is also a valid level 1 module, as does the Golden Braid system with its α and Ω plasmids.
MoClo vector classes.
A vector is a plasmidic DNA sequence that can hold a combination of modules of the same level to create a single module of the following level. Vectors contain a placeholder sequence that is replaced by the concatenation of the modules during the Golden Gate assembly.
moclo.core.vectors.
AbstractVector
(object)[source]¶An abstract modular cloning vector.
assemble
(module, *modules, **kwargs)[source]¶Assemble the provided modules into the vector.
Parameters: |
|
---|---|
Returns: | the assembled sequence with sequence annotations inherited from the vector and the modules. |
Return type: |
|
Raises: |
|
placeholder_sequence
()[source]¶Get the placeholder sequence in the vector.
The placeholder sequence is replaced by the concatenation of modules during the assembly. It often contains a dropout sequence, such as a GFP expression cassette that can be used to measure the progress of the assembly.
structure
()[source]¶Get the vector structure, as a DNA regex pattern.
Warning
If overloading this method, the returned pattern must include 3 capture groups to capture the following features:
Moclo part classes.
moclo.core.parts.
AbstractPart
(object)[source]¶An abstract modular cloning part.
Parts can be either modules or vectors, but are determined by their
flanking overhangs sequences, declared in the signature
class
attribute. The part structure is derived from the part class (module
of vector), signature, and restriction enzyme.
Example
>>> class ExamplePart(AbstractPart, Entry):
... cutter = BsaI
... signature = ('ATGC', 'ATTC')
...
>>> ExamplePart.structure()
'GGTCTCN(ATGC)(NN*N)(ATTC)NGAGACC'
__init__
(record)¶Initialize self. See help(type(self)) for accurate signature.
is_valid
()¶Check if the wrapped record follows the required class structure.
Returns: | True if the record is valid, False otherwise. |
---|---|
Return type: | bool |
structure
()[source]¶Get the part structure, as a DNA regex pattern.
The structure of most parts can be obtained automatically from the part signature and the restriction enzyme used in the Golden Gate assembly.
Warning
If overloading this method, the returned pattern must include 3 capture groups to capture the following features:
moclo.errors.
AssemblyError
(MocloError, RuntimeError)[source]¶Assembly-specific run-time error.
moclo.errors.
AssemblyWarning
(MocloError, Warning)[source]¶Assembly-specific run-time warning.
Warnings can be turned into errors using the warnings.catch_warnings
decorator combined to warnings.simplefilter
with action
set to
"error"
.
moclo.record
)¶CircularRecord |
A derived SeqRecord that contains a circular DNA sequence. |
moclo.registry.base
)¶Item |
A uniquely identified record in a registry. |
AbstractRegistry |
An abstract registry holding MoClo plasmids. |
CombinedRegistry |
A registry combining several registries into a single collection. |
EmbeddedRegistry |
An embedded registry, distributed with the library source code. |
moclo.core.modules
)¶AbstractModule |
An abstract modular cloning module. |
Entry |
A level 0 module, often obtained from the official toolkits plamisds. |
Cassette |
A level 1 module, also refered as a Transcriptional Unit. |
Device |
A level 2 module, also refered as a Multigene plasmid. |
moclo.core.vectors
)¶AbstractVector |
An abstract modular cloning vector. |
EntryVector |
Level 0 vector. |
CassetteVector |
Level 1 vector. |
DeviceVector |
Level 2 vector. |
moclo.core.parts
)¶AbstractPart |
An abstract modular cloning part. |
moclo.errors
)¶Base classes
MocloError |
Base class for all MoClo-related exceptions. |
AssemblyError |
Assembly-specific run-time error. |
AssemblyWarning |
Assembly-specific run-time warning. |
Errors
DuplicateModules |
Several modules share the same overhangs. |
InvalidSequence |
Invalid sequence provided. |
IllegalSite |
Sequence with illegal site provided. |
MissingModule |
A module is missing in the assembly. |
Warnings
UnusedModules |
Not all modules were used during assembly. |
moclo
¶All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
2.2.0
to the supported fs
versions.Item.record
shortcut to Item.entity.record
in moclo.registry
.moclo.core
abstract classes check for illegal sites in sequence to
be identified as valid.AbstractPart.characterize
to load a record into a part instance.ELabFTWRegistry
items using tags.AbstractVector.assemble
.moclo.registry.elabftw
.Item._find_type
to public function moclo.registry.utils.find_type
.AbstractVector.assemble
.AbstractPart
subclasses not being recognized as abstract.moclo.registry.utils
module with resistance idenfication function.AbstractVector.assemble
add an alphabet to the generated sequence.README.rst
file.AbstracModule.cutter
and AbstractVector.cutter
to deduce the
required structure for modules and vectors.AbstractPart
class to generate sequence structure based on part signature.moclo.registry
module.StructuredRecord
convert SeqRecord
to CircularRecord
on
instantiation if needed.target_sequence
method in AbstractVector.assemble
.CircularRecord.reverse_complement
to return a CircularRecord
.moclo.base.parts
to documentation.AbstractPart
docstring.moclo.base
AbstracModule.target_sequence
and AbstractVector.target_sequence
to
take into account cutter overhand position.moclo-cidar
¶All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
1.6.2
).moclo
minimal required version to v0.4.0
.moclo
minimal required version to v0.3.0
.CIDARRegistry
.moclo.registry.cidar.CIDARRegistry
.moclo.kits.cidar.CIDARPart
subclasses.moclo
minimal required version to v0.2.0
.README.rst
.moclo-ecoflex
¶All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
CmR
cassette in pBP-BBa_B0034
.pBP-SJM9**
series.moclo.registry.ecoflex
module.pBP-BBa_B0012
, pBP-BBa_B0015
, pBP-BBa_B0034
,pBP-HexHis
pBP-eCFP
, pBP-eGFP
pBP-T7-RBS-His6
pTU2-a-RFP
, pTU2-b-RFP
moclo
minimal required version to v0.4.0
.moclo-gb3
¶All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
moclo-ig
¶All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
moclo-ytk
¶All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
1.6.2
).moclo
minimal required version to v0.4.0
.moclo
minimal required version to v0.3.0
.README.rst
.moclo
is developped and maintained by:
Martin Larralde
Graduate student, Biology department
École Normale Supérieure Paris Saclay
|
This library was developped during a summer internship at Institut Pasteur, under the supervision of:
This project is licensed under the MIT License.
An implementation of the CIDAR ToolKit for the Python MoClo library.
References
moclo.kits.cidar.
CIDARProduct
(Product)[source]¶A CIDAR MoClo product.
__init__
(record)¶Initialize self. See help(type(self)) for accurate signature.
cutter
¶alias of Bio.Restriction.Restriction.BbsI
is_valid
()¶Check if the wrapped record follows the required class structure.
Returns: | True if the record is valid, False otherwise. |
---|---|
Return type: | bool |
overhang_end
()¶Get the downstream overhang of the target sequence.
Returns: | the downstream overhang. |
---|---|
Return type: | Seq |
overhang_start
()¶Get the upstream overhang of the target sequence.
Returns: | the downstream overhang. |
---|---|
Return type: | Seq |
structure
()¶Get the module structure, as a DNA regex pattern.
Warning
If overloading this method, the returned pattern must include 3 capture groups to capture the following features:
target_sequence
()¶Get the target sequence of the module.
Modules are often stored in a standardized way, and contain more than the sequence of interest: for instance they can contain an antibiotic marker, that will not be part of the assembly when that module is assembled into a vector; only the target sequence is inserted.
Returns: | the target sequence with annotations. |
---|---|
Return type: | SeqRecord |
Note
Depending on the cutting direction of the restriction enzyme used during assembly, the overhang will be left at the beginning or at the end, so the obtained record is exactly the sequence the enzyme created during restriction.
moclo.kits.cidar.
CIDAREntryVector
(EntryVector)[source]¶A CIDAR MoClo entry vector.
__init__
(record)¶Initialize self. See help(type(self)) for accurate signature.
assemble
(module, *modules, **kwargs)¶Assemble the provided modules into the vector.
Parameters: |
|
---|---|
Returns: | the assembled sequence with sequence annotations inherited from the vector and the modules. |
Return type: |
|
Raises: |
|
cutter
¶alias of Bio.Restriction.Restriction.BbsI
is_valid
()¶Check if the wrapped record follows the required class structure.
Returns: | True if the record is valid, False otherwise. |
---|---|
Return type: | bool |
overhang_end
()¶Get the downstream overhang of the vector sequence.
overhang_start
()¶Get the upstream overhang of the vector sequence.
placeholder_sequence
()¶Get the placeholder sequence in the vector.
The placeholder sequence is replaced by the concatenation of modules during the assembly. It often contains a dropout sequence, such as a GFP expression cassette that can be used to measure the progress of the assembly.
structure
()[source]¶Get the vector structure, as a DNA regex pattern.
Warning
If overloading this method, the returned pattern must include 3 capture groups to capture the following features:
target_sequence
()¶Get the target sequence in the vector.
The target sequence if the part of the plasmid that is not discarded during the assembly (everything except the placeholder sequence).
moclo.kits.cidar.
CIDAREntry
(Entry)[source]¶A CIDAR MoClo entry.
__init__
(record)¶Initialize self. See help(type(self)) for accurate signature.
cutter
¶alias of Bio.Restriction.Restriction.BsaI
is_valid
()¶Check if the wrapped record follows the required class structure.
Returns: | True if the record is valid, False otherwise. |
---|---|
Return type: | bool |
overhang_end
()¶Get the downstream overhang of the target sequence.
Returns: | the downstream overhang. |
---|---|
Return type: | Seq |
overhang_start
()¶Get the upstream overhang of the target sequence.
Returns: | the downstream overhang. |
---|---|
Return type: | Seq |
structure
()¶Get the module structure, as a DNA regex pattern.
Warning
If overloading this method, the returned pattern must include 3 capture groups to capture the following features:
target_sequence
()¶Get the target sequence of the module.
Modules are often stored in a standardized way, and contain more than the sequence of interest: for instance they can contain an antibiotic marker, that will not be part of the assembly when that module is assembled into a vector; only the target sequence is inserted.
Returns: | the target sequence with annotations. |
---|---|
Return type: | SeqRecord |
Note
Depending on the cutting direction of the restriction enzyme used during assembly, the overhang will be left at the beginning or at the end, so the obtained record is exactly the sequence the enzyme created during restriction.
moclo.kits.cidar.
CIDARCassetteVector
(CassetteVector)[source]¶A CIDAR Moclo cassette vector.
References
Iverson et al., Figure 1.
__init__
(record)¶Initialize self. See help(type(self)) for accurate signature.
assemble
(module, *modules, **kwargs)¶Assemble the provided modules into the vector.
Parameters: |
|
---|---|
Returns: | the assembled sequence with sequence annotations inherited from the vector and the modules. |
Return type: |
|
Raises: |
|
cutter
¶alias of Bio.Restriction.Restriction.BsaI
is_valid
()¶Check if the wrapped record follows the required class structure.
Returns: | True if the record is valid, False otherwise. |
---|---|
Return type: | bool |
overhang_end
()¶Get the downstream overhang of the vector sequence.
overhang_start
()¶Get the upstream overhang of the vector sequence.
placeholder_sequence
()¶Get the placeholder sequence in the vector.
The placeholder sequence is replaced by the concatenation of modules during the assembly. It often contains a dropout sequence, such as a GFP expression cassette that can be used to measure the progress of the assembly.
structure
()[source]¶Get the vector structure, as a DNA regex pattern.
Warning
If overloading this method, the returned pattern must include 3 capture groups to capture the following features:
target_sequence
()¶Get the target sequence in the vector.
The target sequence if the part of the plasmid that is not discarded during the assembly (everything except the placeholder sequence).
moclo.kits.cidar.
CIDARPromoter
(CIDARPart, CIDAREntry)[source]¶A CIDAR Promoter part.
Parts of this type contain contain a promoter. The upstream overhangs can be changed to amend the order of assembly of a circuit from different cassettes.
Note
The CIDAR toolkit parts provide 4 different upstream overhangs: GGAG, GCTT, CGCT, and TGCC. These are not enforced in this module, and any upstream sequence will be accepted. The downstream sequence however is always TACT.
moclo.kits.cidar.
CIDARRibosomeBindingSite
(CIDARPart, CIDAREntry)[source]¶A CIDAR ribosome binding site.
Parts of this type contain a ribosome binding site (RBS). The downstream overhang doubles as the start codon for the subsequent coding sequence.
moclo.kits.cidar.
CIDARCodingSequence
(CIDARPart, CIDAREntry)[source]¶A CIDAR coding sequence.
Parts of this type contain a coding sequence, with the start codon located 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.
moclo.kits.cidar.
CIDARTerminator
(CIDARPart, CIDAREntry)[source]¶A CIDAR terminator.
Parts of this type contain a terminator. The upstream overhang is always the same for the terminator to directly follow the coding sequence, but the downstream overhang can vary to specify an order for a following multigenic assembly within a device.
Note
The CIDAR toolkit parts provide 4 different downstream overhangs: GCTT, CGCT, TGCC, and ACTA. These are not enforced in this module, and any downstream sequence will be accepted. The upstream sequence however is always AGGT.
moclo.kits.cidar.
CIDARDeviceVector
(DeviceVector)[source]¶A CIDAR Moclo device vector.
References
Iverson et al., Figure 1.
cutter
¶alias of Bio.Restriction.Restriction.BbsI
structure
()[source]¶Get the vector structure, as a DNA regex pattern.
Warning
If overloading this method, the returned pattern must include 3 capture groups to capture the following features:
An implementation of the EcoFlex ToolKit for the Python MoClo library.
References
moclo.kits.ecoflex.
EcoFlexEntry
(Entry)[source]¶An EcoFlex MoClo entry.
EcoFlex entries are stored and shared as plasmids flanked by BsaI binding sites at both ends of the target sequence.
__init__
(record)¶Initialize self. See help(type(self)) for accurate signature.
cutter
¶alias of Bio.Restriction.Restriction.BsaI
is_valid
()¶Check if the wrapped record follows the required class structure.
Returns: | True if the record is valid, False otherwise. |
---|---|
Return type: | bool |
overhang_end
()¶Get the downstream overhang of the target sequence.
Returns: | the downstream overhang. |
---|---|
Return type: | Seq |
overhang_start
()¶Get the upstream overhang of the target sequence.
Returns: | the downstream overhang. |
---|---|
Return type: | Seq |
structure
()¶Get the module structure, as a DNA regex pattern.
Warning
If overloading this method, the returned pattern must include 3 capture groups to capture the following features:
target_sequence
()¶Get the target sequence of the module.
Modules are often stored in a standardized way, and contain more than the sequence of interest: for instance they can contain an antibiotic marker, that will not be part of the assembly when that module is assembled into a vector; only the target sequence is inserted.
Returns: | the target sequence with annotations. |
---|---|
Return type: | SeqRecord |
Note
Depending on the cutting direction of the restriction enzyme used during assembly, the overhang will be left at the beginning or at the end, so the obtained record is exactly the sequence the enzyme created during restriction.
moclo.kits.ecoflex.
EcoFlexCassetteVector
(CassetteVector)[source]¶An EcoFlex MoClo cassette vector.
__init__
(record)¶Initialize self. See help(type(self)) for accurate signature.
assemble
(module, *modules, **kwargs)¶Assemble the provided modules into the vector.
Parameters: |
|
---|---|
Returns: | the assembled sequence with sequence annotations inherited from the vector and the modules. |
Return type: |
|
Raises: |
|
cutter
¶alias of Bio.Restriction.Restriction.BsaI
is_valid
()¶Check if the wrapped record follows the required class structure.
Returns: | True if the record is valid, False otherwise. |
---|---|
Return type: | bool |
overhang_end
()¶Get the downstream overhang of the vector sequence.
overhang_start
()¶Get the upstream overhang of the vector sequence.
placeholder_sequence
()¶Get the placeholder sequence in the vector.
The placeholder sequence is replaced by the concatenation of modules during the assembly. It often contains a dropout sequence, such as a GFP expression cassette that can be used to measure the progress of the assembly.
structure
()[source]¶Get the vector structure, as a DNA regex pattern.
Warning
If overloading this method, the returned pattern must include 3 capture groups to capture the following features:
target_sequence
()¶Get the target sequence in the vector.
The target sequence if the part of the plasmid that is not discarded during the assembly (everything except the placeholder sequence).
moclo.kits.ecoflex.
EcoFlexPromoter
(EcoFlexPart, EcoFlexEntry)[source]¶An EcoFlex MoClo promoter.
moclo.kits.ecoflex.
EcoFlexRBS
(EcoFlexPart, EcoFlexEntry)[source]¶An EcoFlex MoClo ribosome binding site.
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.
moclo.kits.ecoflex.
EcoFlexTagLinker
(EcoFlexPart, EcoFlexEntry)[source]¶An EcoFlex MoClo tag linker.
Parts of this type also contain a RBS, but they allow adding a N-terminal tag sequence before the CDS.
moclo.kits.ecoflex.
EcoFlexTag
(EcoFlexPart, EcoFlexEntry)[source]¶An EcoFlex MoClo N-terminal tag.
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.
moclo.kits.ecoflex.
EcoFlexCodingSequence
(EcoFlexPart, EcoFlexEntry)[source]¶An EcoFlex MoClo coding sequence.
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.
moclo.kits.ecoflex.
EcoFlexDeviceVector
(DeviceVector)[source]¶An EcoFlex MoClo device vector.
cutter
¶alias of Bio.Restriction.Restriction.BsmBI
structure
()[source]¶Get the vector structure, as a DNA regex pattern.
Warning
If overloading this method, the returned pattern must include 3 capture groups to capture the following features:
An implementation of the Icon Genetics ToolKit for the Python MoClo library.
References
moclo.kits.ig.
IGProduct
(Product)[source]¶An Icon Genetics MoClo product.
__init__
(record)¶Initialize self. See help(type(self)) for accurate signature.
cutter
¶alias of Bio.Restriction.Restriction.BpiI
is_valid
()¶Check if the wrapped record follows the required class structure.
Returns: | True if the record is valid, False otherwise. |
---|---|
Return type: | bool |
overhang_end
()¶Get the downstream overhang of the target sequence.
Returns: | the downstream overhang. |
---|---|
Return type: | Seq |
overhang_start
()¶Get the upstream overhang of the target sequence.
Returns: | the downstream overhang. |
---|---|
Return type: | Seq |
structure
()¶Get the module structure, as a DNA regex pattern.
Warning
If overloading this method, the returned pattern must include 3 capture groups to capture the following features:
target_sequence
()¶Get the target sequence of the module.
Modules are often stored in a standardized way, and contain more than the sequence of interest: for instance they can contain an antibiotic marker, that will not be part of the assembly when that module is assembled into a vector; only the target sequence is inserted.
Returns: | the target sequence with annotations. |
---|---|
Return type: | SeqRecord |
Note
Depending on the cutting direction of the restriction enzyme used during assembly, the overhang will be left at the beginning or at the end, so the obtained record is exactly the sequence the enzyme created during restriction.
moclo.kits.ig.
IGEntryVector
(EntryVector)[source]¶An Icon Genetics entry vector.
References
Weber et al., Figure 2A.
__init__
(record)¶Initialize self. See help(type(self)) for accurate signature.
assemble
(module, *modules, **kwargs)¶Assemble the provided modules into the vector.
Parameters: |
|
---|---|
Returns: | the assembled sequence with sequence annotations inherited from the vector and the modules. |
Return type: |
|
Raises: |
|
cutter
¶alias of Bio.Restriction.Restriction.BpiI
is_valid
()¶Check if the wrapped record follows the required class structure.
Returns: | True if the record is valid, False otherwise. |
---|---|
Return type: | bool |
overhang_end
()¶Get the downstream overhang of the vector sequence.
overhang_start
()¶Get the upstream overhang of the vector sequence.
placeholder_sequence
()¶Get the placeholder sequence in the vector.
The placeholder sequence is replaced by the concatenation of modules during the assembly. It often contains a dropout sequence, such as a GFP expression cassette that can be used to measure the progress of the assembly.
structure
()[source]¶Get the vector structure, as a DNA regex pattern.
Warning
If overloading this method, the returned pattern must include 3 capture groups to capture the following features:
target_sequence
()¶Get the target sequence in the vector.
The target sequence if the part of the plasmid that is not discarded during the assembly (everything except the placeholder sequence).
moclo.kits.ig.
IGEntry
(Entry)[source]¶An Icon Genetics MoClo entry.
__init__
(record)¶Initialize self. See help(type(self)) for accurate signature.
cutter
¶alias of Bio.Restriction.Restriction.BsaI
is_valid
()¶Check if the wrapped record follows the required class structure.
Returns: | True if the record is valid, False otherwise. |
---|---|
Return type: | bool |
overhang_end
()¶Get the downstream overhang of the target sequence.
Returns: | the downstream overhang. |
---|---|
Return type: | Seq |
overhang_start
()¶Get the upstream overhang of the target sequence.
Returns: | the downstream overhang. |
---|---|
Return type: | Seq |
structure
()¶Get the module structure, as a DNA regex pattern.
Warning
If overloading this method, the returned pattern must include 3 capture groups to capture the following features:
target_sequence
()¶Get the target sequence of the module.
Modules are often stored in a standardized way, and contain more than the sequence of interest: for instance they can contain an antibiotic marker, that will not be part of the assembly when that module is assembled into a vector; only the target sequence is inserted.
Returns: | the target sequence with annotations. |
---|---|
Return type: | SeqRecord |
Note
Depending on the cutting direction of the restriction enzyme used during assembly, the overhang will be left at the beginning or at the end, so the obtained record is exactly the sequence the enzyme created during restriction.
moclo.kits.ig.
IGCassetteVector
(CassetteVector)[source]¶An Icon Genetics cassette vector.
References
Weber et al., Figure 4A.
__init__
(record)¶Initialize self. See help(type(self)) for accurate signature.
assemble
(module, *modules, **kwargs)¶Assemble the provided modules into the vector.
Parameters: |
|
---|---|
Returns: | the assembled sequence with sequence annotations inherited from the vector and the modules. |
Return type: |
|
Raises: |
|
cutter
¶alias of Bio.Restriction.Restriction.BsaI
is_valid
()¶Check if the wrapped record follows the required class structure.
Returns: | True if the record is valid, False otherwise. |
---|---|
Return type: | bool |
overhang_end
()¶Get the downstream overhang of the vector sequence.
overhang_start
()¶Get the upstream overhang of the vector sequence.
placeholder_sequence
()¶Get the placeholder sequence in the vector.
The placeholder sequence is replaced by the concatenation of modules during the assembly. It often contains a dropout sequence, such as a GFP expression cassette that can be used to measure the progress of the assembly.
structure
()[source]¶Get the vector structure, as a DNA regex pattern.
Warning
If overloading this method, the returned pattern must include 3 capture groups to capture the following features:
target_sequence
()¶Get the target sequence in the vector.
The target sequence if the part of the plasmid that is not discarded during the assembly (everything except the placeholder sequence).
moclo.kits.ig.
IGLevelMVector
(IGPart, IGDeviceVector)[source]¶cutter
¶alias of Bio.Restriction.Restriction.BpiI
structure
()[source]¶Get the part structure, as a DNA regex pattern.
The structure of most parts can be obtained automatically from the part signature and the restriction enzyme used in the Golden Gate assembly.
Warning
If overloading this method, the returned pattern must include 3 capture groups to capture the following features:
moclo.kits.ig.
IGLevelMEndLinker
(IGPart, IGCassette)[source]¶structure
()[source]¶Get the part structure, as a DNA regex pattern.
The structure of most parts can be obtained automatically from the part signature and the restriction enzyme used in the Golden Gate assembly.
Warning
If overloading this method, the returned pattern must include 3 capture groups to capture the following features:
moclo.kits.ig.
IGLevelPVector
(IGPart, IGCassetteVector)[source]¶cutter
¶alias of Bio.Restriction.Restriction.BsaI
structure
()[source]¶Get the part structure, as a DNA regex pattern.
The structure of most parts can be obtained automatically from the part signature and the restriction enzyme used in the Golden Gate assembly.
Warning
If overloading this method, the returned pattern must include 3 capture groups to capture the following features:
moclo.kits.ig.
IGLevelPEndLinker
(IGPart, IGEntry)[source]¶cutter
¶alias of Bio.Restriction.Restriction.BsaI
structure
()[source]¶Get the part structure, as a DNA regex pattern.
The structure of most parts can be obtained automatically from the part signature and the restriction enzyme used in the Golden Gate assembly.
Warning
If overloading this method, the returned pattern must include 3 capture groups to capture the following features:
An implementation of the Yeast ToolKit for the Python MoClo library.
This module is tested against the officials parts available in the Yeast ToolKit (YTK), and also against the Pichia ToolKit (PTK) parts since they were designed to be compatible with each other.
The documentation of this module is mostly adapted from the Lee et al. supplementary data. Each item also has specific sections that are organized as follow:
moclo-ytk
library.References
moclo.kits.ytk.
YTKProduct
(Product)[source]¶A MoClo Yeast ToolKit product.
As the YTK entry vector does not contain the required BsaI restriction site, the site must be contained in the product sequence.
Caution
The standard construction describe in the Lee et al. paper directly inserts the beginning of the BsaI recognition site inside of the two BsmBI overhangs at both ends of the product. Other valid constructs that do not proceed like so won’t be considered a valid product, although they contain the required BsaI site.
References
Lee et al., Supplementary Figure S19.
__init__
(record)¶Initialize self. See help(type(self)) for accurate signature.
cutter
¶alias of Bio.Restriction.Restriction.BsmBI
is_valid
()¶Check if the wrapped record follows the required class structure.
Returns: | True if the record is valid, False otherwise. |
---|---|
Return type: | bool |
overhang_end
()¶Get the downstream overhang of the target sequence.
Returns: | the downstream overhang. |
---|---|
Return type: | Seq |
overhang_start
()¶Get the upstream overhang of the target sequence.
Returns: | the downstream overhang. |
---|---|
Return type: | Seq |
structure
()[source]¶Get the module structure, as a DNA regex pattern.
Warning
If overloading this method, the returned pattern must include 3 capture groups to capture the following features:
target_sequence
()¶Get the target sequence of the module.
Modules are often stored in a standardized way, and contain more than the sequence of interest: for instance they can contain an antibiotic marker, that will not be part of the assembly when that module is assembled into a vector; only the target sequence is inserted.
Returns: | the target sequence with annotations. |
---|---|
Return type: | SeqRecord |
Note
Depending on the cutting direction of the restriction enzyme used during assembly, the overhang will be left at the beginning or at the end, so the obtained record is exactly the sequence the enzyme created during restriction.
moclo.kits.ytk.
YTKEntryVector
(EntryVector)[source]¶A MoClo Yeast ToolKit entry vector.
Any plasmid with two BsmBI restriction sites can be used to create a YTK entry, although the toolkit-provided entry vector (pYTK001) is probably the most appropriate plasmid to use.
Caution
To the contrary of the usual MoClo entry vectors described in the Weber et al. paper, the YTK entry vectors do not provide another BsaI restriction site enclosing the placeholder sequence. As such, YTK Level -1 modules must embed the BsaI binding site.
__init__
(record)¶Initialize self. See help(type(self)) for accurate signature.
assemble
(module, *modules, **kwargs)¶Assemble the provided modules into the vector.
Parameters: |
|
---|---|
Returns: | the assembled sequence with sequence annotations inherited from the vector and the modules. |
Return type: |
|
Raises: |
|
cutter
¶alias of Bio.Restriction.Restriction.BsmBI
is_valid
()¶Check if the wrapped record follows the required class structure.
Returns: | True if the record is valid, False otherwise. |
---|---|
Return type: | bool |
overhang_end
()¶Get the downstream overhang of the vector sequence.
overhang_start
()¶Get the upstream overhang of the vector sequence.
placeholder_sequence
()¶Get the placeholder sequence in the vector.
The placeholder sequence is replaced by the concatenation of modules during the assembly. It often contains a dropout sequence, such as a GFP expression cassette that can be used to measure the progress of the assembly.
structure
()¶Get the vector structure, as a DNA regex pattern.
Warning
If overloading this method, the returned pattern must include 3 capture groups to capture the following features:
target_sequence
()¶Get the target sequence in the vector.
The target sequence if the part of the plasmid that is not discarded during the assembly (everything except the placeholder sequence).
moclo.kits.ytk.
YTKEntry
(Entry)[source]¶A MoClo Yeast ToolKit entry.
YTK entries are stored and shared as plasmids flanked by BsaI binding sites at both ends of the target sequence.
Danger
Although the BsaI binding sites is not located within the target
sequence for almost all the standard toolkit parts, special Type 234r
parts have these sites reversed, because these parts are used to
assemble cassette vectors and require the final construct to contain
a BsaI site to allow assembly with other parts. Those parts will
not match the default YTKEntry
, and must be
used as YTKPart234r
instances for the assembly
logic to work as expected.
__init__
(record)¶Initialize self. See help(type(self)) for accurate signature.
cutter
¶alias of Bio.Restriction.Restriction.BsaI
is_valid
()¶Check if the wrapped record follows the required class structure.
Returns: | True if the record is valid, False otherwise. |
---|---|
Return type: | bool |
overhang_end
()¶Get the downstream overhang of the target sequence.
Returns: | the downstream overhang. |
---|---|
Return type: | Seq |
overhang_start
()¶Get the upstream overhang of the target sequence.
Returns: | the downstream overhang. |
---|---|
Return type: | Seq |
structure
()¶Get the module structure, as a DNA regex pattern.
Warning
If overloading this method, the returned pattern must include 3 capture groups to capture the following features:
target_sequence
()¶Get the target sequence of the module.
Modules are often stored in a standardized way, and contain more than the sequence of interest: for instance they can contain an antibiotic marker, that will not be part of the assembly when that module is assembled into a vector; only the target sequence is inserted.
Returns: | the target sequence with annotations. |
---|---|
Return type: | SeqRecord |
Note
Depending on the cutting direction of the restriction enzyme used during assembly, the overhang will be left at the beginning or at the end, so the obtained record is exactly the sequence the enzyme created during restriction.
moclo.kits.ytk.
YTKCassetteVector
(CassetteVector)[source]¶A MoClo Yeast ToolKit cassette vector.
The YTK provides a canonical integration plasmid, preassembled from several other parts, that can be used as a cassette vector for an assembly of Type 2, 3 and 4 parts. Type 8, 8a and 678 parts are also considered as cassette vectors.
References
Lee et al., Figure 2.
__init__
(record)¶Initialize self. See help(type(self)) for accurate signature.
assemble
(module, *modules, **kwargs)¶Assemble the provided modules into the vector.
Parameters: |
|
---|---|
Returns: | the assembled sequence with sequence annotations inherited from the vector and the modules. |
Return type: |
|
Raises: |
|
cutter
¶alias of Bio.Restriction.Restriction.BsaI
is_valid
()¶Check if the wrapped record follows the required class structure.
Returns: | True if the record is valid, False otherwise. |
---|---|
Return type: | bool |
overhang_end
()¶Get the downstream overhang of the vector sequence.
overhang_start
()¶Get the upstream overhang of the vector sequence.
placeholder_sequence
()¶Get the placeholder sequence in the vector.
The placeholder sequence is replaced by the concatenation of modules during the assembly. It often contains a dropout sequence, such as a GFP expression cassette that can be used to measure the progress of the assembly.
structure
()¶Get the vector structure, as a DNA regex pattern.
Warning
If overloading this method, the returned pattern must include 3 capture groups to capture the following features:
target_sequence
()¶Get the target sequence in the vector.
The target sequence if the part of the plasmid that is not discarded during the assembly (everything except the placeholder sequence).
moclo.kits.ytk.
YTKPart1
(YTKPart, YTKEntry)[source]¶A YTK Type 1 part (Upstream assembly connector).
Parts of this type contain non-coding and non-regulatory sequences that are used to direct assembly of multigene plasmids, such as ligation sites for other Type IIS endonucleases (e.g. BsmBI).
Note
Official toolkit Type 1 parts also include a EcoRI and XbaI site just after the upstream overhang for BioBrick compatibility of the assembled cassettes and multi-gene plasmids.
moclo.kits.ytk.
YTKPart2
(YTKPart, YTKEntry)[source]¶A YTK Type 2 part (Promoter).
Parts of this type contain a promoter. The downstream overhang doubles as the start codon for the subsequent Type 3 or Type 3a coding sequence.
Note
Official toolkit Type 2 parts also include a BglII site immediately preceding the start codon (overlapping the downstream overhang) for BglBrick compatibility.
moclo.kits.ytk.
YTKPart3
(YTKPart, YTKEntry)[source]¶A YTK Type 3 part (Coding sequence).
Parts of this type contain a coding sequence, with the start codon located on the upstream overhang. If a stop codon is omitted from the part, and two bases are added before the downstream overhang, the resulting site can be used as a two amino acid linker to a Type 4 or 4a C-terminal fusion.
Note
Official toolkit Type 3 parts also include a BamHI recognition site at the end of the included CDS (overlapping the downstream overhang) for BglBrick compatibility.
moclo.kits.ytk.
YTKPart3a
(YTKPart, YTKEntry)[source]¶A YTK Type 3a part (N-terminal coding sequence).
moclo.kits.ytk.
YTKPart3b
(YTKPart, YTKEntry)[source]¶A YTK Type 3b part (C-terminal coding sequence).
Note
As with Type 3 parts, official toolkits Type 3b parts also include a BamHI recognition site at the end of the included CDS (overlapping the downstream overhang) for BglBrick compatibility.
moclo.kits.ytk.
YTKPart4
(YTKPart, YTKEntry)[source]¶A YTK Type 4 part (Transcriptional terminator).
As Type 3 parts do not include a stop codon, parts of this type should
encode an in-frame stop codon before the transcriptional terminator.
Commonly used C-terminal fusions, such as purification or epitope tags,
but it is recommended to use YTKPart4a
and
YTKPart4b
subtypes instead.
Note
Official toolkit Type 4 parts all start by a stop codon directly after the upstream overhang, followed by a XhoI recognition site which enables BglBrick compatibility, then followed by the terminator sequence itself.
moclo.kits.ytk.
YTKPart4a
(YTKPart, YTKEntry)[source]¶A YTK Type 4a part (C-terminal tag sequence).
Type 4a parts contain additional coding sequences that will be fused to the C-terminal extremity of the protein. These parts include, but are not limited to: localisation tags, purification tags, fluorescent proteins.
Caution
In contrast to the Type 3 and 3b parts, the convention for 4a parts is to include the stop codon rather than enable read-through of the downstream overhang, although that convention it is not enforced.
Note
Official toolkit Type 4a parts contain a stop codon after the CDS, itself immediately followed by a XhoI recognition site just before the downstream overhang, for BglBrick compatibility.
moclo.kits.ytk.
YTKPart4b
(YTKPart, YTKEntry)[source]¶A YTK Type 4b part (Terminator sequence).
Type 4b contain transcriptional terminators, but are not required to encode an in-frame start codon, as it should be located in the Type 4a part that precedes it.
moclo.kits.ytk.
YTKPart5
(YTKPart, YTKEntry)[source]¶A YTK Type 5 part (Downstream assembly connector).
As with Type 1 parts, parts of this type provide sequences such as restriction enzymes recognition sites, for instance in order to direct multigene expression plasmids.
Note
Official toolkit parts also include a SpeI and PstI site at the end of the part sequence for BioBrick compatibility of the assembled cassettes and multi-gene plasmids.
moclo.kits.ytk.
YTKPart6
(YTKPart, YTKEntry)[source]¶A YTK Type 6 part (Yeast marker).
Parts of this type contain a selectable marker for S. cerevisiae, as a full expression cassette (promoter, ORF, and terminal) for conferring the selectable phenotype (such as drug-resistance or bioluminescence).
moclo.kits.ytk.
YTKPart7
(YTKPart, YTKEntry)[source]¶A YTK Part Type 7 part (Yeast origin / 3’ homology).
Depending on the expression organism (E.coli or S. ceverisiae), this sequence will either hold a yeast origin of replication, or a 3’ homology sequence for integration in the bacterial genome.
moclo.kits.ytk.
YTKPart8
(YTKPart, YTKCassetteVector)[source]¶A YTK Type 8 part (Bacterial origin & marker).
Parts of this type contain a bacterial origin of replication, as well as an antibiotic resistance marker. They act as the Golden Gate Assembly vector when assembling a cassette, and as such should also embbed a dropout sequence, such as a fluorescent protein expression cassette.
Note
Official toolkit parts use an mRFP coding sequence as the dropout, and also include NotI restriction site at each end of the part to allow the verification of new assemblies.
moclo.kits.ytk.
YTKPart8a
(YTKPart, YTKCassetteVector)[source]¶A YTK Part 8a part (Bacterial origin & marker).
Parts of this type, like Type 8 parts, include a bacterial origin of replication and an antibiotic resistance marker, and act as Assembly vectors.
Note
Official toolkit parts use an mRFP coding sequence as the dropout, and also include NotI restriction site at each end of the part so the integration plasmid can be linearized prior to transformation into yeast.
moclo.kits.ytk.
YTKPart234
(YTKPart, YTKEntry)[source]¶A YTK Type 234 part (Composite 2, 3, 4).
Type 234 parts are composed of a complete expression cassette (promoter, coding sequence, and terminator) fused into a single part, instead of separate Type 2, 3 and 4 parts.
moclo.kits.ytk.
YTKPart234r
(YTKPart, YTKEntry)[source]¶A YTK Type 234 part (Composite 2, 3, 4) with reversed BsaI sites.
Type 234r parts are designed so that the BsaI sites are kept within the final cassette. They are used to assemble canonical integration vectors, where the Type 234 part acts as a placeholder until replaced by actual Type 2, 3 and 4 parts in the final construct.
moclo.kits.ytk.
YTKPart678
(YTKPart, YTKCassetteVector)[source]¶A YTK Type 678 part (Composite 6, 7, 8).
Type 678 parts are used when there is no requirement for yeast markers and origins to be included in the final assembly, for instance when assembling an intermediary plasmid acting as a vector for a multi-gene construct.
moclo.kits.ytk.
YTKDeviceVector
(DeviceVector)[source]¶A MoClo Yeast ToolKit multigene vector.
Parts of Type 1 and 5 are used to order the cassette plasmids within
the multigene assembly. The vector always contains a ConLS
and ConRE
parts.
References
Lee et al., Supplementary Figure S21.
cutter
¶alias of Bio.Restriction.Restriction.BsmBI