[med-svn] r211 - in trunk/packages/primer3/trunk: . debian src test
test/primer_global_err
Charles Plessy
charles-guest at alioth.debian.org
Sat Feb 17 05:31:57 CET 2007
Author: charles-guest
Date: 2007-02-17 05:31:55 +0100 (Sat, 17 Feb 2007)
New Revision: 211
Added:
trunk/packages/primer3/trunk/COPYING.txt
trunk/packages/primer3/trunk/README.txt
trunk/packages/primer3/trunk/primer3-1.1.0-beta
trunk/packages/primer3/trunk/test/Makefile
trunk/packages/primer3/trunk/test/oligotm.txt
trunk/packages/primer3/trunk/test/oligotm_test.pl
trunk/packages/primer3/trunk/test/primer_global_err/bad_divalent_dntp_conc_1.in
trunk/packages/primer3/trunk/test/primer_global_err/bad_divalent_dntp_conc_1.out
trunk/packages/primer3/trunk/test/primer_global_err/bad_divalent_dntp_conc_1.out2
trunk/packages/primer3/trunk/test/primer_global_err/bad_divalent_dntp_conc_2.in
trunk/packages/primer3/trunk/test/primer_global_err/bad_divalent_dntp_conc_2.out
trunk/packages/primer3/trunk/test/primer_global_err/bad_divalent_dntp_conc_2.out2
trunk/packages/primer3/trunk/test/primer_global_err/bad_divalent_dntp_conc_3.in
trunk/packages/primer3/trunk/test/primer_global_err/bad_divalent_dntp_conc_3.out
trunk/packages/primer3/trunk/test/primer_global_err/bad_divalent_dntp_conc_3.out2
trunk/packages/primer3/trunk/test/primer_global_err/bad_divalent_dntp_conc_4.in
trunk/packages/primer3/trunk/test/primer_global_err/bad_divalent_dntp_conc_4.out
trunk/packages/primer3/trunk/test/primer_global_err/bad_divalent_dntp_conc_4.out2
trunk/packages/primer3/trunk/test/primer_tm_lc_masking_formatted_output
trunk/packages/primer3/trunk/test/primer_tm_lc_masking_input
trunk/packages/primer3/trunk/test/primer_tm_lc_masking_output
Removed:
trunk/packages/primer3/trunk/Copyright.txt
trunk/packages/primer3/trunk/README.primer3_1.0.1.txt
Modified:
trunk/packages/primer3/trunk/debian/changelog
trunk/packages/primer3/trunk/src/Makefile
trunk/packages/primer3/trunk/src/boulder_input.c
trunk/packages/primer3/trunk/src/dpal.c
trunk/packages/primer3/trunk/src/format_output.c
trunk/packages/primer3/trunk/src/long_seq_tm_test_main.c
trunk/packages/primer3/trunk/src/oligotm.c
trunk/packages/primer3/trunk/src/oligotm.h
trunk/packages/primer3/trunk/src/oligotm_main.c
trunk/packages/primer3/trunk/src/primer3.c
trunk/packages/primer3/trunk/src/primer3.h
trunk/packages/primer3/trunk/src/primer3_main.c
trunk/packages/primer3/trunk/src/primer3_release.h
trunk/packages/primer3/trunk/src/release_notes.txt
trunk/packages/primer3/trunk/test/dpal_test.pl
trunk/packages/primer3/trunk/test/long_seq_tm_test.pl
trunk/packages/primer3/trunk/test/p3test.pl
trunk/packages/primer3/trunk/test/primer_boundary1_formatted_output
trunk/packages/primer3/trunk/test/primer_boundary_formatted_output
trunk/packages/primer3/trunk/test/primer_global_err/empty_1.out2
trunk/packages/primer3/trunk/test/primer_internal1_formatted_output
trunk/packages/primer3/trunk/test/primer_internal_formatted_output
trunk/packages/primer3/trunk/test/primer_mispriming_boundary1_formatted_output
trunk/packages/primer3/trunk/test/primer_mispriming_boundary2_formatted_output
trunk/packages/primer3/trunk/test/primer_mispriming_formatted_output
trunk/packages/primer3/trunk/test/primer_must_use_formatted_output
trunk/packages/primer3/trunk/test/primer_position_penalty_formatted_output
trunk/packages/primer3/trunk/test/primer_task_formatted_output
Log:
New upstream release
Copied: trunk/packages/primer3/trunk/COPYING.txt (from rev 210, trunk/packages/primer3/branches/upstream/current/COPYING.txt)
Deleted: trunk/packages/primer3/trunk/Copyright.txt
===================================================================
--- trunk/packages/primer3/trunk/Copyright.txt 2007-02-17 04:15:57 UTC (rev 210)
+++ trunk/packages/primer3/trunk/Copyright.txt 2007-02-17 04:31:55 UTC (rev 211)
@@ -1,31 +0,0 @@
-Copyright (c) 1996,1997,1998,1999,2000,2001,2004,2006
-Whitehead Institute for Biomedical Research, Steve Rozen
-(http://jura.wi.mit.edu/rozen), and Helen Skaletsky
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
- * Neither the names of the copyright holders nor contributors may
-be used to endorse or promote products derived from this software
-without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
Deleted: trunk/packages/primer3/trunk/README.primer3_1.0.1.txt
===================================================================
--- trunk/packages/primer3/trunk/README.primer3_1.0.1.txt 2007-02-17 04:15:57 UTC (rev 210)
+++ trunk/packages/primer3/trunk/README.primer3_1.0.1.txt 2007-02-17 04:31:55 UTC (rev 211)
@@ -1,1463 +0,0 @@
-primer3 release 1.0.1 (This version identical to 1.0b except version number.)
-
-Copyright (c) 1996,1997,1998,1999,2000,2001,2004,2006
-Whitehead Institute for Biomedical Research, Steve Rozen
-(http://jura.wi.mit.edu/rozen), and Helen Skaletsky
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
- * Neither the names of the copyright holders nor contributors may
-be used to endorse or promote products derived from this software
-without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-INTRODUCTION
-------------
-Primer3 picks primers for PCR reactions, considering as criteria:
-
-o oligonucleotide melting temperature, size, GC content,
- and primer-dimer possibilities,
-
-o PCR product size,
-
-o positional constraints within the source sequence, and
-
-o miscellaneous other constraints.
-
-All of these criteria are user-specifiable as constraints, and
-some are specifiable as terms in an objective function that
-characterizes an optimal primer pair.
-
-Whitehead Institute for Biomedical Research provides a web-based
-front end to Primer3 at
-http://fokker.wi.mit.edu/cgi-bin/primer3/primer3_www.cgi
-
-CITING PRIMER3
---------------
-We request but do not require that use of this software be cited in
-publications as
-
-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
-
-Source code available at http://fokker.wi.mit.edu/primer3/.
-The paper above is available at
-http://jura.wi.mit.edu/rozen/papers/rozen-and-skaletsky-2000-primer3.pdf
-
-INSTALLATION INSTRUCTIONS
--------------------------
-Unzip and untar the distribution.
-
-DO NOT do this on a PC -- primer3_core will not compile if pc
-newlines get inserted into the source files. Instead, move the
-distribution (primer3_<release>.tar.gz) to Unix, and then
-
-$ unzip primer3_1.0.1.tar.gz
-$ tar xvf primer3_1.0.1.tar
-$ cd primer3_1.0.1/src
-
-If you do not use gcc, modify the makefile to
- use your (ANSI) C compiler and appropriate
- compile and link flags.
-
-$ make all
-# Warnings about pr_release being unused are harmless.
-# You should have created executables primer3_core, ntdpal,
-# olgotm, and long_seq_tm_test
-
-$ cd ../test
-$ perl -w p3test.pl
-$ perl -w dpal_test.pl
-# You should not see 'FAILED' during the tests.
-
-If your perl command is not called perl (for example, if it is
-called perl5) you will have to modify the internals of the test
-scripts).
-
-ntdpal (NucleoTide Dynamic Programming ALignment) is a
-stand-alone program that provides Primer3's alignment
-functionality (local, a.k.a. Smith-Waterman, global,
-a.k.a. Needleman-Wunsch, plus "half global"). It is provided
-strictly as is; for further documentation please see the code.
-
-SYSTEM REQUIREMENTS
--------------------
-Primer3 has been successfully installed and tested on the
-following systems
-
- o Sparc running SunOS 4.1 (gcc 2.7.0)
- o Alpha running DEC Unix 3.2 (gcc 2.7.0 and DEC cc)
- o Pentium running Linux 1.2 (Red Hat) (gcc 2.7.0)
-
-Primer3 will likely compile and run on other POSIX architectures with
-ANSI C compilers.
-
-
-INPUT AND OUTPUT CONVENTIONS
-----------------------------
-
-By default, Primer3 accepts input and produces output in
-Boulder-io format, a pre-XML text-based input/output format
-for program-to-program data interchange format. When run
-with the -format_output command-line flag, Primer3 prints a
-more user-oriented report for each sequence. Additional
-command-line flags include -2x_compat (which causes Primer3
-to print its output using Primer v2 compatible tag names),
-and -strict_tags (both discussed below). Primer3 exits with
-0 status if it operates correctly. See EXIT STATUS CODES
-below for additional information.
-
-The syntax of the version of Boulder-io recognized by Primer3 is
-as follows:
-
- o Input consists of a sequence of RECORDs.
-
- o A RECORD consists of a sequence of (TAG,VALUE) pairs, each terminated
- by a newline character (\n). A RECORD is terminated by '='
- appearing by itself on a line.
-
- o A (TAG,VALUE) pair has the following requirements:
-
- o the TAG must be immediately (without spaces)
- followed by '='.
- o the pair must be terminated by a newline character.
-
-An example of a legal (TAG,VALUE) pair is
-
-PRIMER_SEQUENCE_ID=my_marker
-
-and an example of a BOULDER-IO record is
-
-PRIMER_SEQUENCE_ID=test1
-SEQUENCE=GACTGATCGATGCTAGCTACGATCGATCGATGCATGCTAGCTAGCTAGCTGCTAGC
-=
-
-Many records can be sent, one after another. Below is an example
-of three different records which might be passed through a
-boulder-io stream:
-
-PRIMER_SEQUENCE_ID=test1
-SEQUENCE=GACTGATCGATGCTAGCTACGATCGATCGATGCATGCTAGCTAGCTAGCTGCTAGC
-=
-PRIMER_SEQUENCE_ID=test2
-SEQUENCE=CATCATCATCATCGATGCTAGCATCNNACGTACGANCANATGCATCGATCGT
-=
-PRIMER_SEQUENCE_ID=test3
-SEQUENCE=NACGTAGCTAGCATGCACNACTCGACNACGATGCACNACAGCTGCATCGATGC
-=
-
-Primer3 reads boulder-io on stdin and echos its input and returns
-results in boulder-io format on stdout. Primer3 indicates many
-user-correctable errors by a value in the PRIMER_ERROR tag (see
-below) and indicates other errors, including system configuration
-errors, resource errors (such out-of-memory errors), and detected
-programming errors by a message on stderr and a non-zero exit
-status.
-
-Below is the list of input tags that Primer3 recognizes.
-Primer3 echos and ignores any tags it does not recognize, unless
-the -strict_tags flag is set on the command line, in which case
-Primer3 prints an error in the PRIMER_ERROR output tag (see
-below), and prints additional information on stdout; this option
-can be useful for debugging systems that incorporate primer.
-
-Except for tags with the type "interval list" each tag is allowed
-only ONCE in any given input record. This restriction is not
-systematically checked in this beta release: use care.
-
-There are 2 major classes of input tags. "Sequence" input tags
-describe a particular input sequence to Primer3, and are reset
-after every boulder record. "Global" input tags describe the
-general parameters that Primer3 should use in its searches, and
-the values of these tags persist between input boulder records
-until or unless they are explicitly reset. Errors in "Sequence"
-input tags invalidate the current record, but Primer3 will
-continue to process additional records. Errors in "Global" input
-tags are fatal because they invalidate the basic conditions under
-which primers are being picked.
-
-"Sequence" Input Tags
----------------------
-
-PRIMER_SEQUENCE_ID (string, optional)
-
-(MARKER_NAME is a deprecated synonym maintained for v2
-compatibility.)
-
-An identifier that is reproduced in the output to enable users to
-identify the source of the chosen primers.
-
-This tag must be present if PRIMER_FILE_FLAG is non-zero.
-
-SEQUENCE (nucleotide sequence, REQUIRED)
-
-The sequence from which to choose primers. The sequence
-must be presented 5' -> 3' (see the discussion of the
-PRIMER_SELF_END argument). The bases may be upper or lower case.
-No newlines should be inserted into the sequence, because the
-Boulder-IO parser will assume that a line ends at a newline.
-
-INCLUDED_REGION (interval, optional)
-
-A sub-region of the given sequence in which to pick primers. For
-example, often the first dozen or so bases of a sequence are
-vector, and should be excluded from consideration. The value for
-this parameter has the form
-
-<start>,<length>
-
-where <start> is the index of the first base to consider,
-and <length> is the number of subsequent bases in the
-primer-picking region.
-
-TARGET (interval list, default empty)
-
-If one or more Targets is specified then a legal primer pair must
-flank at least one of them. A Target might be a simple sequence
-repeat site (for example a CA repeat) or a single-base-pair
-polymorphism. The value should be a space-separated list of
-
-<start>,<length>
-
-pairs where <start> is the index of the first base of a
-Target, and <length> is its length.
-
-For backward compatibility Primer3 accepts (but ignores)
-a trailing ,<description> for each element of this argument.
-
-EXCLUDED_REGION (interval list, default empty)
-
-Primer oligos may not overlap any region specified in this tag.
-The associated value must be a space-separated list of
-
-<start>,<length>
-
-pairs where <start> is the index of the first base of
-the excluded region, and <length> is its length. This tag is
-useful for tasks such as excluding regions of low sequence
-quality or for excluding regions containing repetitive elements
-such as ALUs or LINEs.
-
-PRIMER_COMMENT (string, optional)
-
-The value of this tag is ignored.
-
-COMMENT (string, optional)
-
-Deprecated synonym for PRIMER_COMMENT.
-
-PRIMER_SEQUENCE_QUALITY (quality list, default empty)
-
-A list of space separated integers. There must be exactly
-one integer for each base in SEQUENCE if this argument is
-non-empty. For example, for the sequence ANNTTCA...
-PRIMER_SEQUENCE_QUALITY might be 45 10 0 50 30 34 50 67 ....
-High numbers indicate high confidence in the base called at
-that position and low numbers indicate low confidence in the
-base call at that position. This parameter is only relevant
-if you are using a base calling program that provides
-quality information (for example phred).
-
-PRIMER_LEFT_INPUT (nucleotide sequence, default empty)
-
-The sequence of a left primer to check and around which to design
-right primers and optional internal oligos. Must be a substring
-of SEQUENCE.
-
-PRIMER_RIGHT_INPUT (nucleotide sequence, default empty)
-
-The sequence of a right primer to check and around which to
-design left primers and optional internal oligos. Must be a
-substring of the reverse strand of SEQUENCE.
-
-PRIMER_START_CODON_POSITION (int, default -1000000)
-
-This parameter should be considered EXPERIMENTAL at this point.
-Please check the output carefully; some erroneous inputs might
-cause an error in Primer3.
-
-Index of the first base of a start codon. This parameter allows
-Primer3 to select primer pairs to create in-frame amplicons
-e.g. to create a template for a fusion protein. Primer3 will
-attempt to select an in-frame left primer, ideally starting at or
-to the left of the start codon, or to the right if necessary.
-Negative values of this parameter are legal if the actual start
-codon is to the left of available sequence. If this parameter is
-non-negative Primer3 signals an error if the codon at the
-position specified by this parameter is not an ATG. A value less
-than or equal to -10^6 indicates that Primer3 should ignore this
-parameter.
-
-Primer3 selects the position of the right primer by scanning
-right from the left primer for a stop codon. Ideally the right
-primer will end at or after the stop codon.
-
-"Global" Input Tags
--------------------
-
-PRIMER_PICK_ANYWAY (boolean, default 0)
-
-If true pick a primer pair even if PRIMER_LEFT_INPUT,
-PRIMER_RIGHT_INPUT, or PRIMER_INTERNAL_OLIGO_INPUT violates
-specific constraints.
-
-PRIMER_MISPRIMING_LIBRARY (string, optional)
-
-The name of a file containing a nucleotide sequence library of
-sequences to avoid amplifying (for example repetitive sequences, or
-possibly the sequences of genes in a gene family that should
-not be amplified.) The file must be in (a slightly restricted)
-FASTA format (W. B. Pearson and D.J. Lipman, PNAS 85:8 pp
-2444-2448 [1988]); we briefly discuss the organization of this
-file below. If this parameter is specified then Primer3 locally
-aligns each candidate primer against each library sequence and
-rejects those primers for which the local alignment score times a
-specified weight (see below) exceeds PRIMER_MAX_MISPRIMING.
-(The maximum value of the weight is arbitrarily set to 100.0.)
-
-Each sequence entry in the FASTA-format file must begin with an
-"id line" that starts with '>'. The contents of the id line is
-"slightly restricted" in that Primer3 parses everything after any
-optional asterisk ('*') as a floating point number to use as the
-weight mentioned above. If the id line contains no asterisk then
-the weight defaults to 1.0. The alignment scoring system used is
-the same as for calculating complementarity among oligos (e.g.
-PRIMER_SELF_ANY), except for the handling of IUB/IUPAC ambiguity
-codes (discussed below). The remainder of an entry contains the
-sequence as lines following the id line up until a line starting
-with '>' or the end of the file. Whitespace and newlines are
-ignored. Characters 'A', 'T', 'G', 'C', 'a', 't', 'g', 'c'
-and IUB/IUPAC 'ambiguity' codes ('R, 'Y', 'K', 'M', 'S', 'W', 'N',
-including lower case) are retained.
-
-WARNING: always set PRIMER_LIB_AMBIGUITY_CODES_CONSENSUS=0
-if any sequence in the library contains strings of 'N's:
-NNNNNNNNNNNNNNNNNNNN.
-NOWWW
-There are no restrictions on line length.
-
-An empty value for this parameter indicates that no repeat
-library should be used and "turns off" the use of a
-previously specified library.
-
-Repbase (J. Jurka, A.F.A. Smit, C. Pethiyagoda, and
-others, 1995-1996, ftp://ncbi.nlm.nih.gov/repository/repbase)
-is an excellent source of repeat sequences and pointers to the
-literature. (The Repbase files need to be converted to Fasta
-format before they can be used by Primer3.)
-
-
-PRIMER_LIB_AMBIGUITY_CODES_CONSENSUS (boolean, default 1)
-
-If set to 1, treat ambiguity codes as if they were consensus
-codes when matching oligos to mispriming or mishyb
-libraries. For example, if this flag is set, then a C in an
-oligo will be scored as a perfect match to an S in a library
-sequence, as will a G in the oligo. More importantly,
-though, any base in an oligo will be scored as a perfect
-match to an N in the library. This is very bad if the
-library contains strings of Ns, as no oligo will be legal
-(and it will take a long time to find this out). So unless
-you know for sure that your library does not have runs of Ns
-(or Xs), then set this flag to 0.
-
-PRIMER_MAX_MISPRIMING (decimal,9999.99, default 12.00)
-
-The maximum allowed weighted similarity with any sequence in
-PRIMER_MISPRIMING_LIBRARY.
-
-PRIMER_MAX_TEMPLATE_MISPRIMING (decimal,9999.99, default -1.00)
-
-The maximum allowed similarity to ectopic sites in the
-template. A negative value means do not check. The scoring
-system is the same as used for PRIMER_MAX_MISPRIMING, except
-that an ambiguity code in the template is never treated as a
-consensus (see PRIMER_LIB_AMBIGUITY_CODES_CONSENSUS).
-
-PRIMER_PAIR_MAX_MISPRIMING (decimal,9999.99, default 24.00)
-
-The maximum allowed sum of similarities of a primer pair
-(one similarity for each primer) with any single sequence in
-PRIMER_MISPRIMING_LIBRARY.
-Library sequence weights are not used in computing the sum
-of similarities.
-
-PRIMER_PAIR_MAX_TEMPLATE_MISPRIMING (decimal,9999.99, default -1.00)
-
-The maximum allowed summed similarity of both primers to
-ectopic sites in the template. A negative value means do not
-check. The scoring system is the same as used for
-PRIMER_PAIR_MAX_MISPRIMING, except that an ambiguity code in
-the template is never treated as a consensus (see
-PRIMER_LIB_AMBIGUITY_CODES_CONSENSUS). Primer3 does not
-check the similarity of hybridization oligos (internal
-oligos) to locations outside of the amplicon.
-
-PRIMER_PRODUCT_MAX_TM (float, default 1000000.0)
-
-The maximum allowed melting temperature of the amplicon. Primer3
-calculates product Tm calculated using the formula from Bolton
-and McCarthy, PNAS 84:1390 (1962) as presented in Sambrook,
-Fritsch and Maniatis, Molecular Cloning, p 11.46 (1989, CSHL
-Press).
-
- Tm = 81.5 + 16.6(log10([Na+])) + .41*(%GC) - 600/length
-
-Where [Na+] is the molar sodium concentration, (%GC) is the
-percent of Gs and Cs in the sequence, and length is the length of
-the sequence.
-
-A similar formula is used by the prime primer selection program
-in GCG (http://www.gcg.com), which instead uses 675.0 / length in
-the last term (after F. Baldino, Jr, M.-F. Chesselet, and M.E.
-Lewis, Methods in Enzymology 168:766 (1989) eqn (1) on page 766
-without the mismatch and formamide terms). The formulas here and
-in Baldino et al. assume Na+ rather than K+. According to
-J.G. Wetmur, Critical Reviews in BioChem. and Mol. Bio. 26:227
-(1991) 50 mM K+ should be equivalent in these formulae to .2 M
-Na+. Primer3 uses the same salt concentration value for
-calculating both the primer melting temperature and the oligo
-melting temperature. If you are planning to use the PCR product
-for hybridization later this behavior will not give you the Tm
-under hybridization conditions.
-
-PRIMER_PRODUCT_MIN_TM (float, default -1000000.0)
-
-The minimum allowed melting temperature of the amplicon. Please
-see the documentation on the maximum melting temperature of the
-product for details.
-
-PRIMER_EXPLAIN_FLAG (boolean, default 0)
-
-If this flag is non-0, produce PRIMER_LEFT_EXPLAIN,
-PRIMER_RIGHT_EXPLAIN, and PRIMER_INTERNAL_OLIGO_EXPLAIN output
-tags, which are intended to provide information on the number of
-oligos and primer pairs that Primer3 examined, and statistics on
-the number discarded for various reasons. If -format_output is
-set similar information is produced in the user-oriented output.
-
-PRIMER_PRODUCT_SIZE_RANGE (size range list, default 100-300)
-
-The associated values specify the lengths of the product that the
-user wants the primers to create, and is a space separated list
-of elements of the form
-
-<x>-<y>
-
-where an <x>-<y> pair is a legal range of lengths for the
-product. For example, if one wants PCR products to be between
-100 to 150 bases (inclusive) then one would set this parameter to
-100-150. If one desires PCR products in either the range from
-100 to 150 bases or in the range from 200 to 250 bases then one
-would set this parameter to 100-150 200-250.
-
-Primer3 favors ranges to the left side of the parameter string.
-Primer3 will return legal primers pairs in the first range
-regardless the value of the objective function for these pairs.
-Only if there are an insufficient number of primers in the first
-range will Primer3 return primers in a subsequent range.
-
-PRIMER_PICK_INTERNAL_OLIGO (boolean, default 0)
-
-If the associated value is non-0, then Primer3 will attempt to
-pick an internal oligo (hybridization probe to detect the PCR
-product). This tag is maintained for backward compatibility.
-Use PRIMER_TASK.
-
-PRIMER_GC_CLAMP (int, default 0)
-
-Require the specified number of consecutive Gs and Cs at the 3'
-end of both the left and right primer. (This parameter has no
-effect on the internal oligo if one is requested.)
-
-PRIMER_OPT_SIZE (int, default 20)
-
-Optimum length (in bases) of a primer oligo. Primer3 will attempt
-to pick primers close to this length.
-
-PRIMER_DEFAULT_SIZE (int, default 20)
-
-A deprecated synonym for PRIMER_OPT_SIZE, maintained for v2
-compatibility.
-
-PRIMER_MIN_SIZE (int, default 18)
-
-Minimum acceptable length of a primer. Must be greater than 0
-and less than or equal to PRIMER_MAX_SIZE.
-
-PRIMER_MAX_SIZE (int, default 27)
-
-Maximum acceptable length (in bases) of a primer. Currently this
-parameter cannot be larger than 35. This limit is governed by
-maximum oligo size for which Primer3's melting-temperature is
-valid.
-
-PRIMER_OPT_TM (float, default 60.0C)
-
-Optimum melting temperature(Celsius) for a primer oligo. Primer3
-will try to pick primers with melting temperatures are close to
-this temperature. The oligo melting temperature formula in
-Primer3 is that given in Rychlik, Spencer and Rhoads, Nucleic
-Acids Research, 18(21): 6409-6412 and Breslauer,
-Frank, Bloeker and Marky, PNAS, 83: 3746-3750.
-Please refer to the former paper for background discussion.
-
-PRIMER_MIN_TM (float, default 57.0C)
-
-Minimum acceptable melting temperature(Celsius) for a primer
-oligo.
-
-PRIMER_MAX_TM (float, default 63.0C)
-
-Maximum acceptable melting temperature(Celsius) for a primer
-oligo.
-
-PRIMER_MAX_DIFF_TM (float, default 100.0C)
-
-Maximum acceptable (unsigned) difference between the melting
-temperatures of the left and right primers.
-
-PRIMER_MIN_GC (float, default 20.0%)
-
-Minimum allowable percentage of Gs and Cs in any primer.
-
-PRIMER_OPT_GC_PERCENT (float, default 50.0%)
-
-Optimum GC percent. This parameter influences primer selection only if
-PRIMER_WT_GC_PERCENT_GT or PRIMER_WT_GC_PERCENT_LT are non-0.
-
-PRIMER_MAX_GC (float, default 80.0%)
-
-Maximum allowable percentage of Gs and Cs in any primer generated
-by Primer.
-
-PRIMER_SALT_CONC (float, default 50.0 mM)
-
-The millimolar concentration of salt (usually KCl) in the PCR.
-Primer3 uses this argument to calculate oligo melting
-temperatures.
-
-PRIMER_DNA_CONC (float, default 50.0 nM)
-
-The nanomolar concentration of annealing oligos in the PCR.
-Primer3 uses this argument to calculate oligo melting
-temperatures. The default (50nM) works well with the standard
-protocol used at the Whitehead/MIT Center for Genome
-Research--0.5 microliters of 20 micromolar concentration for each
-primer oligo in a 20 microliter reaction with 10 nanograms
-template, 0.025 units/microliter Taq polymerase in 0.1 mM each
-dNTP, 1.5mM MgCl2, 50mM KCl, 10mM Tris-HCL (pH 9.3) using 35
-cycles with an annealing temperature of 56 degrees Celsius. This
-parameter corresponds to 'c' in Rychlik, Spencer and Rhoads'
-equation (ii) (Nucleic Acids Research, 18(21): 6409-6412)
-where a suitable value (for a lower initial concentration of template)
-is "empirically determined". The value of this parameter is less
-than the actual concentration of oligos in the reaction because
-it is the concentration of annealing oligos, which in turn
-depends on the amount of template (including PCR product) in a
-given cycle. This concentration increases a great deal during a
-PCR; fortunately PCR seems quite robust for a variety of oligo
-melting temperatures.
-
-See ADVICE FOR PICKING PRIMERS.
-
-PRIMER_NUM_NS_ACCEPTED (int, default 0)
-
-Maximum number of unknown bases (N) allowable in any primer.
-
-PRIMER_SELF_ANY (decimal,9999.99, default 8.00)
-
-The maximum allowable local alignment score when testing a single
-primer for (local) self-complementarity and the maximum allowable
-local alignment score when testing for complementarity between
-left and right primers. Local self-complementarity is taken to
-predict the tendency of primers to anneal to each other without
-necessarily causing self-priming in the PCR. The scoring system
-gives 1.00 for complementary bases, -0.25 for a match of any base
-(or N) with an N, -1.00 for a mismatch, and -2.00 for a gap.
-Only single-base-pair gaps are allowed. For example, the
-alignment
-
-5' ATCGNA 3'
- || | |
-3' TA-CGT 5'
-
-is allowed (and yields a score of 1.75), but the alignment
-
-5' ATCCGNA 3'
- || | |
-3' TA--CGT 5'
-
-is not considered. Scores are non-negative, and a score of 0.00
-indicates that there is no reasonable local alignment between two
-oligos.
-
-PRIMER_SELF_END (decimal 9999.99, default 3.00)
-
-The maximum allowable 3'-anchored global alignment score when
-testing a single primer for self-complementarity, and the maximum
-allowable 3'-anchored global alignment score when testing for
-complementarity between left and right primers. The 3'-anchored
-global alignment score is taken to predict the likelihood of
-PCR-priming primer-dimers, for example
-
-5' ATGCCCTAGCTTCCGGATG 3'
- ||| |||||
- 3' AAGTCCTACATTTAGCCTAGT 5'
-
-or
-
-5` AGGCTATGGGCCTCGCGA 3'
- ||||||
- 3' AGCGCTCCGGGTATCGGA 5'
-
-The scoring system is as for the Maximum Complementarity
-argument. In the examples above the scores are 7.00 and 6.00
-respectively. Scores are non-negative, and a score of 0.00
-indicates that there is no reasonable 3'-anchored global
-alignment between two oligos. In order to estimate 3'-anchored
-global alignments for candidate primers and primer pairs, Primer
-assumes that the sequence from which to choose primers is
-presented 5'->3'. It is nonsensical to provide a larger value
-for this parameter than for the Maximum (local) Complementarity
-parameter because the score of a local alignment will always be at
-least as great as the score of a global alignment.
-
-PRIMER_DEFAULT_PRODUCT (size range list, default 100-300)
-
-A deprecated synonym for PRIMER_PRODUCT_SIZE_RANGE, maintained
-for v2 compatibility.
-
-PRIMER_FILE_FLAG (boolean, default 0)
-
-If the associated value is non-0, then Primer3 creates two output
-files for each input SEQUENCE. File <sequence_id>.for lists all
-acceptable left primers for <sequence_id>, and <sequence_id>.rev
-lists all acceptable right primers for <sequence_id>, where
-<sequence_id> is the value of the PRIMER_SEQUENCE_ID tag (which
-must be supplied). In addition, if the input tag
-PRIMER_PICK_INTERNAL_OLIGO is non-0, Primer3 produces a file
-<sequence_id>.int, which lists all acceptable internal oligos.
-
-PRIMER_MAX_POLY_X (int, default 5)
-
-The maximum allowable length of a mononucleotide repeat,
-for example AAAAAA.
-
-PRIMER_LIBERAL_BASE (boolean, default 0)
-
-This parameter provides a quick-and-dirty way to get Primer3 to
-accept IUB / IUPAC codes for ambiguous bases (i.e. by changing
-all unrecognized bases to N). If you wish to include an
-ambiguous
-base in an oligo, you must set PRIMER_NUM_NS_ACCEPTED to a
-non-0 value.
-
-Perhaps '-' and '* ' should be squeezed out rather than changed
-to 'N', but currently they simply get converted to N's. The authors
-invite user comments.
-
-PRIMER_NUM_RETURN (int, default 5)
-
-The maximum number of primer pairs to return. Primer pairs
-returned are sorted by their "quality", in other words by the
-value of the objective function (where a lower number indicates a
-better primer pair). Caution: setting this parameter to a large
-value will increase running time.
-
-PRIMER_FIRST_BASE_INDEX (int, default 0)
-
-This parameter is the index of the first base in the input
-sequence. For input and output using 1-based indexing (such as
-that used in GenBank and to which many users are accustomed) set
-this parameter to 1. For input and output using 0-based indexing
-set this parameter to 0. (This parameter also affects the
-indexes in the contents of the files produced when the primer
-file flag is set.)
-
-PRIMER_MIN_QUALITY (int, default 0)
-
-The minimum sequence quality (as specified by
-PRIMER_SEQUENCE_QUALITY) allowed within a primer.
-
-PRIMER_MIN_END_QUALITY (int, default 0)
-
-The minimum sequence quality (as specified by
-PRIMER_SEQUENCE_QUALITY) allowed within the 5' pentamer of a
-primer.
-
-PRIMER_QUALITY_RANGE_MIN (int, default 0)
-
-The minimum legal sequence quality (used for error checking
-of PRIMER_MIN_QUALITY and PRIMER_MIN_END_QUALITY).
-
-PRIMER_QUALITY_RANGE_MAX (int, default 100)
-
-The maximum legal sequence quality (used for error checking
-of PRIMER_MIN_QUALITY and PRIMER_MIN_END_QUALITY).
-
-PRIMER_INSIDE_PENALTY (float, default -1.0)
-
-This experimental parameter might not be maintained in this form
-in the next release. Non-default values valid only for sequences
-with 0 or 1 target regions. If the primer is part of a pair that
-spans a target and overlaps the target, then multiply this value
-times the number of nucleotide positions by which the primer
-overlaps the (unique) target to get the 'position penalty'. The
-effect of this parameter is to allow Primer3 to include overlap
-with the target as a term in the objective function.
-
-PRIMER_OUTSIDE_PENALTY (float, default 0.0)
-
-This experimental parameter might not be maintained in this form
-in the next release. Non-default values valid only for sequences
-with 0 or 1 target regions. If the primer is part of a pair that
-spans a target and does not overlap the target, then multiply
-this value times the number of nucleotide positions from the 3'
-end to the (unique) target to get the 'position penalty'.
-The effect of this parameter is to allow Primer3 to include
-nearness to the target as a term in the objective function.
-
-PRIMER_MAX_END_STABILITY (float 999.9999, default 100.0)
-
-The maximum stability for the five 3' bases of a left or right
-primer. Bigger numbers mean more stable 3' ends. The value is
-the maximum delta G for duplex disruption for the five 3' bases
-as calculated using the nearest neighbor parameters published in
-Breslauer, Frank, Bloeker and Marky, Proc. Natl. Acad. Sci. USA,
-vol 83, pp 3746-3750. Primer3 uses a completely permissive
-default value for backward compatibility (which we may change in
-the next release). Rychlik recommends a maximum value of 9
-(Wojciech Rychlik, "Selection of Primers for Polymerase Chain
-Reaction" in BA White, Ed., "Methods in Molecular Biology,
-Vol. 15: PCR Protocols: Current Methods and Applications", 1993,
-pp 31-40, Humana Press, Totowa NJ).
-
-PRIMER_PRODUCT_OPT_TM (float, default 0.0)
-
-The optimum melting temperature for the PCR product. 0 indicates
-that there is no optimum temperature.
-
-PRIMER_PRODUCT_OPT_SIZE (int, default 0)
-
-The optimum size for the PCR product. 0 indicates that there is
-no optimum product size. This parameter influences primer
-pair selection only
-if PRIMER_PAIR_WT_PRODUCT_SIZE_GT or
-PRIMER_PAIR_WT_PRODUCT_SIZE_LT is non-0.
-
-PRIMER_TASK (string, default pick_pcr_primers)
-
-Tell Primer3 what task to perform. Legal values are pick_pcr_primers,
-pick_pcr_primers_and_hyb_probe, pick_left_only, pick_right_only,
-pick_hyb_probe_only. The tasks should be self explanatory, except
-that we note that pick_pcr_primers_and_hyb_probe is
-equivalent to the setting PRIMER_PICK_INTERNAL_OLIGO to a non-zero
-value and setting PRIMER_TASK to pick_pcr_primers.
-
-PRIMER_WT_TM_GT (float, default 1.0)
-
-Penalty weight for primers with Tm over PRIMER_OPT_TM.
-
-PRIMER_WT_TM_LT (float, default 1.0)
-
-Penalty weight for primers with Tm under PRIMER_OPT_TM.
-
-PRIMER_WT_SIZE_LT (float, default 1.0)
-
-Penalty weight for primers shorter than PRIMER_OPT_SIZE.
-
-PRIMER_WT_SIZE_GT (float, default 1.0)
-
-Penalty weight for primers longer than PRIMER_OPT_SIZE.
-
-PRIMER_WT_GC_PERCENT_LT (float, default 1.0)
-
-Penalty weight for primers with GC percent greater than
-PRIMER_OPT_GC_PERCENT.
-
-PRIMER_WT_GC_PERCENT_GT (float, default 1.0)
-
-Penalty weight for primers with GC percent greater than
-PRIMER_OPT_GC_PERCENT.
-
-PRIMER_WT_COMPL_ANY (float, default 0.0)
-PRIMER_WT_COMPL_END (float, default 0.0)
-PRIMER_WT_NUM_NS (float, default 0.0)
-PRIMER_WT_REP_SIM (float, default 0.0)
-PRIMER_WT_SEQ_QUAL (float, default 0.0)
-PRIMER_WT_END_QUAL (float, default 0.0)
-PRIMER_WT_POS_PENALTY (float, default 0.0)
-PRIMER_WT_END_STABILITY (float, default 0.0)
-PRIMER_WT_TEMPLATE_MISPRIMING (float, default 0.0)
-PRIMER_PAIR_WT_PR_PENALTY (float, default 1.0)
-PRIMER_PAIR_WT_IO_PENALTY (float, default 0.0)
-PRIMER_PAIR_WT_DIFF_TM (float, default 0.0)
-PRIMER_PAIR_WT_COMPL_ANY (float, default 0.0)
-PRIMER_PAIR_WT_COMPL_END (float, default 0.0)
-PRIMER_PAIR_WT_PRODUCT_TM_LT (float, default 0.0)
-PRIMER_PAIR_WT_PRODUCT_TM_GT (float, default 0.0)
-PRIMER_PAIR_WT_PRODUCT_SIZE_GT (float, default 0.0)
-PRIMER_PAIR_WT_PRODUCT_SIZE_LT (float, default 0.0)
-PRIMER_PAIR_WT_REP_SIM (float, default 0.0)
-PRIMER_PAIR_WT_TEMPLATE_MISPRIMING (float, default 0.0)
-
-Like the arguments governing PCR primer selection, the input tags
-governing internal oligo selection are divided into sequence
-input tags and global input tags, with for former being
-automatically reset after each input record, and the latter
-persisting until explicitly reset.
-
-Because the laboratory detection step using internal oligos
-is independent of the PCR amplification procedure,
-internal oligo tags have defaults that are independent
-of the parameters that govern the selection of PCR primers.
-For example, the melting temperature of an oligo
-used for hybridization might be considerably lower
-than that used as a PCR primer.
-
-Internal Oligo "Sequence" Input Tags
-------------------------------------
-
-PRIMER_INTERNAL_OLIGO_EXCLUDED_REGION (interval list, default empty)
-
-Middle oligos may not overlap any region specified by this tag.
-The associated value must be a space-separated list of
-
-<start>,<length>
-
-pairs, where <start> is the index of the first base of
-an excluded region, and <length> is its length. Often one would
-make Target regions excluded regions for internal oligos.
-
-PRIMER_INTERNAL_OLIGO_INPUT (nucleotide sequence, default empty)
-
-The sequence of an internal oligo to check and around which to
-design left and right primers. Must be a substring of SEQUENCE.
-
-Internal Oligo "Global" Input Tags
-----------------------------------
-
-These tags are analogous to the global input tags (those
-governing primer oligos) discussed above. The exception is
-PRIMER_INTERNAL_OLIGO_SELF_END which is meaningless when applied
-to internal oligos used for hybridization-based detection, since
-primer-dimer will not occur. We recommend that
-PRIMER_INTERNAL_OLIGO_SELF_END be set at least as high as
-PRIMER_INTERNAL_OLIGO_SELF_ANY.
-
-PRIMER_INTERNAL_OLIGO_OPT_SIZE (int, default 20)
-PRIMER_INTERNAL_OLIGO_MIN_SIZE (int, default 18)
-PRIMER_INTERNAL_OLIGO_MAX_SIZE (int, default 27)
-PRIMER_INTERNAL_OLIGO_OPT_TM (float, default 60.0 degrees C)
-PRIMER_INTERNAL_OLIGO_OPT_GC_PERCENT (float, default 50.0%)
-PRIMER_INTERNAL_OLIGO_MIN_TM (float, default 57.0 degrees C)
-PRIMER_INTERNAL_OLIGO_MAX_TM (float, default 63.0 degrees C)
-PRIMER_INTERNAL_OLIGO_MIN_GC (float, default 20.0%)
-PRIMER_INTERNAL_OLIGO_MAX_GC (float, default 80.0%)
-PRIMER_INTERNAL_OLIGO_SALT_CONC (float, default 50.0 mM)
-PRIMER_INTERNAL_OLIGO_DNA_CONC (float, default 50.0 nM)
-PRIMER_INTERNAL_OLIGO_SELF_ANY (decimal 9999.99, default 12.00)
-PRIMER_INTERNAL_OLIGO_MAX_POLY_X (int, default 5)
-PRIMER_INTERNAL_OLIGO_SELF_END (decimal 9999.99, default 12.00)
-PRIMER_INTERNAL_OLIGO_MISHYB_LIBRARY (string, optional)
-
-Similar to PRIMER_MISPRIMING_LIBRARY, except that the event we
-seek to avoid is hybridization of the internal oligo to sequences
-in this library rather than priming from them.
-
-PRIMER_INTERNAL_OLIGO_MAX_MISHYB (decimal,9999.99, default 12.00)
-
-Similar to PRIMER_MAX_MISPRIMING except that this parameter applies
-to the similarity of candidate internal oligos to the library
-specified in PRIMER_INTERNAL_OLIGO_MISHYB_LIBRARY.
-
-PRIMER_INTERNAL_OLIGO_MAX_TEMPLATE_MISHYB (decimal,9999.99, default 12.00)
-
-Not implemented.
-
-PRIMER_INTERNAL_OLIGO_MIN_QUALITY (int, default 0)
-
-(Note that there is no PRIMER_INTERNAL_OLIGO_MIN_END_QUALITY.)
-
-PRIMER_IO_WT_TM_GT (float, default 1.0)
-PRIMER_IO_WT_TM_LT (float, default 1.0)
-PRIMER_IO_WT_GC_PERCENT_GT (float, default 1.0)
-PRIMER_IO_WT_GC_PERCENT_LT (float, default 1.0)
-PRIMER_IO_WT_SIZE_LT (float, default 1.0)
-PRIMER_IO_WT_SIZE_GT (float, default 1.0)
-PRIMER_IO_WT_COMPL_ANY (float, default 0.0)
-PRIMER_IO_WT_COMPL_END (float, default 0.0)
-PRIMER_IO_WT_NUM_NS (float, default 0.0)
-PRIMER_IO_WT_REP_SIM (float, default 0.0)
-PRIMER_IO_WT_SEQ_QUAL (float, default 0.0)
-PRIMER_IO_WT_END_QUAL (float, default 0.0)
-
-AN EXAMPLE
-----------
-One might be interested in performing PCR on an STS with a CA
-repeat in the middle of it. Primers need to be chosen based on
-the criteria of the experiment.
-
-We need to come up with a boulder-io record to send to Primer3 via
-stdin. There are lots of ways to accomplish this. We could save
-the record into a text file called 'input', and then type the
-UNIX command 'primer3 < input'.
-
-Let's look at the input record itself:
-
-PRIMER_SEQUENCE_ID=example
-SEQUENCE=GTAGTCAGTAGACNATGACNACTGACGATGCAGACNACACACACACACACAGCACACAGGTATTAGTGGGCCATTCGATCCCGACCCAAATCGATAGCTACGATGACG
-TARGET=37,21
-PRIMER_OPT_SIZE=18
-PRIMER_MIN_SIZE=15
-PRIMER_MAX_SIZE=21
-PRIMER_NUM_NS_ACCEPTED=1
-PRIMER_PRODUCT_SIZE_RANGE=75-100
-PRIMER_FILE_FLAG=1
-PRIMER_PICK_INTERNAL_OLIGO=1
-PRIMER_INTERNAL_OLIGO_EXCLUDED_REGION=37,21
-PRIMER_EXPLAIN_FLAG=1
-=
-
-A breakdown of the reasoning behind each of the TAG=VALUE pairs
-is below:
-
-PRIMER_SEQUENCE_ID=example
-
-The main intent of this tag is to provide an identifier for the
-sequence that is meaningful to the user, for example when Primer3
-processes multiple records, and by default this tag is optional.
-However, this tag is _required_ when PRIMER_FILE_FLAG is non-0
-Because it provides the names of the files that contain lists
-of oligos that Primer3 considered.
-
-SEQUENCE=GTAGTCAGTAGACNATGACNACTGACGATGCAGACNACACACACACACACAGCACACAGGTATTAGTGGGCCATTCGATCCCGACCCAAATCGATAGCTACGATGACG
-
-The SEQUENCE tag is of ultimate importance. Without it, Primer3
-has no idea what to do. This sequence is 92 bases long. Note that
-there is no newline until the sequence terminates completely.
-
-TARGET=37,21
-
-There is a simple sequence repeat in our sequence, which starts
-at base 37, and has a length of 21 bases. We want Primer3 to
-choose primers which flank the repeat site, so we let Primer3 know
-that we consider this site to be important.
-
-PRIMER_OPT_SIZE=18
-
-Since our sequence length is rather small (only 92 bases
-long), we lower the PRIMER_OPT_SIZE from 20 to 18. It's
-more likely that Primer3 will succeed if it shoots for smaller
-primers with such a small sequence.
-
-PRIMER_MIN_SIZE=15
-PRIMER_MAX_SIZE=21
-
-With the lowering of optimal primer size, it's good to lower
-the minimum and maximum sizes as well.
-
-PRIMER_NUM_NS_ACCEPTED=1
-
-Again, since we've got such a small sequence with a
-non-negligible amount of unknown bases (N's) in it, let's make
-Primer3's job easier by allowing it to pick primers that have
-at most 1 unknown base.
-
-PRIMER_PRODUCT_SIZE_RANGE=75-100
-
-We reduce the product size range from the default of 100-300
-because our source sequence is only 108 base pairs long. If we
-insisted on a product size of 100 base pairs Primer3 would have
-few possibilities to choose from.
-
-PRIMER_FILE_FLAG=1
-
-Since we've got such a small sequence, Primer might fail to
-pick primers. We want to get the list of primers it
-considered, then, so that we might manually pick primers
-ourselves if Primer fails to do so. Setting this flag to 1
-will force Primer to output the primers it considered to a
-forward_primer and a reverse_primer output file.
-
-PRIMER_PICK_INTERNAL_OLIGO=1
-
-We want to see if Primer v2.3 can pick an internal oligo for
-the sequence, so we set this flag to 1 (true).
-
-PRIMER_INTERNAL_OLIGO_EXCLUDED_REGION=37,21
-
-Normally CA-repeats make poor hybridization probes (because they
-not specific enough). Therefor we exclude the CA repeat (which
-is the TARGET) from consideration for the middle oligo.
-
-PRIMER_EXPLAIN_FLAG=1
-
-We want to see statistics about the oligos and oligo triples
-(left primer, internal oligo, right primer) that Primer3
-examined.
-
-=
-
-The '=' character terminates the record.
-
-Tere are some boulderio tags that we never even
-specified. (INCLUDED_REGION, EXCLUDED_REGION, et al.), which is
-perfectly legal. For the tags with default values, those
-defaults will be used in the analysis. For the tags with NO
-default values (like TARGET, for instance), the functionality
-requested by the those tags will simply be absent. It's not the
-case that we need to surround a simple sequence repeat every time
-we want to pick primers!
-
-
-OUTPUT TAGS
------------
-For each boulderio record passed into primer3 via stdin, exactly
-one boulderio record comes out of primer3 on stdout. These output
-records contain everything that the input record contains, plus a
-subset of the following tag/value pairs. Unless noted by (*),
-each tag appears for each primer pair returned. The first
-version is PRIMER_{LEFT,RIGHT,INTERNAL_OLIGO,PAIR}_<tag_name>.
-Tags of additional primers chosen are of the form
-PRIMER_{LEFT,RIGHT,INTERNAL_OLIGO,PAIR}_<j>_<tag_name>. where
-<j> is an integer from 1 to n, where n is at most the value of
-PRIMER_NUM_RETURN.
-
-In the descriptions below, 'i,n' represents a start/length pair,
-'s' represents a string, x represents an arbitrary integer, and f
-represents a float.
-
-PRIMER_ERROR=s (*)
-
-s describes user-correctible errors detected in the input
-(separated by semicolons). This tag is absent if there are no
-errors.
-
-PRIMER_LEFT=i,n
-(FORWARD_PRIMER if -v2_compat is set)
-
-The selected left primer (the primer to the left in the input
-sequence). i is the 0-based index of the start base of the
-primer, and n is t its length.
-
-PRIMER_RIGHT=i,n
-(REVERSE_PRIMER if -v2_compat is set)
-
-The selected right primer (the primer to the right in the input
-sequence). i is the 0-based index of the last base of the
-primer, and n is its length.
-
-PRIMER_INTERNAL_OLIGO=i,n
-(MIDDLE_OLIGO if -v2_compat is set)
-
-The selected internal oligo. Primer3 outputs this tag if
-PRIMER_PICK_INTERNAL_OLIGO was non-0. If primer3 fails to pick a
-middle oligo upon request, this tag will not be output. i is the
-0-based index of start base of the internal oligo, and n is its
-length.
-
-PRIMER_PRODUCT_SIZE=x
-(PRODUCT_SIZE if -v2_compat is set)
-
-x is the product size of the PCR product.
-
-PRIMER_{LEFT,RIGHT,INTERNAL_OLIGO}_EXPLAIN=s (*)
-
-s is a (more or less) self-documenting string containing
-statistics on the possiblities that primer3 considered in
-selecting a single oligo. For example
-
-PRIMER_LEFT_EXPLAIN=considered 62, too many Ns 53, ok 9
-PRIMER_RIGHT_EXPLAIN=considered 62, too many Ns 53, ok 9
-PRIMER_INTERNAL_OLIGO_EXPLAIN=considered 87, too many Ns 39, overlap excluded region 40, ok 8
-
-All the categories are exclusive, except the 'considered' category.
-
-PRIMER_PAIR_EXPLAIN=s (*)
-
-s is a self-documenting string containing statistics on picking a
-primer pair (plus internal oligo if requested). For exaple
-
-PRIMER_PAIR_EXPLAIN=considered 81, unacceptable product size 49, no internal oligo 32, ok 0
-
-All the categories are exclusive, except the 'considered' category.
-
-In some cases Primer3 will examine a primer pair before it
-discovers that one of the primers in the pair violates specified
-constraints. In this case PRIMER_PAIR_EXPLAIN might have a non-0
-number 'considered', even though one or more of
-PRIMER_LEFT_EXPLAIN, PRIMER_RIGHT_EXPLAIN, or
-PRIMER_INTERNAL_OLIGO_EXPLAIN has 'ok 0'.
-
-PRIMER_PAIR_PENALTY=f
-
-The value of the objective function for this pair (lower is better).
-
-PRIMER_{LEFT,RIGHT,INTERNAL_OLIGO}_PENALTY=f
-
-The contribution of this individual primer or oligo to the
-objective function.
-
-PRIMER_{LEFT,RIGHT,INTERNAL_OLIGO}_SEQUENCE=s
-
-The actual sequence of the oligo. The sequence of left primer and
-internal oligo is presented 5' -> 3' on the same strand as the
-input SEQUENCE (which must be presented 5' -> 3'). The sequence
-of the right primer is presented 5' -> 3' on the opposite strand
-from the input SEQUENCE.
-
-PRIMER_{LEFT,RIGHT,INTERNAL_OLIGO}_TM=f
-
-The melting TM for the selected oligo.
-
-PRIMER_{LEFT,RIGHT,INTERNAL_OLIGO}_GC_PERCENT=f
-
-The percent GC for the selected oligo (denominator is the number
-of non-ambiguous bases).
-
-PRIMER_{LEFT,RIGHT,INTERNAL_OLIGO}_SELF_ANY=f
-PRIMER_{LEFT,RIGHT,INTERNAL_OLIGO}_SELF_END=f
-
-The self-complementarity measures for the selected oligo.
-
-PRIMER_PAIR_COMPL_ANY=f
-PRIMER_PAIR_COMPL_END=f
-
-The inter-pair complementarity measures for the selected left and
-right primer
-
-PRIMER_WARNING=s (*)
-
-s lists warnings generated by primer (separated by semicolons);
-this tag is absent if there are no warnings
-
-PRIMER_{LEFT,RIGHT,PAIR}_MISPRIMING_SCORE=f, s
-
-f is the maximum mispriming score for the right primer
-against any sequence in the given PRIMER_MISPRIMING_LIBRARY;
-s is the id of corresponding library sequence.
-PRIMER_PAIR_MISPRIMING_SCORE is the maximum sum of
-mispriming scores in any single library sequence (perhaps a
-more reasonable estimator of the likelihood of mispriming).
-
-PRIMER_{LEFT,RIGHT,PAIR}_TEMPLATE_MISPRIMING=f
-
-Analogous to PRIMER_{LEFT,RIGHT,PAIR}_MISPRIMING_SCORE, except that
-these output tags apply to mispriming within the template sequence.
-This often arises, for example, in genes with repeated exons. For
-backward compatibility, these tags only appear if the corresponding
-input tags have defined values.
-
-PRIMER_PRODUCT_TM=f
-
-f is the melting temperature of the product. Calculated using equation (iii)
-from Rychlik, Spencer and Rhoads, Nucleic Acids Research 18(21) pg. 6410.
-Printed only if a non-default value of PRIMER_MAX_PRODUCT_TM or
-PRIMER_MIN_PRODUCT_TM is specified.
-
-PRIMER_PRODUCT_TM_OLIGO_TM_DIFF=f
-
-f is the difference between the melting temperature of the
-product and the melting temperature of the less stable primer.
-Printed only if PRIMER_MAX_PRODUCT_TM or PRIMER_MIN_PRODUCT_TM is
-specified.
-
-PRIMER_PAIR_T_OPT_A=f
-
-f is T sub a super OPT from equation (i) in Rychlik, Spencer, and
-Rhoads, Nucleic Acids Research 18(21), page 6410. Printed only if
-PRIMER_MAX_PRODUCT_TM or PRIMER_MIN_PRODUCT_TM is specified.
-
-PRIMER_INTERNAL_OLIGO_MISHYB_SCORE=f, s
-
-f is the maximum mishybridization score for the right primer
-against any sequence in the given
-PRIMER_INTERNAL_OLIGO_MISHYB_LIBRARY; s is the id of
-corresponding library sequence.
-
-PRIMER_{LEFT,RIGHT,INTERNAL_OLIGO}_MIN_SEQ_QUALITY=i
-
-i is the minimum _sequence_ quality within the primer
-or oligo (not to be confused with the PRIMER_PAIR_QUALITY
-output tag, which is really the value of the objective
-function.)
-
-PRIMER_{LEFT,RIGHT}_END_STABILITY=f
-
-f is the delta G of disruption of the five 3' bases of the
-primer.
-
-PRIMER_STOP_CODON_POSITION=i
-
-i is the position of the first base of the stop codon,
-if Primer3 found one, or -1 if Primer3 did not. Printed
-only if the input tag PRIMER_START_CODON_POSITION with a
-non-default value is supplied.
-
-EXAMPLE OUTPUT
---------------
-You should run it youself. Use the file 'example' in this
-directory as input.
-
-
-ADVICE FOR PICKING PRIMERS
---------------------------
-We suggest referring to: Wojciech Rychlik, "Selection of Primers
-for Polymerase Chain Reaction" in BA White, Ed., "Methods in
-Molecular Biology, Vol. 15: PCR Protocols: Current Methods and
-Applications", 1993, pp 31-40, Humana Press, Totowa NJ
-
-
-Cautions
---------
-Some of the most important issues in primer picking can be
-addressed only before using Primer3. These are sequence quality
-(including making sure the sequence is not vector and not
-chimeric) and avoiding repetitive elements.
-
-Techniques for avoiding problems include a thorough understanding
-of possible vector contaminants and cloning artifacts coupled
-with database searches using blast, fasta, or other similarity
-searching program to screen for vector contaminants and possible
-repeats. Repbase (J. Jurka, A.F.A. Smit, C. Pethiyagoda, and
-others, 1995-1996, ftp://ncbi.nlm.nih.gov/repository/repbase)
-is an excellent source of repeat sequences and pointers to the
-literature. (The Repbase files need to be converted to Fasta format
-before they can be used by Primer3.) Primer3 now allows you to screen
-candidate oligos against a Mispriming Library (or a Mishyb Library in
-the case of internal oligos).
-
-
-Sequence quality can be controlled by manual trace viewing and
-quality clipping or automatic quality clipping programs. Low-
-quality bases should be changed to N's or can be made part of
-Excluded Regions. The beginning of a sequencing read is often
-problematic because of primer peaks, and the end of the read
-often contains many low-quality or even meaningless called bases.
-Therefore when picking primers from single-pass sequence it is
-often best to use the INCLUDED_REGION parameter to ensure that
-Primer3 chooses primers in the high quality region of the read.
-
-In addition, Primer3 takes as input a Sequence Quality list for
-use with those base calling programs
-
-(e.g. Phred, Bass/Grace, Trout) that output this information.
-
-
-
-
-
-What to do if Primer3 cannot find a primers?
---------------------------------------------
-Try relaxing various parameters, including the
-self-complementarity parameters and max and min oligo melting
-temperatures. For example, for very A-T-rich regions you might
-have to increase maximum primer size or decrease minimum melting
-temperature. It is usually unwise to reduce the minimum primer
-size if your template is complex (e.g. a mammalian genome), since
-small primers are more likely to be non-specific. Make sure that
-there are adequate stretches of non-Ns in the regions in which
-you wish to pick primers. If necessary you can also allow an N
-in your primer and use an oligo mixture containing all four bases
-at that position.
-
-Try setting the PRIMER_EXPLAIN_FLAG input tag.
-
-DIFFERENCES FROM EARLIER VERSIONS
----------------------------------
-
-See the file release_notes.txt in this directory.
-
-Compared to 0.5
----------------
-Completely different input format.
-
-It has been reported the 0.5 deleted Ns when they occurred in
-primers.
-
-More stringent self-complementarity defaults.
-
-Primer3 selects internal oligos on request (and produces .int
-files if requested).
-
-Compared to both 0.5 and v2
----------------------------
-The format of the contents of .for, .rev (and .int) files is
-different.
-
-Primer3 returns a user-specifiable number of primer pairs (or
-triples) sorted by "goodness".
-
-Primer3 will find a primer pair if any acceptable pair exists.
-
-Optional n-based indexing into source sequence.
-
-Use of sequence quality and 3' stability as constraints in primer
-picking. Optional positional component to objective function.
-
-Compared to v2
--------------
-Tag name changes. However, Primer3 should understand most or
-all Primer v2 input tags, and should produce v2-compatible output
-tag names when the -v2_compat command-line switch is used.
-
-The one exception is that the PRIMER_RECOMMEND tag is no longer
-produced. Instead Primer3 produces the PRIMER_x_EXPLAIN output
-tags. The format of the data in this tags is different from the
-data in v2's PRIMER_RECOMMEND output tag.
-
-Numerous fixes.
-
-Uses the PRIMER_SELF_ANY and PRIMER_SELF_END parameters to govern
-maximum allowable complementarity between left and right primers,
-as well as complementarity between copies of a single oligo or
-within a single oligo. This behaviour is very close to that of
-primer 0.5; self complementarity calculations in v2 were
-unreliable.
-
-Primer3 produces much more output information, including the TMs
-and self complementarity measures of selected primers.
-
-
-EXIT STATUS CODES
------------------
-
- 0 on normal operation
--1 under the following conditions:
- illegal command-line arguments.
- unable to fflush stdout.
- unable to open (for writing and creating) a .for, .rev
- or .int file (probably due to a protection problem).
--2 on out-of-memory
--3 empty input
--4 error in a "Global" input tag (message in PRIMER_ERROR).
-
-Primer3 calls abort() and dumps core (if possible) if a
-programming error is detected by an assertion violation.
-
-SIGINT and SIGTERM are handled essentially as empty input, except
-the signal received is returned as the exit status and printed to
-stderr.
-
-In all of the error cases above Primer3 prints a message to stderr.
-
-THE NEW PRIMER3 WWW INTERFACE
------------------------------
-This distribution does not contain the Primer3 WWW interface. A
-snapshot of the interface used at Whitehead Institute may be available
-strictly 'AS-IS' and without support by e-mail request to
-primer3(at)wi.mit.edu, replacing (at) with @.
-
-The remainder of this section is out-of-date.
-
-The web interface consists of:
-
-primer3_www.cgi (the user input screen)
-primer3_www_help.html (user help for the input screen)
-primer3_www_results.cgi (the results screen)
-primer3_www_results_help.cgi (user help for the results screen)
-
-To use this interface you will need perl5 and the perl5
-module CGI.pm. Refer to your perl book to locate the perl5
-distribution. CGI.pm was written by Lincoln D. Stein and is
-available from CPAN (www.cpan.org). You will also need to
-know enough about your operating system and web server to
-install a new CGI script, and enough about perl5 to read the
-script and figure out how it does what it does.
-
-You will have to make some modifications to primer3_www.cgi and
-to primer_www_results.cgi:
-
-1. Correct the path to perl5 on the first line of each .cgi file,
-since this path varies from system to system.
-
-2. Change the value of the $MAINTAINER variable near the top of
-both .cgi files so that they address the person maintaining your
-installation of the primer WWW interface.
-
-3. Specify available mispriming libraries. In primer3_www.cgi
-modify the variable $SELECT_SEQ_LIBRARY as necessary and in
-primer3_www_results modify the value of %SEQ_LIBRARY in a
-corresponding way.
-
-4. Depending on your primer picking application you might want to
-change defaults; many of these are set in primer3_www.cgi, but
-there are some subtleties dealing with the interpretation of
-empty input fields. You have to read the code to really
-understand what is going on.
-
-5. If primer3_www_help.html is not in the same directory as
-primer3_www.cgi fix $DOC_URL in primer3_www.cgi.
-
-6. If primer3_www_results.cgi is not in the same directory as
-primer3_www.cgi fix $PROCESS_INPUT_URL in primer3_www.cgi.
-
-7. If primer3_core is not in same directory as
-primer3_www_results.cgi, fix $PRIMER_BIN in
-primer3_www_results.cgi.
-
-8. If primer3_www_results_help.html is not in the same directory
-as primer3_www_results.cgi fix $DOC_URL in
-primer3_www_results.cgi.
-
-
-ACKNOWLEDGMENTS
----------------
-
-The development of Primer3 was funded by Howard Hughes Medical
-Institute and by the National Institutes of Health, National
-Human Genome Research Institute under grants R01-HG00257 (to
-David C. Page) and P50-HG00098 (to Eric S. Lander).
-
-We gratefully acknowledge the support of Digital Equipment
-Corporation, which provided the Alphas which were used for most
-of the development of Primer3, and of Centerline Software, Inc.,
-whose TestCenter memory-error, -leak, and test-coverage checker
-helped us discover and correct a number of otherwise latent
-errors in Primer3.
-
-Primer3 was written by Helen J. Skaletsky (Howard Hughes Medical
-Institute, Whitehead Institute) and Steve Rozen (Whitehead
-Institute/MIT Center for Genome Research), based on the design of
-earlier versions: Primer 0.5 (Steve Lincoln, Mark Daly, and Eric
-S. Lander) and Primer v2 (Richard Resnick). This documentation
-was written by Richard Resnick and Steve Rozen. The original web
-interface was designed by Richard Resnick. Lincoln Stein
-championed the use of the Boulder-IO format and the idea of
-making Primer3 a software component.
-
-In addition, following is a partial list of people who kindly
-contributed to the design of Primer3
-
-Ernst Molitor
-Carl Foeller
-
-The authors of the current version would be pleased to receive
-error reports or requests for enhancements. Please send e-mail
-to primer3(at)wi.mit.edu after replacing (at) with @.
Copied: trunk/packages/primer3/trunk/README.txt (from rev 210, trunk/packages/primer3/branches/upstream/current/README.txt)
Modified: trunk/packages/primer3/trunk/debian/changelog
===================================================================
--- trunk/packages/primer3/trunk/debian/changelog 2007-02-17 04:15:57 UTC (rev 210)
+++ trunk/packages/primer3/trunk/debian/changelog 2007-02-17 04:31:55 UTC (rev 211)
@@ -1,9 +1,9 @@
-primer3 (1.0.1-1) unstable; urgency=low
+primer3 (1.1.0~beta-1) experimental ; urgency=low
- * New upstream release.
+ * New upstream release. Some part of primer3 is now licenced under the GNU GPL.
* Added a watch file now that the sources are hosted on SourceForge.net.
- -- Charles Plessy <charles-debian-nospam at plessy.org> Thu, 28 Dec 2006 15:42:24 +0100
+ -- Charles Plessy <charles-debian-nospam at plessy.org> Sat, 17 Feb 2007 13:16:49 +0900
primer3 (1.0b-1) unstable; urgency=low
Copied: trunk/packages/primer3/trunk/primer3-1.1.0-beta (from rev 210, trunk/packages/primer3/branches/upstream/current/primer3-1.1.0-beta)
Modified: trunk/packages/primer3/trunk/src/Makefile
===================================================================
--- trunk/packages/primer3/trunk/src/Makefile 2007-02-17 04:15:57 UTC (rev 210)
+++ trunk/packages/primer3/trunk/src/Makefile 2007-02-17 04:31:55 UTC (rev 211)
@@ -1,123 +1,137 @@
-# ======================================================================
-# (c) Copyright 1996,1997,1998,1999,2000,2001,2004,2006 Whitehead
-# Institute for Biomedical Research, Steve Rozen, and Helen Skaletsky
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following disclaimer
-# in the documentation and/or other materials provided with the
-# distribution.
-# * Neither the names of the copyright holders nor contributors may
-# be used to endorse or promote products derived from this software
-# without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# ======================================================================
-
-# ======================================================================
-# CITING PRIMER3
-#
-# 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. Source code available
-# at http://fokker.wi.mit.edu/primer3/.
-# ======================================================================
-
-MAX_PRIMER_LENGTH = 36
-
-LDLIBS = -lm
-CC = gcc
-O_OPTS = -O2
-WHITEHEAD_SPECIFIC_HACK = -include /usr/include/sys/types.h
-CC_OPTS = -g -Wall -D__USE_FIXED_PROTOTYPES__ $(WHITEHEAD_SPECIFIC_HACK)
-P_DEFINES = -DDPAL_MAX_ALIGN=$(MAX_PRIMER_LENGTH) -DMAX_PRIMER_LENGTH=$(MAX_PRIMER_LENGTH)
-
-CFLAGS = $(CC_OPTS) $(O_OPTS)
-LDFLAGS = -g
-
-# ======================================================================
-# IMPORTANT: on MacOS X and some other Unix/Linux systems where
-# static libraries are not routinely available, -static has to
-# be removed.
-LIBOPTS ='-static'
-
-PRIMER_EXE = primer3_core
-
-PRIMER_OBJECTS=primer3_main.o\
- primer3.o\
- oligotm.o\
- dpal_primer.o\
- format_output.o\
- boulder_input.o
-
-EXES=$(PRIMER_EXE) ntdpal oligotm long_seq_tm_test
-
-all: $(EXES)
-
-clean:
- -rm *.o $(EXES) *~
-
-$(PRIMER_EXE): $(PRIMER_OBJECTS)
- $(CC) $(LDFLAGS) -o $@ $(PRIMER_OBJECTS) $(LIBOPTS) $(LDLIBS)
-
-# For use with the "testcenter" testing program (CenterLine Software
-# Inc, http://www.centerline.com)
-$(PRIMER_EXE).tc: $(PRIMER_OBJECTS) /usr/lib/debug/malloc.o
- proof $(CC) $(CFLAGS) -o $@ $(PRIMER_OBJECTS) $(LIBOPTS) $(LDLIBS)
-
-ntdpal: ntdpal_main.o dpal.o
- $(CC) $(LDFLAGS) -o $@ ntdpal_main.o dpal.o
-
-oligotm: oligotm_main.c oligotm.o
- $(CC) $(CFLAGS) -o $@ oligotm_main.c oligotm.o $(LIBOPTS) $(LDLIBS)
-
-long_seq_tm_test: long_seq_tm_test_main.c oligotm.o
- $(CC) $(CFLAGS) -o $@ long_seq_tm_test_main.c oligotm.o $(LIBOPTS) $(LDLIBS)
-
-boulder_input.o: boulder_input.c boulder_input.h primer3.h primer3_release.h dpal.h
- $(CC) -c $(CFLAGS) $(P_DEFINES) -o $@ boulder_input.c
-
-dpal.o: dpal.c dpal.h primer3_release.h
- $(CC) -c $(CFLAGS) -o $@ dpal.c
-
-dpal_primer.o: dpal.c dpal.h primer3_release.h
- $(CC) -c $(CFLAGS) $(P_DEFINES) -o $@ dpal.c
-
-format_output.o: format_output.c primer3_release.h format_output.h primer3.h dpal.h
- $(CC) -c $(CFLAGS) $(P_DEFINES) -o $@ format_output.c
-
-ntdpal_main.o: ntdpal_main.c dpal.h
- $(CC) -c $(CC_OPTS) -o $@ ntdpal_main.c
-# We use CC_OPTS above rather than CFLAGS because
-# gcc 2.7.2 crashes while compiling ntdpal_main.c with -O2
-
-oligotm_main.o: oligotm_main.c oligotm.h
- $(CC) -c $(CFLAGS) -o $@ ntdpal_main.c
-
-oligotm.o: oligotm.c oligotm.h primer3_release.h
-
-primer3.o: primer3.c primer3.h primer3_release.h
- $(CC) -c $(CFLAGS) $(P_DEFINES) primer3.c
-
-primer3_main.o: primer3_main.c primer3.h primer3_release.h dpal.h oligotm.h format_output.h
- $(CC) -c $(CFLAGS) $(P_DEFINES) primer3_main.c
-
-primer_test: $(PRIMER_EXE)
- cd ../test; primer_test.pl
+# ======================================================================
+# (c) Copyright 1996,1997,1998,1999,2000,2001,2004,2006 Whitehead
+# Institute for Biomedical Research, Steve Rozen, and Helen Skaletsky
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the names of the copyright holders nor contributors may
+# be used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+# ======================================================================
+
+# ======================================================================
+# CITING PRIMER3
+#
+# 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. Source code available
+# at http://fokker.wi.mit.edu/primer3/.
+# ======================================================================
+
+MAX_PRIMER_LENGTH = 36
+
+LDLIBS = -lm
+CC = gcc
+O_OPTS = -O2
+CC_OPTS = -g -Wall -D__USE_FIXED_PROTOTYPES__
+P_DEFINES = -DDPAL_MAX_ALIGN=$(MAX_PRIMER_LENGTH) -DMAX_PRIMER_LENGTH=$(MAX_PRIMER_LENGTH)
+
+CFLAGS = $(CC_OPTS) $(O_OPTS)
+LDFLAGS = -g
+
+# ======================================================================
+# If you have trouble with library skew when moving primer3 executables
+# between systems, you might want to set LIBOPTS to -static
+LIBOPTS =
+
+PRIMER_EXE = primer3_core
+OLIGOTM_LIB = liboligotm.a
+OLIGOTM_DYN_LIB = liboligotm.so.1.2.0
+LIBRARIES = $(OLIGOTM_LIB)
+RANLIB = ranlib
+
+PRIMER_OBJECTS1=primer3_main.o\
+ primer3.o\
+ dpal_primer.o\
+ format_output.o\
+ boulder_input.o\
+
+PRIMER_OBJECTS=$(PRIMER_OBJECTS1) $(OLIGOTM_LIB)
+PRIMER_DYN_OBJECTS=$(PRIMER_OBJECTS1) $(OLIGOTM_DYN_LIB)
+
+EXES=$(PRIMER_EXE) ntdpal oligotm long_seq_tm_test
+
+all: $(EXES) $(LIBRARIES)
+
+clean_src:
+ -rm -f *.o $(EXES) $(PRIMER_EXE).dyn *~ $(LIBRARIES)
+
+clean: clean_src
+ cd ../test/; make clean
+
+$(OLIGOTM_LIB): oligotm.o
+ ar rv $@ oligotm.o
+ $(RANLIB) $@
+
+$(OLIGOTM_DYN_LIB): oligotm.o
+ gcc -shared -W1,-soname,liboligotm.so.1 -o $(OLIGOTM_DYN_LIB) oligotm.o
+
+$(PRIMER_EXE): $(PRIMER_OBJECTS)
+ $(CC) $(LDFLAGS) -o $@ $(PRIMER_OBJECTS) $(LIBOPTS) $(LDLIBS)
+
+# For use with valgrind, which requires at lease one
+# dynamically linked library. Automatic testing with
+# valgrind is not implemented at this point.
+$(PRIMER_EXE).dyn: $(PRIMER_DYN_OBJECTS)
+ $(CC) $(CFLAGS) -o $@ $(PRIMER_DYN_OBJECTS) $(LIBOPTS) $(LDLIBS)
+
+ntdpal: ntdpal_main.o dpal.o
+ $(CC) $(LDFLAGS) -o $@ ntdpal_main.o dpal.o
+
+oligotm: oligotm_main.c oligotm.h $(OLIGOTM_LIB)
+ $(CC) $(CFLAGS) -o $@ oligotm_main.c $(OLIGOTM_LIB) $(LIBOPTS) $(LDLIBS)
+
+long_seq_tm_test: long_seq_tm_test_main.c oligotm.o
+ $(CC) $(CFLAGS) -o $@ long_seq_tm_test_main.c oligotm.o $(LIBOPTS) $(LDLIBS)
+
+boulder_input.o: boulder_input.c boulder_input.h primer3.h primer3_release.h dpal.h
+ $(CC) -c $(CFLAGS) $(P_DEFINES) -o $@ boulder_input.c
+
+dpal.o: dpal.c dpal.h primer3_release.h
+ $(CC) -c $(CFLAGS) -o $@ dpal.c
+
+dpal_primer.o: dpal.c dpal.h primer3_release.h
+ $(CC) -c $(CFLAGS) $(P_DEFINES) -o $@ dpal.c
+
+format_output.o: format_output.c primer3_release.h format_output.h primer3.h dpal.h
+ $(CC) -c $(CFLAGS) $(P_DEFINES) -o $@ format_output.c
+
+ntdpal_main.o: ntdpal_main.c dpal.h
+ $(CC) -c $(CC_OPTS) -o $@ ntdpal_main.c
+# We use CC_OPTS above rather than CFLAGS because
+# gcc 2.7.2 crashes while compiling ntdpal_main.c with -O2
+
+oligotm.o: oligotm.c oligotm.h primer3_release.h
+
+primer3.o: primer3.c primer3.h primer3_release.h
+ $(CC) -c $(CFLAGS) $(P_DEFINES) primer3.c
+
+primer3_main.o: primer3_main.c primer3.h primer3_release.h dpal.h oligotm.h format_output.h
+ $(CC) -c $(CFLAGS) $(P_DEFINES) primer3_main.c
+
+primer_test: test
+
+test: $(PRIMER_EXE) ntdpal
+ cd ../test; make test
Modified: trunk/packages/primer3/trunk/src/boulder_input.c
===================================================================
--- trunk/packages/primer3/trunk/src/boulder_input.c 2007-02-17 04:15:57 UTC (rev 210)
+++ trunk/packages/primer3/trunk/src/boulder_input.c 2007-02-17 04:31:55 UTC (rev 211)
@@ -219,9 +219,16 @@
COMPARE_FLOAT("PRIMER_MIN_TM", pa->min_tm);
COMPARE_FLOAT("PRIMER_MAX_TM", pa->max_tm);
COMPARE_FLOAT("PRIMER_MAX_DIFF_TM", pa->max_diff_tm);
+
+ COMPARE_INT("PRIMER_TM_SANTALUCIA",
+ pa->tm_santalucia); /* added by T.Koressaar */
+ COMPARE_INT("PRIMER_SALT_CORRECTIONS",
+ pa->salt_corrections); /* added by T.Koressaar */
COMPARE_FLOAT("PRIMER_MIN_GC", pa->min_gc);
COMPARE_FLOAT("PRIMER_MAX_GC", pa->max_gc);
COMPARE_FLOAT("PRIMER_SALT_CONC", pa->salt_conc);
+ COMPARE_FLOAT("PRIMER_DIVALENT_CONC", pa->divalent_conc); /* added by T.Koressaar */
+ COMPARE_FLOAT("PRIMER_DNTP_CONC", pa->dntp_conc); /* added by T.Koressaar */
COMPARE_FLOAT("PRIMER_DNA_CONC", pa->dna_conc);
COMPARE_INT("PRIMER_NUM_NS_ACCEPTED", pa->num_ns_accepted);
COMPARE_INT("PRIMER_PRODUCT_OPT_SIZE", pa->product_opt_size);
@@ -260,11 +267,12 @@
COMPARE_FLOAT("PRIMER_INTERNAL_OLIGO_MIN_GC", pa->io_min_gc);
COMPARE_FLOAT("PRIMER_INTERNAL_OLIGO_MAX_GC", pa->io_max_gc);
COMPARE_FLOAT("PRIMER_INTERNAL_OLIGO_SALT_CONC",pa->io_salt_conc);
- COMPARE_FLOAT("PRIMER_INTERNAL_OLIGO_DNA_CONC", pa->io_dna_conc);
+ COMPARE_FLOAT("PRIMER_INTERNAL_OLIGO_DIVALENT_CONC",pa->io_divalent_conc); /* added by T.Koressaar */
+ COMPARE_FLOAT("PRIMER_INTERNAL_OLIGO_DNTP_CONC",pa->io_dntp_conc); /* added by T.Koressaar */
+ COMPARE_FLOAT("PRIMER_INTERNAL_OLIGO_DNA_CONC", pa->io_dna_conc);
COMPARE_INT("PRIMER_INTERNAL_OLIGO_NUM_NS", pa->io_num_ns_accepted);
COMPARE_INT("PRIMER_INTERNAL_OLIGO_MIN_QUALITY", pa->io_min_quality);
-
COMPARE_ALIGN_SCORE("PRIMER_INTERNAL_OLIGO_SELF_ANY",
pa->io_self_any);
COMPARE_ALIGN_SCORE("PRIMER_INTERNAL_OLIGO_SELF_END",
@@ -276,7 +284,6 @@
COMPARE_ALIGN_SCORE("PRIMER_PAIR_MAX_MISPRIMING",
pa->pair_repeat_compl);
- /* NEW */
/* Mispriming / mishybing in the template. */
COMPARE_ALIGN_SCORE("PRIMER_MAX_TEMPLATE_MISPRIMING",
pa->max_template_mispriming);
@@ -285,7 +292,6 @@
COMPARE_ALIGN_SCORE("PRIMER_INTERNAL_OLIGO_MAX_TEMPLATE_MISHYB",
pa->io_max_template_mishyb);
- /* NEW */
/* Control interpretation of ambiguity codes in mispriming
and mishyb libraries. */
COMPARE_INT("PRIMER_LIB_AMBIGUITY_CODES_CONSENSUS",
@@ -321,8 +327,10 @@
if (COMPARE("PRIMER_COMMENT") || COMPARE("COMMENT")) continue;
COMPARE_FLOAT("PRIMER_MAX_END_STABILITY", pa->max_end_stability);
+ COMPARE_INT("PRIMER_LOWERCASE_MASKING",
+ pa->lowercase_masking); /* added by T. Koressaar */
+
/* weights for objective functions */
-
/* CHANGE TEMP/temp -> TM/tm */
COMPARE_FLOAT("PRIMER_WT_TM_GT", pa->primer_weights.temp_gt);
COMPARE_FLOAT("PRIMER_WT_TM_LT", pa->primer_weights.temp_lt);
@@ -339,7 +347,6 @@
COMPARE_FLOAT("PRIMER_WT_POS_PENALTY", pa->primer_weights.pos_penalty);
COMPARE_FLOAT("PRIMER_WT_END_STABILITY",
pa->primer_weights.end_stability);
- /* NEW */
COMPARE_FLOAT("PRIMER_WT_TEMPLATE_MISPRIMING",
pa->primer_weights.template_mispriming);
@@ -355,7 +362,6 @@
COMPARE_FLOAT("PRIMER_IO_WT_REP_SIM", pa->io_weights.repeat_sim);
COMPARE_FLOAT("PRIMER_IO_WT_SEQ_QUAL", pa->io_weights.seq_quality);
COMPARE_FLOAT("PRIMER_IO_WT_END_QUAL", pa->io_weights.end_quality);
- /* NEW */
COMPARE_FLOAT("PRIMER_IO_WT_TEMPLATE_MISHYB",
pa->io_weights.template_mispriming);
@@ -382,7 +388,6 @@
COMPARE_FLOAT("PRIMER_PAIR_WT_REP_SIM",
pa->pr_pair_weights.repeat_sim);
- /* NEW */
COMPARE_FLOAT("PRIMER_PAIR_WT_TEMPLATE_MISPRIMING",
pa->pr_pair_weights.template_mispriming);
}
Modified: trunk/packages/primer3/trunk/src/dpal.c
===================================================================
--- trunk/packages/primer3/trunk/src/dpal.c 2007-02-17 04:15:57 UTC (rev 210)
+++ trunk/packages/primer3/trunk/src/dpal.c 2007-02-17 04:31:55 UTC (rev 211)
@@ -37,7 +37,6 @@
#include <string.h>
#include <unistd.h>
#include "dpal.h"
-#include "primer3_release.h"
/*
* Panic messages for when the program runs out of memory.
Modified: trunk/packages/primer3/trunk/src/format_output.c
===================================================================
--- trunk/packages/primer3/trunk/src/format_output.c 2007-02-17 04:15:57 UTC (rev 210)
+++ trunk/packages/primer3/trunk/src/format_output.c 2007-02-17 04:31:55 UTC (rev 211)
@@ -57,7 +57,7 @@
primer_rec *h, const pair_array_t *, int);
static void print_seq_lines(FILE *, const char *s, const char *n, int, int,
int, const primer_args *);
-static void print_stat_line(FILE *, const char *, oligo_stats s, int);
+static void print_stat_line(FILE *, const char *, oligo_stats s, int, int);
static void print_summary(FILE *, const primer_args *,
const seq_args *, const pair_array_t *, int);
static void print_oligo_summary(FILE *, const primer_args *,
@@ -455,10 +455,22 @@
int print_lib_sim;
{
const pair_stats *x;
- const char *format = print_lib_sim
- ? "%6s%6s%6s%6s%6s%6s%6s%6s%6s%6s%6s%6s%6s%6s%6s\n"
- : "%6s%6s%6s%6s%6s%6s%6s%6s%6s%6s%6s%6s%6s%6s\n";
+ char *format;
+ if (print_lib_sim) {
+ if (pa->lowercase_masking) {
+ format = "%6s%6s%6s%6s%6s%6s%6s%6s%6s%6s%6s%6s%6s%6s%6s%6s\n";
+ } else {
+ format = "%6s%6s%6s%6s%6s%6s%6s%6s%6s%6s%6s%6s%6s%6s%6s\n";
+ }
+ } else {
+ if (pa->lowercase_masking) {
+ format = "%6s%6s%6s%6s%6s%6s%6s%6s%6s%6s%6s%6s%6s%6s%6s\n";
+ } else {
+ format = "%6s%6s%6s%6s%6s%6s%6s%6s%6s%6s%6s%6s%6s%6s\n";
+ }
+ }
+
fprintf(f, "\nStatistics\n");
if (!pa->pick_anyway
@@ -474,31 +486,61 @@
&& sa->internal_input))) {
if (print_lib_sim) {
- fprintf(f, format,
- "", "con", "too", "in", "in", "", "no",
- "tm", "tm", "high", "high", "high",
- "", "high", "");
- fprintf(f, format,
- "", "sid", "many", "tar", "excl", "bad","GC",
- "too", "too", "any", "3'", "lib",
- "poly", "end", "");
- fprintf(f, format,
- "", "ered","Ns", "get", "reg", "GC%", "clamp",
- "low", "high","compl", "compl", "sim",
- "X", "stab", "ok");
+ if (pa->lowercase_masking) {
+ fprintf(f, format,
+ "", "con", "too", "in", "in", "", "no",
+ "tm", "tm", "high", "high", "high",
+ "", "high", " lower", "");
+ fprintf(f, format,
+ "", "sid", "many", "tar", "excl", "bad","GC",
+ "too", "too", "any", "3'", "lib",
+ "poly", "end", " case", "");
+ fprintf(f, format,
+ "", "ered","Ns", "get", "reg", "GC%", "clamp",
+ "low", "high","compl", "compl", "sim",
+ "X", "stab", " end", "ok ");
+ } else {
+ fprintf(f, format,
+ "", "con", "too", "in", "in", "", "no",
+ "tm", "tm", "high", "high", "high",
+ "", "high", "");
+ fprintf(f, format,
+ "", "sid", "many", "tar", "excl", "bad","GC",
+ "too", "too", "any", "3'", "lib",
+ "poly", "end", "");
+ fprintf(f, format,
+ "", "ered","Ns", "get", "reg", "GC%", "clamp",
+ "low", "high","compl", "compl", "sim",
+ "X", "stab", "ok");
+ }
} else {
- fprintf(f, format,
- "", "con", "too", "in", "in", "", "no",
- "tm", "tm", "high", "high",
- "", "high", "");
- fprintf(f, format,
- "", "sid", "many", "tar", "excl", "bad","GC",
- "too", "too", "any", "3'",
- "poly", "end", "");
- fprintf(f, format,
- "", "ered","Ns", "get", "reg", "GC%", "clamp",
- "low", "high","compl", "compl",
- "X", "stab", "ok");
+ if (pa->lowercase_masking) {
+ fprintf(f, format,
+ "", "con", "too", "in", "in", "", "no",
+ "tm", "tm", "high", "high",
+ "", "high", " lower", "");
+ fprintf(f, format,
+ "", "sid", "many", "tar", "excl", "bad","GC",
+ "too", "too", "any", "3'",
+ "poly", "end", " case", "");
+ fprintf(f, format,
+ "", "ered","Ns", "get", "reg", "GC%", "clamp",
+ "low", "high","compl", "compl",
+ "X", "stab", " end", "ok ");
+ } else {
+ fprintf(f, format,
+ "", "con", "too", "in", "in", "", "no",
+ "tm", "tm", "high", "high",
+ "", "high", "");
+ fprintf(f, format,
+ "", "sid", "many", "tar", "excl", "bad","GC",
+ "too", "too", "any", "3'",
+ "poly", "end", "");
+ fprintf(f, format,
+ "", "ered","Ns", "get", "reg", "GC%", "clamp",
+ "low", "high","compl", "compl",
+ "X", "stab", "ok");
+ }
}
}
@@ -507,18 +549,21 @@
|| pick_left_only == pa->primer_task
|| pick_pcr_primers_and_hyb_probe == pa->primer_task)
&& !(pa->pick_anyway && sa->left_input))
- print_stat_line(f, "Left", sa->left_expl, print_lib_sim);
+ print_stat_line(f, "Left", sa->left_expl,
+ print_lib_sim, pa->lowercase_masking);
if ((pick_pcr_primers == pa->primer_task
|| pick_right_only == pa->primer_task
|| pick_pcr_primers_and_hyb_probe == pa->primer_task)
&& !(pa->pick_anyway && sa->right_input))
- print_stat_line(f, "Right", sa->right_expl, print_lib_sim);
+ print_stat_line(f, "Right", sa->right_expl,
+ print_lib_sim, pa->lowercase_masking);
if ((pick_pcr_primers_and_hyb_probe == pa->primer_task
|| pick_hyb_probe_only == pa->primer_task)
&& !(pa->pick_anyway && sa->internal_input))
- print_stat_line(f, "Intl", sa->intl_expl, print_lib_sim);
+ print_stat_line(f, "Intl", sa->intl_expl,
+ print_lib_sim, pa->lowercase_masking);
if (pick_pcr_primers == pa->primer_task
|| pick_pcr_primers_and_hyb_probe == pa->primer_task) {
@@ -530,29 +575,48 @@
}
static void
-print_stat_line(f, t, s, print_lib_sim)
+print_stat_line(f, t, s, print_lib_sim, lowercase_masking)
FILE *f;
const char *t;
oligo_stats s;
int print_lib_sim;
+ int lowercase_masking;
{
- const char *format = print_lib_sim
- ? "%-6s%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d\n"
- : "%-6s%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d\n";
-
- if (print_lib_sim)
- fprintf(f, format,
+ /* Modified by T. Koressaar to output statistics
+ for lowercase masking. */
+ if (print_lib_sim)
+ if (lowercase_masking) {
+ fprintf(f,
+ "%-6s%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d\n",
+ t, s.considered, s.ns, s.target, s.excluded,
+ s.gc, s.gc_clamp, s.temp_min, s.temp_max,
+ s.compl_any, s.compl_end, s.repeat_score,
+ s.poly_x, s.stability, s.gmasked, s.ok);
+ } else {
+ fprintf(f,
+ "%-6s%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d\n",
+ t, s.considered, s.ns, s.target, s.excluded,
+ s.gc, s.gc_clamp, s.temp_min, s.temp_max,
+ s.compl_any, s.compl_end, s.repeat_score,
+ s.poly_x, s.stability, s.ok);
+ } else {
+ if (lowercase_masking) {
+ fprintf(f,
+ "%-6s%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d\n",
t, s.considered, s.ns, s.target, s.excluded,
s.gc, s.gc_clamp, s.temp_min, s.temp_max,
- s.compl_any, s.compl_end, s.repeat_score,
- s.poly_x, s.stability, s.ok);
- else
- fprintf(f, format,
+ s.compl_any, s.compl_end, s.poly_x, s.stability, s.gmasked, s.ok);
+ } else {
+ fprintf(f,
+ "%-6s%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d\n",
t, s.considered, s.ns, s.target, s.excluded,
s.gc, s.gc_clamp, s.temp_min, s.temp_max,
s.compl_any, s.compl_end, s.poly_x, s.stability, s.ok);
+ }
+ }
}
+
/*
* Return true iff a check for library similarity has been specified for
* either the primer pair or the internal oligo.
Modified: trunk/packages/primer3/trunk/src/long_seq_tm_test_main.c
===================================================================
--- trunk/packages/primer3/trunk/src/long_seq_tm_test_main.c 2007-02-17 04:15:57 UTC (rev 210)
+++ trunk/packages/primer3/trunk/src/long_seq_tm_test_main.c 2007-02-17 04:31:55 UTC (rev 211)
@@ -54,7 +54,8 @@
#include <string.h>
#include <math.h>
-double long_seq_tm(const char* s, int start, int len, double salt_conc);
+#include "oligotm.h"
+ /* double long_seq_tm(const char* s, int start, int len, double salt_conc, double divalent_conc, double dntp_conc); */
int
main(argc, argv)
@@ -63,6 +64,8 @@
{
const char *s;
double salt_conc = 50;
+ double divalent_conc = 0;
+ double dntp_conc = 0;
double tm;
int start, len;
char *endptr;
@@ -77,7 +80,7 @@
len = strtol(argv[3], &endptr, 10);
printf("s=%s, start=%d, length=%d\n", s, start, len);
- tm = long_seq_tm(s, start, len, salt_conc);
+ tm = long_seq_tm(s, start, len, salt_conc, divalent_conc, dntp_conc);
printf("tm = %f\n", tm);
return 0;
}
Modified: trunk/packages/primer3/trunk/src/oligotm.c
===================================================================
--- trunk/packages/primer3/trunk/src/oligotm.c 2007-02-17 04:15:57 UTC (rev 210)
+++ trunk/packages/primer3/trunk/src/oligotm.c 2007-02-17 04:31:55 UTC (rev 211)
@@ -4,72 +4,115 @@
(http://jura.wi.mit.edu/rozen), and Helen Skaletsky
All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
+ This file is part of the oligotm library.
- * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
- * Neither the names of the copyright holders nor contributors may
-be used to endorse or promote products derived from this software
-without specific prior written permission.
+ The oligotm library is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ The oligotm library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with the oligtm library (file gpl.txt in the source
+ distribution); if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
*/
#include <limits.h>
#include <math.h>
#include <string.h>
#include "oligotm.h"
-#include "primer3_release.h"
-/*
- * Tables of nearest-neighbor thermodynamics for DNA bases.
- * See Breslauer, Frank, Blocker, and Markey,
- * "Predicting DNA duplex stability from the base sequence."
- * Proc. Natl. Acad. Sci. USA, vol 83, page 3746 (1986).
- * Article free at
- * http://www.pubmedcentral.nih.gov/picrender.fcgi?artid=323600&blobtype=pdf
- * See table 2.
+#define A_CHAR 'A'
+#define G_CHAR 'G'
+#define T_CHAR 'T'
+#define C_CHAR 'C'
+#define N_CHAR 'N'
+
+#define CATID5(A,B,C,D,E) A##B##C##D##E
+#define CATID2(A,B) A##B
+
+#define DO_PAIR(LAST,THIS) \
+ if (CATID2(THIS,_CHAR) == c) { \
+ dh += CATID5(H,_,LAST,_,THIS); \
+ ds += CATID5(S,_,LAST,_,THIS); \
+ goto CATID2(THIS,_STATE); \
+ }
+
+#define STATE(LAST) \
+ CATID2(LAST,_STATE): \
+ c = *s; s++; \
+ DO_PAIR(LAST,A) \
+ else DO_PAIR(LAST,T) \
+ else DO_PAIR(LAST,G) \
+ else DO_PAIR(LAST,C) \
+ else DO_PAIR(LAST,N) \
+ else if ('\0' == c) \
+ goto DONE; \
+ else goto ERROR \
+
+#define DO_PAIR2(LAST,THIS) \
+ if (CATID2(THIS,_CHAR) == c) { \
+ dh += CATID5(DH,_,LAST,_,THIS); \
+ ds += CATID5(DS,_,LAST,_,THIS); \
+ goto CATID2(THIS,_STATE2); \
+ }
+#define STATE2(LAST) \
+ CATID2(LAST,_STATE2): \
+ c = *s; s++; \
+ DO_PAIR2(LAST,A) \
+ else DO_PAIR2(LAST,T) \
+ else DO_PAIR2(LAST,G) \
+ else DO_PAIR2(LAST,C) \
+ else DO_PAIR2(LAST,N) \
+ else if ('\0' == c) \
+ goto DONE; \
+ else goto ERROR \
+
+/*
+ * Two tables of nearest-neighbor parameters for di-nucleotide
+ * base pairs.
+ *
+ * These are included in this file because they are not needed by
+ * clients (callers) of oligtm().
*/
+
+/* Table 1 (old parameters):
+ * See table 2 in the paper [Breslauer KJ, Frank R, Blöcker H and
+ * Marky LA (1986) "Predicting DNA duplex stability from the base
+ * sequence" Proc Natl Acad Sci 83:4746-50
+ * http://dx.doi.org/10.1073/pnas.83.11.3746]
+ */
+
#define S_A_A 240
#define S_A_C 173
#define S_A_G 208
#define S_A_T 239
#define S_A_N 215
-
+
#define S_C_A 129
#define S_C_C 266
#define S_C_G 278
#define S_C_T 208
-#define S_C_N 220
-
+#define S_C_N 220
+
#define S_G_A 135
#define S_G_C 267
#define S_G_G 266
#define S_G_T 173
#define S_G_N 210
-
+
#define S_T_A 169
#define S_T_C 135
#define S_T_G 129
#define S_T_T 240
#define S_T_N 168
-
+
#define S_N_A 168
#define S_N_C 210
#define S_N_G 220
@@ -114,7 +157,7 @@
#define G_A_T 1500
#define G_A_N 1575
-#define G_C_A 1900
+#define G_C_A 1900
#define G_C_C 3100
#define G_C_G 3600
#define G_C_T 1600
@@ -138,45 +181,174 @@
#define G_N_T 1575
#define G_N_N 1994
-#define A_CHAR 'A'
-#define G_CHAR 'G'
-#define T_CHAR 'T'
-#define C_CHAR 'C'
-#define N_CHAR 'N'
+/* Table 2, new parameters:
+ * Tables of nearest-neighbor thermodynamics for DNA bases, from the
+ * paper [SantaLucia JR (1998) "A unified view of polymer, dumbbell
+ * and oligonucleotide DNA nearest-neighbor thermodynamics", Proc Natl
+ * Acad Sci 95:1460-65 http://dx.doi.org/10.1073/pnas.95.4.1460]
+ */
-#define CATID5(A,B,C,D,E) A##B##C##D##E
-#define CATID2(A,B) A##B
-#define DO_PAIR(LAST,THIS) \
- if (CATID2(THIS,_CHAR) == c) { \
- dh += CATID5(H,_,LAST,_,THIS); \
- ds += CATID5(S,_,LAST,_,THIS); \
- goto CATID2(THIS,_STATE); \
- }
+#define DS_A_A 222
+#define DS_A_C 224
+#define DS_A_G 210
+#define DS_A_T 204
+#define DS_A_N 224
-#define STATE(LAST) \
- CATID2(LAST,_STATE): \
- c = *s; s++; \
- DO_PAIR(LAST,A) \
- else DO_PAIR(LAST,T) \
- else DO_PAIR(LAST,G) \
- else DO_PAIR(LAST,C) \
- else DO_PAIR(LAST,N) \
- else if ('\0' == c) \
- goto DONE; \
- else goto ERROR \
+#define DS_C_A 227
+#define DS_C_C 199
+#define DS_C_G 272
+#define DS_C_T 210
+#define DS_C_N 272
+#define DS_G_A 222
+#define DS_G_C 244
+#define DS_G_G 199
+#define DS_G_T 224
+#define DS_G_N 244
+
+#define DS_T_A 213
+#define DS_T_C 222
+#define DS_T_G 227
+#define DS_T_T 222
+#define DS_T_N 227
+
+#define DS_N_A 168
+#define DS_N_C 210
+#define DS_N_G 220
+#define DS_N_T 215
+#define DS_N_N 220
+
+
+#define DH_A_A 79
+#define DH_A_C 84
+#define DH_A_G 78
+#define DH_A_T 72
+#define DH_A_N 72
+
+#define DH_C_A 85
+#define DH_C_C 80
+#define DH_C_G 106
+#define DH_C_T 78
+#define DH_C_N 78
+
+#define DH_G_A 82
+#define DH_G_C 98
+#define DH_G_G 80
+#define DH_G_T 84
+#define DH_G_N 80
+
+#define DH_T_A 72
+#define DH_T_C 82
+#define DH_T_G 85
+#define DH_T_T 79
+#define DH_T_N 72
+
+#define DH_N_A 72
+#define DH_N_C 80
+#define DH_N_G 78
+#define DH_N_T 72
+#define DH_N_N 72
+
+/* Delta G's of disruption * 1000. */
+#define DG_A_A 1000
+#define DG_A_C 1440
+#define DG_A_G 1280
+#define DG_A_T 880
+#define DG_A_N 880
+
+#define DG_C_A 1450
+#define DG_C_C 1840
+#define DG_C_G 2170
+#define DG_C_T 1280
+#define DG_C_N 1450
+
+#define DG_G_A 1300
+#define DG_G_C 2240
+#define DG_G_G 1840
+#define DG_G_T 1440
+#define DG_G_N 1300
+
+#define DG_T_A 580
+#define DG_T_C 1300
+#define DG_T_G 1450
+#define DG_T_T 1000
+#define DG_T_N 580
+
+#define DG_N_A 580
+#define DG_N_C 1300
+#define DG_N_G 1280
+#define DG_N_T 880
+#define DG_N_N 580
+
+/* End of tables nearest-neighbor parameter. */
+
+
+/* Calculate the melting temperature of oligo s. See
+ oligotm.h for documentation of arguments.
+*/
double
-oligotm(s, DNA_nM, K_mM)
+oligotm(s, DNA_nM, K_mM, divalent_conc, dntp_conc, tm_santalucia, salt_corrections)
const char *s;
double DNA_nM;
double K_mM;
+ double divalent_conc;
+ double dntp_conc;
+ int tm_santalucia;
+ int salt_corrections;
{
- register int dh = 0, ds = 108;
- register char c;
- double delta_H, delta_S;
+ register int dh = 0, ds = 0;
+ register char c;
+ double delta_H, delta_S;
+ int len, sym;
+ const char* d = s;
+ if(divalent_to_monovalent(divalent_conc, dntp_conc) == OLIGOTM_ERROR) return OLIGOTM_ERROR;
+
+ K_mM = K_mM + divalent_to_monovalent(divalent_conc, dntp_conc);
+ if (tm_santalucia != TM_METHOD_BRESLAUER
+ && tm_santalucia != TM_METHOD_SANTALUCIA)
+ return OLIGOTM_ERROR;
+ if (salt_corrections != SALT_CORRECTION_SCHILDKRAUT
+ && salt_corrections != SALT_CORRECTION_SANTALUCIA
+ && salt_corrections != SALT_CORRECTION_OWCZARZY)
+ return OLIGOTM_ERROR;
- /* Use a finite-state machine (DFA) to calucluate dh and ds for s. */
- c = *s; s++;
+ len = (strlen(s)-1);
+
+ sym = symmetry(s); /*Add symmetry correction if seq is symmetrical*/
+ if( tm_santalucia == TM_METHOD_BRESLAUER ) {
+ ds=108;
+ }
+ else {
+ if(sym == 1) {
+ ds+=14;
+ }
+
+ /** Terminal AT penalty **/
+
+ if(strncmp("A", s, 1)==0
+ || strncmp("T", s, 1)==0) {
+ ds += -41;
+ dh += -23;
+ } else if (strncmp("C", s, 1)==0
+ || strncmp("G", s, 1)==0) {
+ ds += 28;
+ dh += -1;
+ }
+ s+=len;
+ if(strncmp("T", s, 1)==0
+ || strncmp("A", s, 1)==0) {
+ ds += -41;
+ dh += -23;
+ } else if (strncmp("C", s, 1)==0
+ || strncmp("G", s, 1)==0) {
+ ds += 28;
+ dh += -1;
+ }
+ s-=len;
+ }
+ /* Use a finite-state machine (DFA) to calucluate dh and ds for s. */
+ c = *s; s++;
+ if (tm_santalucia == TM_METHOD_BRESLAUER) {
if (c == 'A') goto A_STATE;
else if (c == 'G') goto G_STATE;
else if (c == 'T') goto T_STATE;
@@ -188,36 +360,82 @@
STATE(G);
STATE(C);
STATE(N);
-
+ } else {
+ if (c == 'A') goto A_STATE2;
+ else if (c == 'G') goto G_STATE2;
+ else if (c == 'T') goto T_STATE2;
+ else if (c == 'C') goto C_STATE2;
+ else if (c == 'N') goto N_STATE2;
+ else goto ERROR;
+ STATE2(A);
+ STATE2(T);
+ STATE2(G);
+ STATE2(C);
+ STATE2(N);
+ }
+
+
DONE: /* dh and ds are now computed for the given sequence. */
- delta_H = dh * -100.0; /*
- * Nearest-neighbor thermodynamic values for dh
- * are given in 100 cal/mol of interaction.
- */
- delta_S = ds * -0.1; /*
- * Nearest-neighbor thermodynamic values for ds
- * are in in .1 cal/K per mol of interaction.
- */
+ delta_H = dh * -100.0; /*
+ * Nearest-neighbor thermodynamic values for dh
+ * are given in 100 cal/mol of interaction.
+ */
+ delta_S = ds * -0.1; /*
+ * Nearest-neighbor thermodynamic values for ds
+ * are in in .1 cal/K per mol of interaction.
+ */
+ double Tm=0; /* Melting temperature */
+ len=len+1;
+ if (salt_corrections == SALT_CORRECTION_SCHILDKRAUT) {
+ double correction=- 273.15 + 16.6 * log10(K_mM/1000.0);
+ Tm = delta_H / (delta_S + 1.987 * log(DNA_nM/4000000000.0)) + correction;
+ } else if (salt_corrections== SALT_CORRECTION_SANTALUCIA) {
+ delta_S = delta_S + 0.368 * (len - 1) * log(K_mM / 1000.0 );
+ if(sym == 1) { /* primer is symmetrical */
+ /* Equation A */
+ Tm = delta_H / (delta_S + 1.987 * log(DNA_nM/1000000000.0)) - 273.15;
+ } else {
+ /* Equation B */
+ Tm = delta_H / (delta_S + 1.987 * log(DNA_nM/4000000000.0)) - 273.15;
+ }
+ } else if (salt_corrections== SALT_CORRECTION_OWCZARZY) {
+ double gcPercent=0;
+ int i;
+ for(i=0; i<=len && d != NULL && d != '\0';) {
+ if(*d == 'C' || *d == 'G') {
+ gcPercent++;
+ }
+ *d++;
+ i++;
+ }
+ gcPercent = (double)gcPercent/((double)len);
- /*
- * See Rychlik, Spencer, Rhoads,
- * "Optimization of the annealing temperature for
- * DNA amplification in vitro."
- * Nucleic Acids Research, vol 18, no 21, page 6409 (1990).
- * Article free at
- * http://www.pubmedcentral.nih.gov/articlerender.fcgi?tool=pubmed&pubmedid=2243783
- * See eqn (ii).
- */
- return delta_H / (delta_S + 1.987 * log(DNA_nM/4000000000.0))
- - 273.15 + 16.6 * log10(K_mM/1000.0);
+ double correction
+ = (((4.29 * gcPercent) - 3.95) * pow(10,-5) * log(K_mM / 1000.0))
+ + (9.40 * pow(10,-6) * (pow(log(K_mM / 1000.0),2)));
+ if (sym == 1) { /* primer is symmetrical */
+ /* Equation A */
+ Tm
+ = (1/((1/(delta_H / (delta_S + 1.9872 * log(DNA_nM/1000000000.0)))) + correction))
+ - 273.15;
+ } else {
+ /* Equation B */
+ Tm
+ = (1/((1/(delta_H / (delta_S + 1.9872 * log(DNA_nM/4000000000.0)))) + correction))
+ - 273.15;
+ }
+
+ }
+ return Tm;
ERROR: /*
* length of s was less than 2 or there was an illegal character in
* s.
*/
- return OLIGOTM_ERROR;
+ return OLIGOTM_ERROR;
}
#undef DO_PAIR
+#undef DO_PAIR2
#define DO_PAIR(LAST,THIS) \
if (CATID2(THIS,_CHAR) == c) { \
@@ -225,15 +443,43 @@
goto CATID2(THIS,_STATE); \
}
+#define DO_PAIR2(LAST,THIS) \
+ if (CATID2(THIS,_CHAR) == c) { \
+ dg += CATID5(DG,_,LAST,_,THIS); \
+ goto CATID2(THIS,_STATE2); \
+}
+
double
-oligodg(s)
+oligodg(s, tm_santalucia)
const char *s; /* The sequence. */
+ int tm_santalucia;
{
- register int dg = 0;
- register char c;
+ register int dg = 0;
+ register char c;
- /* Use a finite-state machine (DFA) to calucluate dg s. */
- c = *s; s++;
+ if (tm_santalucia != TM_METHOD_BRESLAUER
+ && tm_santalucia != TM_METHOD_SANTALUCIA)
+ return OLIGOTM_ERROR;
+
+ /* Use a finite-state machine (DFA) to calucluate dg s. */
+ c = *s; s++;
+ if(tm_santalucia != TM_METHOD_BRESLAUER) {
+ dg=-1960; /* Initial dG */
+ if(c == 'A' || c == 'T') {
+ dg += -50; /* terminal AT penalty */
+ }
+ if (c == 'A') goto A_STATE2;
+ else if (c == 'G') goto G_STATE2;
+ else if (c == 'T') goto T_STATE2;
+ else if (c == 'C') goto C_STATE2;
+ else if (c == 'N') goto N_STATE2;
+ else goto ERROR;
+ STATE2(A);
+ STATE2(T);
+ STATE2(G);
+ STATE2(C);
+ STATE2(N);
+ } else {
if (c == 'A') goto A_STATE;
else if (c == 'G') goto G_STATE;
else if (c == 'T') goto T_STATE;
@@ -246,8 +492,20 @@
STATE(C);
STATE(N);
- DONE: /* dg is now computed for the given sequence. */
- return dg / 1000.0;
+ }
+DONE: /* dg is now computed for the given sequence. */
+ if(tm_santalucia != TM_METHOD_BRESLAUER) {
+ int sym;
+ --s; --s; c = *s;
+ if(c == 'A' || c == 'T') {
+ dg += -50; /* terminal AT penalty */
+ }
+ sym = symmetry(s);
+ if(sym==1) {
+ dg +=-430; /* symmetry correction for dG */
+ }
+ }
+ return dg / 1000.0;
ERROR: /*
* length of s was less than 2 or there was an illegal character in
@@ -256,41 +514,71 @@
return OLIGOTM_ERROR;
}
-double end_oligodg(s, len)
- const char *s;
+double end_oligodg(s, len, tm_santalucia)
+ const char *s;
int len; /* The number of characters to return. */
+ int tm_santalucia;
{
int x = strlen(s);
- return x < len ? oligodg(s) : oligodg(s + (x - len));
+
+ if (tm_santalucia != TM_METHOD_BRESLAUER
+ && tm_santalucia != TM_METHOD_SANTALUCIA)
+ return OLIGOTM_ERROR;
+
+ return
+ x < len
+ ? oligodg(s,tm_santalucia) :
+ oligodg(s + (x - len),tm_santalucia);
}
-double seqtm(seq, dna_conc, salt_conc, nn_max_len)
+/* See oligotm.h for documentation of arguments. */
+double seqtm(seq, dna_conc, salt_conc, divalent_conc, dntp_conc, nn_max_len,
+ tm_santalucia, salt_corrections)
const char *seq;
double dna_conc;
double salt_conc;
+ double divalent_conc;
+ double dntp_conc;
int nn_max_len;
+ int tm_santalucia;
+ int salt_corrections;
{
int len = strlen(seq);
+ if (tm_santalucia != TM_METHOD_BRESLAUER
+ && tm_santalucia != TM_METHOD_SANTALUCIA)
+ return OLIGOTM_ERROR;
+ if (salt_corrections != SALT_CORRECTION_SCHILDKRAUT
+ && salt_corrections != SALT_CORRECTION_SANTALUCIA
+ && salt_corrections != SALT_CORRECTION_OWCZARZY)
+ return OLIGOTM_ERROR;
+
return (len > nn_max_len)
- ? long_seq_tm(seq, 0, len, salt_conc) : oligotm(seq, dna_conc, salt_conc);
+ ? long_seq_tm(seq, 0, len, salt_conc, divalent_conc, dntp_conc)
+ : oligotm(seq, dna_conc, salt_conc, divalent_conc, dntp_conc, tm_santalucia, salt_corrections);
}
/* See oligotm.h for documentation on this function and the formula it
uses. */
double
-long_seq_tm(s, start, len, salt_conc)
+long_seq_tm(s, start, len, salt_conc, divalent_conc, dntp_conc)
const char *s;
int start, len;
double salt_conc;
+ double divalent_conc;
+ double dntp_conc;
{
- int GC_count = 0;
+ if(divalent_to_monovalent(divalent_conc, dntp_conc) == OLIGOTM_ERROR) return OLIGOTM_ERROR;
+
+ salt_conc = salt_conc + divalent_to_monovalent(divalent_conc, dntp_conc);
+ int GC_count = 0;
const char *p, *end;
- if(start + len > strlen(s) || start < 0 || len <= 0) return OLIGOTM_ERROR;
+ if(start + len > strlen(s) || start < 0 || len <= 0)
+ return OLIGOTM_ERROR;
end = &s[start + len];
/* Length <= 0 is nonsensical. */
for (p = &s[start]; p < end; p++) {
- if ('G' == *p || 'g' == *p || 'C' == *p || 'c' == *p)
+ if ('G' == *p || 'C' == *p)
GC_count++;
}
@@ -301,3 +589,45 @@
- (600.0 / len);
}
+
+int symmetry(const char* seq) { /* for testing if string is symmetrical*/
+ register char s;
+ register char e;
+ const char *seq_end=seq;
+ int i = 0;
+ int seq_len=strlen(seq);
+ int mp = seq_len/2;
+ if(seq_len%2==1) {
+ return 0;
+ }
+ seq_end+=seq_len;
+ seq_end--;
+ while(i<mp) {
+ i++;
+ s=*seq;
+ e=*seq_end;
+ if ((s=='A' && e!='T')
+ || (s=='T' && e!='A')
+ || (e=='A' && s!='T')
+ || (e=='T' && s!='A')) {
+ return 0;
+ }
+ if ((s=='C' && e!='G')
+ || (s=='G' && e!='C')
+ || (e=='C' && s!='G')
+ || (e=='G' && s!='C')) {
+ return 0;
+ }
+ seq++;
+ seq_end--;
+ }
+ return 1;
+}
+
+double divalent_to_monovalent(double divalent, double dntp){ /* converting divalent salt concentration to monovalent */
+ if(divalent==0) dntp=0;
+ if(divalent<0 || dntp<0) return OLIGOTM_ERROR;
+ if(divalent<dntp) /* according to theory melting temperature doesn't depend on divalent cations */
+ divalent=dntp;
+ return 120*(sqrt(divalent-dntp));
+}
Modified: trunk/packages/primer3/trunk/src/oligotm.h
===================================================================
--- trunk/packages/primer3/trunk/src/oligotm.h 2007-02-17 04:15:57 UTC (rev 210)
+++ trunk/packages/primer3/trunk/src/oligotm.h 2007-02-17 04:31:55 UTC (rev 211)
@@ -4,40 +4,32 @@
(http://jura.wi.mit.edu/rozen), and Helen Skaletsky
All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
+ This file is part of the oligotm library.
- * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
- * Neither the names of the copyright holders nor contributors may
-be used to endorse or promote products derived from this software
-without specific prior written permission.
+ The oligotm library is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ The oligotm library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with the oligtm library (file gpl.txt in the source
+ distribution); if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
*/
-
+
#ifndef _OLIGO_TM
#define _OLIGO_TM 1
#define OLIGOTM_ERROR -999999.9999
/* Return the delta G of the last len bases of oligo if oligo is at least len
bases long; otherwise return the delta G of oligo. */
-double end_oligodg(const char *oligo, int len);
+double end_oligodg(const char *oligo, int len, int tm_santalucia);
/* Calculate the melting temperature of substr(seq, start, length) using the
formula from Bolton and McCarthy, PNAS 84:1390 (1962) as presented in
@@ -62,32 +54,123 @@
since mM is the usual units in PCR applications.
*/
-double long_seq_tm(const char *seq, int start, int length, double salt_conc);
+double long_seq_tm(const char *seq, int start, int length, double salt_conc, double divalent_conc, double dntp_conc);
-/* Return the melting temperature of the given oligo, as calculated using eqn
- (ii) in Rychlik, Spencer, Roads, Nucleic Acids Research, vol 18, no 21, page
- 6410, with tables of nearest-neighbor thermodynamics for DNA bases as
- provided in Breslauer, Frank, Bloecker, and Markey,
- Proc. Natl. Acad. Sci. USA, vol 83, page 3748. */
-double oligotm(const char *seq, /* The sequence. */
- double dna_conc, /* DNA concentration (nanomolar). */
- double salt_conc /* Salt concentration (millimolar). */
+/*
+ For olgigotm() and seqtm()
+
+ Both functions return the melting temperature of the given oligo
+ calculated as specified by user, but oligotm _should_ only be used on
+ DNA sequences of length <= MAX_PRIMER_LENGTH (which is defined
+ elsewhere). seqtm uses oligotm for sequences of length <=
+ MAX_PRIMER_LENGTH, and a different, G+C% based formula for longer
+ sequences. For oligotm(), no error is generated on sequences
+ longer than MAX_PRIMER_LENGTH, but the formula becomes less
+ accurate as the sequence grows longer. Caveat emptor.
+
+ We use the folowing defines:
+*/
+
+#define TM_METHOD_SANTALUCIA 1
+#define TM_METHOD_BRESLAUER 0
+#define SALT_CORRECTION_SCHILDKRAUT 0
+#define SALT_CORRECTION_SANTALUCIA 1
+#define SALT_CORRECTION_OWCZARZY 2
+
+/*
+ If tm_santalucia==TM_METHOD_SANTALUCIA, then the table of
+ nearest-neighbor thermodynamic parameters and method for Tm
+ calculation in the paper [SantaLucia JR (1998) "A unified view of
+ polymer, dumbbell and oligonucleotide DNA nearest-neighbor
+ thermodynamics", Proc Natl Acad Sci 95:1460-65
+ http://dx.doi.org/10.1073/pnas.95.4.1460] is used.
+ *THIS IS THE RECOMMENDED VALUE*.
+ Added by T. Koressaar
+
+ If tm_santalucia==TM_METHOD_BRESLAUER, then method for Tm
+ calculations in the paper [Rychlik W, Spencer WJ and Rhoads RE
+ (1990) "Optimization of the annealing temperature for DNA
+ amplification in vitro", Nucleic Acids Res 18:6409-12
+ http://www.pubmedcentral.nih.gov/articlerender.fcgi?tool=pubmed&pubmedid=2243783].
+ and the thermodynamic parameters in the paper [Breslauer KJ, Frank
+ R, Blöcker H and Marky LA (1986) "Predicting DNA duplex stability
+ from the base sequence" Proc Natl Acad Sci 83:4746-50
+ http://dx.doi.org/10.1073/pnas.83.11.3746], are is used. This is
+ the method and the table that primer3 used up to and including
+ version 1.0.1
+
+ If salt_corrections==SALT_CORRECTION_SCHILDKRAUT, then formula for
+ salt correction in the paper [Schildkraut, C, and Lifson, S (1965)
+ "Dependence of the melting temperature of DNA on salt
+ concentration", Biopolymers 3:195-208 (not available on-line)] is
+ used. This is the formula that primer3 used up to and including
+ version 1.0.1.
+
+ If salt_corrections==SALT_CORRECTION_SANTALUCIA, then formula for
+ salt correction suggested by the paper [SantaLucia JR (1998) "A
+ unified view of polymer, dumbbell and oligonucleotide DNA
+ nearest-neighbor thermodynamics", Proc Natl Acad Sci 95:1460-65
+ http://dx.doi.org/10.1073/pnas.95.4.1460] is used.
+
+ *THIS IS THE RECOMMENDED VALUE*.
+ Added by T.Koressaar
+
+ If salt_corrections==SALT_CORRECTION_OWCZARZY, then formula for
+ salt correction in the paper [Owczarzy R, You Y, Moreira BG,
+ Manthey JA, Huang L, Behlke MA and Walder JA (2004) "Effects of
+ sodium ions on DNA duplex oligomers: Improved predictions of
+ melting temperatures", Biochemistry 43:3537-54
+ http://dx.doi.org/10.1021/bi034621r] is used.
+ Added by T.Koressaar
+
+ */
+
+double oligotm(const char *seq, /* The sequence. */
+ double dna_conc, /* DNA concentration (nanomolar). */
+ double salt_conc, /* Salt concentration (millimolar). */
+ double divalent_conc, /* Concentration of divalent cations (millimolar) */
+ double dntp_conc, /* Concentration of dNTPs (millimolar) */
+ int tm_santalucia, /* See description above. */
+ int salt_corrections /* See description above. */
);
-/* Return the delta G of disruption of oligo using the nearest neighbor model;
- seq should be relatively short, given the characteristics of the nearest
- neighbor model. */
-double oligodg(const char *oligo);
-
-/* Return the melting temperature of a given sequence, 'seq'. */
+/* Return the melting temperature of a given sequence, 'seq', of any
+ length.
+*/
double seqtm(const char *seq, /* The sequence. */
double dna_conc, /* DNA concentration (nanomolar). */
- double salt_conc, /* Salt concentration (millimolar). */
- int nn_max_len /* The maximum sequence length for using the
- nearest neighbor model (as implemented
- in oligotm. For sequences longer
- than this use the "GC%" formula implemented
- in long_seq_tm. */
+ double salt_conc, /* Concentration of divalent cations (millimolar). */
+ double divalent_conc, /* Concentration of divalent cations (millimolar) */
+ double dntp_conc, /* Concentration of dNTPs (millimolar) */
+ int nn_max_len, /* The maximum sequence length for
+ using the nearest neighbor model
+ (as implemented in oligotm. For
+ sequences longer than this, seqtm
+ uses the "GC%" formula implemented
+ in long_seq_tm.
+ */
+
+ int tm_santalucia, /* See description above. */
+ int salt_corrections /* See description above. */
);
+
+
+/* Return the delta G of disruption of oligo using the nearest neighbor model.
+ The length of seq should be relatively short,
+ given the characteristics of the nearest
+ neighbor model.
+*/
+double oligodg(const char *seq,
+ int tm_santalucia /* See description above. */
+ );
+
+/* Returns 1 if the sequence is self-complementary or symmetrical; 0
+ otherwise
+*/
+int symmetry(const char *seq);
+
+/* Converts divalent salt concentration to monovalent salt concentration */
+
+double divalent_to_monovalent(double divalent, double dntp);
+
#endif
-
Modified: trunk/packages/primer3/trunk/src/oligotm_main.c
===================================================================
--- trunk/packages/primer3/trunk/src/oligotm_main.c 2007-02-17 04:15:57 UTC (rev 210)
+++ trunk/packages/primer3/trunk/src/oligotm_main.c 2007-02-17 04:31:55 UTC (rev 211)
@@ -4,94 +4,194 @@
(http://jura.wi.mit.edu/rozen), and Helen Skaletsky
All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
+ This file is part of the oligotm library.
- * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
- * Neither the names of the copyright holders nor contributors may
-be used to endorse or promote products derived from this software
-without specific prior written permission.
+ The oligotm library is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ The oligotm library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with the oligtm library (file gpl.txt in the source
+ distribution); if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <ctype.h>
#include "oligotm.h"
-/* Print the melting tm of an oligo on stdout. */
+/* Print the melting temperature of an oligo on stdout. */
+/* This program provides a command line interface to
+ the function oligotm() in oligtm.c
+*/
int
main(argc, argv)
int argc;
- const char **argv;
+ char **argv;
{
- double tm;
- char *msg = "Usage: %s [-k salt-conc] [-d template-conc] oligo\n\n"
- "where oligo is an oligonucleotide sequence of between 2 and 36 bases.\n"
- "(Bases in oligo must be uppercase.)\n"
- "salt-conc is mM salt (usually K) concentration; defaults to 50mM\n"
- "template-conc is nM template concentration\n; defaults to 50nM\n"
- "Prints oligo's melting temperature on stdout.\n";
- char *endptr;
- long k = 50, d = 50;
- int i;
+ double tm;
- if (argc < 2 || argc > 6) {
- fprintf(stderr, msg, argv[0]);
- return -1;
- }
+ char *msg = "USAGE: %s OPTIONS oligo\n"
+ "\n"
+ "where oligo is a DNA sequence of between 2 and 36 bases\n"
+ "\n"
+ "and\n"
+ "\n"
+ "OPTIONS can include any of the the following:\n"
+ "\n"
+ "-mv monovalent_conc - concentration of monovalent cations in mM, by default 50mM\n"
+ "\n"
+ "-dv divalent_conc - concentration of divalent cations in mM, by default 0mM\n"
+ "\n"
+ "-n dNTP_conc - concentration of deoxynycleotide triphosphate in mM, by default 0mM\n"
+ "\n"
+ "-d dna_conc - concentration of DNA strands in nM, by default 50nM\n"
+ "\n"
- for (i=1; i < argc; ++i) {
- if (!strncmp("-k", argv[i], 2)) {
- k = strtol(argv[i+1], &endptr, 10);
- if ('\0' != *endptr) {
- fprintf(stderr, msg, argv[0]);
- exit(-1);
- }
- i++;
- } else if (!strncmp("-d", argv[i], 2)) {
- d = strtol(argv[i+1], &endptr, 10);
- if ('\0' != *endptr) {
- fprintf(stderr, msg, argv[0]);
- exit(-1);
- }
- i++;
- } else if (!strncmp("-", argv[i], 1)) {
- /* Unknown option. */
- fprintf(stderr, msg, argv[0]);
- exit(-1);
- } else
- break; /* all args processed. go on to sequences. */
- }
+ "-tp [0|1] - Specifies the table of thermodynamic parameters and\n"
+ " the method of melting temperature calculation:\n"
+ " 0 Breslauer et al., 1986 and Rychlik et al., 1990\n"
+ " (used by primer3 up to and including release 1.1.0).\n"
+ " This is the default, but _not_ the recommended value.\n"
+ " 1 Use nearest neighbor parameters from SantaLucia 1998\n"
+ " *THIS IS THE RECOMMENDED VALUE*\n"
+ "\n"
+ "-sc [0..2] - Specifies salt correction formula for the melting \n"
+ " temperature calculation\n"
+ " 0 Schildkraut and Lifson 1965, used by primer3 up to \n"
+ " and including release 1.1.0.\n"
+ " This is the default but _not_ the recommended value.\n"
+ " 1 SantaLucia 1998\n"
+ " *THIS IS THE RECOMMENDED VAULE*\n"
+ " 2 Owczarzy et al., 2004\n\n"
+ "-i - prints references to publications which were used for thermodynamic calculations\n"
+ "\n\n"
+ "Prints oligo's melting temperature on stdout.\n";
+
+ char *info = "1. Breslauer KJ, Frank R, Blöcker H and Marky LA. (1986) Predicting DNA duplex stability from the base sequence. Proc. Natl. Acad. Sci., 83, 4746-50.\n\n"
+ "2. Rychlik W, Spencer WJ and Rhoads RE. (1990) Optimization of the annealing temperature for DNA amplification in vitro. Nucleic Acids Res., 118, 6409-12.\n\n"
+ "3. SantaLucia JR. (1998). A unified view of polymer, dumbbell and oligonucleotide DNA nearest-neighbor thermodynamics. Proc. Natl. Acad. Sci., 95, 1460-65.\n\n"
+ "4. Schildkraut, C, and Lifson, S. (1965) Dependence of the melting temperature of DNA on salt concentration. Biopolymers, 3, 195-208.\n\n"
+ "5. Owczarzy R, You Y, Moreira BG, Manthey JA, Huang L, Behlke MA and Walder JA. (2004) Effects of Sodium Ions on DNA Duplex Oligomers: Improved Predictions of Melting Temperatures. Biochemistry, 43, 3537-54.\n";
+
+ char *copyright =
+"Copyright (c) 1996,1997,1998,1999,2000,2001,2004,2006\n"
+"Whitehead Institute for Biomedical Research, Steve Rozen\n"
+"(http://jura.wi.mit.edu/rozen), and Helen Skaletsky\n"
+"All rights reserved.\n"
+"\n"
+" This file is part of the oligotm library.\n"
+"\n"
+" The oligotm library is free software; you can redistribute it and/or modify\n"
+" it under the terms of the GNU General Public License as published by\n"
+" the Free Software Foundation; either version 2 of the License, or\n"
+" (at your option) any later version.\n"
+"\n"
+" The oligotm library is distributed in the hope that it will be useful,\n"
+" but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+" GNU General Public License for more details.\n"
+"\n"
+" You should have received a copy of the GNU General Public License\n"
+" along with the oligtm library (file gpl.txt in the source\n"
+" distribution or see http://www.gnu.org/licenses/gpl.txt);\n"
+" if not, write to the Free Software Foundation, Inc.,\n"
+" 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA\n";
- tm = oligotm(argv[i], d, k);
- if (OLIGOTM_ERROR == tm) {
- fprintf(stderr,
- "%s: length of %s is less than 2 or it contains an illegal character\n",
- argv[0], argv[i]);
- return -1;
- }
- fprintf(stdout, "%f\n", tm);
- return 0;
+ char *endptr;
+ long mv = 50, d = 50;
+ double dv = 0, n = 0;
+ int tm_santalucia=0, salt_corrections=0;
+ int i;
+ if (argc < 2 || argc > 14) {
+ fprintf(stderr, msg, argv[0]);
+ fprintf(stderr, copyright);
+ return -1;
+ }
+
+ for (i=1; i < argc; ++i) {
+ if (!strncmp("-mv", argv[i], 3)) { /* conc of monovalent cations */
+ mv = strtol(argv[i+1], &endptr, 10);
+ if ('\0' != *endptr) {
+ fprintf(stderr, msg, argv[0]);
+ exit(-1);
+ }
+ i++;
+ } else if (!strncmp("-dv", argv[i], 3)) { /* conc of divalent cations; added by T.Koressaar */
+ dv = strtod(argv[i+1], &endptr);
+ if('\0' != *endptr) {
+ fprintf(stderr, msg, argv[0]);
+ exit(-1);
+ }
+ i++;
+ } else if (!strncmp("-n", argv[i], 2)) { /* conc of dNTP; added by T.Koressaar */
+ n = strtod(argv[i+1], &endptr);
+ if('\0' != *endptr) {
+ fprintf(stderr, msg, argv[0]);
+ exit(-1);
+ }
+ i++;
+ } else if (!strncmp("-d", argv[i], 2)) {
+ d = strtol(argv[i+1], &endptr, 10);
+ if ('\0' != *endptr) {
+ fprintf(stderr, msg, argv[0]);
+ exit(-1);
+ }
+ i++;
+ } else if (!strncmp("-tp", argv[i], 3)) { /* added by T.Koressaar */
+ tm_santalucia = (int)strtol(argv[i+1], &endptr, 10);
+ if ('\0' != *endptr || tm_santalucia<0 || tm_santalucia>1) {
+ fprintf(stderr, msg, argv[0]);
+ exit(-1);
+ }
+ i++;
+ } else if (!strncmp("-sc", argv[i], 3)) { /* added by T.Koressaar */
+ salt_corrections = (int)strtol(argv[i+1], &endptr, 10);
+ if ('\0' != *endptr || salt_corrections<0 || salt_corrections>2) {
+ fprintf(stderr, msg, argv[0]);
+ exit(-1);
+ }
+ i++;
+ } else if (!strncmp("-i", argv[i], 2)) {
+ fprintf(stderr, info, argv[0]);
+ exit(-1);
+ } else if (!strncmp("-", argv[i], 1)) {
+ /* Unknown option. */
+ fprintf(stderr, msg, argv[0]);
+ exit(-1);
+ } else
+ break; /* all args processed. go on to sequences. */
+ }
+
+ if(!argv[i]) { /* if no oligonucleotide sequence is specified */
+ fprintf(stderr, msg, argv[0]);
+ exit(-1);
+ }
+ /* input sequence to uppercase */
+ int j,len;
+ char *seq = argv[i];
+ len=strlen(seq);
+ for(j=0;j<len;j++) seq[j]=toupper(seq[j]);
+
+ tm = oligotm(seq, d, mv, dv, n, tm_santalucia, salt_corrections);
+ if (OLIGOTM_ERROR == tm) {
+ fprintf(stderr,
+ "%s ERROR: length of sequence %s is less than 2 or\n"
+ " the sequence contains an illegal character or\n"
+ " you have specified incorrect value for concentration of divalent cations or\n"
+ " you have specified incorrect value for concentration of dNTPs\n",
+ argv[0], argv[i]);
+ return -1;
+ }
+ fprintf(stdout, "%f\n", tm);
+ return 0;
}
-
-
-
-
Modified: trunk/packages/primer3/trunk/src/primer3.c
===================================================================
--- trunk/packages/primer3/trunk/src/primer3.c 2007-02-17 04:15:57 UTC (rev 210)
+++ trunk/packages/primer3/trunk/src/primer3.c 2007-02-17 04:31:55 UTC (rev 211)
@@ -53,10 +53,79 @@
#define MIN_TM 57.0
#define MAX_TM 63.0
#define MAX_DIFF_TM 100.0
+
+
+/*
+Added by T.Koressaar for updated table thermodynamics. Specifies
+details of melting temperature calculation. (New in v. 1.1.0, added
+by Maido Remm and Triinu Koressaar.)
+
+A value of 1 (recommended) directs primer3 to use the table of
+thermodynamic values and the method for melting temperature
+calculation suggested in the paper [SantaLucia JR (1998) "A unified
+view of polymer, dumbbell and oligonucleotide DNA nearest-neighbor
+thermodynamics", Proc Natl Acad Sci 95:1460-65
+http://dx.doi.org/10.1073/pnas.95.4.1460].
+
+A value of 0 directs primer3 to a backward compatible calculation
+(in other words, the only calculation availble in previous
+version of primer3).
+
+This backward compatible calculation uses the table of
+thermodynamic parameters in the paper [Breslauer KJ, Frank R,
+Blöcker H and Marky LA (1986) "Predicting DNA duplex stability
+from the base sequence" Proc Natl Acad Sci 83:4746-50
+http://dx.doi.org/10.1073/pnas.83.11.3746],
+and the method in the paper [Rychlik W, Spencer WJ and Rhoads
+RE (1990) "Optimization of the annealing temperature for DNA
+amplification in vitro", Nucleic Acids Res 18:6409-12
+http://www.pubmedcentral.nih.gov/articlerender.fcgi?tool=pubmed&pubmedid=2243783].
+
+The default value is 0 only for backward compatibility.
+*/
+#define TM_SANTALUCIA 0
+
+/*
+Added by T.Koressaar for salt correction for Tm calculation.
+A value of 1 (recommended) directs primer3 to use the salt
+correction formula in the paper [SantaLucia JR (1998) "A unified view
+of polymer, dumbbell and oligonucleotide DNA nearest-neighbor
+thermodynamics", Proc Natl Acad Sci 95:1460-65
+http://dx.doi.org/10.1073/pnas.95.4.1460]
+
+A value of 0 directs primer3 to use the the salt correction
+formula in the paper [Schildkraut, C, and Lifson, S (1965)
+"Dependence of the melting temperature of DNA on salt
+concentration", Biopolymers 3:195-208 (not available on-line)].
+This was the formula used in previous version of primer3.
+
+A value of 2 directs primer3 to use the salt correction formula
+in the paper [Owczarzy R, You Y, Moreira BG, Manthey JA, Huang L,
+Behlke MA and Walder JA (2004) "Effects of sodium ions on DNA
+duplex oligomers: Improved predictions of melting temperatures",
+Biochemistry 43:3537-54 http://dx.doi.org/10.1021/bi034621r].
+
+The default is 0 only for backward compatibility.
+*/
+#define SALT_CORRECTIONS 0
+
#define DEFAULT_OPT_GC_PERCENT PR_UNDEFINED_INT_OPT
#define MIN_GC 20.0
#define MAX_GC 80.0
#define SALT_CONC 50.0
+
+/*
+ DIVALENT_CONC and DNTP_CONC are both needed for enabling to use divalent cations for
+ calculation of melting temperature of short and long oligos.
+ The formula for converting the divalent cations to monovalent cations is in the paper
+ [Ahsen von N, Wittwer CT, Schutz E (2001) "Oligonucleotide Melting Temperatures under PCR Conditions:
+ Nearest-Neighbor Corrections for Mg^2+, Deoxynucleotide Triphosphate, and Dimethyl Sulfoxide Concentrations
+ with Comparision to Alternative Empirical Formulas", Clinical Chemistry 47:1956-61
+ http://www.clinchem.org/cgi/content/full/47/11/1956]
+ The default is 0. (New in v. 1.1.0, added by Maido Remm and Triinu Koressaar.)
+ */
+#define DIVALENT_CONC 0.0
+#define DNTP_CONC 0.0
#define DNA_CONC 50.0
#define NUM_NS_ACCEPTED 0
#define MAX_POLY_X 5
@@ -79,6 +148,8 @@
#define INTERNAL_OLIGO_MIN_GC 20.0
#define INTERNAL_OLIGO_MAX_GC 80.0
#define INTERNAL_OLIGO_SALT_CONC 50.0
+#define INTERNAL_OLIGO_DIVALENT_CONC 0.0
+#define INTERNAL_OLIGO_DNTP_CONC 0.0
#define INTERNAL_OLIGO_DNA_CONC 50.0
#define INTERNAL_OLIGO_NUM_NS 0
#define INTERNAL_OLIGO_MAX_POLY_X 5
@@ -87,12 +158,27 @@
#define INTERNAL_OLIGO_REPEAT_SIMILARITY 1200
#define REPEAT_SIMILARITY 1200
#define PAIR_REPEAT_SIMILARITY 2400
-#define FIRST_BASE_INDEX 0
-#define NUM_RETURN 5
-#define MIN_QUALITY 0
-#define QUALITY_RANGE_MIN 0
-#define QUALITY_RANGE_MAX 100
-#define DEFAULT_MAX_END_STABILITY 100.0
+#define FIRST_BASE_INDEX 0
+#define NUM_RETURN 5
+#define MIN_QUALITY 0
+#define QUALITY_RANGE_MIN 0
+#define QUALITY_RANGE_MAX 100
+#define DEFAULT_MAX_END_STABILITY 100.0
+
+/*
+Added by T.Koressaar. Enables design of primers from lowercase masked
+template. A value of 1 directs primer3 to reject primers overlapping
+lowercase a base exactly at the 3' end.
+
+This property relies on the assumption that masked features
+(e.g. repeats) can partly overlap primer, but they cannot overlap the
+3'-end of the primer. In other words, lowercase bases at other
+positions in the primer are accepted, assuming that the masked
+features do not influence the primer performance if they do not
+overlap the 3'-end of primer.
+*/
+#define LOWERCASE_MASKING 0
+
#define PRIMER_PRODUCT_OPT_SIZE PR_UNDEFINED_INT_OPT
#define PRIMER_PRODUCT_OPT_TM PR_UNDEFINED_DBL_OPT
#define MAX_TEMPLATE_MISPRIMING PR_UNDEFINED_ALIGN_OPT
@@ -158,10 +244,14 @@
a->min_tm = MIN_TM;
a->max_tm = MAX_TM;
a->max_diff_tm = MAX_DIFF_TM;
+ a->tm_santalucia = TM_SANTALUCIA; /* added by T.Koressaar */
+ a->salt_corrections = SALT_CORRECTIONS; /* added by T.Koressaar */
a->min_gc = MIN_GC;
a->opt_gc_content = DEFAULT_OPT_GC_PERCENT;
a->max_gc = MAX_GC;
a->salt_conc = SALT_CONC;
+ a->divalent_conc = DIVALENT_CONC;
+ a->dntp_conc = DNTP_CONC;
a->dna_conc = DNA_CONC;
a->num_ns_accepted = NUM_NS_ACCEPTED;
a->self_any = SELF_ANY;
@@ -188,6 +278,7 @@
a->outside_penalty = PR_DEFAULT_OUTSIDE_PENALTY;
a->inside_penalty = PR_DEFAULT_INSIDE_PENALTY;
a->max_end_stability = DEFAULT_MAX_END_STABILITY;
+ a->lowercase_masking = LOWERCASE_MASKING; /* added by T.Koressaar */
a->product_max_tm = PR_DEFAULT_PRODUCT_MAX_TM;
a->product_min_tm = PR_DEFAULT_PRODUCT_MIN_TM;
a->product_opt_tm = PRIMER_PRODUCT_OPT_TM;
@@ -208,6 +299,8 @@
a->io_max_gc = INTERNAL_OLIGO_MAX_GC;
a->io_max_poly_x = INTERNAL_OLIGO_MAX_POLY_X;
a->io_salt_conc = INTERNAL_OLIGO_SALT_CONC;
+ a->io_divalent_conc = INTERNAL_OLIGO_DIVALENT_CONC;
+ a->io_dntp_conc = INTERNAL_OLIGO_DNTP_CONC;
a->io_dna_conc = INTERNAL_OLIGO_DNA_CONC;
a->io_num_ns_accepted = INTERNAL_OLIGO_NUM_NS;
a->io_self_any = INTERNAL_OLIGO_SELF_ANY;
@@ -264,7 +357,7 @@
/*
* Return 1 on error, 0 on success. Set sa->trimmed_seq and possibly modify
- * sa->tar. Upcase and check all bases in sa->trimmed_seq.
+ * sa->tar. Upcase and check all bases in sa->trimmed_seq
*/
int
_pr_data_control(pa, sa)
@@ -419,12 +512,15 @@
sa->trimmed_seq = pr_safe_malloc(sa->incl_l + 1);
_pr_substr(sa->sequence, sa->incl_s, sa->incl_l, sa->trimmed_seq);
-
+
+ /* edited by T. Koressaar for lowercase masking */
+ sa->trimmed_orig_seq = pr_safe_malloc(sa->incl_l + 1);
+ _pr_substr(sa->sequence, sa->incl_s, sa->incl_l, sa->trimmed_orig_seq);
+
sa->upcased_seq = pr_safe_malloc(strlen(sa->sequence) + 1);
strcpy(sa->upcased_seq, sa->sequence);
if ((offending_char = dna_to_upper(sa->upcased_seq, 1))) {
offending_char = '\0';
- /* NEW */
/* TODO add warning or error (depending on liberal base)
here. */
}
@@ -537,11 +633,22 @@
"Illegal value for primer salt or dna concentration");
return 1;
}
- if(pa->io_salt_conc<=0||pa->io_dna_conc<=0){
+ if((pa->dntp_conc<0 && pa->divalent_conc!=0)||pa->divalent_conc<0){ /* added by T.Koressaar */
+ pr_append_new_chunk(&pa->glob_err, "Illegal value for primer divalent salt or dNTP concentration");
+ return 1;
+ }
+
+ if(pa->io_salt_conc<=0||pa->io_dna_conc<=0){
pr_append_new_chunk(&pa->glob_err,
"Illegal value for internal oligo salt or dna concentration");
return 1;
}
+ if((pa->io_dntp_conc<0 && pa->io_divalent_conc!=0)||pa->io_divalent_conc<0) { /* added by T.Koressaar */
+ pr_append_new_chunk(&pa->glob_err,
+ "Illegal value for internal oligo divalent salt or dNTP concentration");
+ return 1;
+ }
+
if (!_PR_DEFAULT_POSITION_PENALTIES(pa) && sa->num_targets > 1) {
pr_append_new_chunk(&sa->error,
"Non-default inside penalty or outside penalty ");
Modified: trunk/packages/primer3/trunk/src/primer3.h
===================================================================
--- trunk/packages/primer3/trunk/src/primer3.h 2007-02-17 04:15:57 UTC (rev 210)
+++ trunk/packages/primer3/trunk/src/primer3.h 2007-02-17 04:31:55 UTC (rev 211)
@@ -102,7 +102,8 @@
OV_POLY_X=11,
OV_SEQ_QUALITY=12,
OV_LIB_SIM=13,
- OV_TEMPLATE_MISPRIMING=14
+ OV_TEMPLATE_MISPRIMING=14,
+ OV_GMASKED=14 /* edited by T. Koressaar for lowercase masking */
} oligo_violation;
typedef struct rep_sim {
@@ -192,6 +193,7 @@
double diff_tm; /* Absolute value of the difference between melting
* temperatures for left and right primers.
*/
+
double product_tm; /* Estimated melting temperature of the product. */
double product_tm_oligo_tm_diff;
@@ -316,25 +318,32 @@
pr_append_str glob_err;
- double opt_tm;
- double min_tm;
- double max_tm;
- double max_diff_tm;
- double opt_gc_content;
- double max_gc;
- double min_gc;
- double salt_conc;
- double dna_conc;
+ double opt_tm;
+ double min_tm;
+ double max_tm;
+ double max_diff_tm;
+ double opt_gc_content;
+ double max_gc;
+ double min_gc;
+ double salt_conc;
+ double divalent_conc; /* added by T.Koressaar, divalent salt concentration mmol/l */
+ double dntp_conc; /* added by T.Koressaar, for considering divalent salt concentration */
+ double dna_conc;
- double io_opt_tm;
- double io_min_tm;
- double io_max_tm;
- double io_opt_gc_content;
- double io_max_gc;
- double io_min_gc;
- double io_salt_conc;
- double io_dna_conc;
-
+ double io_opt_tm;
+ double io_min_tm;
+ double io_max_tm;
+ double io_opt_gc_content;
+ double io_max_gc;
+ double io_min_gc;
+ double io_salt_conc;
+ double io_divalent_conc; /* added by T.Koressaar, divalent salt concentration mmol/l */
+ double io_dntp_conc; /* added by T.Koressaar, for considering divalent salt concentration */
+ double io_dna_conc;
+ int tm_santalucia; /* added by T.Koressaar table of thermodynamic parameters of SantaLucia 1998 */
+ int salt_corrections; /* added by T.Koressaar salt correction formula for Tm calculation */
+ int lowercase_masking; /* added by T.Koressaar for primer design from lowercase masked template */
+
double outside_penalty; /* Multiply this value times the number of NTs
* from the 3' end to the the (unique) target to
* get the 'position penalty'.
@@ -482,6 +491,7 @@
(valid for left primers only). */
int template_mispriming; /* Template mispriming score too high. */
int ok; /* Number of acceptable oligos. */
+ int gmasked; /* edited by T. Koressaar, number of gmasked oligo*/
} oligo_stats;
/*
@@ -524,13 +534,20 @@
* is to the right of sa->start_codon_pos.
*/
int *quality; /* Vector of quality scores. */
- char *sequence; /* The sequence itself. */
+ char *sequence; /* The template sequence itself as input,
+ not trimmed, not up-cased. */
char *sequence_name; /* An identifier for the sequence. */
char *sequence_file; /* Another identifer for the sequence. */
+ char *trimmed_seq; /* The included region only, _UPCASED_. */
- char *trimmed_seq; /* The included region only. */
- char *upcased_seq; /* Upper case version of sequence. */
- char *upcased_seq_r; /* Upper case version of sequence, other strand. */
+ /* Element add by T. Koressaar support lowercase masking: */
+ char *trimmed_orig_seq; /* Trimmed version of the original,
+ mixed-case sequence. */
+
+ char *upcased_seq; /* Upper case version of sequence
+ (_not_ trimmed). */
+ char *upcased_seq_r; /* Upper case version of sequence,
+ other strand (_not_ trimmed). */
char *left_input; /* A left primer to check or design around. */
char *right_input; /* A right primer to check or design around. */
char *internal_input; /* An internal oligo to check or design around. */
Modified: trunk/packages/primer3/trunk/src/primer3_main.c
===================================================================
--- trunk/packages/primer3/trunk/src/primer3_main.c 2007-02-17 04:15:57 UTC (rev 210)
+++ trunk/packages/primer3/trunk/src/primer3_main.c 2007-02-17 04:31:55 UTC (rev 211)
@@ -43,7 +43,6 @@
#include "primer3.h"
#include "boulder_input.h"
-/* Type definitions. */
/* #define's */
/*
@@ -57,10 +56,12 @@
#define OOM_ERROR OOM_STMT1, OOM_STMT2
#ifndef MAX_PRIMER_LENGTH
-Important note: MAX_PRIMER_LENGTH must be defined in
-the makefile, because its value must be <= the
-value of DPAL_MAX_ALIGN.
+#error "Define MAX_PRIMER_LENGTH in Makefile..."
+ /* to ensure that MAX_PRIMER_LENGTH <= DPAL_MAX_ALIGN. */
#endif
+#if (MAX_PRIMER_LENGTH > DPAL_MAX_ALIGN)
+#error "MAX_PRIMER_LENGTH must be <= DPAL_MAX_ALIGN"
+#endif
#define MAX_NN_TM_LENGTH 36 /* The maxium length for which to use the
nearest neighbor model when calculating
@@ -149,13 +150,21 @@
static void oligo_compl(primer_rec *, const primer_args *, seq_args *,
oligo_type, const dpal_args *,
const dpal_args*, const dpal_args *);
-static void oligo_mispriming(primer_rec *, const primer_args *, seq_args *,
- oligo_type, const dpal_args *);
+static void oligo_mispriming(primer_rec *,
+ const primer_args *,
+ seq_args *,
+ oligo_type,
+ const dpal_args *);
static int pair_repeat_sim(primer_pair *, const primer_args *);
static void boulder_print_oligos(const primer_args *,
- const seq_args *, int, oligo_type);
+ const seq_args *, int, oligo_type);
static void free_repeat_sim_score(int, int, int);
+/* edited by T. Koressaar for lowercase masking: */
+static void check_if_lowercase_masked(const int position,
+ const char *sequence,
+ primer_rec *h);
+
/* Global static variables. */
static const char * copyright[] = {
"",
@@ -294,13 +303,11 @@
input_found = 1;
*lib_local_dpal_args = *local_args;
- /* NEW */
if (pa->lib_ambiguity_codes_consensus) {
PR_ASSERT(dpal_set_ambiguity_code_matrix(lib_local_dpal_args));
}
*lib_local_end_dpal_args = *local_end_args;
- /* NEW */
if (pa->lib_ambiguity_codes_consensus) {
PR_ASSERT(dpal_set_ambiguity_code_matrix(lib_local_end_dpal_args));
}
@@ -348,7 +355,12 @@
if (NULL != sa->sequence) free(sa->sequence);
if (NULL != sa->quality) free(sa->quality);
if (NULL != sa->trimmed_seq) free(sa->trimmed_seq);
+
+ /* edited by T. Koressaar for lowercase masking */
+ if (NULL != sa->trimmed_orig_seq) free(sa->trimmed_orig_seq);
+
if (NULL != sa->upcased_seq) free(sa->upcased_seq);
+ if (NULL != sa->upcased_seq_r) free(sa->upcased_seq_r);
if (NULL != sa->sequence_name) free(sa->sequence_name);
if (NULL != sa->error.data) free(sa->error.data);
if (NULL != sa->warning.data) free(sa->warning.data);
@@ -505,6 +517,10 @@
if (stats->stability) pr_append_w_sep(&s, sep, "High 3' stability");
if (stats->no_orf) pr_append_w_sep(&s, sep, "Would not amplify any ORF");
+ /* edited by T. Koressaar for lowercase masking: */
+ if (stats->gmasked)
+ pr_append_w_sep(&s, sep, "Masked with lowercase letter");
+
if (s.data) {
pr_append_new_chunk(&sa->warning, text);
pr_append(&sa->warning, " is unacceptable: ");
@@ -835,7 +851,6 @@
h->ok = OV_UNINITIALIZED;
h->target = h->gc_content = h->num_ns=h->excl=0;
- /* NEW */
h->template_mispriming = h->template_mispriming_r = ALIGN_SCORE_UNDEF;
PR_ASSERT(OT_LEFT == l || OT_RIGHT == l || OT_INTL == l);
@@ -845,6 +860,21 @@
PR_ASSERT(k >= 0);
PR_ASSERT(k < TRIMMED_SEQ_LEN(sa));
+
+ /* edited by T. Koressaar for lowercase masking */
+ if(pa->lowercase_masking==1) {
+ if(l==OT_LEFT) {
+ check_if_lowercase_masked(k, sa->trimmed_orig_seq,h);
+ }
+ if(l==OT_RIGHT) {
+ check_if_lowercase_masked(j, sa->trimmed_orig_seq,h);
+ }
+ if(h->ok==OV_GMASKED) {
+ stats->gmasked++;
+ if (!must_use) return;
+ }
+ }
+ /* end T. Koressar's changes */
gc_and_n_content(j, k-j+1, sa->trimmed_seq, h);
@@ -922,18 +952,18 @@
}
if(pa->gc_clamp != 0){
if(OT_LEFT == l){
- for(i=k-pa->gc_clamp+1; i<= k; i++)if(seq[i] !='G'&&seq[i] !='C'){
- h->ok = OV_GC_CLAMP;
- stats->gc_clamp++;
- if (!must_use) return; else break;
- }
+ for(i=k-pa->gc_clamp+1; i<= k; i++)if(seq[i] !='G'&&seq[i] !='C'){
+ h->ok = OV_GC_CLAMP;
+ stats->gc_clamp++;
+ if (!must_use) return; else break;
+ }
}
if(OT_RIGHT == l){
- for(i=j; i<j+pa->gc_clamp; i++)if(seq[i] != 'G' && seq[i] != 'C'){
- h->ok = OV_GC_CLAMP;
- stats->gc_clamp++;
- if (!must_use) return; else break;
- }
+ for(i=j; i<j+pa->gc_clamp; i++)if(seq[i] != 'G' && seq[i] != 'C'){
+ h->ok = OV_GC_CLAMP;
+ stats->gc_clamp++;
+ if (!must_use) return; else break;
+ }
}
}
@@ -976,10 +1006,20 @@
}
_pr_substr(seq,j,k-j+1,s1);
- if(OT_LEFT == l || OT_RIGHT == l)
- h->temp = seqtm(s1, pa->dna_conc, pa->salt_conc, MAX_NN_TM_LENGTH);
- else
- h->temp = seqtm(s1, pa->io_dna_conc, pa->io_salt_conc, MAX_NN_TM_LENGTH);
+
+ if(OT_LEFT == l || OT_RIGHT == l)
+ h->temp
+ = seqtm(s1, pa->dna_conc, pa->salt_conc, pa->divalent_conc, pa->dntp_conc,
+ MAX_NN_TM_LENGTH,
+ pa->tm_santalucia,
+ pa->salt_corrections);
+ else
+ h->temp
+ = seqtm(s1, pa->io_dna_conc, pa->io_salt_conc, pa->io_divalent_conc, pa->io_dntp_conc,
+ MAX_NN_TM_LENGTH,
+ pa->tm_santalucia,
+ pa->salt_corrections);
+
if (((l == OT_LEFT || l == OT_RIGHT) && h->temp < pa->min_tm)
|| (l==OT_INTL && h->temp<pa->io_min_tm)) {
h->ok = OV_TM_LOW;
@@ -993,7 +1033,8 @@
if (!must_use) return;
}
if (OT_LEFT == l) {
- if ((h->end_stability = end_oligodg(s1, 5))
+ if ((h->end_stability = end_oligodg(s1, 5,
+ pa->tm_santalucia))
> pa->max_end_stability) {
h->ok = OV_END_STAB;
stats->stability++;
@@ -1001,7 +1042,8 @@
}
} else if (OT_RIGHT == l) {
_pr_reverse_complement(s1, s1_rev);
- if ((h->end_stability = end_oligodg(s1_rev, 5))
+ if ((h->end_stability = end_oligodg(s1_rev, 5,
+ pa->tm_santalucia))
> pa->max_end_stability) {
h->ok = OV_END_STAB;
stats->stability++;
@@ -1634,9 +1676,10 @@
}
/* Compute product Tm and related parameters; check constraints. */
- h->product_tm
- = long_seq_tm(sa->trimmed_seq, h->left->start,
- h->right->start - h->left->start + 1, pa->salt_conc);
+ h->product_tm
+ = long_seq_tm(sa->trimmed_seq, h->left->start,
+ h->right->start - h->left->start + 1, pa->salt_conc, pa->divalent_conc, pa->dntp_conc);
+
PR_ASSERT(h->product_tm != OLIGOTM_ERROR);
min_oligo_tm
@@ -2074,7 +2117,6 @@
printf("PRIMER_RIGHT%s_END_STABILITY=%.4f\n",
suffix, rev->end_stability);
- /* NEW */
if (oligo_max_template_mispriming(fwd) != ALIGN_SCORE_UNDEF)
printf("PRIMER_LEFT%s_TEMPLATE_MISPRIMING=%.4f\n", suffix,
oligo_max_template_mispriming(fwd)
@@ -2201,7 +2243,6 @@
printf("%s%s_END_STABILITY=%.4f\n", type, suffix,
oligo[i].end_stability);
- /* NEW */
if (oligo_max_template_mispriming(&oligo[i]) != ALIGN_SCORE_UNDEF)
printf("%s%s_TEMPLATE_MISPRIMING=%.2f\n", type, suffix,
oligo_max_template_mispriming(&oligo[i])
@@ -2298,7 +2339,9 @@
if (stat->stability) printf(",high 3' stability %d", stat->stability);
if (stat->template_mispriming) printf(",high template mispriming score %d",
stat->template_mispriming);
-
+ /* edited by T. Koressaar for lowercase masking */
+ if(stat->gmasked) printf(",lowercase masking of 3' end %d",stat->gmasked);
+
printf(", ok %d\n", stat->ok);
}
@@ -2381,17 +2424,17 @@
memset(a, 0, sizeof(*a));
for (i = 0; i <= UCHAR_MAX; i++)
for (j = 0; j <= UCHAR_MAX; j++)
- if (('A' == i || 'C' == i || 'G' == i || 'T' == i || 'N' == i)
- && ('A' == j || 'C' == j || 'G' == j || 'T' == j
- || 'N' == j)) {
- if (i == 'N' || j == 'N')
- a->ssm[i][j] = -25;
- else if (i == j)
- a->ssm[i][j] = 100;
- else
- a->ssm[i][j] = -100;
- } else
- a->ssm[i][j] = INT_MIN;
+ if (('A' == i || 'C' == i || 'G' == i || 'T' == i || 'N' == i)
+ && ('A' == j || 'C' == j || 'G' == j || 'T' == j
+ || 'N' == j)) {
+ if (i == 'N' || j == 'N')
+ a->ssm[i][j] = -25;
+ else if (i == j)
+ a->ssm[i][j] = 100;
+ else
+ a->ssm[i][j] = -100;
+ } else
+ a->ssm[i][j] = INT_MIN;
a->gap = -200;
a->gapl = -200;
@@ -2573,14 +2616,6 @@
? h->start + h->length - 1
: h->start;
- /* NOT USED
- if (pa->short_match && pa->short_match < h->length) {
- match_length = pa->short_match;
- if (!warned)
- fprintf(stderr, "Using short_match of %d\n", pa->short_match);
- warned = 1;
- } else
- */
match_length = h->length;
_pr_substr(sa->trimmed_seq, first, h->length, s_tmp);
@@ -2694,7 +2729,7 @@
/* 4. Align to the reverse strand of the template. */
h->template_mispriming_r
- = align(oseq, target_r, align_args); /* lib_local_end_dpal_args); */
+ = align(oseq, target_r, align_args);
if (debug)
fprintf(stderr, "other strand Score %d aligning %s against %s\n\n",
@@ -2804,43 +2839,8 @@
return -1;
}
-/* =========================================================== */
-/* Various fail-stop wrappers for standard library functions. */
-
-void *
-pr_safe_malloc(x)
- size_t x;
-{
- void *r = malloc(x);
- if (NULL == r) OOM_ERROR;
- return r;
-}
-
-void *
-pr_safe_realloc(p, x)
- void *p;
- size_t x;
-{
- void *r = realloc(p, x);
- if (NULL == r) OOM_ERROR;
- return r;
-}
-
-static FILE *
-safe_fopen(path, mode)
- const char *path, *mode;
-{
- FILE *r = fopen(path, mode);
- if (NULL == r) {
- fprintf(stderr, "%s: unable to open file %s:",
- pr_program_name, path);
- perror("");
- exit (-1);
- }
- return r;
-}
-
-int strcmp_nocase(s1, s2)
+int
+strcmp_nocase(s1, s2)
char *s1, *s2;
{
static char M[UCHAR_MAX];
@@ -2899,5 +2899,57 @@
{ free(mid[i].repeat_sim.score); mid[i].repeat_sim.score = NULL; }
}
+/* Edited by T. Koressaar for lowercase masking. This function checks
+ if the 3' end of the primer has been masked by lowercase letter.
+ Function created/Added by Eric Reppo, July 9, 2002
+ */
+static void
+check_if_lowercase_masked(position, sequence, h)
+ const int position;
+ const char *sequence;
+ primer_rec *h;
+{
+ const char* p = &sequence[position];
+ if ('a' == *p || 'c' == *p ||'g' == *p || 't' == *p) {
+ h->ok=OV_GMASKED;
+ }
+}
/* =========================================================== */
+/* Various fail-stop wrappers for standard library functions. */
+
+void *
+pr_safe_malloc(x)
+ size_t x;
+{
+ void *r = malloc(x);
+ if (NULL == r) OOM_ERROR;
+ return r;
+}
+
+void *
+pr_safe_realloc(p, x)
+ void *p;
+ size_t x;
+{
+ void *r = realloc(p, x);
+ if (NULL == r) OOM_ERROR;
+ return r;
+}
+
+static FILE *
+safe_fopen(path, mode)
+ const char *path, *mode;
+{
+ FILE *r = fopen(path, mode);
+ if (NULL == r) {
+ fprintf(stderr, "%s: unable to open file %s:",
+ pr_program_name, path);
+ perror("");
+ exit (-1);
+ }
+ return r;
+}
+
+/* End of fail-stop wrappers. */
+/* =========================================================== */
Modified: trunk/packages/primer3/trunk/src/primer3_release.h
===================================================================
--- trunk/packages/primer3/trunk/src/primer3_release.h 2007-02-17 04:15:57 UTC (rev 210)
+++ trunk/packages/primer3/trunk/src/primer3_release.h 2007-02-17 04:31:55 UTC (rev 211)
@@ -33,7 +33,7 @@
#ifndef RELEASE_H
#define RELEASE_H 1
-static const char * pr_release = "primer3 release 1.0.1";
+static const char * pr_release = "primer3 release 1.1.0";
/* This is a beta release, identical to release 1.0b
except for version number */
#endif
Modified: trunk/packages/primer3/trunk/src/release_notes.txt
===================================================================
--- trunk/packages/primer3/trunk/src/release_notes.txt 2007-02-17 04:15:57 UTC (rev 210)
+++ trunk/packages/primer3/trunk/src/release_notes.txt 2007-02-17 04:31:55 UTC (rev 211)
@@ -1,5 +1,42 @@
-release 1.0a 9/06 ==================================================
+release 1.1.0 1/17/2007 ==================================================
+ Added tags PRIMER_TM_SANTALUCIA, PRIMER_SALT_CORRECTIONS,
+ PRIMER_LOWERCASE_MASKING, PRIMER_DIVALENT_CONC,
+ and PRIMER_DNTP_CONC. See the README for
+ details of what these tags do. Briefly, the first two
+ tags allow the use of modern melting temperature
+ calculations. New tests for this functionality
+ were added to the tests/ subdirectory
+
+ NOTE: The oligotm executable now takes additional
+ arguments.
+
+ Cleaned up Makefile, and created Makefile for the test
+ directory with a target to clean up after tests
+
+ Most (but not all) temporary files created by the
+ tests now end in .tmp or .tmp2
+
+ Tried to create more informative test for
+ MAX_PRIMER_LENGTH > DPAL_MAX_ALIGN in primer3_main.c
+
+ NOTE: The oligtotm() function is now provided as
+ a library, liboligotm.
+
+ NOTE: non-backward compatible change: removed support of
+ flag -2x_compat.
+
+release 1.0.1 11/06 ==================================================
+
+ Identical to 1.0b except for release number
+
+release 1.0b 11/06 ==================================================
+
+ Corrected bug involving check for template mispriming
+ Minor code cleanup
+
+release 1.0a 9/06 ==================================================
+
No new functionality (bug fixes and minor code cleanup only)
Bug fixes:
@@ -195,3 +232,57 @@
Tweaked error reporting of negative-length excluded regions,
internal oligo excluded regions, and target.
+
+==============================================================
+==============================================================
+Compared to non-primer3 progenitors:
+
+Compared to primer 0.5
+---------------
+Completely different input format.
+
+It has been reported the 0.5 deleted Ns when they occurred in
+primers.
+
+More stringent self-complementarity defaults.
+
+Primer3 selects internal oligos on request (and produces .int
+files if requested).
+
+Compared to both primer 0.5 and primer v2
+---------------------------
+The format of the contents of .for, .rev (and .int) files is
+different.
+
+Primer3 returns a user-specifiable number of primer pairs (or
+triples) sorted by "goodness".
+
+Primer3 will find a primer pair if any acceptable pair exists.
+
+Optional n-based indexing into source sequence.
+
+Use of sequence quality and 3' stability as constraints in primer
+picking. Optional positional component to objective function.
+
+Compared to primer v2
+-------------
+Tag name changes. However, primer3 should understand most or
+all Primer v2 input tags, and should produce v2-compatible output
+tag names when the -v2_compat command-line switch is used.
+
+The one exception is that the PRIMER_RECOMMEND tag is no longer
+produced. Instead primer3 produces the PRIMER_x_EXPLAIN output
+tags. The format of the data in this tags is different from the
+data in v2's PRIMER_RECOMMEND output tag.
+
+Numerous fixes.
+
+Uses the PRIMER_SELF_ANY and PRIMER_SELF_END parameters to govern
+maximum allowable complementarity between left and right primers,
+as well as complementarity between copies of a single oligo or
+within a single oligo. This behaviour is very close to that of
+primer 0.5; self complementarity calculations in v2 were
+unreliable.
+
+Primer3 produces much more output information, including the TMs
+and self complementarity measures of selected primers.
Copied: trunk/packages/primer3/trunk/test/Makefile (from rev 210, trunk/packages/primer3/branches/upstream/current/test/Makefile)
Modified: trunk/packages/primer3/trunk/test/dpal_test.pl
===================================================================
--- trunk/packages/primer3/trunk/test/dpal_test.pl 2007-02-17 04:15:57 UTC (rev 210)
+++ trunk/packages/primer3/trunk/test/dpal_test.pl 2007-02-17 04:31:55 UTC (rev 211)
@@ -6,8 +6,8 @@
# Test error handling on over-long input sequence:
print STDERR 'Long sequence error handling...';
-$r = system '../src/ntdpal ACGTGTTCGTCGTAAATAACATGCTATATT GACGTAGACAACCCTGTGTTTAGCCTGCGTTTTGTGCCATCCTAATGCTTTACTAGATCACTGAGCCACCTCCCAAGGACTACACCTAGCGGTATTTCGTACATTAACTAGGATCCTTTTCCACATGGACTACAATGTCTGCCGAGCATGCGATGGGGTACCGCGCCCGCGCACATACGCGCGCAGAGCTTTTGGAGGCATACCTACACCGGCGAGGGGCTGCGGTTTATTGACACTGAAACGGGATAACGAGTCGCTGAATTGAGCCAAAAATATGCAAGCGTCACAAATTGTGACAAAAATTTTAAAGGAAAAATTAGACCATTGATTCTGAAGTGGTGCGTATAGGACCAGTCGTGGCAATGAGACCGATTTGAGTAGCACTAGCTCAAACACTGTCTGGGTCGCCATCAAGGCCACAAGAACTTAAGCAGCCGTCACCCTATAGAAGGTTAAGCGACGGTTAGGGCTTCTGGCAACGAAAGTTGTCGGTTCGTCCTGTGCCAACGTGTGGCAAAGTCTACTATGATTCGATTGTTGACGTGTCGACAGGCTGTTTCGCTGGATACCCCACCTTGATAATTTTTCTCGTCGAACGCTAGCAGTTTTTTTTTCAACGGCCCGGAATCTGTAAGAGGCCGTTGCAGGAACGCGTGTGTATGTAAATGCCCACTACTTCTGTTATGTACCCAAATGGCGTGCGGCGTGGATGTATAGTGTCGACCCTCCATAATCGGGCGGACGGTCGTGGGGTATGTATGATCTTCGGCACTGATTCGCCTCGAGTCTATATGTTCTTAATCCAGACCTTCGGGGAAAGCCTACTTTCCATCCGTTGTCTAGCGTCATGCCAGTGACTACTGTTGTATTGTCTGGTTCCTAAGATAGCCATGGATTCCGGACATCGACGATGCACAAGAGCGTTAGCGCTGGTGTGCAACGCAACGTCGCGAAGGCTGGGTTACAGCGTGATCTCCTGGCTGCACCCAGATGCAGAGGGACATACCTACGATGAATAGGTGCGTCTGTTTATAAACGCCCAATCCTAGCAAAAATCACAACTAAGACAGTGTATGGAAGACCCACCAGTTGTGGGCGAATGGTCAGGTATACAAGATCGTGTCAAGACGGAACTTAAGCTTCTGTGCGCTCTCCATGCGAGCTGGTACGTCTGGACGGCGAGGTATGAGTGAATGACCATCCATGGCAACTTTCGTGTTCTACGACAGATACGAGCTCGACGGACGACCTGGTGACCAGTAGTATATGCGCGTCCGTCGGCCAGACTTTCCAAACGCCCTTTCAACGAGATACATGCGAACACGCTACAATTTCTCGTTCCGTCTAAAGTCGATACTCGCAAGCCCAGGCCCGTTACTACAACGCTGTTAATAGGATCAGAAGGGCCATAAGACTTTGGCAGCGGTAGCTAGGAAAGTGATGGTTGTGATGGCCCTAGTAAGGAGTCAGCCATCTACCCAACTATTTGAATGGGACCATAGCCAAGGGACCCAGCTGTTCCTTAGAAACCTGGTGACTCCCTTAGCCAATTGTGTAACTTCGTGCGTGCCAGTATTACACCTATAATCACAAGACCCCTTCAATACGAGTCCTGTGGCGTAGTGTTCCATCAAAACAATCAAGAACAGATTTCCGGTCCCCGTTGTGTTGGGATCTAGCGGACGTTGTCGGTAGATCAATAACGTAAATGCGAATCGAAGTTCTCTGGCCTAAAACAACTGCGCGCAGGGCCTCCGGTCATTGCATCTTTCTTGTCTCTCGTGAGGGCGTGATTCGTTTACCTGGAGCGAGCCGGGCACAAGAGCTATGGATTATTGGCTGGTGCAAAAACCATTCTAGCTACAATTATACTCGCGTGTCGACGATAAGAGTGAAATCACTGCGTAGGCAAACTGCCGGGTCACCAAGAGAGGCTGATACCGCGGTTCACCC l > dpal_tmp 2>&1';
-open X, 'dpal_tmp';
+$r = system '../src/ntdpal ACGTGTTCGTCGTAAATAACATGCTATATT GACGTAGACAACCCTGTGTTTAGCCTGCGTTTTGTGCCATCCTAATGCTTTACTAGATCACTGAGCCACCTCCCAAGGACTACACCTAGCGGTATTTCGTACATTAACTAGGATCCTTTTCCACATGGACTACAATGTCTGCCGAGCATGCGATGGGGTACCGCGCCCGCGCACATACGCGCGCAGAGCTTTTGGAGGCATACCTACACCGGCGAGGGGCTGCGGTTTATTGACACTGAAACGGGATAACGAGTCGCTGAATTGAGCCAAAAATATGCAAGCGTCACAAATTGTGACAAAAATTTTAAAGGAAAAATTAGACCATTGATTCTGAAGTGGTGCGTATAGGACCAGTCGTGGCAATGAGACCGATTTGAGTAGCACTAGCTCAAACACTGTCTGGGTCGCCATCAAGGCCACAAGAACTTAAGCAGCCGTCACCCTATAGAAGGTTAAGCGACGGTTAGGGCTTCTGGCAACGAAAGTTGTCGGTTCGTCCTGTGCCAACGTGTGGCAAAGTCTACTATGATTCGATTGTTGACGTGTCGACAGGCTGTTTCGCTGGATACCCCACCTTGATAATTTTTCTCGTCGAACGCTAGCAGTTTTTTTTTCAACGGCCCGGAATCTGTAAGAGGCCGTTGCAGGAACGCGTGTGTATGTAAATGCCCACTACTTCTGTTATGTACCCAAATGGCGTGCGGCGTGGATGTATAGTGTCGACCCTCCATAATCGGGCGGACGGTCGTGGGGTATGTATGATCTTCGGCACTGATTCGCCTCGAGTCTATATGTTCTTAATCCAGACCTTCGGGGAAAGCCTACTTTCCATCCGTTGTCTAGCGTCATGCCAGTGACTACTGTTGTATTGTCTGGTTCCTAAGATAGCCATGGATTCCGGACATCGACGATGCACAAGAGCGTTAGCGCTGGTGTGCAACGCAACGTCGCGAAGGCTGGGTTACAGCGTGATCTCCTGGCTGCACCCAGATGCAGAGGGACATACCTACGATGAATAGGTGCGTCTGTTTATAAACGCCCAATCCTAGCAAAAATCACAACTAAGACAGTGTATGGAAGACCCACCAGTTGTGGGCGAATGGTCAGGTATACAAGATCGTGTCAAGACGGAACTTAAGCTTCTGTGCGCTCTCCATGCGAGCTGGTACGTCTGGACGGCGAGGTATGAGTGAATGACCATCCATGGCAACTTTCGTGTTCTACGACAGATACGAGCTCGACGGACGACCTGGTGACCAGTAGTATATGCGCGTCCGTCGGCCAGACTTTCCAAACGCCCTTTCAACGAGATACATGCGAACACGCTACAATTTCTCGTTCCGTCTAAAGTCGATACTCGCAAGCCCAGGCCCGTTACTACAACGCTGTTAATAGGATCAGAAGGGCCATAAGACTTTGGCAGCGGTAGCTAGGAAAGTGATGGTTGTGATGGCCCTAGTAAGGAGTCAGCCATCTACCCAACTATTTGAATGGGACCATAGCCAAGGGACCCAGCTGTTCCTTAGAAACCTGGTGACTCCCTTAGCCAATTGTGTAACTTCGTGCGTGCCAGTATTACACCTATAATCACAAGACCCCTTCAATACGAGTCCTGTGGCGTAGTGTTCCATCAAAACAATCAAGAACAGATTTCCGGTCCCCGTTGTGTTGGGATCTAGCGGACGTTGTCGGTAGATCAATAACGTAAATGCGAATCGAAGTTCTCTGGCCTAAAACAACTGCGCGCAGGGCCTCCGGTCATTGCATCTTTCTTGTCTCTCGTGAGGGCGTGATTCGTTTACCTGGAGCGAGCCGGGCACAAGAGCTATGGATTATTGGCTGGTGCAAAAACCATTCTAGCTACAATTATACTCGCGTGTCGACGATAAGAGTGAAATCACTGCGTAGGCAAACTGCCGGGTCACCAAGAGAGGCTGATACCGCGGTTCACCC l > dpal.tmp 2>&1';
+open X, 'dpal.tmp';
@foo = <X>;
close X;
print STDERR
@@ -17,51 +17,50 @@
runtest('Default implementations + alignment',
"perl dpal_gen.pl '../src/ntdpal' <dpal_input",
'dpal_output');
-system "cat dpal_tmp > dpal_output1";
+system "cat dpal.tmp > dpal_output1.tmp";
runtest('Default implementations + NO alignment 1',
"perl dpal_gen.pl '../src/ntdpal -s' <dpal_input",
'dpal_score_output');
-system "cat dpal_tmp > dpal_score_output1";
+system "cat dpal.tmp > dpal_score_output1.tmp";
runtest('Default implementations + NO alignment 2',
"perl dpal_gen.pl '../src/ntdpal -s' <dpal_long_input",
'dpal_long_score_output');
-system "cat dpal_tmp > dpal_long_score_output1";
+system "cat dpal.tmp > dpal_long_score_output1.tmp";
runtest('Force _dpal_generic',
"perl dpal_gen.pl '../src/ntdpal -s -f1' <dpal_input",
'dpal_score_output');
-system "cat dpal_tmp > dpal_score_output4";
+system "cat dpal.tmp > dpal_score_output4.tmp";
runtest('Force _dpal_long_nopath_generic 1',
"perl dpal_gen.pl '../src/ntdpal -s -f2' <dpal_input",
'dpal_score_output');
-system "cat dpal_tmp > dpal_score_output2";
+system "cat dpal.tmp > dpal_score_output2.tmp";
runtest('Force _dpal_long_nopath_generic 2',
"perl dpal_gen.pl '../src/ntdpal -s -f2' <dpal_long_input",
'dpal_long_score_output');
-system "cat dpal_tmp > dpal_long_score_output2";
+system "cat dpal.tmp > dpal_long_score_output2.tmp";
runtest('Force long maxgap1 functions 1',
"perl dpal_gen.pl '../src/ntdpal -s -f3' <dpal_input",
'dpal_score_output');
-system "cat dpal_tmp > dpal_score_output3";
+system "cat dpal.tmp > dpal_score_output3.tmp";
runtest('Force long maxgap1 functions 2',
"perl dpal_gen.pl '../src/ntdpal -s -f3' <dpal_long_input",
'dpal_long_score_output');
-system "cat dpal_tmp > dpal_long_score_output3";
+system "cat dpal.tmp > dpal_long_score_output3.tmp";
exit;
sub runtest {
my ($desc, $cmd, $benchfile) = @_;
print STDERR $desc, '...';
-# system $cmd . ' > dpal_tmp 2>&1';
- system $cmd . ' > dpal_tmp';
- $r = system "diff $benchfile dpal_tmp";
+ system $cmd . ' > dpal.tmp';
+ $r = system "diff $benchfile dpal.tmp";
print STDERR $r == 0 ? "OK\n" : "FAILED\n";
}
Modified: trunk/packages/primer3/trunk/test/long_seq_tm_test.pl
===================================================================
--- trunk/packages/primer3/trunk/test/long_seq_tm_test.pl 2007-02-17 04:15:57 UTC (rev 210)
+++ trunk/packages/primer3/trunk/test/long_seq_tm_test.pl 2007-02-17 04:31:55 UTC (rev 211)
@@ -1,13 +1,17 @@
#!/usr/local/bin/perl
-# Script for checking output of executable src/long_seq_tm_test
-# To make long_seq_tm_test go to ../src, and do
-# make long_seq_tm_test
+# Script that re-implements the calculation for long sequences.
+# Compare output to that of long_seq_tm_test.pl
my ($seq, $start, $len) = @ARGV;
my $s = substr($seq, $start, $len);
my $GC_count = $s =~ tr/gGcC/gGcC/;
-$r = log(50/1000.0)/log(10);
+$salt=50;
+$divalent=0;
+$dntp=0;
+
+$salt = $salt + 120*sqrt(($divalent-$dntp));
+$r = log($salt/1000.0)/log(10);
$tm = 81.5 + 16.6*$r + 41*$GC_count/$len - 600./$len;
print "tm = $tm\n";
Copied: trunk/packages/primer3/trunk/test/oligotm.txt (from rev 210, trunk/packages/primer3/branches/upstream/current/test/oligotm.txt)
Copied: trunk/packages/primer3/trunk/test/oligotm_test.pl (from rev 210, trunk/packages/primer3/branches/upstream/current/test/oligotm_test.pl)
Modified: trunk/packages/primer3/trunk/test/p3test.pl
===================================================================
--- trunk/packages/primer3/trunk/test/p3test.pl 2007-02-17 04:15:57 UTC (rev 210)
+++ trunk/packages/primer3/trunk/test/p3test.pl 2007-02-17 04:31:55 UTC (rev 211)
@@ -1,34 +1,32 @@
# Regression test driver for primer3 executable.
#
-# Usage: perl primer_test.pl [<primer3>]
+# Usage: perl p3test.pl [<primer3>]
#
-# <primer3> defaults to primer3_core, in which case the executable
-# run is ../src/primer3_core.
+# <primer3> defaults to ../src/ primer3_core
#
# If <primer3> is specified, the executable run is
-# ../src/<primer3>.
+# <primer3>.
#
# Stderr difference tests for fatal errors are performed only
-# if <primer3> is 'primer3_core' (because the executable name
+# if <primer3> is '<any dir>/primer3_core' (because the executable name
# is part of the text written to stderr).
-$ENV{TC_SILENT} = '1'; # TestCenter proofed executables will not
+# $ENV{TC_SILENT} = '1'; # TestCenter proofed executables will not
# write extra stuff to std{err,out}, and
# consequently will not cause spurious diff's.
-$ENV{TC_RESULTDIR} = './tc_results'; # Directory for testcenter results.
+# $ENV{TC_RESULTDIR} = './tc_results'; # Directory for testcenter results.
-$exe = 'primer3_core';
+$exe = '../src/primer3_core';
$exe = $ARGV[0] if defined $ARGV[0];
-$p1 = "../src/$exe";
$EXIT_STAT = 0;
-die "Cannot execute $p1" unless -x $p1;
+die "Cannot execute $exe" unless -x $exe;
-print STDERR "\n\n$0: testing $p1\n\nSTART, ", scalar(localtime), "\n";
+print STDERR "\n\n$0: testing $exe\n\nSTART, ", scalar(localtime), "\n";
-test_fatal_errors($p1);
+test_fatal_errors($exe);
my $cmd;
for $test (
@@ -62,11 +60,13 @@
'primer_mispriming_long_lib',
'primer_rat',
'primer_human',
- 'primer_ch',
'long_seq',
'primer_position_penalty',
'primer_position_penalty_formatted',
'p3-tmpl-mispriming',
+ 'primer_tm_lc_masking',
+ 'primer_tm_lc_masking_formatted',
+ # Put primer_lib_amb_codes last because it is slow
'primer_lib_amb_codes',
) {
print STDERR "$test...";
@@ -79,7 +79,7 @@
$testx =~ s/_formatted$//;
$input = $testx . '_input';
$output = $test . '_output';
- $tmp = $test . '_tmp';
+ $tmp = $test . '.tmp';
if ($test ne 'primer_ch') {
die "Cannot read $input" unless -r $input;
die "Cannot read $output" unless -r $output;
@@ -90,28 +90,28 @@
# We need to chdir below because primer3 puts the 'list' files
# in the current working directory. Therefore we adjust
# the TestCenter result directory.
- $cmd = "rm -f $list_tmp/*.*; "
- . "cd $list_tmp; ../$p1 -strict_tags <../$input >../$tmp";
- $ENV{TC_COMMENT} = $cmd;
+ $cmd = "rm -f $list_tmp/*; "
+ . "cd $list_tmp; ../$exe -strict_tags <../$input >../$tmp";
+
+ # $ENV{TC_COMMENT} = $cmd; OLD CODE
# Reset the TestCenter result directory.
- $save_results = $ENV{TC_RESULTDIR};
- $ENV{TC_RESULTDIR} = "../$save_results";
+ # $save_results = $ENV{TC_RESULTDIR};
+ # $ENV{TC_RESULTDIR} = "../$save_results";
+
$r = system $cmd;
- $ENV{TC_RESULTDIR} = $save_results;
- $ENV{TC_COMMENT} = '';
+
+ # $ENV{TC_RESULTDIR} = $save_results;
+ # $ENV{TC_COMMENT} = '';
} elsif ($test =~ /formatted$/) {
- $cmd = "$p1 -strict_tags -format_output <$input >$tmp";
- $ENV{TC_COMMENT} = $cmd;
+ $cmd = "$exe -strict_tags -format_output <$input >$tmp";
+ # $ENV{TC_COMMENT} = $cmd;
$r = system $cmd;
- $ENV{TC_COMMENT} = '';
+ # $ENV{TC_COMMENT} = '';
} else {
- # We do not distribute primer_ch_input.
- unless ($test eq 'primer_ch' && !-e 'primer_ch_input') {
- $cmd = "$p1 -strict_tags <$input >$tmp";
- $ENV{TC_COMMENT} = $cmd;
- $r = system $cmd;
- $ENV{TC_COMMENT} = '';
- }
+ $cmd = "$exe -strict_tags <$input >$tmp";
+ # $ENV{TC_COMMENT} = $cmd;
+ $r = system $cmd;
+ # $ENV{TC_COMMENT} = '';
}
unless ($r == 0) {
@@ -169,9 +169,9 @@
for (@inputs) {
($root) = /(.*)\.in$/;
$cmd = "$exe <$_ > $root.tmp 2> $root.tmp2";
- $ENV{TC_COMMENT} = $cmd;
+ # $ENV{TC_COMMENT} = $cmd;
system $cmd;
- $ENV{TC_COMMENT} = '';
+ # $ENV{TC_COMMENT} = '';
if ($? == 0) {
$r = $? >> 8;
print STDERR "\nErroneous 0 exit status ($?) from command $cmd\n";
Modified: trunk/packages/primer3/trunk/test/primer_boundary1_formatted_output
===================================================================
--- trunk/packages/primer3/trunk/test/primer_boundary1_formatted_output 2007-02-17 04:15:57 UTC (rev 210)
+++ trunk/packages/primer3/trunk/test/primer_boundary1_formatted_output 2007-02-17 04:31:55 UTC (rev 211)
@@ -26,7 +26,7 @@
Right 10 9 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_01
@@ -57,7 +57,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_02
@@ -88,7 +88,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_03
@@ -112,7 +112,7 @@
Right 4 3 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, unacceptable product size 1, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_04
@@ -136,7 +136,7 @@
Right 10 9 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, unacceptable product size 1, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_05
@@ -167,7 +167,7 @@
Right 5 3 0 0 0 0 0 0 0 0 0 0 2
Pair Stats:
considered 4, unacceptable product size 3, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_06
@@ -191,7 +191,7 @@
Right 5 5 0 0 0 0 0 0 0 0 0 0 0
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_07
@@ -223,7 +223,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_08
@@ -251,7 +251,7 @@
Right 6 5 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_09
@@ -279,7 +279,7 @@
Right 5 5 0 0 0 0 0 0 0 0 0 0 0
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_10
@@ -303,7 +303,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_11
@@ -334,7 +334,7 @@
Right 5 2 0 0 0 0 0 0 0 0 0 0 3
Pair Stats:
considered 3, unacceptable product size 2, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_11
@@ -358,7 +358,7 @@
Right 5 2 0 0 0 0 0 0 0 0 0 0 3
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_12
@@ -389,7 +389,7 @@
Right 5 0 0 0 0 0 0 0 0 0 0 0 5
Pair Stats:
considered 5, unacceptable product size 4, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_13
@@ -420,7 +420,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_14
@@ -444,7 +444,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_15
@@ -475,7 +475,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_16
@@ -499,7 +499,7 @@
Right 5 4 0 0 1 0 0 0 0 0 0 0 0
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_17
@@ -531,7 +531,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_18
@@ -559,7 +559,7 @@
Right 1 1 0 0 0 0 0 0 0 0 0 0 0
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_19
@@ -591,7 +591,7 @@
Right 1 1 0 0 0 0 0 0 0 0 0 0 0
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_21
@@ -624,7 +624,7 @@
Right 3 2 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_22
@@ -653,7 +653,7 @@
Right 3 2 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_23
@@ -682,7 +682,7 @@
Right 2 2 0 0 0 0 0 0 0 0 0 0 0
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_24
@@ -711,7 +711,7 @@
Right 2 2 0 0 0 0 0 0 0 0 0 0 0
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_25
@@ -744,7 +744,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_26
@@ -773,7 +773,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_27
@@ -802,7 +802,7 @@
Right 5 4 1 0 0 0 0 0 0 0 0 0 0
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_28
@@ -831,7 +831,7 @@
Right 5 4 1 0 0 0 0 0 0 0 0 0 0
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_29
@@ -864,7 +864,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_30
@@ -897,7 +897,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_31
@@ -926,7 +926,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, no target 1, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_32
@@ -959,7 +959,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_33
@@ -988,7 +988,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_34
@@ -1017,7 +1017,7 @@
Right 5 4 0 1 0 0 0 0 0 0 0 0 0
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_35
@@ -1046,7 +1046,7 @@
Right 5 4 0 1 0 0 0 0 0 0 0 0 0
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_36
@@ -1079,7 +1079,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_37
@@ -1108,7 +1108,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_37
@@ -1137,7 +1137,7 @@
Right 5 4 0 1 0 0 0 0 0 0 0 0 0
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_38
@@ -1166,7 +1166,7 @@
Right 5 4 0 1 0 0 0 0 0 0 0 0 0
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_39
@@ -1199,7 +1199,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_40
@@ -1232,7 +1232,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_41
@@ -1258,7 +1258,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_42
@@ -1291,7 +1291,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_43
@@ -1320,7 +1320,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_44
@@ -1353,7 +1353,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_45
@@ -1386,7 +1386,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_46
@@ -1415,7 +1415,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_47
@@ -1448,7 +1448,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_48
@@ -1477,7 +1477,7 @@
Right 5 4 0 0 0 1 0 0 0 0 0 0 0
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_49
@@ -1510,7 +1510,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_50
@@ -1539,7 +1539,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_51
@@ -1572,7 +1572,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_52
@@ -1605,7 +1605,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_53
@@ -1634,7 +1634,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, tm diff too large 1, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_54
@@ -1669,7 +1669,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_55
@@ -1702,7 +1702,7 @@
Intl 0 0 0 0 0 0 0 0 0 0 0 0 0
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR poly_x_2
@@ -1765,7 +1765,7 @@
Intl 1585 0 0 0 0 0 0 0 0 0 0 0 1585
Pair Stats:
considered 72, unacceptable product size 52, ok 20
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR poly_x_3
@@ -1794,7 +1794,7 @@
Intl 187 0 0 0 0 0 0 0 0 0 187 0 0
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_59
@@ -1827,7 +1827,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_60
@@ -1853,7 +1853,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_61
@@ -1893,7 +1893,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_63
@@ -1923,7 +1923,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_64
@@ -1963,7 +1963,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_66
@@ -1993,7 +1993,7 @@
Right 1 0 0 1 0 0 0 0 0 0 0 0 0
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_67
@@ -2025,7 +2025,7 @@
Right 6 5 0 1 0 0 0 0 0 0 0 0 0
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_68
@@ -2058,7 +2058,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_69
@@ -2084,7 +2084,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_70
@@ -2120,7 +2120,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, no target 1, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_72
@@ -2150,7 +2150,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_73
@@ -2186,7 +2186,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, no target 1, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_75
@@ -2216,7 +2216,7 @@
Right 0 0 0 0 0 0 0 0 0 0 0 0 0
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_76
@@ -2248,7 +2248,7 @@
Right 6 5 1 0 0 0 0 0 0 0 0 0 0
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_77
@@ -2282,7 +2282,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_78
@@ -2316,7 +2316,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_79
@@ -2350,7 +2350,7 @@
Right 6 5 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_80
@@ -2384,7 +2384,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_81
@@ -2418,7 +2418,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_82
@@ -2451,7 +2451,7 @@
Right 10 9 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_83
@@ -2480,7 +2480,7 @@
Right 10 9 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, no target 1, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_84
@@ -2513,7 +2513,7 @@
Right 10 9 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_85
@@ -2546,7 +2546,7 @@
Right 3 2 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_86
@@ -2580,7 +2580,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_71
@@ -2616,7 +2616,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_72
@@ -2648,7 +2648,7 @@
Right 3 2 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 3, unacceptable product size 2, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_73
@@ -2676,7 +2676,7 @@
Right 3 2 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 2, unacceptable product size 2, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_74
@@ -2708,7 +2708,7 @@
Right 3 2 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 2, ok 2
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_75
@@ -2740,7 +2740,7 @@
Right 2 1 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 2, unacceptable product size 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_76
@@ -2772,7 +2772,7 @@
Right 2 1 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 2, unacceptable product size 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_77
@@ -2813,7 +2813,7 @@
Right 28 26 0 0 0 0 0 0 0 0 0 0 2
Pair Stats:
considered 4, unacceptable product size 2, ok 2
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_78
@@ -2854,7 +2854,7 @@
Right 28 26 0 0 0 0 0 0 0 0 0 0 2
Pair Stats:
considered 4, unacceptable product size 2, ok 2
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_79
@@ -2895,7 +2895,7 @@
Right 28 26 0 0 0 0 0 0 0 0 0 0 2
Pair Stats:
considered 4, unacceptable product size 1, ok 3
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_80
@@ -2936,7 +2936,7 @@
Right 28 26 0 0 0 0 0 0 0 0 0 0 2
Pair Stats:
considered 4, unacceptable product size 1, ok 3
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_81
@@ -2968,7 +2968,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_82
@@ -2996,7 +2996,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, high any compl 1, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_83
@@ -3028,7 +3028,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_84
@@ -3056,7 +3056,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, high end compl 1, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_85
@@ -3088,7 +3088,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 200, ok 200
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_86
@@ -3122,7 +3122,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_87
@@ -3160,7 +3160,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_89
Modified: trunk/packages/primer3/trunk/test/primer_boundary_formatted_output
===================================================================
--- trunk/packages/primer3/trunk/test/primer_boundary_formatted_output 2007-02-17 04:15:57 UTC (rev 210)
+++ trunk/packages/primer3/trunk/test/primer_boundary_formatted_output 2007-02-17 04:31:55 UTC (rev 211)
@@ -26,7 +26,7 @@
Right 10 9 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_01
@@ -57,7 +57,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_02
@@ -88,7 +88,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_03
@@ -112,7 +112,7 @@
Right 4 3 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, unacceptable product size 1, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_04
@@ -136,7 +136,7 @@
Right 10 9 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, unacceptable product size 1, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_05
@@ -167,7 +167,7 @@
Right 5 3 0 0 0 0 0 0 0 0 0 0 2
Pair Stats:
considered 4, unacceptable product size 3, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_06
@@ -191,7 +191,7 @@
Right 5 5 0 0 0 0 0 0 0 0 0 0 0
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_07
@@ -223,7 +223,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_08
@@ -251,7 +251,7 @@
Right 6 5 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_09
@@ -279,7 +279,7 @@
Right 5 5 0 0 0 0 0 0 0 0 0 0 0
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_10
@@ -303,7 +303,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_11
@@ -334,7 +334,7 @@
Right 5 2 0 0 0 0 0 0 0 0 0 0 3
Pair Stats:
considered 3, unacceptable product size 2, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_11
@@ -358,7 +358,7 @@
Right 5 2 0 0 0 0 0 0 0 0 0 0 3
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_12
@@ -389,7 +389,7 @@
Right 5 0 0 0 0 0 0 0 0 0 0 0 5
Pair Stats:
considered 5, unacceptable product size 4, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_13
@@ -420,7 +420,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_14
@@ -444,7 +444,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_15
@@ -475,7 +475,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_16
@@ -499,7 +499,7 @@
Right 5 4 0 0 1 0 0 0 0 0 0 0 0
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_17
@@ -531,7 +531,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_18
@@ -559,7 +559,7 @@
Right 1 1 0 0 0 0 0 0 0 0 0 0 0
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_19
@@ -591,7 +591,7 @@
Right 1 1 0 0 0 0 0 0 0 0 0 0 0
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_21
@@ -624,7 +624,7 @@
Right 3 2 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_22
@@ -653,7 +653,7 @@
Right 3 2 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_23
@@ -682,7 +682,7 @@
Right 2 2 0 0 0 0 0 0 0 0 0 0 0
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_24
@@ -711,7 +711,7 @@
Right 2 2 0 0 0 0 0 0 0 0 0 0 0
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_25
@@ -744,7 +744,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_26
@@ -773,7 +773,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_27
@@ -802,7 +802,7 @@
Right 5 4 1 0 0 0 0 0 0 0 0 0 0
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_28
@@ -831,7 +831,7 @@
Right 5 4 1 0 0 0 0 0 0 0 0 0 0
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_29
@@ -864,7 +864,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_30
@@ -897,7 +897,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_31
@@ -926,7 +926,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, no target 1, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_32
@@ -959,7 +959,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_33
@@ -988,7 +988,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_34
@@ -1017,7 +1017,7 @@
Right 5 4 0 1 0 0 0 0 0 0 0 0 0
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_35
@@ -1046,7 +1046,7 @@
Right 5 4 0 1 0 0 0 0 0 0 0 0 0
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_36
@@ -1079,7 +1079,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_37
@@ -1108,7 +1108,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_37
@@ -1137,7 +1137,7 @@
Right 5 4 0 1 0 0 0 0 0 0 0 0 0
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_38
@@ -1166,7 +1166,7 @@
Right 5 4 0 1 0 0 0 0 0 0 0 0 0
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_39
@@ -1199,7 +1199,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_40
@@ -1232,7 +1232,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_41
@@ -1258,7 +1258,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_42
@@ -1291,7 +1291,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_43
@@ -1320,7 +1320,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_44
@@ -1353,7 +1353,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_45
@@ -1386,7 +1386,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_46
@@ -1415,7 +1415,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_47
@@ -1448,7 +1448,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_48
@@ -1477,7 +1477,7 @@
Right 5 4 0 0 0 1 0 0 0 0 0 0 0
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_49
@@ -1510,7 +1510,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_50
@@ -1539,7 +1539,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_51
@@ -1572,7 +1572,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_52
@@ -1605,7 +1605,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_53
@@ -1634,7 +1634,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, tm diff too large 1, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_54
@@ -1669,7 +1669,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_55
@@ -1702,7 +1702,7 @@
Intl 0 0 0 0 0 0 0 0 0 0 0 0 0
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR poly_x_2
@@ -1765,7 +1765,7 @@
Intl 1585 0 0 0 0 0 0 0 0 0 0 0 1585
Pair Stats:
considered 72, unacceptable product size 52, ok 20
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR poly_x_3
@@ -1794,7 +1794,7 @@
Intl 187 0 0 0 0 0 0 0 0 0 187 0 0
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_59
@@ -1827,7 +1827,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_60
@@ -1853,7 +1853,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_61
@@ -1893,7 +1893,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_63
@@ -1923,7 +1923,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_64
@@ -1963,7 +1963,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_66
@@ -1993,7 +1993,7 @@
Right 1 0 0 1 0 0 0 0 0 0 0 0 0
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_67
@@ -2025,7 +2025,7 @@
Right 6 5 0 1 0 0 0 0 0 0 0 0 0
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_68
@@ -2058,7 +2058,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_69
@@ -2084,7 +2084,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_70
@@ -2120,7 +2120,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, no target 1, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_72
@@ -2150,7 +2150,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_73
@@ -2186,7 +2186,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, no target 1, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_75
@@ -2216,7 +2216,7 @@
Right 0 0 0 0 0 0 0 0 0 0 0 0 0
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_76
@@ -2248,7 +2248,7 @@
Right 6 5 1 0 0 0 0 0 0 0 0 0 0
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_77
@@ -2282,7 +2282,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_78
@@ -2316,7 +2316,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_79
@@ -2350,7 +2350,7 @@
Right 6 5 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_80
@@ -2384,7 +2384,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_81
@@ -2418,7 +2418,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_82
@@ -2451,7 +2451,7 @@
Right 10 9 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_83
@@ -2480,7 +2480,7 @@
Right 10 9 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, no target 1, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_84
@@ -2513,7 +2513,7 @@
Right 10 9 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_85
@@ -2546,7 +2546,7 @@
Right 3 2 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_86
@@ -2580,7 +2580,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_71
@@ -2616,7 +2616,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_72
@@ -2648,7 +2648,7 @@
Right 3 2 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 3, unacceptable product size 2, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_73
@@ -2676,7 +2676,7 @@
Right 3 2 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 2, unacceptable product size 2, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_74
@@ -2708,7 +2708,7 @@
Right 3 2 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 2, ok 2
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_75
@@ -2740,7 +2740,7 @@
Right 2 1 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 2, unacceptable product size 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_76
@@ -2772,7 +2772,7 @@
Right 2 1 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 2, unacceptable product size 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_77
@@ -2813,7 +2813,7 @@
Right 28 26 0 0 0 0 0 0 0 0 0 0 2
Pair Stats:
considered 4, unacceptable product size 2, ok 2
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_78
@@ -2854,7 +2854,7 @@
Right 28 26 0 0 0 0 0 0 0 0 0 0 2
Pair Stats:
considered 4, unacceptable product size 2, ok 2
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_79
@@ -2895,7 +2895,7 @@
Right 28 26 0 0 0 0 0 0 0 0 0 0 2
Pair Stats:
considered 4, unacceptable product size 1, ok 3
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_80
@@ -2936,7 +2936,7 @@
Right 28 26 0 0 0 0 0 0 0 0 0 0 2
Pair Stats:
considered 4, unacceptable product size 1, ok 3
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_81
@@ -2968,7 +2968,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_82
@@ -2996,7 +2996,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, high any compl 1, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_83
@@ -3028,7 +3028,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_84
@@ -3056,7 +3056,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, high end compl 1, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_85
@@ -3088,7 +3088,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 200, ok 200
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_86
@@ -3122,7 +3122,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_87
@@ -3160,7 +3160,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_89
@@ -3195,7 +3195,7 @@
Right 10 9 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_91
@@ -3219,7 +3219,7 @@
Right 10 9 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 0, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_92
@@ -3254,7 +3254,7 @@
Right 5 2 0 0 0 0 0 0 0 0 0 0 3
Pair Stats:
considered 9, unacceptable product size 8, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_93
@@ -3289,7 +3289,7 @@
Right 5 0 0 0 0 0 0 0 0 0 0 0 5
Pair Stats:
considered 5, unacceptable product size 4, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_94
@@ -3324,7 +3324,7 @@
Right 5 0 0 0 0 0 0 0 0 0 0 0 5
Pair Stats:
considered 5, unacceptable product size 4, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_95
@@ -3359,7 +3359,7 @@
Right 5 4 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 5, unacceptable product size 4, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_96
@@ -3394,7 +3394,7 @@
Right 5 0 0 0 0 0 0 0 0 0 0 0 5
Pair Stats:
considered 5, unacceptable product size 4, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_97
@@ -3429,7 +3429,7 @@
Right 5 0 0 0 0 0 0 0 0 0 0 0 5
Pair Stats:
considered 5, unacceptable product size 4, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR test_098
@@ -3461,7 +3461,7 @@
Right 5 0 0 0 0 0 0 0 0 0 0 0 5
Pair Stats:
considered 5, unacceptable product size 4, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR test_099
@@ -3485,7 +3485,7 @@
Right 5 0 0 0 0 0 0 0 0 0 0 0 5
Pair Stats:
considered 5, unacceptable product size 4, high product Tm 1, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR test_100
@@ -3516,7 +3516,7 @@
Right 5 0 0 0 0 0 0 0 0 0 0 0 5
Pair Stats:
considered 5, unacceptable product size 4, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR test_101
@@ -3548,7 +3548,7 @@
Right 5 0 0 0 0 0 0 0 0 0 0 0 5
Pair Stats:
considered 5, unacceptable product size 4, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR test_102
@@ -3572,7 +3572,7 @@
Right 5 0 0 0 0 0 0 0 0 0 0 0 5
Pair Stats:
considered 5, unacceptable product size 4, low product Tm 1, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR test_103
@@ -3603,6 +3603,6 @@
Right 5 0 0 0 0 0 0 0 0 0 0 0 5
Pair Stats:
considered 5, unacceptable product size 4, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
Copied: trunk/packages/primer3/trunk/test/primer_global_err/bad_divalent_dntp_conc_1.in (from rev 210, trunk/packages/primer3/branches/upstream/current/test/primer_global_err/bad_divalent_dntp_conc_1.in)
Copied: trunk/packages/primer3/trunk/test/primer_global_err/bad_divalent_dntp_conc_1.out (from rev 210, trunk/packages/primer3/branches/upstream/current/test/primer_global_err/bad_divalent_dntp_conc_1.out)
Copied: trunk/packages/primer3/trunk/test/primer_global_err/bad_divalent_dntp_conc_1.out2 (from rev 210, trunk/packages/primer3/branches/upstream/current/test/primer_global_err/bad_divalent_dntp_conc_1.out2)
Copied: trunk/packages/primer3/trunk/test/primer_global_err/bad_divalent_dntp_conc_2.in (from rev 210, trunk/packages/primer3/branches/upstream/current/test/primer_global_err/bad_divalent_dntp_conc_2.in)
Copied: trunk/packages/primer3/trunk/test/primer_global_err/bad_divalent_dntp_conc_2.out (from rev 210, trunk/packages/primer3/branches/upstream/current/test/primer_global_err/bad_divalent_dntp_conc_2.out)
Copied: trunk/packages/primer3/trunk/test/primer_global_err/bad_divalent_dntp_conc_2.out2 (from rev 210, trunk/packages/primer3/branches/upstream/current/test/primer_global_err/bad_divalent_dntp_conc_2.out2)
Copied: trunk/packages/primer3/trunk/test/primer_global_err/bad_divalent_dntp_conc_3.in (from rev 210, trunk/packages/primer3/branches/upstream/current/test/primer_global_err/bad_divalent_dntp_conc_3.in)
Copied: trunk/packages/primer3/trunk/test/primer_global_err/bad_divalent_dntp_conc_3.out (from rev 210, trunk/packages/primer3/branches/upstream/current/test/primer_global_err/bad_divalent_dntp_conc_3.out)
Copied: trunk/packages/primer3/trunk/test/primer_global_err/bad_divalent_dntp_conc_3.out2 (from rev 210, trunk/packages/primer3/branches/upstream/current/test/primer_global_err/bad_divalent_dntp_conc_3.out2)
Copied: trunk/packages/primer3/trunk/test/primer_global_err/bad_divalent_dntp_conc_4.in (from rev 210, trunk/packages/primer3/branches/upstream/current/test/primer_global_err/bad_divalent_dntp_conc_4.in)
Copied: trunk/packages/primer3/trunk/test/primer_global_err/bad_divalent_dntp_conc_4.out (from rev 210, trunk/packages/primer3/branches/upstream/current/test/primer_global_err/bad_divalent_dntp_conc_4.out)
Copied: trunk/packages/primer3/trunk/test/primer_global_err/bad_divalent_dntp_conc_4.out2 (from rev 210, trunk/packages/primer3/branches/upstream/current/test/primer_global_err/bad_divalent_dntp_conc_4.out2)
Modified: trunk/packages/primer3/trunk/test/primer_global_err/empty_1.out2
===================================================================
--- trunk/packages/primer3/trunk/test/primer_global_err/empty_1.out2 2007-02-17 04:15:57 UTC (rev 210)
+++ trunk/packages/primer3/trunk/test/primer_global_err/empty_1.out2 2007-02-17 04:31:55 UTC (rev 211)
@@ -32,7 +32,7 @@
USAGE: ../src/primer3_core [-format_output] [-2x_compat] [-strict_tags]
-This is primer3 (primer3 release 1.0.1)
+This is primer3 (primer3 release 1.1.0)
Input must be provided on standard input.
For example:
$ primer3_core < my_input_file
Modified: trunk/packages/primer3/trunk/test/primer_internal1_formatted_output
===================================================================
--- trunk/packages/primer3/trunk/test/primer_internal1_formatted_output 2007-02-17 04:15:57 UTC (rev 210)
+++ trunk/packages/primer3/trunk/test/primer_internal1_formatted_output 2007-02-17 04:31:55 UTC (rev 211)
@@ -33,7 +33,7 @@
Intl 60 57 0 0 0 0 0 0 0 0 0 0 3
Pair Stats:
considered 4, unacceptable product size 1, no internal oligo 2, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_01
@@ -71,7 +71,7 @@
Intl 60 57 0 0 0 0 0 0 0 0 0 0 3
Pair Stats:
considered 2, unacceptable product size 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_02
@@ -109,7 +109,7 @@
Intl 60 57 0 0 0 0 0 0 0 0 0 0 3
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_05
@@ -147,7 +147,7 @@
Intl 60 57 0 0 0 0 0 0 0 0 0 0 3
Pair Stats:
considered 4, unacceptable product size 3, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_11
@@ -174,7 +174,7 @@
Intl 60 59 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 8, unacceptable product size 6, no internal oligo 2, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_11
@@ -219,7 +219,7 @@
Intl 60 52 0 0 0 0 0 0 0 0 0 0 8
Pair Stats:
considered 10, unacceptable product size 8, ok 2
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_12
@@ -264,7 +264,7 @@
Intl 60 52 0 0 0 0 0 0 0 0 0 0 8
Pair Stats:
considered 10, unacceptable product size 8, ok 2
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_13
@@ -302,7 +302,7 @@
Intl 60 23 0 0 0 0 0 0 0 0 0 0 37
Pair Stats:
considered 4, unacceptable product size 3, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_14
@@ -340,7 +340,7 @@
Intl 60 25 0 0 0 0 0 0 0 0 0 0 35
Pair Stats:
considered 6, unacceptable product size 5, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_15
@@ -378,7 +378,7 @@
Intl 60 25 0 0 0 0 0 0 0 0 0 0 35
Pair Stats:
considered 6, unacceptable product size 5, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_16
@@ -404,7 +404,7 @@
Intl 35 0 0 0 0 0 0 0 0 0 0 0 35
Pair Stats:
considered 4, no internal oligo 4, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_17
@@ -431,7 +431,7 @@
Intl 60 0 0 0 29 0 0 0 0 0 0 0 31
Pair Stats:
considered 16, unacceptable product size 4, no internal oligo 12, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_18
@@ -465,7 +465,7 @@
Intl 87 39 0 40 0 0 0 0 0 0 0 0 8
Pair Stats:
considered 81, unacceptable product size 49, no internal oligo 32, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_19
@@ -527,7 +527,7 @@
Intl 91 84 0 5 0 0 0 0 0 0 0 0 2
Pair Stats:
considered 18, unacceptable product size 3, no internal oligo 8, ok 7
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_20
@@ -599,7 +599,7 @@
Intl 226 175 0 47 0 0 0 0 0 0 0 0 4
Pair Stats:
considered 23, no internal oligo 15, ok 8
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_21
@@ -662,7 +662,7 @@
Intl 152 57 0 0 0 0 1 93 0 0 0 0 1
Pair Stats:
considered 323, unacceptable product size 223, no internal oligo 87, ok 13
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_22
@@ -700,7 +700,7 @@
Intl 60 57 0 0 0 0 0 0 0 0 0 0 3
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_23
@@ -743,7 +743,7 @@
Intl 56 53 0 0 0 0 0 0 0 0 0 0 3
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_24
@@ -784,7 +784,7 @@
Intl 56 53 0 1 0 0 0 0 0 0 0 0 2
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_25
@@ -827,7 +827,7 @@
Intl 56 53 0 1 0 0 0 0 0 0 0 0 2
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_26
@@ -868,7 +868,7 @@
Intl 56 53 0 0 0 0 0 0 0 0 0 0 3
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_27
@@ -903,7 +903,7 @@
Intl 56 53 0 1 0 0 0 0 0 0 0 0 2
Pair Stats:
considered 1, no internal oligo 1, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_28
@@ -938,7 +938,7 @@
Intl 56 53 0 1 0 0 0 0 0 0 0 0 2
Pair Stats:
considered 1, no internal oligo 1, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_29
@@ -979,7 +979,7 @@
Intl 56 53 0 0 0 0 0 0 0 0 0 0 3
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_30
@@ -1020,7 +1020,7 @@
Intl 56 53 0 1 0 0 0 0 0 0 0 0 2
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_31
@@ -1063,7 +1063,7 @@
Intl 56 53 0 0 0 0 0 0 0 0 0 0 3
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_32
@@ -1106,7 +1106,7 @@
Intl 56 53 0 1 0 0 0 0 0 0 0 0 2
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_33
@@ -1147,7 +1147,7 @@
Intl 56 53 0 1 0 0 0 0 0 0 0 0 2
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_34
Modified: trunk/packages/primer3/trunk/test/primer_internal_formatted_output
===================================================================
--- trunk/packages/primer3/trunk/test/primer_internal_formatted_output 2007-02-17 04:15:57 UTC (rev 210)
+++ trunk/packages/primer3/trunk/test/primer_internal_formatted_output 2007-02-17 04:31:55 UTC (rev 211)
@@ -33,7 +33,7 @@
Intl 60 57 0 0 0 0 0 0 0 0 0 0 3
Pair Stats:
considered 4, unacceptable product size 1, no internal oligo 2, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_01
@@ -71,7 +71,7 @@
Intl 60 57 0 0 0 0 0 0 0 0 0 0 3
Pair Stats:
considered 2, unacceptable product size 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_02
@@ -109,7 +109,7 @@
Intl 60 57 0 0 0 0 0 0 0 0 0 0 3
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_05
@@ -147,7 +147,7 @@
Intl 60 57 0 0 0 0 0 0 0 0 0 0 3
Pair Stats:
considered 4, unacceptable product size 3, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_11
@@ -174,7 +174,7 @@
Intl 60 59 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 8, unacceptable product size 6, no internal oligo 2, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_11
@@ -219,7 +219,7 @@
Intl 60 52 0 0 0 0 0 0 0 0 0 0 8
Pair Stats:
considered 10, unacceptable product size 8, ok 2
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_12
@@ -264,7 +264,7 @@
Intl 60 52 0 0 0 0 0 0 0 0 0 0 8
Pair Stats:
considered 10, unacceptable product size 8, ok 2
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_13
@@ -302,7 +302,7 @@
Intl 60 23 0 0 0 0 0 0 0 0 0 0 37
Pair Stats:
considered 4, unacceptable product size 3, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_14
@@ -340,7 +340,7 @@
Intl 60 25 0 0 0 0 0 0 0 0 0 0 35
Pair Stats:
considered 6, unacceptable product size 5, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_15
@@ -378,7 +378,7 @@
Intl 60 25 0 0 0 0 0 0 0 0 0 0 35
Pair Stats:
considered 6, unacceptable product size 5, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_16
@@ -404,7 +404,7 @@
Intl 35 0 0 0 0 0 0 0 0 0 0 0 35
Pair Stats:
considered 4, no internal oligo 4, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_17
@@ -431,7 +431,7 @@
Intl 60 0 0 0 29 0 0 0 0 0 0 0 31
Pair Stats:
considered 16, unacceptable product size 4, no internal oligo 12, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_18
@@ -465,7 +465,7 @@
Intl 87 39 0 40 0 0 0 0 0 0 0 0 8
Pair Stats:
considered 81, unacceptable product size 49, no internal oligo 32, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_19
@@ -527,7 +527,7 @@
Intl 91 84 0 5 0 0 0 0 0 0 0 0 2
Pair Stats:
considered 18, unacceptable product size 3, no internal oligo 8, ok 7
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_20
@@ -599,7 +599,7 @@
Intl 226 175 0 47 0 0 0 0 0 0 0 0 4
Pair Stats:
considered 23, no internal oligo 15, ok 8
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_21
@@ -662,7 +662,7 @@
Intl 152 57 0 0 0 0 1 93 0 0 0 0 1
Pair Stats:
considered 323, unacceptable product size 223, no internal oligo 87, ok 13
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_22
@@ -700,7 +700,7 @@
Intl 60 57 0 0 0 0 0 0 0 0 0 0 3
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_23
@@ -743,7 +743,7 @@
Intl 56 53 0 0 0 0 0 0 0 0 0 0 3
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_24
@@ -784,7 +784,7 @@
Intl 56 53 0 1 0 0 0 0 0 0 0 0 2
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_25
@@ -827,7 +827,7 @@
Intl 56 53 0 1 0 0 0 0 0 0 0 0 2
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_26
@@ -868,7 +868,7 @@
Intl 56 53 0 0 0 0 0 0 0 0 0 0 3
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_27
@@ -903,7 +903,7 @@
Intl 56 53 0 1 0 0 0 0 0 0 0 0 2
Pair Stats:
considered 1, no internal oligo 1, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_28
@@ -938,7 +938,7 @@
Intl 56 53 0 1 0 0 0 0 0 0 0 0 2
Pair Stats:
considered 1, no internal oligo 1, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_29
@@ -979,7 +979,7 @@
Intl 56 53 0 0 0 0 0 0 0 0 0 0 3
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_30
@@ -1020,7 +1020,7 @@
Intl 56 53 0 1 0 0 0 0 0 0 0 0 2
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_31
@@ -1063,7 +1063,7 @@
Intl 56 53 0 0 0 0 0 0 0 0 0 0 3
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_32
@@ -1106,7 +1106,7 @@
Intl 56 53 0 1 0 0 0 0 0 0 0 0 2
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_33
@@ -1147,7 +1147,7 @@
Intl 56 53 0 1 0 0 0 0 0 0 0 0 2
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR boundary_test_34
Modified: trunk/packages/primer3/trunk/test/primer_mispriming_boundary1_formatted_output
===================================================================
--- trunk/packages/primer3/trunk/test/primer_mispriming_boundary1_formatted_output 2007-02-17 04:15:57 UTC (rev 210)
+++ trunk/packages/primer3/trunk/test/primer_mispriming_boundary1_formatted_output 2007-02-17 04:31:55 UTC (rev 211)
@@ -39,7 +39,7 @@
Intl 163 0 0 0 0 0 0 0 0 0 121 0 0 42
Pair Stats:
considered 381, unacceptable product size 369, no internal oligo 11, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR pair_0
@@ -67,7 +67,7 @@
Intl 144 0 0 0 0 0 0 0 0 0 0 0 0 144
Pair Stats:
considered 32, unacceptable product size 32, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR pair_1
@@ -111,6 +111,6 @@
Intl 163 0 0 0 0 0 0 0 0 0 121 0 0 42
Pair Stats:
considered 6889, unacceptable product size 3403, no internal oligo 11, high mispriming library similarity 3474, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
Modified: trunk/packages/primer3/trunk/test/primer_mispriming_boundary2_formatted_output
===================================================================
--- trunk/packages/primer3/trunk/test/primer_mispriming_boundary2_formatted_output 2007-02-17 04:15:57 UTC (rev 210)
+++ trunk/packages/primer3/trunk/test/primer_mispriming_boundary2_formatted_output 2007-02-17 04:31:55 UTC (rev 211)
@@ -39,7 +39,7 @@
Intl 163 0 0 0 0 0 0 0 0 0 121 0 0 42
Pair Stats:
considered 381, unacceptable product size 369, no internal oligo 11, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR pair_0
@@ -67,6 +67,6 @@
Intl 144 0 0 0 0 0 0 0 0 0 0 0 0 144
Pair Stats:
considered 32, unacceptable product size 32, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
Modified: trunk/packages/primer3/trunk/test/primer_mispriming_formatted_output
===================================================================
--- trunk/packages/primer3/trunk/test/primer_mispriming_formatted_output 2007-02-17 04:15:57 UTC (rev 210)
+++ trunk/packages/primer3/trunk/test/primer_mispriming_formatted_output 2007-02-17 04:31:55 UTC (rev 211)
@@ -64,7 +64,7 @@
Right 1012 19 0 58 25 0 0 702 0 0 0 0 0 208
Pair Stats:
considered 23, unacceptable product size 17, ok 6
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR exon2
@@ -130,7 +130,7 @@
Right 827 0 0 72 314 0 236 0 0 0 0 0 0 205
Pair Stats:
considered 14, unacceptable product size 8, ok 6
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR exon2
@@ -204,7 +204,7 @@
Intl 3079 0 0 0 316 0 517 178 0 0 0 23 0 2045
Pair Stats:
considered 14, unacceptable product size 8, ok 6
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR exon1
@@ -281,7 +281,7 @@
Intl 3237 27 0 0 32 0 23 1880 0 0 0 0 0 1275
Pair Stats:
considered 29, unacceptable product size 18, high mispriming library similarity 2, ok 9
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR exon2
@@ -355,7 +355,7 @@
Intl 3079 0 0 0 316 0 517 178 0 0 0 23 0 2045
Pair Stats:
considered 116, unacceptable product size 66, tm diff too large 5, high mispriming library similarity 38, ok 7
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR exon2
@@ -401,6 +401,6 @@
Intl 3079 0 0 0 316 0 517 178 0 0 0 23 0 2045
Pair Stats:
considered 12459, unacceptable product size 6872, tm diff too large 4075, high mispriming library similarity 1512, ok 0
-primer3 release 1.0.1
+primer3 release 1.1.0
Modified: trunk/packages/primer3/trunk/test/primer_must_use_formatted_output
===================================================================
--- trunk/packages/primer3/trunk/test/primer_must_use_formatted_output 2007-02-17 04:15:57 UTC (rev 210)
+++ trunk/packages/primer3/trunk/test/primer_must_use_formatted_output 2007-02-17 04:31:55 UTC (rev 211)
@@ -34,7 +34,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR high_tm
@@ -74,7 +74,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR high_tm_and_self_any
@@ -114,7 +114,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR high_tm_and_self_any_and_target
@@ -154,7 +154,7 @@
Right 3 0 0 0 0 0 0 2 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR high_tm_and_self_any_and_excl_region
@@ -196,7 +196,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR high_tm_and_self_any_and_incl_region
@@ -236,7 +236,7 @@
Statistics
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR left_high_tm_and_self_any_and_right_bad_gc
@@ -272,7 +272,7 @@
Statistics
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR left_high_tm_and_self_any_and_right_bad_gc_and_target
@@ -308,7 +308,7 @@
Statistics
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR internal_too_short
@@ -351,7 +351,7 @@
Statistics
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR internal_too_cold
@@ -390,7 +390,7 @@
Statistics
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR internal_too_cold2
@@ -433,7 +433,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR mispriming
@@ -476,6 +476,6 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
Modified: trunk/packages/primer3/trunk/test/primer_position_penalty_formatted_output
===================================================================
--- trunk/packages/primer3/trunk/test/primer_position_penalty_formatted_output 2007-02-17 04:15:57 UTC (rev 210)
+++ trunk/packages/primer3/trunk/test/primer_position_penalty_formatted_output 2007-02-17 04:31:55 UTC (rev 211)
@@ -60,7 +60,7 @@
Right 3504 0 289 0 0 0 655 1723 0 0 0 0 0 837
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR AT3_X2
@@ -143,7 +143,7 @@
Right 6657 0 289 0 114 0 1327 3439 0 2 0 19 0 1467
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR AT3_X3
@@ -217,7 +217,7 @@
Right 5254 0 289 0 103 0 1706 1557 0 0 0 0 0 1599
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR AT3_X3'
@@ -288,7 +288,7 @@
Right 4294 0 289 0 209 0 512 2472 0 0 0 25 0 787
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR AT3_X4
@@ -371,7 +371,7 @@
Right 7004 0 289 0 0 0 1493 3474 0 0 0 0 0 1748
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR AT3_X5
@@ -439,7 +439,7 @@
Right 3744 0 289 0 0 0 874 1504 0 8 0 0 0 1069
Pair Stats:
considered 21, high end compl 20, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR AT3_X6
@@ -510,7 +510,7 @@
Right 4414 0 289 0 103 0 1578 1288 0 0 14 0 0 1142
Pair Stats:
considered 3, high end compl 2, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR CETP_X1
@@ -578,7 +578,7 @@
Right 4274 0 289 0 0 0 375 2978 0 0 0 0 0 632
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR CETP_X2
@@ -640,7 +640,7 @@
Right 2584 0 289 0 1 0 95 1901 0 0 0 0 0 298
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR CETP_X3
@@ -711,7 +711,7 @@
Right 4444 0 289 0 0 0 400 2950 0 0 0 0 0 805
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR CETP_X4
@@ -779,7 +779,7 @@
Right 3804 0 289 0 0 0 348 2565 0 0 0 0 0 602
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR CETP_X5
@@ -847,7 +847,7 @@
Right 3974 0 289 0 34 0 889 1971 0 0 0 0 0 791
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR CETP_X6
@@ -915,7 +915,7 @@
Right 3794 0 289 0 0 0 274 2616 2 3 0 0 0 610
Pair Stats:
considered 40, high end compl 38, ok 2
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR CETP_X7
@@ -983,7 +983,7 @@
Right 3593 0 289 0 15 0 752 1654 0 0 0 22 0 861
Pair Stats:
considered 102, high any compl 81, high end compl 20, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR CETP_X8
@@ -1051,7 +1051,7 @@
Right 3861 0 289 0 8 0 269 2629 0 0 0 22 0 644
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR CETP_X9
@@ -1116,7 +1116,7 @@
Right 4589 0 154 0 0 0 711 2838 0 0 0 0 0 886
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR CETP_X10
@@ -1169,7 +1169,7 @@
Right 1498 0 226 0 0 0 153 792 0 0 0 22 0 305
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR CETP_X11
@@ -1222,7 +1222,7 @@
Right 2741 0 116 0 42 0 336 1775 0 0 0 0 0 472
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR CETP_X12
@@ -1290,7 +1290,7 @@
Right 3774 0 289 0 0 0 619 2094 0 0 0 0 0 772
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR CETP_X13
@@ -1355,7 +1355,7 @@
Right 3434 0 289 0 0 0 586 1682 0 0 0 0 0 877
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR CETP_X14
@@ -1411,7 +1411,7 @@
Right 1454 0 289 0 0 0 83 882 0 0 0 0 0 200
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR CETP_X15
@@ -1476,7 +1476,7 @@
Right 3758 0 245 0 1 0 356 2464 0 0 3 22 0 667
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR CETP_X16
@@ -1544,7 +1544,7 @@
Right 3637 0 289 0 3 0 299 2316 0 0 0 25 0 705
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR F2_X1
@@ -1612,7 +1612,7 @@
Right 4194 0 289 0 8 0 235 3082 0 0 2 0 0 578
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR F2_X2
@@ -1683,7 +1683,7 @@
Right 4704 0 289 0 96 0 191 3583 0 4 0 0 0 541
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR F2_X3
@@ -1748,7 +1748,7 @@
Right 3344 0 289 0 1 0 379 2040 0 0 0 0 0 635
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR F2_X4
@@ -1813,7 +1813,7 @@
Right 3497 0 289 0 107 0 371 2132 0 0 0 18 0 580
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR F2_X5
@@ -1881,7 +1881,7 @@
Right 4154 0 289 0 14 0 310 2916 0 0 0 0 0 625
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR F2_X6
@@ -1952,7 +1952,7 @@
Right 4464 0 289 0 40 0 325 3245 0 0 0 0 0 565
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR F2_X7
@@ -2032,7 +2032,7 @@
Right 5938 0 289 0 51 0 580 3983 0 0 0 44 0 991
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR F2_X8
@@ -2103,7 +2103,7 @@
Right 4384 0 289 0 97 0 244 3201 0 0 0 0 0 553
Pair Stats:
considered 14, high end compl 12, ok 2
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR F2_X9
@@ -2174,7 +2174,7 @@
Right 4248 0 289 0 80 0 415 2693 0 0 0 23 0 748
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR F2_X10
@@ -2245,7 +2245,7 @@
Right 4621 0 289 0 8 0 474 3110 0 0 0 22 0 718
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR F2_X11
@@ -2316,7 +2316,7 @@
Right 4762 0 289 0 176 0 739 2528 0 0 0 13 0 1017
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR F2_X12
@@ -2390,7 +2390,7 @@
Right 4914 0 289 0 83 0 976 2660 0 0 0 0 0 906
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR F2_X13
@@ -2458,7 +2458,7 @@
Right 3804 0 289 0 0 0 873 1715 0 5 0 0 0 922
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR F2_X14
@@ -2526,7 +2526,7 @@
Right 3944 0 289 0 74 0 898 1848 0 2 0 0 0 833
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR F2R_X1
@@ -2576,7 +2576,7 @@
Right 951 0 226 0 209 0 0 510 0 0 0 0 0 6
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR F2R_X2-seg1
@@ -2644,7 +2644,7 @@
Right 6710 0 0 0 4 0 1540 3376 0 0 2 0 0 1788
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR F2R_X2-seg2
@@ -2715,7 +2715,7 @@
Right 6997 0 0 0 109 0 2483 2360 0 0 0 22 0 2023
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR F3_X1
@@ -2783,7 +2783,7 @@
Right 4094 0 289 0 716 0 101 2783 0 0 0 0 0 205
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR F3_X2
@@ -2851,7 +2851,7 @@
Right 4214 0 289 0 232 0 1968 682 0 0 0 0 0 1043
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR F3_X3
@@ -2925,7 +2925,7 @@
Right 5005 0 289 0 185 0 1231 1945 0 0 0 11 0 1344
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR F3_X4
@@ -2996,7 +2996,7 @@
Right 4770 0 289 0 176 0 1330 1913 0 0 0 21 0 1041
Pair Stats:
considered 36, high end compl 33, ok 3
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR F3_X5
@@ -3067,7 +3067,7 @@
Right 4397 0 289 0 28 0 1323 1565 0 4 0 44 0 1144
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR F3_X6
@@ -3138,7 +3138,7 @@
Right 4311 0 289 0 51 0 1766 895 0 0 0 22 0 1288
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR F5_X10
@@ -3188,7 +3188,7 @@
Right 2435 0 50 0 0 0 1068 632 0 0 0 0 0 685
Pair Stats:
considered 18, high end compl 16, ok 2
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR F7_X1
@@ -3256,7 +3256,7 @@
Right 3734 0 289 0 17 0 289 2735 0 1 0 0 0 403
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR F7_X2
@@ -3324,7 +3324,7 @@
Right 3601 0 289 0 16 0 390 2278 0 0 0 22 0 606
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR F7_X2'
@@ -3395,7 +3395,7 @@
Right 4704 0 289 0 1078 0 138 2874 0 0 0 0 0 325
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR F7_X3
@@ -3460,7 +3460,7 @@
Right 3344 0 289 0 0 0 284 2312 8 13 7 0 0 431
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR F7_X4
@@ -3528,7 +3528,7 @@
Right 4234 0 289 0 81 0 378 2891 0 0 0 0 0 595
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR F7_X5
@@ -3599,7 +3599,7 @@
Right 4504 0 289 0 1 0 499 3030 0 0 2 0 0 683
Pair Stats:
considered 20, high any compl 8, high end compl 10, ok 2
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR F7_X6
@@ -3667,7 +3667,7 @@
Right 3894 0 289 0 11 0 463 2371 0 1 0 44 0 715
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR F7_X7
@@ -3738,7 +3738,7 @@
Right 4181 0 289 0 10 0 236 3155 0 5 0 22 0 464
Pair Stats:
considered 126, high any compl 28, high end compl 97, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR F7_X8
@@ -3830,7 +3830,7 @@
Right 9054 0 289 0 79 0 1105 6374 0 1 0 0 0 1206
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR HCF2_X2
@@ -3940,7 +3940,7 @@
Right 12144 0 289 0 15 0 3651 4687 0 7 0 0 0 3495
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR HCF2_X3
@@ -4017,7 +4017,7 @@
Right 5393 0 289 0 28 0 1331 2335 19 7 0 67 0 1317
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR HCF2_X4
@@ -4088,7 +4088,7 @@
Right 4238 0 289 0 20 0 420 2770 0 0 0 44 0 695
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR HCF2_X5
@@ -4195,7 +4195,7 @@
Right 11432 0 289 0 57 0 2518 5947 0 12 0 20 0 2589
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR HMGCR_X1
@@ -4239,7 +4239,7 @@
Right 1490 0 65 0 0 0 478 584 0 0 0 0 0 363
Pair Stats:
considered 11, high end compl 10, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR HMGCR_X2
@@ -4277,7 +4277,7 @@
Right 770 0 0 0 11 0 448 81 7 1 0 0 0 222
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR HMGCR_X3
@@ -4315,7 +4315,7 @@
Right 530 0 0 0 1 0 416 4 0 0 0 0 0 109
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR HMGCR_X4
@@ -4353,7 +4353,7 @@
Right 500 0 0 0 0 0 123 202 0 0 0 0 0 175
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR HMGCR_X5
@@ -4391,7 +4391,7 @@
Right 710 0 0 0 0 0 202 248 0 1 1 0 0 258
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR HMGCR_X6
@@ -4429,7 +4429,7 @@
Right 720 0 0 0 0 0 181 338 0 0 0 0 0 201
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR HMGCR_X7
@@ -4467,7 +4467,7 @@
Right 820 0 0 0 3 0 237 349 0 0 0 0 0 231
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR HMGCR_X8
@@ -4508,7 +4508,7 @@
Right 1260 0 0 0 0 0 530 315 0 0 20 0 0 395
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR HMGCR_X9
@@ -4555,7 +4555,7 @@
Right 1977 0 0 0 0 0 1125 203 0 0 0 22 0 627
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR HMGCR_X10
@@ -4593,7 +4593,7 @@
Right 550 0 0 0 0 0 227 116 0 0 0 0 0 207
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR HMGCR_X11
@@ -4631,7 +4631,7 @@
Right 540 0 0 0 0 0 181 215 0 0 0 0 0 144
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR HMGCR_X12
@@ -4675,7 +4675,7 @@
Right 1600 0 0 0 0 0 707 324 0 0 0 0 0 569
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR HMGCR_X13
@@ -4716,7 +4716,7 @@
Right 1240 0 0 0 1 0 280 628 0 0 0 0 0 331
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR HMGCR_X14
@@ -4757,7 +4757,7 @@
Right 1230 0 0 0 0 0 122 805 0 0 0 0 0 303
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR HMGCR_X15
@@ -4795,7 +4795,7 @@
Right 710 0 0 0 0 0 172 343 0 0 0 0 0 195
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR HMGCR_X16
@@ -4836,7 +4836,7 @@
Right 1360 0 0 0 0 0 616 248 0 1 0 0 0 495
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR HMGCR_X17
@@ -4877,7 +4877,7 @@
Right 1060 0 0 0 1 0 217 601 0 0 0 0 0 241
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR HMGCR_X18
@@ -4918,7 +4918,7 @@
Right 1240 0 0 0 18 0 504 411 0 0 0 0 0 307
Pair Stats:
considered 62, high end compl 59, ok 3
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR HMGCR_X19
@@ -4959,7 +4959,7 @@
Right 1200 0 0 0 0 0 167 784 0 0 0 0 0 249
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR HMGCR_X20
@@ -5000,6 +5000,6 @@
Right 1150 0 0 0 42 0 311 512 26 3 0 20 0 236
Pair Stats:
considered 1, ok 1
-primer3 release 1.0.1
+primer3 release 1.1.0
Modified: trunk/packages/primer3/trunk/test/primer_task_formatted_output
===================================================================
--- trunk/packages/primer3/trunk/test/primer_task_formatted_output 2007-02-17 04:15:57 UTC (rev 210)
+++ trunk/packages/primer3/trunk/test/primer_task_formatted_output 2007-02-17 04:31:55 UTC (rev 211)
@@ -44,7 +44,7 @@
Right 1 0 0 0 0 0 0 0 0 0 0 0 1
Pair Stats:
considered 3, ok 3
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR pcr_primers_and_io
@@ -113,7 +113,7 @@
Intl 393 280 0 0 0 0 30 46 0 0 3 0 34
Pair Stats:
considered 7, ok 7
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR left_only
@@ -152,7 +152,7 @@
sid many tar excl bad GC too too any 3' poly end
ered Ns get reg GC% clamp low high compl compl X stab ok
Left 1121 38 23 0 0 0 42 866 0 0 0 0 152
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR right_only
@@ -191,7 +191,7 @@
sid many tar excl bad GC too too any 3' poly end
ered Ns get reg GC% clamp low high compl compl X stab ok
Right 623 27 36 0 5 0 230 145 0 6 0 0 174
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR hyb_probe_only
@@ -228,7 +228,7 @@
sid many tar excl bad GC too too any 3' poly end
ered Ns get reg GC% clamp low high compl compl X stab ok
Intl 1040 27 0 33 0 0 44 804 0 0 0 0 132
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR left_only
@@ -253,7 +253,7 @@
sid many tar excl bad GC too too any 3' poly end
ered Ns get reg GC% clamp low high compl compl X stab ok
Left 1 0 0 0 0 0 0 0 0 0 0 0 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR right_only
@@ -278,7 +278,7 @@
sid many tar excl bad GC too too any 3' poly end
ered Ns get reg GC% clamp low high compl compl X stab ok
Left 1 0 0 0 0 0 0 0 0 0 0 0 1
-primer3 release 1.0.1
+primer3 release 1.1.0
PRIMER PICKING RESULTS FOR hyb_probe_only
@@ -303,6 +303,6 @@
sid many tar excl bad GC too too any 3' poly end
ered Ns get reg GC% clamp low high compl compl X stab ok
Left 1 0 0 0 0 0 0 0 0 0 0 0 1
-primer3 release 1.0.1
+primer3 release 1.1.0
Copied: trunk/packages/primer3/trunk/test/primer_tm_lc_masking_formatted_output (from rev 210, trunk/packages/primer3/branches/upstream/current/test/primer_tm_lc_masking_formatted_output)
Copied: trunk/packages/primer3/trunk/test/primer_tm_lc_masking_input (from rev 210, trunk/packages/primer3/branches/upstream/current/test/primer_tm_lc_masking_input)
Copied: trunk/packages/primer3/trunk/test/primer_tm_lc_masking_output (from rev 210, trunk/packages/primer3/branches/upstream/current/test/primer_tm_lc_masking_output)
More information about the debian-med-commit
mailing list