YTK integration vector

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

Structure

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:

image0

Loading parts

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

Checking parts

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()
../_images/examples_ytk-vector_6_0.png

Creating the assembly

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)

Rendering the assembly sequence map

When creating an assembly, corresponding regions of the obtained sequence will be annotated with the ID of the sequence they come from. We build a simple translator to color the different parts of the plasmid like in the original paper.

With the translator ready, we can display the pre-assembled integration vector assembled by moclo:

[6]:
vec_translator = IntegrationVectorTranslator([lambda f: f.type == 'source'])
vec_translator.translate_record(assembly, dfv.CircularGraphicRecord).plot(figure_width=8)
plt.show()
../_images/examples_ytk-vector_12_0.png

Comparing the assembly to the expected vector

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()
../_images/examples_ytk-vector_14_0.png
[ ]: