使用NCBI

您所在的位置:网站首页 primer3怎么用 使用NCBI

使用NCBI

2023-08-10 13:04| 来源: 网络整理| 查看: 265

NCBI已经不再维护并下架了ePCR软件,转而推荐使用其Primer-BLAST网页工具。这对于单个引物设计任务比较方便,但不利于基因组较大的非模式物种的特异性引物设计或批量化的引物设计。

本教程讲解使用NCBI-ePCR和Primer3进行引物批量化设计。

1.下载并安装NCBI-ePCR和Primer3软件 $ wget http://ftp.debian.org/debian/pool/main/e/epcr/epcr_2.3.12-1.orig.tar.gz -P ~/software $ tar zxf ~/software/epcr_2.3.12-1.orig.tar.gz -C /opt/biosoft/ $ make -j 4 $ echo 'PATH=$PATH:/opt/biosoft/e-PCR-2.3.12/' >> ~/.bashrc $ source ~/.bashrc $ wget https://sourceforge.net/projects/primer3/files/primer3/2.4.0/primer3-2.4.0.tar.gz -P ~/software/ $ tar zxf ~/software/primer3-2.4.0.tar.gz -C /opt/biosoft/ $ cd /opt/biosoft/primer3-2.4.0/src/ $ make all $ echo 'PATH=$PATH:/opt/biosoft/primer3-2.4.0/src/' >> ~/.bashrc $ source ~/.bashrc 2. 使用ePCR进行引物验证

首先,使用famap命令和fahash命令分两步将基因组序列转换为哈希数据库。

$ famap -t N -b genome.famap genome.fasta 程序将FASTA格式的序列转换为famap数据库文件。

常用参数:-t 设置碱基类型。可以设置4种值:n,允许含有小写碱基atcgn,其它字符转换为n或N;nx,允许含有小写碱基和兼并碱基字符,其它字符转换为n或N;N,仅允许大写碱基,atcgn自动转换为大写,其它字符转换为N;NX,允许大写碱基和兼并碱基字符,其它字符转换为N。 -b 设置输出的famap数据库文件路径。

$ fahash -b genome.hash -w 12 -f 3 genome.famap程序进一步将famap文件转换为hash数据库文件。

常用参数:-b 输出hash数据库文件。-w 设置wordsize长度。-f 设置wordcnt长度。

然后,使用re-PCR将引物和数据库进行比对,寻找引物比对结果。

分别对多个引物进行比对,得到各个引物的匹配结果:$ re-PCR -p genome.hash -n 1 -g 1 ACTATTGATGATGA AGGTAGATGTTTTT …

输入一对引物,并设置产物长度期望值,得到一对引物的匹配结果:$ re-PCR -s genome.hash -n 1 -g 1 ACTATTGATGATGA AGGTAGATGTTTTT 50-1000常用参数:-p 输入hash数据库,在命令行中直接输入引物序列,将引物和数据库进行比对。-s 输入hash数据库,在命令行中必须输入一对引物和产物长度期望范围,得到一对引物的匹配结果。-n 设置允许的错配碱基数。-g 设置允许的gap数。

3. Primer3软件的使用

Primer3是命令行形式的引物设计软件,能很好地用于引物的批量设计。 其主程序是primer3_core。 该命令的输入是Boulder-IO格式,适合于软件读入数据;输出文件默认下是适合人类阅读的格式,也可以是Boulder-IO格式,有助于下一步引物结果的批量操作。 Boulder-IO格式以文本形式记录着引物设计信息,且每个引物信息的结尾使用“等于换行符”分隔。每个记录由多个标签和对应的值构成,用于指定输入信息或输出结果。例如:

SEQUENCE_ID=exampleSEQUENCE_TEMPLATE=GTAGTCAGTAGACNATGACNACTGACGATGCAGACNACACACACACACACAGCACACAGGTATTAGTGGGCCATTCGATCCCGACCCAAATCGATAGCTACGATGACGSEQUENCE_TARGET=37,21PRIMER_TASK=genericPRIMER_PICK_LEFT_PRIMER=1PRIMER_PICK_INTERNAL_OLIGO=1PRIMER_PICK_RIGHT_PRIMER=1PRIMER_OPT_SIZE=18PRIMER_MIN_SIZE=15PRIMER_MAX_SIZE=21PRIMER_MAX_NS_ACCEPTED=1PRIMER_PRODUCT_SIZE_RANGE=75-100P3_FILE_FLAG=1SEQUENCE_INTERNAL_EXCLUDED_REGION=37,21PRIMER_EXPLAIN_FLAG=1

