primer3引物设计详解

1 24,362

关于Primer3的版权:

使用Primer3大致分为两类人:(1)第一类人为直接使用者,使用Primer3,一定程度上要求引用上述文献;(2)程序员,当将Primer3的源代码加入到你的程序中时,要遵循GPL2.如果只是调用Primer3,则不作要求。

在UNIX/LINUX上安装Primer3

$ unzip primer3-.tar.gz
$ tar xvf primer3-.tar
$ cd primer3-/src
$ make all
# You should have created executables primer3_core, ntdpal,
# olgotm, and long_seq_tm_test
$ make test
# You should not see 'FAILED' during the tests.

如果perl命令不是perl,而是诸如perl5,则需要修正test/文件夹中的Makefile.

调用 Primer3_core

基本用法

primer3_core [ -format_output ] [ -default_version=1|-default_vers
ion=2 ] [ -io_version=3|-io_version=4 ] [ -p3_settings_file= ] [ -
echo_settings_file ] [ -strict_tags ] [ -output= ] [ -error= ] [ i
nput_file ]

如果没有input file,则 primer3_core 从标准输入读取数据。

命令参数

-about 显示primer3版本号并退出

-default_version=n 默认设置为n=2,让primer3使用最新的默认设置;n=1则让程序
使用 2.23 或之前版本的设置

-format_output 让 primer3_core 产生人类易读的结果,否则产生机器易读的结果。

-strict_tags 要求严格的标签。如果设置文件中的标签不能被机器识别,则产生重大错误。

-p3_settings_file=file_path 指定primer_core的设置文件,该设置文件的设定取
代默认设置。当然,input file的设置也能取代这个文件的设置。

-echo_settings_file 打印出p3_settings_file中的设置信息。如果没有指定设置文
件,或含有-format_output,则该参数失效。

-io_version=n n=3时,软件向低版本兼容;n=4是默认设置,能使用2.0版本和以后版本
的一些新功能。

-output=file_path 指定输出文件路径,如果不指定,则输出到标准输出。

-error=file_path 指定错误信息输出路径,如果不指定,则输出到stderr中。

输入和输出的规则

默认设置下,primer3的输入文件为Boulder-IO格式的,该格式有利于程序间的相互交流。同时输出文件的格式也为Boulder-IO的。该文件格式是文本形式的,每一个引物设计的记录的结尾以“=\n”进行分隔。每个记录由多个标签和对应的值构成。例如:

SEQUENCE_ID=example
SEQUENCE_TEMPLATE=GTAGTCAGTAGACNATGACNACTGACGATGCAGACNACACACACACACACAGCACACAGGTATTAGTGGGCCATTCGATCCCGACCCAAATCGATAGCTACGATGACG
SEQUENCE_TARGET=37,21
PRIMER_TASK=generic
PRIMER_PICK_LEFT_PRIMER=1
PRIMER_PICK_INTERNAL_OLIGO=1
PRIMER_PICK_RIGHT_PRIMER=1
PRIMER_OPT_SIZE=18
PRIMER_MIN_SIZE=15
PRIMER_MAX_SIZE=21
PRIMER_MAX_NS_ACCEPTED=1
PRIMER_PRODUCT_SIZE_RANGE=75-100
P3_FILE_FLAG=1
SEQUENCE_INTERNAL_EXCLUDED_REGION=37,21
PRIMER_EXPLAIN_FLAG=1
=

IO-version

primer3发布2.0后,许多的Boulder-IO的标签有了变动,而且新增了许多标签。标签分三类:分别以SEQUENCE_, PRIMER_ 和 P3_开头。关于标签的变动,具体参考本文开头的参考网址。

SEQUENCE 标签

SEQUENCE_ID (string; default empty)

作为序列的名称,为序列的简要描述

SEQUENCE_TEMPLATE (nucleotide sequence; default empty)

进行引物设计的模板琏,方向必须是从5'到3'。碱基大小写都行,但要注意PRIMER_LOWER
CASE_MASKING标签的设定。

SEQUENCE_INCLUDED_REGION (interval list; default empty)

该标签的值为:<start>,<length>。即在从序列的第<start>位点的碱基开始,到往后
<length>长度的子序列中设计引物。

SEQUENCE_TARGET (interval list; default empty)

该标签的值为:<start>,<length>。即从序列的第<start>位点的碱基开始,到往后
<length>长度的区域是要扩增的目的片段,设计的引物必须在此区域的侧翼。

SEQUENCE_EXCLUDED_REGION (interval list; default empty)

该标签的值为:<start>,<length>。设计引物时要避开此段子序列区域。比如此区域含有
诸如ALUs或者LINEs等重复序列时。

SEQUENCE_PRIMER_PAIR_OK_REGION_LIST (semicolon separated list of integer “quadruples”; default empty)

该标签的值为多个,值和值之间用“;“隔开,单个值为:<left_start>,<left_length>,
<right_start>,<right_length>。
比如:
SEQUENCE_PRIMER_PAIR_OK_REGION_LIST=100,50,300,50 ; 900,60,, ; ,,930,100
表明有引物设计有三种选择:
左引物在100~150bp区间进行设计,右引物在300~350bp的区间进行设计;
左引物在900~960bp区间进行设计,右引物随意;
右引物在930~1030bp区间进行设计,左引物随意。

