プライマーデザインは、現代の分子生物学研究室では日常的に行われている。primer3やprimer-blastのようなバイオインフォマティクスツールは、特定領域のプライマー設計を標準化した。しかし、大規模なプライマー設計、特にゲノムワイドなスクリーニングのためのプライマー設計は、これらのパイプラインを使用するほとんどのウェットラボ研究者にとって、依然として手間のかかる作業である。この論文では、ハプロタイプを区別するプライマーを大規模に一括設計し、精密な偽のプライミングのチェックを行うことができるprimerdifferパイプラインを紹介する。このコマンドラインインターフェース(CLI)パイプラインは、greedyなプライマー検索、ローカルおよびグローバルin silico PCRベースの偽のプライミングチェック、および自動化されたベストプライマー選択を含む。ローカルCLIアプリケーションは、ユーザー自身のゲノム配列や特定のパラメーターを用いてプライマーを設計する柔軟性を備えている。Caenorhabditis briggsaeとC. nigoniのハイブリッド導入株をジェノタイピングするために設計されたいくつかの種特異的プライマーは、single-worm PCRを用いて検証された。このパイプラインは、あらゆる対象領域のハプロタイプを区別するためのCLIベースの大規模プライマーデザインツールを初めて提供する。オープンソースのPythonモジュールは、github (https://github.com/runsheng/primerdiffer, https://github.com/runsheng/primervcf) およびPython package index (https://pypi.org/project/primerdiffer/, https://pypi.org/project/primervcf/) で入手できる。
インストール
ubuntu18LTSにて、レポジトリに書かれている通り、pipとcondaを併用して導入した(ベース環境を破壊するのを避けるために仮想環境推奨)ここではpython3.11使用。
依存
- worked with python version >=3.8 (Tested in python 3.8, 3.9, 3.10 and 3.11). Only tested in linux x64 system.
python package:
- primer3-py>=0.6.1
- biopython>=1.7.8
other program in your $PATH:
- ncbi-blast
#1 condaでpython3の仮想環境を作る
mamba create -n Primerdiffer python=3 -y
conda activate Primerdiffer
#2 primerdifferのインストール
#pip(will also install primer3-py and biopython)
pip install primerdiffer
#conda(install ncbi blast)
mamba install -c bioconda blast -y
#3 primervcfのインストール
#pip(will also install all other python dependencies)
pip install primervcf
> primerdesign.py
usage: primerdesign.py [-h] [-d WKDIR] [-g1 GENOME1] [-g2 GENOME2] [-pos POSITION] [--alignlen ALIGNLEN] [--free3len FREE3LEN]
[--productlen PRODUCTLEN] [-h1 HIT1] [-h2 HIT2] [-i INTERVAL] [-j JUMP] [--prefix PREFIX]
[--primer3config PRIMER3CONFIG]
options:
-h, --help show this help message and exit
-d WKDIR, --wkdir WKDIR
The dir path contain the file, if not given, use the current dir
-g1 GENOME1, --genome1 GENOME1
the fasta file used to design primer
-g2 GENOME2, --genome2 GENOME2
the fasta file used to check false priming
-pos POSITION, --position POSITION
position on genome1 to design primer, use string with IGV format, like ChrX:1956230-1976220
--alignlen ALIGNLEN the cutoff of primer min align length as a right hit, default is 16
--free3len FREE3LEN the cutoff of primer 3' align length as a right hit, default is 2
--productlen PRODUCTLEN
the cutoff of max product which will be treated as a false priming, default is 2000.
-h1 HIT1, --hit1 HIT1
the cutoff of max number of in-silicon PCR product which can be found in genome1. default is 1
-h2 HIT2, --hit2 HIT2
the cutoff of max number of in-silicon PCR product which can be found in genome2, default is 0
-i INTERVAL, --interval INTERVAL
interval is the region begins to pick primers, default is 5000. If 5k is the unit, will pick one primer each
5k
-j JUMP, --jump JUMP jump is the region to jump inside intervals if the prvious interval can not generate a valid primer, the
smaller, more sites to check. Default is 500.
--prefix PREFIX prefix of output file, default is primers
--primer3config PRIMER3CONFIG
the config file for the primer3
> primerdesign_vcf.py -h
usage: primerdesign_vcf.py [-h] [-d WKDIR] [-g GENOME] [-b BEDFILE]
[--alignlen ALIGNLEN] [--free3len FREE3LEN]
[-n PRIMERNUMBER] [--debug DEBUG] [--prefix PREFIX]
[--primer3config PRIMER3CONFIG]
options:
-h, --help show this help message and exit
-d WKDIR, --wkdir WKDIR
The dir path contain the file, if not given, use the
current dir
-g GENOME, --genome GENOME
the fasta file used to design primer and check
specificity
-b BEDFILE, --bedfile BEDFILE
the bed file containing the deletion region interval
--alignlen ALIGNLEN the cutoff of primer min align length as a right hit,
default is 16
--free3len FREE3LEN the cutoff of primer 3' align length as a right hit,
default is 2
-n PRIMERNUMBER, --primernumber PRIMERNUMBER
the primer designed for each region, default is 5, do
not have much impact for primer design
--debug DEBUG open debug mode or not, default is no
--prefix PREFIX prefix of output file, default is primers
--primer3config PRIMER3CONFIG
the config file for the primer3
実行方法
レポジトリではC. nigoniとC.briggsaeのゲノムを例として使い方が説明されている(レポジトリにダイレクトリンクあり)。
C.nigoniの領域は増幅せず、C.briggsaeの1つの領域のみを増幅するC.briggsae独自のプライマーを設計する。C. briggsaeの標的領域はChrX:12881200-15106660(-posで指定)で、4kbの区間ごとに1つのプライマーを設計する(-i)。それぞれのゲノムのfastaファイルを指定する(圧縮ファイルには非対応)。
primerdesign.py -g1 cb5.fa -g2 cn3_new.fa -pos "ChrX:12881200-15106660" --interval 4000
C. nigoniゲノムはcn3_new.fa、C. briggsaeゲノムはcb5.fa。
primers_ChrX:12881200-15106660.txtができる。

ispcr.pyスクリプトを使えば指定したPCRプライマーの増幅産物をチェックできる。PCRプライマーとリファレンス配列を指定する。
ispcr.py -f gcactttcatgtccctcaac -r cactctattctcaccccacc -g cb5.fa -o ispcr.fa
> cat ispcr.fa

ハプロタイプ特異的なプライマーを欠失領域で作成するにはprimerdesign_vcfを使う。
#VCFからDel呼び出し(BED)
vcf2del.py -f QR25.vcf -o QR25_del.bed
#primerdesign_vcfのラン
primerdesign_vcf.py -g cb5.fa -b QR25_del.bed --prefix QR25
他にもfastqからVCFをコールするfq2vcfが用意されています(pipで導入するとパスは通っている)。
引用
Primerdiffer: a python command line module for large-scale primer design in haplotype genotyping
Xiaoliang Ren, Yanwen Shao, Yiwen Zhang, Ying Ni, Yu Bi, Runsheng Li
Bioinformatics, Published: 17 April 2023