This repository hosts the code of OmniPrimer, a bioinformatic automation tool aimed to optimise the long and time-consuming clinical procedure to design primers for the Sheffield Diagnostic Genetics Service (part of the Sheffield Children’s NHS Foundation Trust). OmniPrimer effectively alleviates the burden on the NHS, saving hundreds of hours of clinicians' work. This translates into significant cost savings for the NHS, amounting to tens of thousands of pounds, and enhances patient outcomes by enabling clinicians to focus their efforts and attention directly on patient care.
Accurate and efficient primer design is a crucial element in any clinical diagnostics service/laboratory, particularly in diagnosing rare genetic diseases where precision is paramount. To ensure accurate diagnosis, primers must bind to a genomic region free from single nucleotide polymorphisms (SNP). This ensures that the PCR amplification of the exon of interest takes place, improving the reliability of the genetic testing and subsequent diagnosis. However, generating clinical-grade diagnosis primers is currently a long and time-consuming process that clinicians must perform manually.
OmniPrimer was born to offer a comprehensive and automated solution to clinicians, integrating the existing clinical methodologies to generate primers with cutting-edge sorting algorithms. The tool was single-handedly developed in Python as part of a work placement for the Sheffield Children’s NHS Foundation Trust.
OmniPrimer is designed to follow the exact clinical protocol to design primers as described in Protocol.docx
. This can be briefly summarised in the three steps below:
-
Step 1: OmniPrimer will parse the genomic sequence of the gene provided, split the exons based on size, and generate exonic chunks flanked by intronic sequence. The genomic sequence should be downloaded from Ensembl.
-
Step 2: OmniPrimer will interact with Primer3Plus to generate several primer pairs for each processed exonic sequence.
-
Step 3: OmniPrimer will interact with SNPCheck to validate the quality of each primer pair previously generated. SNPs and amplicon size of each primer pair will be analysed to identify clinical-grade primers free from SNPs. Information of primers meeting the clinical criteria will be automatically downloaded.
For further details, please consult the both the Protocol.docx
and Thesis_extract.pdf
files in the docs/
directory.
OmniPrimer was initially tested on the human fibrillin-1 gene (FBN1) to prove that its results are identical to those of a human operator. FBN1 is known to be involved in Ehlers Danlos Syndrome. Each primer pair generated by OmniPrimer for FBN1 was compared to the corresponding one designed manually, hence using them as controls. 85 out of 86 primer pairs generated by OmniPrimer were identical to those generated by the user, showing a total accuracy of 98.8%.
To prove than OmniPrimer can process any gene and quantify the processing time, 10 different genes from 4 different inherited diseases were used as validation candidates. Designing primers for a complete gene using the program was achievable in minutes, with the lowest time being 8 minutes for ENG (23 primer pairs generated) and the highest being 2h and 52 minutes for SMAD2 (229 primer pairs generated). Remarkably, OmniPrimer demonstrated to be 9 to 23 times faster to design primer pairs compared to a human operator.
For further details on performance and validation, please consult the Thesis_extract.pdf
file in the docs/
directory.
The repository is organized as follows:
src/
: Contains the source code of OmniPrimer and related utils.data/
: Includes sample input data and output from OmniPrimer.docs/
: Documentation and additional resources related to OmniPrimer.README.md
: This README file providing an overview of the repository and instructions for usage.
To assist with using OmniPrimer effectively, please refer to this Demo video on YouTube. Please note that a web browser should be installed on the device, which must be connected to the internet. Firefox is the recommended web browser for optimal results.
To utilize OmniPrimer, follow these steps:
- Clone the repository to your local machine.
- Install the necessary dependencies (see Dependencies section).
- Prior to running OmniPrimer, ensure the following input file is available:
.txt
file containing the full intronic and exonic sequence of the gene of interest. This should be downloaded from Ensembl.
- Navigate to the
src/
directory. - Run the main OmniPrimer script with appropriate input parameters as described below to initiate the primer design process:
- Set your desired download directory path using
profile.set_preference("browser.download.dir")
to save primer pairs. - Set the Ensembl page of the gene of interest using
browser_primers.get()
. Simply replace the placeholder link with yours.
- Set your desired download directory path using
- Access the generated primers and analysis reports in the designated output directory.
Ensure you have the following dependencies installed before running OmniPrimer:
This tool was developed single-handedly by myself as part of a work placement in collaboration with the University of Sheffield and the Sheffield Children’s NHS Foundation Trust. This work is part of a dissertation submitted to the University of Sheffield for the Degree of Master of Science (MSc) in Human and Molecular Genetics. For any inquiries, please reach out to me at chelu.alex@hotmail.com.