MFEprimer
MFEprimer-3.1 #
Big change from v3.0
Major changes from v3.0 #
- merge several tools into one single execute file
mfeprimer
- support major platforms: Linux, Mac and Windows
- bug fixed and faster than v3.0
- fix thermodynamics calculation bugs for dimers and hairpins
- local web server version is available
Summary of different versions #
Before getting started, I’d like to make a summary for different versions. Please choose the right version for you.
Title | web server by the author | command-line | local web server |
---|---|---|---|
primer number | <= 50 | no limit | usually <= 50 |
database | pre-indexed by the author | no limit | no limit |
user interface | graphic and easy to use | terminal and requires essential Linux skills | graphic and easy to use |
users from | worldwide | the owner | usually all members of the institution |
workflow | no | yes and can be integrated into user defined primer design workflows | no |
1. Web servers maintained by the author #
2. Command-line version #
Install #
- Please download the right version for your machine: https://github.com/quwubin/MFEprimer-3.0/releases (take Linux version as an example).
- Uncompress the file.
- Make sure the file has the execute permission.
- Run with option “-h” to get help message. You can rename the file to
mfeprimer
as you wish.
# download the executable mfeprimer filewget -c https://github.com/quwubin/MFEprimer-3.0/releases/download/v3.1.0/mfeprimer-3.1.0-linux-amd64.gz# uncompress the filegzip -d mfeprimer-3.1.0-linux-amd64.gz# make it executablechmod +x mfeprimer-3.1.0-linux-amd64# test it./mfeprimer-3.1.0-linux-amd64 -hMFEprimer-3.1.0, a functional primer quality control program for checkingnon-specific amplicons, dimers, hairpins and others.Web site: https://www.mfeprimer.com/Cite: Wang, K., Li, H., Xu, Y., Shao, Q., Yi, J., Wang, R., … Qu, W. (2019).MFEprimer-3.0: quality control for PCR primers. Nucleic Acids Research.https://doi.org/10.1093/nar/gkz351.Usage: mfeprimer [flags] mfeprimer [command]Available Commands: dimer analysis primer dimers hairpin analysis primer hairpins help Help about any command index index fasta file for mfeprimer indexcmp Compare the old and the new index file, return false when they are not same spec analysis specificity of primers version print version numberFlags: -b, --bind print specific and nonspecific binding sites and patterns for each primer -d, --db strings [*] database indexed for specificity check: -d hg19.fa -d mrna.fa --diva float concentration of divalent cations [mM] (default 1.5) --dntp float concentration of dNTPs [mM] (default 0.25) -h, --help help for mfeprimer -i, --in string [*] a file contains primer sequences in fasta format -j, --json output in json format -k, --kvalue int k value for format, defaut is 9 (default 9) -S, --maxSize int max product size for the predicted amplicons [bp] (default 2000) -s, --minSize int min product size for the predicted amplicons [bp] --misEnd int mis-match ends to the position of 3' end, 9 (kvalue) for the 9th base from the 3'end (default 9) --misMatch int max allowed mismatches between kmer and its binding sites --misStart int mis-match starts from the position of 3' end, 1 is for the very end of primer. (default 1) --mono float concentration of monovalent cations [mM] (default 50) --oligo float concentration of annealing oligos [nM] (default 50) -o, --out string output file name, e.g., primer.mfe.txt --snp string SNP file name in bed format, e.g., dbsnp151.bed -t, --tm float tm cutoff value to filter the amplicons (default 30)Use 'mfeprimer [command] --help' for more information about a command.
In v3.1.0, I make
index
,dimer
,hairpin
as sub-commands tomfeprimer
, each sub-command has their own arguments and options to set.I manually tested the Mac and Linux version, and I will find time to test the Windows version.
Usage #
I’d like to do some examples with sample files, let’s prepare the test files:
# make a test directorymkdir testcd test# chrM.fa as databasewget -c https://github.com/quwubin/MFEprimer-3.0/raw/master/chrM.fa# p.fa test primer sequences in fasta formatwget -c https://github.com/quwubin/MFEprimer-3.0/raw/master/p.fa# snp in bed format to check whether a primers bind to a snp sitewget -c https://github.com/quwubin/MFEprimer-3.0/raw/master/snp.bed# make a softlinkln -s ../mfeprimer-3.1.0-linux-amd64 mfeprimer
The file tree is:
tree ..├── chrM.fa├── mfeprimer -> ../mfeprimer-3.1.0-linux-amd64├── p.fa└── snp.bed
Index databases #
./mfeprimer index -i chrM.fa
After index, the file tree is:
tree ..├── chrM.fa├── chrM.fa.fai├── chrM.fa.json├── chrM.fa.log├── chrM.fa.primerqc├── chrM.fa.primerqc.fai├── mfeprimer -> ../mfeprimer-3.1.0-linux-amd64├── p.fa└── snp.bed
mfeprimer index
will add 5 files with suffixes: “.fai”, “.json”, “.primerqc”, “.primerqc.fai” and “.log”.
Run mfeprimer
for full quality control #
# run mfeprimer./mfeprimer -i p.fa -d chrM.fa
Without “-o” options, the result will print to the screen:
MFEprimer-3.0 Primer Quality Reports (2019-10-17 11:29:18)Primer ID Sequence (5'-->3') Length GC Tm Dg Binding Number (bp) (%) (°C) (kcal/mol) Plus Minusp1 CTACAACCCCACCACGTACC 20 60.00 60.55 -22.23 0 0p2 CGTTACACACTTTGCGGCAA 20 50.00 60.47 -22.43 0 0p3 CTTAAATAGGGACCTGTATGAATGGCTC 28 42.86 61.98 -27.11 2 1p4 CCGAAATTTTTAATGCAGGTTTGGTAGT 28 35.71 61.97 -27.14 0 1p5 GGACACTCTATGGGAAAGAGTGTCC 25 52.00 62.91 -26.07 0 1Hairpin List (1)Hairpin 1: p5 Score: 9, Tm = 26.56 °C, Delta G = -4.48 kcal/mol /////////-------\\\\\\\\ GGACACTCTATGGGAAAGAGTGTCCDimer List (1)Dimer 1: p2 x p2 Score: 7, Tm = 14.55 °C, Delta G = -6.09 kcal/molCGTTACACACTTTGCGGCAA ::::.:::: AACGGCGTTTCACACATTGCDescriptions of [ 1 ] potential ampliconsAmpID HitID Size FpTm RpTm FpDg RpDg (bp) (°C) (°C) kcal/mol kcal/mol1 chrM 200 61.93 62.67 -27.40 -28.08Amplicon detailsAmp 1: p3 + p4 ==> chrM Size = 200 bp, GC content = 43.50% F: Tm = 61.93 °C, Delta G = -27.40 kcal/mol R: Tm = 62.67 °C, Delta G = -28.08 kcal/mol Binding sites: 2612(28/28) ... 2811(28/28)>>>p3 1 285' CTTAAATAGGGACCTGTATGAATGGCTC 3' :::::::::::::::::::::::::::: 28115' CTTAAATAGGGACCTGTATGAATGGCTCcacgagggttcagct...acccacaggtcctaaACTACCAAACCTGCATTAAAAATTTCGG 3' 2612 :::::::::::::::::::::::::::: 3' ACTACCAAACCTGCATTAAAAATTTCGG 5' 28 1 p4<<<>Amp_1 p3 + p4 ==> chrMCTTAAATAGGGACCTGTATGAATGGCTCcacgagggttcagctgtctcttacttttaaccagtgaaattgacctgcccgtgaagaggcgggcataacacagcaagacgagaagaccctatggagctttaatttattaatgcaaacagtacctaacaaacccacaggtcctaaACTACCAAACCTGCATTAAAAATTTCGGParameters Primer file: p.fa Database: chrM.fa Kvalue: 9 MisMatch: 0 Tm cutoff (°C): 30.00 Amplicon min size (bp): 0 Amplicon max size (bp): 2000 SNP: Monovalent cations [mM]: 50.00 Divalent cations [mM]: 1.50 dNTPs [mM]: 0.25 Annealing oligos [nM]: 50.00CiteKun Wang, Haiwei Li, Yue Xu, Qianzhi Shao, Jianming Yi, Ruichao Wang, Wanshi Cai, Xingyi Hang,Chenggang Zhang, Haoyang Cai, Wubin Qu, MFEprimer-3.0: quality control for PCR primers,Nucleic Acids Research, Volume 47, Issue W1, 02 July 2019, Pages W610–W613,https://doi.org/10.1093/nar/gkz351Web & Contacthttps://www.mfeprimer.comWubin Qu <quwubin@gmail.com>Total time used: 81.641035ms.
The relation between mfeprimer
and its sub-commands: mfeprimer
do a full quality control for primers for specificity, binding sites, dimers and hairpins. While, spec
only for specificity, dimer
is only for dimers and hairpin
is only for hairpins, as their names indicated. The sub-commands have more options to control the behavious. mfeprimer
only have default parameters for dimers and hairpins.
Run mfeprimer spec
for specificity #
./mfeprimer spec -i p.fa -d chrM.fa
Run mfeprimer dimer
for dimers #
./mfeprimer dimer -i p.fa
Run mfeprimer hairpin
for hairpins #
./mfeprimer hairpin -i p.fa
3. Local web server #
Download and install #
- Please download the right version for your machine: https://github.com/quwubin/MFEprimer-3.0/releases (take the Mac version as an example).
- Uncompress the file.
- test it.
# download the executable mfeprimer-web filewget -c https://github.com/quwubin/MFEprimer-3.0/releases/download/v3.1.1/mfeprimer-web-3.1.1-darwin-amd64.tar.gz# uncompress the filetar zxvf mfeprimer-web-3.1.1-darwin-amd64.tar.gz# The file tree is:tree -L 2.├── conf│ └── app.conf├── mfedb│ ├── chrM.fa│ ├── chrM.fa.fai│ ├── chrM.fa.json│ ├── chrM.fa.log│ ├── chrM.fa.primerqc│ └── chrM.fa.primerqc.fai├── mfeprimer-web├── static│ ├── css│ ├── fonts│ ├── img│ └── js└── views ├── dimer ├── hairpin ├── layout.html ├── seq └── spec# test it./mfeprimer-web# open your browser and enter the following address, and you will see the default page.http://localhost:8080/

Configure the server #
Open the “conf/app.conf”, change the corresponding item following the references in the file.
Add database #
There is an example database named “chrM.fa” in “mfedb” directory. You can place any database hereand index the database with command mfeprimer index -i dbname.fasta
.