[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