You will need conda installed. Follow the instructions here: https://docs.conda.io/projects/conda/en/latest/user-guide/install/index.html
Clone the repo into a directory of your choice:
git clone https://github.com/Matt115A/uht-tooling.gitNavigate to /uht-tooling/ and run:
chmod +x setup.sh
./setup.shNote: This setup.sh file is verified for Mac only. Results may vary on other OS.
python -m pip install
--index-url https://test.pypi.org/simple
--extra-index-url https://pypi.org/simple
"uht-tooling[gui]==0.1.2"
For the command-line tool. Run
uht-tooling --help for further information, including on how to run the gui.
- Configs and data are found in
data/.../, where...depends on the script you wish to run. - Results are saved to
results/.../. - All major scripts now generate detailed log files in their respective
results/.../directories. These logs capture all major steps, errors, and outputs, making it easier to debug and trace your runs.
make nextera_primersmake umi_huntermake design_slimmake mutation_callermake ep-library-profilemake design_gibsonmake profile_insertsmake gui- Launch interactive GUI (optional)
A web-based GUI is available for convenient interaction with the tools:
make guiThis will launch a local web interface at http://127.0.0.1:7860 where you can:
- Design Nextera primers interactively
- Design SLIM and Gibson assembly primers
- Input sequences and mutations directly
- View results immediately
Note: The GUI is optional. All existing command-line workflows continue to work as before. The GUI is a non-destructive wrapper that calls the same underlying scripts.
Requirements: Gradio is included in requirements.txt. Install with:
pip install gradioOne-PCR-to-flowcell workflow
To use this software:
- Upload a
.csvfile indata/nextera_designer/callednextera_designer.csv. The first column should be calledbinding_region, and the first two rows should be the forward and reverse primers you want to use to generate your Illumina amplicon. - Use normal primer design rules, inputting the sequence in the 5'→3' order (same as if you were ordering primers).
- The script is pre-loaded with twelve i5 and twelve i7 indices, allowing up to 144 unique amplicons.
- After setting up your conda environment, run
make nextera_primers. A new.csvwill appear inresults/nextera_designer/, ready for ordering.
Pipeline for kit-free Illumina sample prep:
- PCR using an i5/i7 primer pair, monitor a portion of the reaction using qPCR. Cap the cycle number to get only 10% of the final yield (minimises PCR amplification bias).
- Purify the DNA product, removing primers (important to avoid primer excess on the chip). Use SPRIselect beads from Beckman Coulter. Start with a 0.65:1 bead:DNA volume ratio.
- Verify primer removal using electrophoresis (e.g., 2100 BioAnalyser and a DNA detection chip).
Extract and analyze insert sequences from FASTQ data using upstream and downstream probe sequences:
- Place your
.fastq.gzfile and a.csvfile withupstreamanddownstreamcolumns indata/profile_inserts/. - Run
make profile_inserts. - The script uses fuzzy matching to find probe sequences (forward and reverse complement).
- Outputs include extracted inserts in FASTA format, comprehensive QC plots, and detailed metrics.
- QC metrics include length distribution, GC content, sequence composition, probe performance, and duplicate analysis.
Features:
- Fuzzy matching for probe annealing (configurable threshold)
- Progress bars for long-running analyses
- Comprehensive QC plots (12 different visualizations)
- Detailed logging and error handling
- Support for multiple probe pairs per CSV
For long-read sequencing libraries tagged with UMIs:
- Place your
.fastq.gzfiles indata/umi_hunter/along with a gene template (template.fasta) and a configuration fileumi_hunter.csv. - The script outputs UMI-gene clusters, their counts, and consensus genes for clusters with >10 representatives to
results/umi_hunter/. - By default, the script clusters at 90% UMI identity.
- Save your gene reference (coding sequence only) in
data/mutation_caller/mutation_caller_template.fasta. - Place your
.fastq.gzfile indata/mutation_caller/and place a .csv file there too called mutation_caller.csv - mutation_caller.csv should have two columns: one being gene_flanks and the second being gene_min_max. The first row of gene_flanks should be a 8-12bp region directly upstream of the GOI, and the second row should be the same immediately downstream. The first row of gene_min_max should be the min length of a valid gene, and the second should be the maximum length of a valid gene.
- Run
make mutation_caller. - The script outputs mutation counts and co-occurrence data to
results/mutation_caller/.
- This is a quick tool to design primers for SLIM cloning, which can add mutations to specific spots in a protein with overnight ease.
- Add your gene template (coding sequence only) to
data/design_slim/slim_template_gene.fastaand your whole plasmid todata/design_slim/slim_context.fasta. - Specify mutants in
data/design_slim/slim_target_mutations.csv(first column:mutations). - The script outputs designed primers to
results/design_slim/SLIM_primers.csv.
Mutation Nomenclature Examples:
- Substitution:
A123G - Deletion:
T241Del - InDel (inter-codon):
T241InDelA242S - Insertion after codon:
T241TS(insert Ser after Thr241) - Codon replacement insertion:
L46GP(replace Leu46 with Gly-Pro)
Experimental: Total time: ~ 3h hands-on (not inc. protein purification), 72h DNA -> pure mutant protein
Contributions: 2x PCRs (~2h + 10 mins setup), SLIM thermocycling (50 mins), transformation (30 mins setup + overnight incubation), colony growth (5 mins hands-on, 12 h growth), DNA recovery (important for validation, 30 mins hands-on), protein expression and purification (2x overnight)
SLIM protocol: Once you have the primers, run two normal PCRs using (A) long fwd + short rvs and (B) long rvs + short fwd. You can then add 10 ul of each PCR product to 10 ul of H-buffer, composed of 150 mM Tris pH 8, 400 mM NaCl and 60 mM EDTA. Incubate this (total volume 30 ul) in a thermocycler using the following protocol: 99 oC, 3:00 -> 2x [65 oC, 5:00 -> 30 oC, 15:00] -> Hold at 4 oC. You may then transform either NEB 5a or BL21 (DE3) with this mixture without further purification.
- Add your gene template (coding sequence only) to
data/design_gibson/gibson_template_gene.fastaand your whole plasmid todata/design_gibson/gibson_context.fasta. - Specify mutants in
data/design_gibson/gibson_target_mutations.csv(first column:mutations). - The script outputs designed primers and an assembly plan to
results/design_gibson/. - Multi-mutants can be specified by adding a
+between mutations in one cell of the.csvfile.
Mutation Nomenclature Examples:
- Substitution:
A123G - Deletion:
T241Del - InDel (inter-codon):
T241InDelA242S - Insertion after codon:
T241TS(insert Ser after Thr241) - Codon replacement insertion:
L46GP(replace Leu46 with Gly-Pro)
Note: If target mutations are too close together and primer regions would overlap, run the reaction sequentially to incorporate multi-mutations.
- Place
.fastq.gzfiles in/data/ep-library-profile/. - Provide the mutational region of interest (
/data/ep-library-profile/region_of_interest.fasta) and the whole plasmid (/data/ep-library-profile/plasmid.fasta). - Run
make ep-library-profile. - Outputs include coverage, mutation rate, spectrum, and associated error, all saved in
results/ep-library-profile/along with a log file.
All major scripts generate detailed log files in their respective results/.../ directories. These logs capture all major steps, errors, and outputs, making it easier to debug and trace your runs.
- Primer design for KLD cloning of mutants
- Expansion of all primer design software for multi-mutations
- Expansion of mutation caller to handle indels