The objective of this example is to document and simulate a cut and paste cloning from the literature using pydna. The example is the construction of the vector YEp24PGK_XK which is described on page 4250 in the publication below:
In [1]:
# NBVAL_SKIP
from IPython.display import IFrame
IFrame('http://www.ncbi.nlm.nih.gov/pmc/articles/PMC93154', width="100%", height=300)
Out[1]:
the XKS1 gene from Saccharomyces cerevisiae is amplified by PCR using two primers called primer1 and primer3. The primers has tails which add restriction sites for BamHI to the ends of the PCR product. The sequences of both primers are available in the publication.
The YEp24PGK plasmid is linearized with the restriction endonuclease BglII.
PCR product is digested with the restriction endonuclease BamHI.
The two molecules are ligated together to form a circular product.
The figure below shows an image outlining the strategy.
In [2]:
from IPython.core.display import Image
Image('figure1.png',width=600)
Out[2]:
In [3]:
from pydna.parsers import parse_primers
In [4]:
p1, p3 = parse_primers('''
>primer1
GCGGATCCTCTAGAATGGTTTGTTCAGTAATTCAG
>primer3
AGATCTGGATCCTTAGATGAGAGTCTTTTCCAG
''')
The XKS1 gene sequence is dowloaded from genbank like so:
ACCESSION NC_001139 REGION: complement(886073..887875)
NC_001139 REGION: complement(886073..887875)
as the argument for the pydna.Genbank class below.This is but one of many ways to establish sequences in pydna.
In [5]:
from pydna.genbank import Genbank
In [6]:
gb = Genbank("bjornjobb@gmail.com")
xks1 = gb.nucleotide("NC_001139 REGION: complement(886073..887875)")
The XKS1 gene has the expected size.
In [7]:
xks1
Out[7]:
The sequence starts with an ATG
start codon and ends with a TAA
stop codon.
In [8]:
xks1.seq
Out[8]:
The convenience methods isorf can tell if the sequence is an open reading frame or not.
In [9]:
xks1.isorf()
Out[9]:
The PCR product sequence is simulated from the primers and the template sequence using the pydna.pcr function. The pydna. Amplicon class offer greater control over the pcr parameters, but this is not needed here.
In [10]:
from pydna.amplify import pcr
In [11]:
PCR_prod = pcr(p1, p3, xks1)
In [12]:
from Bio.Restriction import BamHI, BglII
Digesting the PCR product yield three fragments, two short stuffer fragments and the insert that we would like to clone.
In [13]:
stuffer1, insert, stuffer2 = PCR_prod.cut(BamHI)
The insert has the expected sticky ends.
In [14]:
insert.seq
Out[14]:
The YEp24PGK vector is available from Genbank.
In [15]:
YEp24PGK = gb.nucleotide("KC562906")
The plasmid has the expected size (see Genbank link above).
In [16]:
YEp24PGK
Out[16]:
The YEp24PGK is linearized with the BglII enzyme. This method will make sure that the molecule is linearized i.e. the enzyme only cuts in one place.
In [17]:
YEp24PGK_BglII = YEp24PGK.linearize(BglII)
The linear vector has the expected size and structure.
In [18]:
YEp24PGK_BglII
Out[18]:
The two fragments are ligated together and looped, which means that the far ends of both molecules ligate to form a circular product.
In [19]:
YEp24PGK_XK = ( YEp24PGK_BglII + insert ).looped()
The resulting molecule i circular and has the expected size, 11452 bp.
In [20]:
YEp24PGK_XK
Out[20]:
In [21]:
YEp24PGK_XK.write("YEp24PGK_XK.txt")