SEQUENCE_OVERLAP_JUNCTION_LIST (space separated integers; default empty)

引物设计时,左引物或右引物必须有一个和指定的位点重叠。和PRIMER_MIN_3_PRIME_OV
ERLAP_OF_JUNCTION标签和PRIMER_MIN_5_PRIME_OVERLAP_OF_JUNCTION共同完成设置。
For example:

SEQUENCE_OVERLAP_JUNCTION_LIST=20
# 1-based indexes
PRIMER_MIN_3_PRIME_OVERLAP_OF_JUNCTION=4

template: atcataggccatgcctgagc^gctacgact

          ok           ...gagc^gcta-3'  (left primer)
          not ok       ...gagc^gct-3'   (left primer)
          ok           3'-ctcg^cgat...  (right pimer)
          not ok        3'-tcg^cgat...  (right primer)

PRIMER_MIN_5_PRIME_OVERLAP_OF_JUNCTION=5

         ok           5'-tgagc^gccg...  (left primer)
         not ok        5'-gagc^gccg...  (left primer)
         ok           ...tgagc^gctac-5' (right primer)
         not ok       ...tgagc^gcta-5'  (right primer)

SEQUENCE_INTERNAL_EXCLUDED_REGION (interval list; default empty)

该标签的值为:<start>,<length>。中间oligos的设计避开此段子序列。

SEQUENCE_PRIMER (nucleotide sequence; default empty)

该标签的值为左引物序列,该序列必须是SEQUENCE_TEMPLATE的一段子序列;程序运行时会
检查该子序列并在其附近设计右引物或中间oligos.

SEQUENCE_INTERNAL_OLIGO (nucleotide sequence; default empty)

该标签的值为中间oligo序列,该序列必须是SEQUENCE_TEMPLATE的一段子序列;程序运行
时会检查该子序列并在其附近设计左右引物。

SEQUENCE_PRIMER_REVCOMP (nucleotide sequence; default empty)

该标签的值为右引物序列,该序列必须是SEQUENCE_TEMPLATE的一段反向互补子序列;程序
运行时会检查该子序列并在其附近设计左引物。

SEQUENCE_START_CODON_POSITION (int; default -1000000)

标记起始密码子的第一个碱基位点,从而让primer3在起始密码子的左边设计左引物,只有在
必要时才在起始密码子的右边设计左引物。可以设置为负数,表示起始密码子在整条序列不可见
的左边。如果该值为非负数且该位点处的碱基不是ATG,则primer3会发出一个错误。如果值小
于或等于-10^6,则忽略该参数。primer3从起始密码子开始扫描,直到获得一个终止密码子,
理想状况下设计的右引物结束于该终止密码子或其后的碱基。

SEQUENCE_QUALITY (space separated integers; default empty)

该标签的值是一系列的以空格隔开的碱基质量值,每一个碱基质量值对应着模板琏上的碱基。

SEQUENCE_FORCE_LEFT_START (int; default -1000000)

强制左引物的5'端从指定的位点开始,不管是否违背了一些其它的条件。默认值表示左引物的
起始位点是任意位置。

SEQUENCE_FORCE_LEFT_END (int; default -1000000)

强制左引物的3'端到指定位点结束,不管是否违背了一些其它的条件。默认值表示左引物的结
束位点是任意位置。

SEQUENCE_FORCE_RIGHT_START (int; default -1000000)

强制右引物的5'端从指定的位点开始,不管是否违背了一些其它的条件。默认值表示左引物的
起始位点是任意位置。

SEQUENCE_FORCE_RIGHT_END (int; default -1000000)

强制右引物的3'端到指定位点结束,不管是否违背了一些其它的条件。默认值表示左引物的结
束位点是任意位置。

全局输入标签 PRIMER_ Tags

PRIMER_TASK (string; default generic)

该标签要求primer3来进行什么类型的工作,其有效的值有:

generic

经典的primer3任务,设计引物对

 

Primer3的主页:http://primer3.sourceforge.net/。主页上能看到对于Primer3的简要介绍和下载通道。

Primer3的网页版:http://primer3.wi.mit.edu/

Primer3的源代码:http://sourceforge.net/projects/primer3/.

Primer3文献:http://purl.com/STEVEROZEN/papers/rozen-and-skaletsky-2000-primer3.pdf

Steve Rozen and Helen J. Skaletsky (2000) Primer3 on the WWW for general users and for biologist programmers. In: Krawetz S, Misener S (eds) Bioinformatics Methods and Protocols: Methods in Molecular Biology. Humana Press, Totowa, NJ, pp 365-386

参考自:http://primer3.wi.mit.edu/primer3web_help.htm

原文链接:http://www.hzaumycology.com/chenlianfu_blog/?p=284

    • shen 0

      请教:调用 Primer3_core出错,Unrecognized character x7F in column 1 at primer3_core line 1.这是什么问题?

    发表评论

    匿名网友