DIMPLE library generation and assembly protocol
Christian Macdonald, David Nedrud, Patrick Rockefeller Grimes, Donovan Trinidad, James Fraser, Willow Coyote-Maestas, Catherine Shin
Disclaimer
DISCLAIMER – FOR INFORMATIONAL PURPOSES ONLY; USE AT YOUR OWN RISK
The protocol content here is for informational purposes only and does not constitute legal, medical, clinical, or safety advice, or otherwise; content added to protocols.io is not peer reviewed and may not have undergone a formal approval of any kind. Information presented in this protocol should not substitute for independent professional judgment, advice, diagnosis, or treatment. Any action you take or refrain from taking using or relying upon the information presented here is strictly at your own risk. You agree that neither the Company nor any of the authors, contributors, administrators, or anyone else associated with protocols.io, can be held responsible for your use of the information contained in or linked to this protocol or any of our Sites/Apps and Services.
Abstract
This is a protocol for generating and QCing mutagenic libraries using the DIMPLE protocol. This version is updated to include expanded descriptions of QC and to clarify certain steps.
Before start
Steps
Preparation
Important notes: DIMPLE breaks a gene up into sub-library fragments and generates mutagenic insert oligo pools, where each oligo contains barcodes, Type IIS restriction cutsites, and a sub-region of the gene. Be sure to review your library generation vector and gene sequences and look for pre-existing Type IIS restriction sites. Use site-directed mutagenesis to remove unwanted off-target sites. Also note that, by default, DIMPLE expects restriction enzymes with 6 bp recognition sites and 4 bp overhang lengths (as with BsaI and BsmBI).
Input wild type gene sequence: Input your gene sequence, including backbone, in fasta format. Place all genes to be mutagenized in the same fasta file. You can define which positions your genes start and end in the fasta header. Note that this uses 0 indexing: for example, if your first nucleotide is 884 on snapgene, use 883 in the fasta header).
- For example: >geneA start:35 end:250

*If you do not define your start & end position, the software will analyze different ORFs and ask you to define these positions.

It is important to include the plasmid backbone so that the software can avoid making primers that nonspecifically recognize a region outside of your gene.

Using the DIMPLE GUI
Working Directory: When you open the DIMPLE GUI, first designate your working directory. This is the folder you wish your mutagenic oligo & primer outputs to be saved in.
Select mutations:
Deletions: If you'd like to generate a library with deletions across your gene, select "List of deletions". Enter how many base pairs you'd like to be deleted across your library.
- For example, if you'd like deletions that are one codon long, enter "3" for 3 nucleotides.
- For example, If you'd like to include both deletions that are one codon long AND two codons long in the same pool, enter "3,6" for both 3, and 6 nucleotide long deletions.
Insertions: If you'd like to generate a library with different amino acids inserted across your gene, select "List of Insertions".
- For example, If you'd like to insert glycines across your gene, include "GGG" in the box.
- For example, If you'd like to insert glycine-serine across your gene, include "GGGTGC" in the box.
- For example, if you'd like to insert glycine AND glycine-serine across your gene, include "GGG,GGGTGC" in the box.
Substitutions: If you'd like to generate a library where an amino acid at each position is swapped with every other possible amino acid, select "Include Substitutions."
Run DIMPLE: Hit "Run DIMPLE" when you are ready to generate your pool.
Target Gene File: Upload your gene fasta text file with the Target Gene File button.
Oligo length: Designate the length of your oligo. This will include the barcodes, Type IIS restriction cutsite, and a region of your target gene that will be mutagenized. So, target gene +50bp.
Fragment length: You can adjust the length of your fragments, we recommend leaving the fragment length set to auto.
- DIMPLE will automatically break up your gene into roughly the same fragment sizes, and will determine which lengths work best to avoid matching overhangs.
Fragment overlap: The number of base pairs shared between sub-regions. We have seen that setting overlap to 0 base pairs leads to errors. The overlap is set to 4 base pairs by default.
Barcode start position: The software selects from a set pool of barcodes when designing oligos. You can define which number barcode in the list this starts from.
Type IIS restriction sequence: You can select which Type IIS restriction cutsite you'd like to append to your inserts and backbone. You can choose between the BsmBI (CGTCTC) or BsaI (GGTCTC) sequences.
Codon usage: Your oligos can be codon optimized to your organism of choice. The default options are E. coli or Human , but you can also upload a codon usage table for any organism by pressing "Custom codon usage."
All outputs are saved in your working directory.
If you are using DIMPLE to mutagenize several genes, there will be separate files for the primers and mutagenic inserts for each gene, as well as a master list of all oligos and primers.

