Gibson assembly

The start of EGFP is cloned after the EcoRI site of pUC19. The homology needed by the assembly is split between the two PCR primers, as tails added at their 5' ends.

1

Starting code

This is the PHP code used by this example.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public function gibsonAssembly(
    GenbankPlasmidMapperInterface $genbankPlasmidMapper,
    GibsonAssemblyInterface $gibsonAssembly
) {
    $oPlasmid = $this->loadPuc19($genbankPlasmidMapper); // see "Plasmid from GenBank"
 
    // The vector, read up to the EcoRI site of the polylinker (position 396), and the insert
    $oVector = $oPlasmid->getSequence()->sliceCircular(395 - 40, 40);
    $oInsert = new DnaSequence("ATGGTGAGCAAGGGCGAGGAGCTGTTCACCGGGGTGGTGCCCATCCTGGTCGAGCTGGAC"); // EGFP
 
    // Before PCR, the two pieces share nothing
    $oBefore = $gibsonAssembly->checkJunction($oVector, $oInsert, 15, 40);
 
    // 20 bp of homology, half carried by each primer
    $oArms = $gibsonAssembly->designHomologyArms($oVector, $oInsert, 20);
 
    // The PCR products: the tails are added at the 5' end of each primer
    $oVectorPcr = new DnaSequence($oVector->getValue()
        . (new DnaSequence($oArms->getUpstreamReversePrimerTail()))->reverseComplement()->getValue());
    $oInsertPcr = new DnaSequence($oArms->getDownstreamForwardPrimerTail() . $oInsert->getValue());
 
    $oAfter = $gibsonAssembly->checkJunction($oVectorPcr, $oInsertPcr, 15, 40);
 
    return $this->render('default/cloningGibsonAssembly.html.twig', [
        'vector'     => $oVector,
        'insert'     => $oInsert,
        'before'     => $oBefore,
        'arms'       => $oArms,
        'vectorPcr'  => $oVectorPcr,
        'insertPcr'  => $oInsertPcr,
        'after'      => $oAfter,
    ]);
}
2

Result

Result returned by BioPHP for the demonstration data.

Fragments to join
Vector (pUC19, 40 bp before EcoRI)AGGGTTTTCCCAGTCACGACGTTGTAAAACGACGGCCAGT
Insert (EGFP, 60 bp)ATGGTGAGCAAGGGCGAGGAGCTGTTCACCGGGGTGGTGCCCATCCTGGTCGAGCTGGAC
Junction before PCRNo overlap: these ends cannot be assembled
Primer tails for 20 bp of homology
Tail of the vector reverse primer5'-TGCTCACCAT-3'
Tail of the insert forward primer5'-GACGGCCAGT-3'
After PCR with the tailed primers
Vector PCR product (50 bp)AGGGTTTTCCCAGTCACGACGTTGTAAAACGACGGCCAGTATGGTGAGCA
Insert PCR product (70 bp)GACGGCCAGTATGGTGAGCAAGGGCGAGGAGCTGTTCACCGGGGTGGTGCCCATCCTGGTCGAGCTGGAC
Junction after PCR20 bp of overlap: GACGGCCAGTATGGTGAGCA

The code above is the one actually executed by this page. Find the other examples in the left-hand column, or the tools in BioTools.