Yeast ToolKit (YTK) / Pichia ToolKit (PTK)

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:

Note:

this section describes a behaviour that is not part of the YTK standard, but that is implemnted in all YTK official parts, and encouraged to follow by the YTK authors.

Caution

this section describes a behaviour that goes against the MoClo standard, but which you are entitled to follow for your parts to be valid YTK parts.

Danger

this section describes a quirk specific to the moclo-ytk library.

Level -1

Module

class 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)
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

static 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:

  1. The upstream (5’) overhang sequence

  2. The module target sequence

  3. The downstream (3’) overhang sequence

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.

Vector

class 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)
assemble(module, *modules, **kwargs)

Assemble the provided modules into the vector.

Parameters
  • module (AbstractModule) – a module to insert in the vector.

  • modules (AbstractModule, optional) – additional modules to insert in the vector. The order of the parameters is not important, since modules will be sorted by their start overhang in the function.

Returns

the assembled sequence with sequence annotations inherited from the vector and the modules.

Return type

SeqRecord

Raises
  • DuplicateModules – when two different modules share the same start overhang, leading in possibly non-deterministic constructs.

  • MissingModule – when a module has an end overhang that is not shared by any other module, leading to a partial construct only

  • InvalidSequence – when one of the modules does not match the required module structure (missing site, wrong overhang, etc.).

  • UnusedModules – when some modules were not used during the assembly (mostly caused by duplicate parts).

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.

classmethod 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:

  1. The downstream (3’) overhang sequence

  2. The vector placeholder sequence

  3. The upstream (5’) overhang sequence

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).

Level 0

Module

class 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)
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

classmethod 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:

  1. The upstream (5’) overhang sequence

  2. The module target sequence

  3. The downstream (3’) overhang sequence

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.

Vector

class 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)
assemble(module, *modules, **kwargs)

Assemble the provided modules into the vector.

Parameters
  • module (AbstractModule) – a module to insert in the vector.

  • modules (AbstractModule, optional) – additional modules to insert in the vector. The order of the parameters is not important, since modules will be sorted by their start overhang in the function.

Returns

the assembled sequence with sequence annotations inherited from the vector and the modules.

Return type

SeqRecord

Raises
  • DuplicateModules – when two different modules share the same start overhang, leading in possibly non-deterministic constructs.

  • MissingModule – when a module has an end overhang that is not shared by any other module, leading to a partial construct only

  • InvalidSequence – when one of the modules does not match the required module structure (missing site, wrong overhang, etc.).

  • UnusedModules – when some modules were not used during the assembly (mostly caused by duplicate parts).

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.

classmethod 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:

  1. The downstream (3’) overhang sequence

  2. The vector placeholder sequence

  3. The upstream (5’) overhang sequence

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).

Parts

Base Parts

class moclo.kits.ytk.YTKPart1(YTKPart, YTKEntry)[source]

A YTK Type 1 part (Upstream assembly connector).

../../_images/type1.svg

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.

class moclo.kits.ytk.YTKPart2(YTKPart, YTKEntry)[source]

A YTK Type 2 part (Promoter).

../../_images/type2.svg

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.

class moclo.kits.ytk.YTKPart3(YTKPart, YTKEntry)[source]

A YTK Type 3 part (Coding sequence).

../../_images/type3.svg

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.

class moclo.kits.ytk.YTKPart3a(YTKPart, YTKEntry)[source]

A YTK Type 3a part (N-terminal coding sequence).

../../_images/type3a.svg
class moclo.kits.ytk.YTKPart3b(YTKPart, YTKEntry)[source]

A YTK Type 3b part (C-terminal coding sequence).

../../_images/type3b.svg

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.

class moclo.kits.ytk.YTKPart4(YTKPart, YTKEntry)[source]

A YTK Type 4 part (Transcriptional terminator).

../../_images/type4.svg

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.

class moclo.kits.ytk.YTKPart4a(YTKPart, YTKEntry)[source]

A YTK Type 4a part (C-terminal tag sequence).

../../_images/type4a.svg

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.

class moclo.kits.ytk.YTKPart4b(YTKPart, YTKEntry)[source]

A YTK Type 4b part (Terminator sequence).

../../_images/type4b.svg

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.

class moclo.kits.ytk.YTKPart5(YTKPart, YTKEntry)[source]

A YTK Type 5 part (Downstream assembly connector).

../../_images/type5.svg

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.

class moclo.kits.ytk.YTKPart6(YTKPart, YTKEntry)[source]

A YTK Type 6 part (Yeast marker).

../../_images/type6.svg

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).

class moclo.kits.ytk.YTKPart7(YTKPart, YTKEntry)[source]

A YTK Part Type 7 part (Yeast origin / 3’ homology).

../../_images/type7.svg

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.

class moclo.kits.ytk.YTKPart8(YTKPart, YTKCassetteVector)[source]

A YTK Type 8 part (Bacterial origin & marker).

../../_images/type8.svg

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.

class moclo.kits.ytk.YTKPart8a(YTKPart, YTKCassetteVector)[source]

A YTK Part 8a part (Bacterial origin & marker).

../../_images/type8a.svg

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.

class moclo.kits.ytk.YTKPart8b(YTKPart, YTKEntry)[source]

A YTK Type 8b part (5’ homology).

../../_images/type8b.svg

As with certain Type 7 parts, parts of this type contain long sequences of homology to the genome that is upstream of the target locus.

Composite

class moclo.kits.ytk.YTKPart234(YTKPart, YTKEntry)[source]

A YTK Type 234 part (Composite 2, 3, 4).

../../_images/type234.svg

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.

class moclo.kits.ytk.YTKPart234r(YTKPart, YTKEntry)[source]

A YTK Type 234 part (Composite 2, 3, 4) with reversed BsaI sites.

../../_images/type234r.svg

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.

class moclo.kits.ytk.YTKPart678(YTKPart, YTKCassetteVector)[source]

A YTK Type 678 part (Composite 6, 7, 8).

../../_images/type678.svg

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.

Level 1

Module

class moclo.kits.ytk.YTKCassette(Cassette)[source]

A MoClo Yeast ToolKit cassette.

cutter

alias of Bio.Restriction.Restriction.BsmBI

Vector

class 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