Primer3使用示例和参数:

$ primer3_core -p3_settings_file p3_settings_file -strict_tags -format_output input_file result.p3.out 程序的输入文件要求是Boulder-IO格式,如果没有输入文件,则会从标准输入读取数据。

常用参数:-p3_settings_file 用于输入primer3的配置文件。这是因为primer3可设置的参数太多了,将大部分参数放入到该配置文件,有利于参数的输入。primer3的默认参数不好,特别是默认参数下没有开启热力学计算。推荐使用配置文件来根据自己的需求来设定相关参数。此外,输入文件中的参数设置能取代此文件中的设定值。 此文件格式:第1行固定为"Primer3 File - http://primer3.sourceforge.net";第2行固定为"P3_FILE_TYPE=settings";第3行是个空行;从第4行开始则是标准的Boulder-IO格式内容。-format_output 让primer3_core产生人类易读的结果,否则产生机器易读的结果(Boulder-IO格式结果)。-strict_tags 要求输入文件中的标签要全部正确。设置该参数后,如果有标签不能被程序识别,则报错并停止执行。不设置此参数,则软件忽略不识别的参数。-p3_settings_file=file_path 指定 primer_core 的配置文件,该配置文件的设定会取代默认设置。当然,-echo_settings_file 打印出p3_settings_file中的设置信息。如果没有指定设置文件,或含有-format_output,则该参数失效。-output=file_path 指定输出文件路径,如果不指定,则输出到标准输出。-error=file_path 指定错误信息输出路径,如果不指定,则输出到stderr中。