For each gene, DIMPLE generates a list of:
- EXAMPLE_DMS_Oligos. This is the list of sub-library oligo pools, where each oligo contains barcodes, Type IIS restriction cutsites, and a sub-region of the gene.

- EXAMPLE_DMS_Gene_Primers. These are primers used to add cutsites to and amplify the backbone each mutagenic insert will be ligated into.


- EXAMPLE_DMS_Oligo_Primers. These are primers used to amplify the mutagenic inserts from your oligo pool.

- EXAMPLE_mutations. This is the list of mutations that will be present in your final library.

Library assembly
Prepare oligo pool stock
Follow any recommendations for oligo pool resuspension: typically, this results in a 10 ng/µL solution, which the following steps assume. Lower or higher concentrations may require alterations.
PCR amplification of oligos, backbone
Thaw all components beforehand and follow general directions provided by manufacturer.
Amplification of mutagenic inserts and backbones should ideally be performed in parallel, assuming one has two thermocyclers. Alternatively, the backbone amplification can be performed first, then the the insert amplification can be done during the gel purification of the backbone.
PCR amplification of backbone.
Prepare a master mix with PrimeSTAR GXL polymerase:
A | B | C | D | E |
---|---|---|---|---|
Component | Total amount in master mix (µL) | Amount/reaction (µL) | Comment | Number of regions |
dNTP | =E2*C2 | 4 | =5 | |
5X buffer | =E2*C3 | 10 | ||
Template (vector) | =E2*C4 | 1 | ~10 ng | |
Enzyme | =E2*C5 | 1 | ||
Nuclease-free H2O | =E2*C6 | 32 | ||
Primers | 2 | Fwd & reverse combined at 20 µM (each) | ||
Total | =E2*(C8-C7) | =SUM(C2:C7) | ||
Mix by vortexing and spin down.
Transfer 48µL
of master mix into separate tubes for each reaction.
Add reaction-specific primers to each tube: 2µL
. Mix and spin down.
Place on thermocycler and amplify:
A | B | C |
---|---|---|
Step | T (° C) | Time (sec) |
1 | 98 | 10 |
2 | 55 | 15 |
3 | 68 | 60 per kb |
4 | Repeat 1-3 15-24 times | See note |
5 | 10 | Hold |
Note: the number of cycles should be optimized to minimize PCR cycles. Increasing cycles introduces the possibility of error. An initial comparison of 16, 18, and 22 total cycles can be used to find a minimum number of cycles which yields sufficient DNA for the assembly reaction (see step 11 below) and no more. Increasing the template concentration (to 50 or 100 ng) could be preferable to increasing PCR cycles if large numbers are required for amplification.
Purify amplified product by gel extraction.
Prepare an agarose gel for gel purification (0.5% - 0.75%). Ideally, it should be of sufficient size to load all samples.
Load and run backbone products.
Use a scalpel or razor blade to (carefully!) cut out each product. Using a gel extraction kit, purify the product and elute in 10µL
.
Important QC step - evaluate the quality of the amplification with the gel. Each lane should have a single, crisp band at the expected size. Multiple bands, or no bands, might indicate improper annealing and may require Tm or extension time optimization. Blurry and smeary bands might indicate problems with the electrophoresis or amplification conditions. It is essential to get specific, clean amplification of the backbone, and libraries should not be generated with messy reactions.

PCR amplification of mutagenic inserts.
Prepare a master mix with PrimeSTAR GXL polymerase:
A | B | C | D | E |
---|---|---|---|---|
Component | Total amount in master mix (µL) | Amount/reaction (µL) | Comment | Regions |
5X buffer | =E2*C2 | 10 | 5 | |
dNTP | =E2*C3 | 4 | ||
Oligo pool | =E2*C4 | 1 | 10 ng pool per reaction, assuming a stock at 10 ng/µL | |
Enzyme (PrimeSTAR GXL) | =E2*C5 | 1 | ||
Primers | 2 | Fwd & rev combined, 20 µM (each) | ||
Nuclease-free H2O | =E2*C7 | 32 | ||
Total | =E2*(C8-C6) | =SUM(C2:C7) | ||
Mix by vortexing.
Transfer 48µL
into separate tubes for each reaction.
Add reaction-specific primers to each tube: 2µL
. Mix and spin down.
Place on thermocycler and amplify:
A | B | C |
---|---|---|
Step | T (° C) | Time (sec) |
1 | 98 | 10 |
2 | 55 | 15 |
3 | 68 | 60 |
4 | Repeat 1-3 15-24 times | See note |
5 | 10 | Hold |
Note: the number of cycles should be optimized to minimize PCR cycles. Increasing cycles introduces both PCR bias and error. An initial comparison of 16, 18, and 22 total cycles can be used to find a minimum number of cycles which yields sufficient DNA for assembly step and no more. For the example libraries here, this is ~100 ng per oligo pool, and
Use a PCR cleanup kit to purify each product. Elute in 10µL
.
Important QC step - run a gel with each PCR product and visualize it. Ideally, each reaction should ideally give a single strong band at the expected size. Failure to do so may require changing PCR conditions.
Golden gate assembly
Prepare a master mix for the assembly. Use the table below to calculate: adjust number of regions and amount of necessary backbone and insert for desired amounts per reaction. We have found 3 µL backbone and 1 µL oligo (insert) are usually good.
A | B | C | D | E |
---|---|---|---|---|
Component | Total amount (µL) | Amount/reaction (µL) | Notes | Number of regions |
10X buffer | =E2*C2 | 4 | 5 | |
Enzyme | =E2*C3 | 2 | ||
Backbone | 3 | 300 ng | ||
Insert | 1 | 2:1 molar ratio: for example libraries here, ~30-40 ng | ||
Nuclease-free H2O | =E2*C6 | =C7-SUM(C2:C5) | ||
Total | =E2*C7 | 40 | ||
Vortex to mix.
Transfer appropriate master mix into separate tubes for each reaction.
Example: if each reaction has 3 µL backbone and 1 µL insert, then transfer 36 µL to each tube.
To each tube, add the appropriate vector/insert pair:
For this example:
3µL
1µL
Mix well and spin down.
Place on thermocycler and run the following program:
A | B | C |
---|---|---|
Step | T (° C) | Time (min) |
1 | 37 | 5 |
2 | 16 | 10 |
3 | Repeat 1-2 34 times (35 total cycles) | |
4 | 60 | 5 |
5 | 10 | Hold |
Important: This assumes the assembly is performed with BsaI. If using a different enzyme (such as BsmBI), check the recommended temperatures from the vendor.
Use a PCR cleanup kit to purify each product. Elute in . 10µL
.
Important: using elution buffer or TE may cause electroporation to fail!
Important QC step : before electroporating libraries, transform 1 µL of each library into chemically competent cells and plate. If no or very few colonies are observed the next day, this could suggest a failure during assembly. Further check the assembly by running a small portion on a gel.
Transformation and recovery of sublibraries
Using a high-efficiency electrocompetent strain of E. coli , such as MegaX DH10B, prepare a transformation for each assembly: 3µL
with 20µL
in a 0.1 cm cuvette. Follow the specific instructions for voltage and outgrowth media corresponding to your cells and electroporator. Outgrow cells for 1 hour before proceeding.
Essential QC step: Count total number of transformants to ensure adequate coverage.
Prepare 5 10-fold serial dilutions: for each reaction, add 900µL
H2O to six 1.5 mL microcentrifuge tubes. Add 100µL
of the outgrowth mixture to the first, then mix well and add 100µL
of this to the second tube. Repeat for the rest of the tubes.
Plate 100µL
of the last three dilutions (1:1000, 1:10000, 1:100000) on LB-agar with appropriate antibiotic. Grow overnight and count colonies the next day. Calculate the total number of transformants and determine the variant coverage per reaction. At least 50-fold coverage is essential . Note: the relevant measurement here is not transformation efficiency (i.e., cfu/ng), but simply total transformants!
Example calculations
Let’s say you are working with oligos with fragments of 50 codons from the protein of interest. For each residue, you generated 20 substitutions (including 1 synonymous), 3 insertions, and 3 deletions, for a total of 26 different variants at each position. Then this subpool will have a total of 1300 possible variants.
In order to have 50-fold coverage of these subpool, you would need to obtain
Now suppose for two subpool transformations with 1300 variants in each, dilutions were performed as directed. The minimum number of colonies one would need to see for 50-fold coverage would be:
A | B | C |
---|---|---|
Dilution factor of plate | Minimum number of colonies | Rounded |
1:10^4 | 104 | 104 |
1:10^5 | 10.4 | 11 |
1:10^6 | 1.04 | 2 |
We normally average the results of each dilution in order to get a better sense of our coverage. With good transformations, we often see very dense plates at lower dilutions. To be conservative, we typically just note that there are a much larger number than necessary and leave them out of the average. On the flip side, sometimes we observe no colonies at very high dilutions. These should be included during averaging.
Suppose two subpools were cloned and the following colony counts were obtained for the dilution plates:
A | B | C | D |
---|---|---|---|
Reaction | Colonies (1:10^3 plate) | Colonies (1:10^4 plate) | Colonies (1:10^5 plate) |
Subpool 1 | 36 | 5 | 0 |
Subpool 2 | Many | 18 | 2 |
The total number of implied transformants in the starting outgrowth media was calculated with the following formula:
where
A | B | C | D | E |
---|---|---|---|---|
Reaction | Transformants | Transformants | Transformants | Average |
Subpool 1 | 3.6e6 | 5e6 | 0 | 1e6 |
Subpool 2 | 2e7 | 2e7 | 2e7 |
Next, the total transformants per variants in each pool is calculated, using the average number of transformants.
A | B | C |
---|---|---|
Reaction | Variants in pool | Coverage |
Subpool 1 | 10000 | 300 |
Subpool 2 | 1300 | 14000 |
Both these subpools would be good to proceed with.
Important QC step: pick single colonies from the QC plates and use clonal sequencing to check for mutations (e.g., Sanger sequencing or whole-plasmid sequencing). We typically pick 5 colonies per subpool and expect the majority to contain a desired mutation. Too much WT could indicate problems during the backbone amplification, and too many off-target mutations could suggest a failure to amplify or purify properly. In both cases, these would be extremely deleterious to the quality of the final library.
Add the remaining outgrowth culture to 30mL
LB supplemented with appropriate antibiotic for further outgrowth in either a Falcon tube or glass culture tube. Shake until the culture reaches OD 0.6-0.7.
Note : it is important to harvest the cells in the exponential phase. This takes 4-6 hours in our experience, but may vary (including between samples in the same day).
Harvest DNA from cultures using a miniprep kit, splitting each reaction across 3 columns. Elute each column in 40µL
elution buffer and combine elutions corresponding to a single sublibrary.
Sublibrary pooling and subcloning
Measure each sublibrary concentration with a fluorometric method, such as Qubit. With the lowest concentration as the target concentration, prepare a dilution of each sublibrary in H2O. Mix 2µL
of this dilution from each sublibrary to create an equimolar library pool.
Subclone library to transfer from library vector to selection vector. Depending on construct design, this may require digestion/ligation or a Golden Gate reaction.
Use PCR cleanup kit to purify reaction, and elute in 10µL
H2O.
Using a high-efficiency electrocompetent strain of E. coli , such as MegaX DH10B, transform 3µL
with 50µL
cells in a 0.1 cm cuvette. Follow the specific instructions for voltage and outgrowth media corresponding to your cells and electroporator. Outgrow cells for 1 hour before proceeding.
Repeat transformation and isolation following steps for subpool cloning and quantification as above, except perform 6 serial dilutions and plate samples at 1:10000, 1:100000, and 1:1000000 dilutions and use variant counts for the total library. Again, at least 200-fold coverage is essential for maintaining unbiased libraries. Pick colonies and submit for clonal sequencing as well: we typically submit ~10 samples for our final pooled library.