Primer3使用的难点是根据自身需求准备p3_settings_file文件。我的一个示例如下(使用时需要去掉#注释部分和空行,且必须第三行留空行):

Primer3 File - http://primer3.sourceforge.net P3_FILE_TYPE=settings P3_FILE_ID=P3 Settings from Lianfu Chen PRIMER_FIRST_BASE_INDEX=1 PRIMER_TASK=generic PRIMER_NUM_RETURN=5 PRIMER_PICK_LEFT_PRIMER=1 PRIMER_PICK_INTERNAL_OLIGO=0 PRIMER_PICK_RIGHT_PRIMER=1 PRIMER_PICK_ANYWAY=1 PRIMER_THERMODYNAMIC_PARAMETERS_PATH=/opt/biosoft/primer3-2.4.0/src/primer3_config/ ### 引物 TM 值设定: ### PRIMER_TM_FORMULA=1 # TM 的计算方法, 1 表示使用 the SantaLucia parameters (Proc Natl Acad Sci 95:1460-65) PRIMER_MIN_TM=55.0 PRIMER_OPT_TM=60.0 PRIMER_MAX_TM=65.0 PRIMER_PAIR_MAX_DIFF_TM=5.0 # 两个引物之间的 TM 值最多相差 5 摄氏度 PRIMER_WT_TM_LT=0 PRIMER_WT_TM_GT=0 PRIMER_PAIR_WT_DIFF_TM=0.0 ### 引物长度设定: ### PRIMER_MIN_SIZE=18 PRIMER_OPT_SIZE=20 PRIMER_MAX_SIZE=22 PRIMER_WT_SIZE_LT=0 PRIMER_WT_SIZE_GT=0 ### 引物 GC 含量设定:### PRIMER_MIN_GC=30.0 PRIMER_MAX_GC=70.0 PRIMER_WT_GC_PERCENT_LT=0.0 PRIMER_WT_GC_PERCENT_GT=0.0 ### 引物的热力学计算: ### # 开启热力学计算,开启后,根据热力学的值 TH 值来计算罚分。 TH 的罚分方法为:罚分系数 * (1 / (引物TM - 4 - TH值))。 # 该方法好处是,TH 值越大,罚分力度越重。 PRIMER_THERMODYNAMIC_OLIGO_ALIGNMENT=1 # 引物自身进行反向互补,罚分系数计算为 9 / ( 1/(60-4-45) - 1/(60-4-0) ) = 123.2 # 这样计算罚分系数的原则是,若 TM 为最佳 60 摄氏度的时候,所允许的最大罚分值减去最小罚分值为 9,和 3' 端碱基的稳定性的罚分额度一致。 PRIMER_MAX_SELF_ANY=8.00 PRIMER_WT_SELF_ANY=0.0 PRIMER_MAX_SELF_ANY_TH=45.00 PRIMER_WT_SELF_ANY_TH=123.2 # 引物自身进行 3' 端反向互补形成引物二聚体,罚分系数计算为 9 / ( 1/(60-4-35) - 1/(60-4-0) ) = 302.4 PRIMER_MAX_SELF_END=3.00 PRIMER_WT_SELF_END=0.0 PRIMER_MAX_SELF_END_TH=35.00 PRIMER_WT_SELF_END_TH=302.4 # left primer 和 right primer 序列的反向互补 PRIMER_PAIR_MAX_COMPL_ANY=8.00 PRIMER_PAIR_WT_COMPL_ANY=0.0 PRIMER_PAIR_MAX_COMPL_ANY_TH=45.00 PRIMER_PAIR_WT_COMPL_ANY_TH=123.2 # left primer 和 right primer 进行 3' 端反向互补形成引物二聚体 PRIMER_PAIR_MAX_COMPL_END=3.00 PRIMER_PAIR_WT_COMPL_END=0.0 PRIMER_PAIR_MAX_COMPL_END_TH=35.00 PRIMER_PAIR_WT_COMPL_END_TH=302.4 # 发夹结构,罚分系数计算为 9 / ( 1/(60-4-24) - 1/(60-4-0) ) = 672 PRIMER_MAX_HAIRPIN_TH=24.00 PRIMER_WT_HAIRPIN_TH=672 # 3' 端碱基的稳定性 PRIMER_MAX_END_STABILITY=9.0 PRIMER_WT_END_STABILITY=1 ### 碱基序列设定: ### PRIMER_LOWERCASE_MASKING=0 # 模板序列中包含小写字符不影响引物设计 PRIMER_MAX_POLY_X=4 # 引物序列中不能包含单核苷酸连续长度超过 4 bp PRIMER_MAX_NS_ACCEPTED=0 # 引物中允许的 N 的数目 PRIMER_WT_NUM_NS=0.0 # 每个 N 的罚分 PRIMER_MAX_END_GC=5 # 引物中 3' 端 5bp 碱基中允许的最大 Gs 或 Cs 的数目 PRIMER_GC_CLAMP=0 # 引物中 3' 端碱基中不能出现连续的 Gs 和 Cs 序列 PRIMER_LIBERAL_BASE=1 # 是否允许有诸如 N A R Y 等类型的碱基。必须在设定PRIMER_MAX_NS_ACCEPTED 不为 0 后方有效。 PRIMER_LIB_AMBIGUITY_CODES_CONSENSUS=0 # 如果设置为 1,则 C 能与 S 完美匹配,任意碱基能和 N 完美匹配。 ### 碱基质量设定: ### PRIMER_MIN_QUALITY=0 # primer 序列允许最小的碱基质量 PRIMER_MIN_END_QUALITY=0 PRIMER_QUALITY_RANGE_MIN=0 PRIMER_QUALITY_RANGE_MAX=100 PRIMER_WT_SEQ_QUAL=0.0 PRIMER_WT_END_QUAL=0.0 ## 引物位置设置: ### PRIMER_SEQUENCING_LEAD=50 # 该参数仅在 PRIMER_TASK=pick_sequencing_primers 时有效. 表明引物的 3' 端距目标区域有 50bp。 PRIMER_SEQUENCING_SPACING=500 # 该参数仅在 PRIMER_TASK=pick_sequencing_primers 时有效. 该值决定了在同一条链上的两个引物的距离. PRIMER_SEQUENCING_INTERVAL=250 # 该参数仅在 PRIMER_TASK=pick_sequencing_primers 时有效. 该值决定了在不同链上的两个引物的距离。 PRIMER_SEQUENCING_ACCURACY=20 # 该参数仅在 PRIMER_TASK=pick_sequencing_primers 时有效. 该值决定了引物设计的区间. PRIMER_OUTSIDE_PENALTY=0 PRIMER_INSIDE_PENALTY=-1.0 PRIMER_WT_POS_PENALTY=0.0 ### PCR 反应体系设定: ### PRIMER_SALT_MONOVALENT=50.0 # 单价盐离子浓度(mM) PRIMER_SALT_CORRECTIONS=1 # PRIMER_SALT_CORRECTIONS=1 means use the salt correction in SantaLucia et al 1998 PRIMER_SALT_DIVALENT=1.5 # 二价镁离子浓度(mM) PRIMER_DNTP_CONC=0.6 # 总dNTPs浓度(mM) PRIMER_DNA_CONC=50.0 # DNA产物浓度(mM) ### PCR 产物的设定: ### PRIMER_PRODUCT_MIN_TM=-1000000.0 PRIMER_PRODUCT_OPT_TM=0.0 PRIMER_PRODUCT_MAX_TM=1000000.0 PRIMER_PAIR_WT_PRODUCT_TM_LT=0.0 PRIMER_PAIR_WT_PRODUCT_TM_GT=0.0 PRIMER_PRODUCT_OPT_SIZE=0 PRIMER_PAIR_WT_PRODUCT_SIZE_LT=0.0 PRIMER_PAIR_WT_PRODUCT_SIZE_GT=0.0 ## 罚分因子: ### PRIMER_PAIR_WT_PR_PENALTY=1.0 # left primer和right primer的罚分之和。此和乘以此系数,再加其它罚分作为最终罚分。 PRIMER_PAIR_WT_IO_PENALTY=0.0 # 将 internal oligo 的罚分乘以此系数,加入到引物的最终罚分中。 ### internal oligo 的设定:### # TM 值 PRIMER_INTERNAL_MIN_TM=57.0 PRIMER_INTERNAL_OPT_TM=60.0 PRIMER_INTERNAL_MAX_TM=63.0 PRIMER_INTERNAL_WT_TM_LT=1.0 PRIMER_INTERNAL_WT_TM_GT=1.0 # 长度 PRIMER_INTERNAL_MIN_SIZE=18 PRIMER_INTERNAL_OPT_SIZE=20 PRIMER_INTERNAL_MAX_SIZE=27 PRIMER_INTERNAL_WT_SIZE_LT=1.0 PRIMER_INTERNAL_WT_SIZE_GT=1.0 # GC 含量 PRIMER_INTERNAL_MIN_GC=20.0 PRIMER_INTERNAL_MAX_GC=80.0 PRIMER_INTERNAL_OPT_GC_PERCENT=50.0 PRIMER_INTERNAL_WT_GC_PERCENT_LT=0.0 PRIMER_INTERNAL_WT_GC_PERCENT_GT=0.0 # 热力学 PRIMER_INTERNAL_MAX_SELF_ANY=12.00 PRIMER_INTERNAL_WT_SELF_ANY=0.0 PRIMER_INTERNAL_MAX_SELF_END=12.00 PRIMER_INTERNAL_WT_SELF_END=0.0 # 碱基序列 PRIMER_INTERNAL_MAX_POLY_X=5 PRIMER_INTERNAL_MAX_NS_ACCEPTED=0 # 碱基质量 PRIMER_INTERNAL_MIN_QUALITY=0 PRIMER_INTERNAL_WT_END_QUAL=0.0 PRIMER_INTERNAL_WT_SEQ_QUAL=0.0 # 非引物数据库 #PRIMER_INTERNAL_MAX_LIBRARY_MISHYB=12.00 #PRIMER_INTERNAL_WT_LIBRARY_MISHYB=0.0 # PCR 反应体系 PRIMER_INTERNAL_SALT_MONOVALENT=50.0 PRIMER_INTERNAL_SALT_DIVALENT=1.5 PRIMER_INTERNAL_DNA_CONC=50.0 PRIMER_INTERNAL_DNTP_CONC=0.0 = 4. 编写程序调用primer3进行引物设计再调用e-PCR软件进行特异性验证

编写程序primer3_with_ePCR_validation.pl,输入模板序列的FASTA文件,即可对所有的模板序列批量化进行引物设计。若同时输入全基因组的序列,进一步可以对设计出的引物进行特异性筛选。

#!/usr/bin/perl use strict; use Getopt::Long; my $usage =


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3