diff -Nru primer3-2.3.7/COPYING.txt primer3-2.4.0/COPYING.txt --- primer3-2.3.7/COPYING.txt 2016-02-17 10:11:38.000000000 +0000 +++ primer3-2.4.0/COPYING.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,339 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program 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 program 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 this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. diff -Nru primer3-2.3.7/create_test_folders.pl primer3-2.4.0/create_test_folders.pl --- primer3-2.3.7/create_test_folders.pl 1970-01-01 00:00:00.000000000 +0000 +++ primer3-2.4.0/create_test_folders.pl 2017-11-03 16:29:54.000000000 +0000 @@ -0,0 +1,74 @@ +#!/usr/bin/perl + +# ====================================================================== +# (c) Copyright 1996,1997,1998,1999,2000,2001,2004,2006,2007,2008,2010, +# 2011,2012,2016 +# Whitehead Institute for Biomedical Research, Steve Rozen, +# Andreas Untergasser and Helen Skaletsky +# All rights reserved. +# +# This file is part of the primer3 suite. +# +# The primer3 suite 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 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 this file (file gpl-2.0.txt in the source distribution); if +# not, write to the Free Software Foundation, Inc., 51 Franklin St, +# Fifth Floor, Boston, MA 02110-1301 USA +# +# 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. +# ====================================================================== + +use warnings 'all'; +use strict; + +if (-d "test") { + if (-d "test/primer_list_tmp") { + print "Folder excists: test/primer_list_tmp\n"; + } else { + mkdir "test/primer_list_tmp"; + print "Created folder: test/primer_list_tmp\n"; + } + if (-d "test/primer1_list_tmp") { + print "Folder excists: test/primer1_list_tmp\n"; + } else { + mkdir "test/primer1_list_tmp"; + print "Created folder: test/primer1_list_tmp\n"; + } + if (-d "test/primer1_th_list_tmp") { + print "Folder excists: test/primer1_th_list_tmp\n"; + } else { + mkdir "test/primer1_th_list_tmp"; + print "Created folder: test/primer1_th_list_tmp\n"; + } + if (-d "test/th-w-other-tasks_list_tmp") { + print "Folder excists: test/th-w-other-tasks_list_tmp\n"; + } else { + mkdir "test/th-w-other-tasks_list_tmp"; + print "Created folder: test/th-w-other-tasks_list_tmp\n"; + } + +} +else { + print "Run this script in the Primer3 root folder\n"; +} + + diff -Nru primer3-2.3.7/debian/changelog primer3-2.4.0/debian/changelog --- primer3-2.3.7/debian/changelog 2017-08-26 04:55:03.000000000 +0000 +++ primer3-2.4.0/debian/changelog 2018-04-10 18:23:03.000000000 +0000 @@ -1,3 +1,32 @@ +primer3 (2.4.0-1ubuntu2) bionic; urgency=medium + + * No-change rebuild. + + -- Matthias Klose Tue, 10 Apr 2018 20:23:03 +0200 + +primer3 (2.4.0-1ubuntu1) bionic; urgency=medium + + * Allow stderr output from the autopkgtests. + + -- Steve Langasek Mon, 09 Apr 2018 23:21:51 -0700 + +primer3 (2.4.0-1) unstable; urgency=medium + + * New upstream version + * Secure URI in watch file + * Standards-Version: 4.1.3 + * debhelper 11 + + -- Andreas Tille Wed, 21 Feb 2018 09:21:42 +0100 + +primer3 (2.3.7-5) unstable; urgency=medium + + * d/upstream/metadata: + - Added references to registries + - yamllint cleanliness + + -- Steffen Moeller Thu, 14 Sep 2017 15:05:29 +0200 + primer3 (2.3.7-4) unstable; urgency=medium * Fix build with gcc-7 diff -Nru primer3-2.3.7/debian/compat primer3-2.4.0/debian/compat --- primer3-2.3.7/debian/compat 2017-08-26 04:55:03.000000000 +0000 +++ primer3-2.4.0/debian/compat 2018-02-21 08:21:42.000000000 +0000 @@ -1 +1 @@ -10 +11 diff -Nru primer3-2.3.7/debian/control primer3-2.4.0/debian/control --- primer3-2.3.7/debian/control 2017-08-26 04:55:03.000000000 +0000 +++ primer3-2.4.0/debian/control 2018-04-10 06:21:51.000000000 +0000 @@ -1,12 +1,13 @@ Source: primer3 -Maintainer: Debian Med Packaging Team +Maintainer: Ubuntu Developers +XSBC-Original-Maintainer: Debian Med Packaging Team Uploaders: Steffen Moeller , Charles Plessy , Andreas Tille Section: science Priority: optional -Build-Depends: debhelper (>= 10) -Standards-Version: 4.1.0 +Build-Depends: debhelper (>= 11) +Standards-Version: 4.1.3 Vcs-Browser: https://anonscm.debian.org/cgit/debian-med/primer3.git Vcs-Git: https://anonscm.debian.org/git/debian-med/primer3.git Homepage: http://primer3.sourceforge.net diff -Nru primer3-2.3.7/debian/patches/hardening.patch primer3-2.4.0/debian/patches/hardening.patch --- primer3-2.3.7/debian/patches/hardening.patch 2017-08-26 04:55:03.000000000 +0000 +++ primer3-2.4.0/debian/patches/hardening.patch 2018-02-21 08:21:42.000000000 +0000 @@ -15,7 +15,7 @@ # Note, for profiling, use # make O_OPTS='-pg -O0' LDFLAGS='-g -pg' -@@ -163,7 +163,7 @@ $(NTTHAL_EXE): thal_main.o thal.o +@@ -175,7 +175,7 @@ $(NTTHAL_EXE): thal_main.o thal.o $(CPP) $(LDFLAGS) -o $@ thal_main.o thal.o $(LDLIBS) $(OLIGOTM_EXE): oligotm_main.c oligotm.h $(LIBOLIGOTM) diff -Nru primer3-2.3.7/debian/patches/primer_thermodynamic_parameters_path_2_etc.patch primer3-2.4.0/debian/patches/primer_thermodynamic_parameters_path_2_etc.patch --- primer3-2.3.7/debian/patches/primer_thermodynamic_parameters_path_2_etc.patch 2017-08-26 04:55:03.000000000 +0000 +++ primer3-2.4.0/debian/patches/primer_thermodynamic_parameters_path_2_etc.patch 2018-02-21 08:21:42.000000000 +0000 @@ -8,7 +8,7 @@ --- a/src/primer3_boulder_main.c +++ b/src/primer3_boulder_main.c -@@ -505,18 +505,18 @@ read_thermodynamic_parameters() +@@ -539,18 +539,18 @@ read_thermodynamic_parameters() return; } #else @@ -46,7 +46,7 @@ fprintf(stderr, "Error: thermodynamic approach chosen, but path to thermodynamic parameters not specified\n"); --- a/src/release_notes.txt +++ b/src/release_notes.txt -@@ -218,9 +218,9 @@ defaults. The default is --default_vers +@@ -272,9 +272,9 @@ defaults. The default is --default_vers 1.5 IMPORTANT: because PRIMER_THERMODYNAMIC_ALIGNMENT=1, PRIMER_THERMODYNAMIC_PARAMETERS_PATH must point to the right location. This tag specifies the path to the directory that contains all the @@ -58,26 +58,23 @@ there is only one default location: .\primer3_config\. If the the parameter files are not in one these locations, be sure to set PRIMER_THERMODYNAMIC_PARAMETERS_PATH ---- a/primer3_manual.htm -+++ b/primer3_manual.htm -@@ -229,9 +229,9 @@ defaults. The default is --default_vers - 2.5. IMPORTANT: because PRIMER_THERMODYNAMIC_OLIGO_ALIGNMENT=1, - PRIMER_THERMODYNAMIC_PARAMETERS_PATH must point to the right location. +--- a/src/primer3_manual.htm ++++ b/src/primer3_manual.htm +@@ -222,7 +222,7 @@ defaults. The default is --default_vers This tag specifies the path to the directory that contains all the --parameter files used by the thermodynamic approach. In Linux, there -+parameter files used by the thermodynamic approach. In Debian, there + parameter files used by the thermodynamic approach. In Linux, there are two *default* locations that are tested if this tag is not -defined: ./primer3_config/ and /opt/primer3_config/. For Windows, +defined: ./primer3_config/ and /etc/primer3_config/. For Windows, there is only one default location: .\primer3_config\. If the the parameter files are not in one these locations, be sure to set PRIMER_THERMODYNAMIC_PARAMETERS_PATH.
-@@ -2452,7 +2452,7 @@ the propensity of oligos to anneal to un +@@ -2082,7 +2082,7 @@ the propensity of oligos to anneal to un

This tag specifies the path to the directory that contains all the parameter files used by the thermodynamic approach. In Linux, there are two - default locations that are tested if this tag is not defined: + default locations that are tested if this tag is not defined: -./primer3_config/ and /opt/primer3_config/. +./primer3_config/ and /etc/primer3_config/. For Windows, there is only one default location: .\primer3_config\.

- - +

PRIMER_MAX_SELF_ANY (decimal, 9999.99; default 8.00)

+

PRIMER_MAX_SELF_ANY describes the tendency of a primer to bind to diff -Nru primer3-2.3.7/debian/primer3.docs primer3-2.4.0/debian/primer3.docs --- primer3-2.3.7/debian/primer3.docs 2017-08-26 04:55:03.000000000 +0000 +++ primer3-2.4.0/debian/primer3.docs 2018-02-21 08:21:42.000000000 +0000 @@ -1,3 +1,3 @@ -primer3_manual.htm +src/primer3_manual.htm src/release_notes.txt debian/README.test diff -Nru primer3-2.3.7/debian/rules primer3-2.4.0/debian/rules --- primer3-2.3.7/debian/rules 2017-08-26 04:55:03.000000000 +0000 +++ primer3-2.4.0/debian/rules 2018-02-21 08:21:42.000000000 +0000 @@ -23,7 +23,7 @@ mkdir -p $(sampledir)/src; cp -aR ./test/* $(sampledir)/test; cp -aR ./src/humrep_and_simple.txt $(sampledir)/src; - cp primer*.txt $(sampledir)/; + cp -a settings_files/primer*.txt $(sampledir)/; chmod -x $(sampledir)/test/thal*; sed -i 's#/usr/local/bin/perl#/usr/bin/perl#' $(sampledir)/test/long_seq_tm_test.pl ; sed -i 's#/usr/local/bin/perl#/usr/bin/perl#' $(sampledir)/test/vgrep.pl ; diff -Nru primer3-2.3.7/debian/tests/control primer3-2.4.0/debian/tests/control --- primer3-2.3.7/debian/tests/control 2017-08-26 04:55:03.000000000 +0000 +++ primer3-2.4.0/debian/tests/control 2018-04-10 06:21:42.000000000 +0000 @@ -1,3 +1,3 @@ Tests: run-unit-test Depends: valgrind, @ -Restrictions: +Restrictions: allow-stderr diff -Nru primer3-2.3.7/debian/upstream/metadata primer3-2.4.0/debian/upstream/metadata --- primer3-2.3.7/debian/upstream/metadata 2017-08-26 04:55:03.000000000 +0000 +++ primer3-2.4.0/debian/upstream/metadata 2018-02-21 08:21:42.000000000 +0000 @@ -17,6 +17,13 @@ DOI: 10.1385/1-59259-192-2:365 URL: http://www.springerlink.com/content/u16755q84278vh5w/ eprint: http://www.springerlink.com/content/u16755q84278vh5w/fulltext.pdf +Registry: + - Name: OMICtools + Entry: OMICS_02325 + - Name: bio.tools + Entry: primer3 + - Name: RRID + Entry: SCR_003139 Watch: http://sf.net/primer3/primer3-([\d.]*)\.tar\.gz Webservice: - http://frodo.wi.mit.edu/primer3/ diff -Nru primer3-2.3.7/debian/watch primer3-2.4.0/debian/watch --- primer3-2.3.7/debian/watch 2017-08-26 04:55:03.000000000 +0000 +++ primer3-2.4.0/debian/watch 2018-02-21 08:21:42.000000000 +0000 @@ -1,3 +1,3 @@ version=4 -http://sf.net/primer3/primer3-[-src]*([\d.]*)\.(?:tgz|tbz|txz|(?:tar\.(?:gz|bz2|xz))) +https://sf.net/primer3/primer3-[-src]*([\d.]*)\.(?:tgz|tbz|txz|(?:tar\.(?:gz|bz2|xz))) diff -Nru primer3-2.3.7/example primer3-2.4.0/example --- primer3-2.3.7/example 2016-02-17 10:11:38.000000000 +0000 +++ primer3-2.4.0/example 2017-11-03 16:29:54.000000000 +0000 @@ -1,16 +1,12 @@ SEQUENCE_ID=example -SEQUENCE_TEMPLATE=GTAGTCAGTAGACNATGACNACTGACGATGCAGACNACACACACACACACAGCACACAGGTATTAGTGGGCCATTCGATCCCGACCCAAATCGATAGCTACGATGACG -SEQUENCE_TARGET=37,21 -PRIMER_TASK=pick_detection_primers +SEQUENCE_TEMPLATE=tattggtgaagcctcaggtagtgcagaatatgaaacttcaggatccagtgggcatgctactggtagtgctgccggccttacaggcattatggtggcaaagtcgacagagttta +PRIMER_TASK=generic PRIMER_PICK_LEFT_PRIMER=1 -PRIMER_PICK_INTERNAL_OLIGO=1 +PRIMER_PICK_INTERNAL_OLIGO=0 PRIMER_PICK_RIGHT_PRIMER=1 -PRIMER_OPT_SIZE=18 -PRIMER_MIN_SIZE=15 -PRIMER_MAX_SIZE=21 -PRIMER_MAX_NS_ACCEPTED=1 -PRIMER_PRODUCT_SIZE_RANGE=75-100 -P3_FILE_FLAG=1 -SEQUENCE_INTERNAL_EXCLUDED_REGION=37,21 +PRIMER_OPT_SIZE=20 +PRIMER_MIN_SIZE=18 +PRIMER_MAX_SIZE=22 +PRIMER_PRODUCT_SIZE_RANGE=75-150 PRIMER_EXPLAIN_FLAG=1 = diff -Nru primer3-2.3.7/.gitignore primer3-2.4.0/.gitignore --- primer3-2.3.7/.gitignore 1970-01-01 00:00:00.000000000 +0000 +++ primer3-2.4.0/.gitignore 2017-11-03 16:29:54.000000000 +0000 @@ -0,0 +1,64 @@ +# Compiled Object files +*.o + +# Compiled Static libraries +*.a + +# Executables +src/long_seq_tm_test +src/ntdpal +src/ntthal +src/oligotm +src/primer3_core +src/primer3_masker +src/*.exe + +# Temporary Test Files +test/primer1_list_tmp/* +test/primer1_th_list_tmp/* +test/primer_list_tmp/* +test/th-w-other-tasks_list_tmp/* +test/*.err +test/*.tmp +test/*.tmp2 +test/*.valg +test/*.vg +test/primer_global_err/*.tmp +test/primer_global_err/*.tmp2 +test/primer_global_err/*.valg +test/primer_global_err/*.vg + +# Individual Test Files +test/hyb_probe_only.for +test/hyb_probe_only.int +test/left_only.for +test/pcr_primers.for +test/pcr_primers.rev +test/pcr_primers_and_io.for +test/pcr_primers_and_io.int +test/pcr_primers_and_io.rev +test/right_only.for +test/right_only.rev +test/syntax01.for +test/syntax01.int +test/syntax01.rev +test/syntax02.for +test/syntax02.int +test/syntax02.rev +test/syntax03.for +test/syntax03.int +test/syntax03.rev +test/syntax04.for +test/syntax04.int +test/syntax04.rev +test/syntax07.for +test/syntax07.int +test/syntax07.rev +test/syntax09.for +test/syntax09.int +test/syntax09.rev +test/syntax10.for +test/syntax10.int +test/syntax10.rev + +.DS_Store Binary files /tmp/tmpA5tWgC/Cyycip5Tc5/primer3-2.3.7/kmer_lists/homo_sapiens_11.list and /tmp/tmpA5tWgC/IM2xMFAcLm/primer3-2.4.0/kmer_lists/homo_sapiens_11.list differ Binary files /tmp/tmpA5tWgC/Cyycip5Tc5/primer3-2.3.7/kmer_lists/homo_sapiens_16.list and /tmp/tmpA5tWgC/IM2xMFAcLm/primer3-2.4.0/kmer_lists/homo_sapiens_16.list differ Binary files /tmp/tmpA5tWgC/Cyycip5Tc5/primer3-2.3.7/kmer_lists/mus_musculus_11.list and /tmp/tmpA5tWgC/IM2xMFAcLm/primer3-2.4.0/kmer_lists/mus_musculus_11.list differ Binary files /tmp/tmpA5tWgC/Cyycip5Tc5/primer3-2.3.7/kmer_lists/mus_musculus_16.list and /tmp/tmpA5tWgC/IM2xMFAcLm/primer3-2.4.0/kmer_lists/mus_musculus_16.list differ diff -Nru primer3-2.3.7/kmer_lists/readme.txt primer3-2.4.0/kmer_lists/readme.txt --- primer3-2.3.7/kmer_lists/readme.txt 1970-01-01 00:00:00.000000000 +0000 +++ primer3-2.4.0/kmer_lists/readme.txt 2017-11-03 16:29:54.000000000 +0000 @@ -0,0 +1,10 @@ +Currently, directory kmer_lists contains TEST files (because of the size of +list files). + +To download kmer-lists or to make ones, please visit +http://primer3.ut.ee/lists.htm or homepage of "FastGT package version +4.0" at http://bioinfo.ut.ee/?page_id=167&lang=en + +By default Primer3 uses kmer-lists with k-mer size 11 and size 16. File name +format should be for human homo_sapiens_11.list and homo_sapiens_16.list +(species_name_wordlenght.list) \ No newline at end of file diff -Nru primer3-2.3.7/LICENSE primer3-2.4.0/LICENSE --- primer3-2.3.7/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ primer3-2.4.0/LICENSE 2017-11-03 16:29:54.000000000 +0000 @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program 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 program 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 this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff -Nru primer3-2.3.7/primer3_manual.htm primer3-2.4.0/primer3_manual.htm --- primer3-2.3.7/primer3_manual.htm 2016-02-17 10:13:35.000000000 +0000 +++ primer3-2.4.0/primer3_manual.htm 1970-01-01 00:00:00.000000000 +0000 @@ -1,4355 +0,0 @@ - - - - - primer3 release 2.3.7 - manual - - - -

-

PRIMER3 RELEASE 2.3.7 MANUAL

-

CONTENTS

-1. COPYRIGHT AND LICENSE
-2. INTRODUCTION
-3. CITING PRIMER3
-4. FAIR USE OF PRIMER3
-5. CHANGES FROM VERSION 2.2.3
-6. INSTALLATION INSTRUCTIONS - UNIX/LINUX
-7. INSTALLATION INSTRUCTIONS - Mac OSX
-8. INSTALLATION INSTRUCTIONS - WINDOWS
-9. BUILDING A Mac OSX UNIVERSAL BINARY
-10. SYSTEM REQUIREMENTS
-11. INVOKING primer3_core
-12. COMMAND LINE ARGUMENTS
-13. INPUT AND OUTPUT CONVENTIONS
-14. AN EXAMPLE
-15. HOW TO MIGRATE TAGS TO IO VERSION 4
-16. "SEQUENCE" INPUT TAGS
-17. "GLOBAL" INPUT TAGS
-18. "PROGRAM" INPUT TAGS
-19. HOW PRIMER3 CALCULATES THE PENALTY VALUE
-20. PRIMER3 SETTINGS FILE FORMAT
-21. OUTPUT TAGS
-22. EXAMPLE OUTPUT
-23. ADVICE FOR PICKING PRIMERS
-24. CAUTIONS
-25. WHAT TO DO IF PRIMER3 CANNOT FIND ANY PRIMERS?
-26. DIFFERENCES FROM EARLIER VERSIONS
-27. EXIT STATUS CODES
-28. PRIMER3 WWW INTERFACES
-29. ACKNOWLEDGMENTS
-

-

1. COPYRIGHT AND LICENSE

- -
Copyright (c) 1996,1997,1998,1999,2000,2001,2004,2006,2007,2008,2009,2010
-              2011,2012,2013,2016
-Whitehead Institute for Biomedical Research, Steve Rozen
-(http://purl.com/STEVEROZEN/), Andreas Untergasser and Helen Skaletsky. All rights
-reserved.
-
-    This file is part of the primer3 suite and libraries.
-
-    The primer3 suite and libraries are free software;
-    you can redistribute them and/or modify them 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 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 this software (file gpl-2.0.txt in the source
-    distribution); if not, write to the Free Software
-    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-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.
-
- -

2. 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 (template) sequence, and
-
-o possibilities for ectopic priming (amplifying the wrong sequence)
-
-o many 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.
- -

3. CITING PRIMER3

- -

We request but do not require that use of this software be cited in -publications as
-
-Untergasser A, Cutcutache I, Koressaar T, Ye J, Faircloth BC, Remm M and Rozen SG.
-Primer3--new capabilities and interfaces.
-Nucleic Acids Res. 2012 Aug 1;40(15):e115. -
-
-The paper is available at -http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3424584/
-
-Source code available at http://sourceforge.net/projects/primer3/.

- -

4. FAIR USE OF PRIMER3

- -

-The development of primer3 is promoted by a small group of -enthusiastic scientists mainly in their free time.They do not gain -any financial profit with primer3.
-
-There are two groups of primer3 users: end users, who run -primer3 to pick their primers and programmers, who use primer3 -in their scripts or software packages. We encourage both to use -primer3. -
-
-If you are an end user, we request but do not -require that use of this software be cited in publications -as listed above under CITING PRIMER3. -
-
-If you are a programmer, you will see that primer3 is now -distributed under the GNU General Public License, version 2 or -(at your option) any later version of the License (GPL2). - -As we understand it, if you include parts of the primer3 source -code in your source code or link to primer3 binary libraries in -your executable, you have to release your software also under -GPL2. If you only call primer3 from your software and interpret -its output, you can use any license you want for your software. -If you modify primer3 and then release your modified software, -you have to release your modifications in source code under -GPL2 as well. -
-
-We chose GPL2 because we wanted primer3 to evolve and for the -improvements to find their way back into the main distribution. - -If you are programming a new web interface which runs primer3, -please include in the about page of the tool the sentence -"<your software name> uses primer3 version ...". -Please consider releasing your software under GPL2 as well, -especially if you do not want to maintain it in the future. -
-
-There is no need to ask us for permission to include primer3 -in your tools. - -

5. CHANGES FROM VERSION 2.2.3

- -

-1. The tag PRIMER_THERMODYNAMIC_ALIGNMENT was replaced by two new tags: -

- - PRIMER_THERMODYNAMIC_OLIGO_ALIGNMENT which governs hairpin -and oligo-oligo interactions. Therefore, whenever it is set to 1 -(the default) thermodynamic alignments will be used for oligo-oligo -interactions and hairpins. -

- - PRIMER_THERMODYNAMIC_TEMPLATE_ALIGNMENT which governs the -oligo-template interactions and, when set to 1 (default is 0), will -cause primer3 to use the thermodynamic alignment against templates. -

-The reason for this change is to provide the option of using the -old alignment for oligo-template interactions when the thermodynamic -alignment is too slow or the template is too long (there is a hard -limit THAL_MAX_SEQ=10k on the length of sequences involved in -thermodynamic alignments). -

-2. We changed the following default values:
-
-2.1. Changing default oligo temperature calculations -

-PRIMER_TM_FORMULA=1 (was 0)
-PRIMER_SALT_CORRECTIONS=1 (was 0)
-
-2.2. Making thermodynamic secondary structure calculations for oligos the default:
-
-PRIMER_THERMODYNAMIC_OLIGO_ALIGNMENT=1 (was 0)
-
-2.3. The following need reasonable values to support the changes in 2.1 -and 2.2 above:
-
-PRIMER_SALT_DIVALENT=1.5 (was 0.0)
-PRIMER_DNTP_CONC=0.6 (was 0.0)
-
-2.4. To make old defaults easily accessible, we added a command line -argument, --default_version=1, which directs primer3_core to use the -old defaults. --default_version=2 directs primer3_core to use the new -defaults. The default is --default_version=2.
-
-2.5. IMPORTANT: because PRIMER_THERMODYNAMIC_OLIGO_ALIGNMENT=1, -PRIMER_THERMODYNAMIC_PARAMETERS_PATH must point to the right location. -This tag specifies the path to the directory that contains all the -parameter files used by the thermodynamic approach. In Linux, there -are two *default* locations that are tested if this tag is not -defined: ./primer3_config/ and /opt/primer3_config/. For Windows, -there is only one default location: .\primer3_config\. If the the -parameter files are not in one these locations, be sure to set -PRIMER_THERMODYNAMIC_PARAMETERS_PATH.
-
-2.6. Changed default for
-
-PRIMER_LIB_AMBIGUITY_CODES_CONSENSUS=0 (was 1)
-
-(0 is almost always the the behavior one wants.)
-
-2.7. To get the behavior of -default_version=1 when -default_version=2 -set the following:
-
-PRIMER_TM_FORMULA=0
-PRIMER_SALT_CORRECTIONS=0
-PRIMER_THERMODYNAMIC_OLIGO_ALIGNMENT=0
-PRIMER_THERMODYNAMIC_TEMPLATE_ALIGNMENT=0
-PRIMER_SALT_DIVALENT=0.0
-PRIMER_DNTP_CONC=0.0
-PRIMER_LIB_AMBIGUITY_CODES_CONSENSUS=1
-
-2.8. To get the behavior of -default_version=2 when -default_version=1 -set the following:
-
-PRIMER_TM_FORMULA=1
-PRIMER_SALT_CORRECTIONS=1
-PRIMER_THERMODYNAMIC_OLIGO_ALIGNMENT=1
-PRIMER_THERMODYNAMIC_TEMPLATE_ALIGNMENT=0
-PRIMER_SALT_DIVALENT=1.5
-PRIMER_DNTP_CONC=0.6
-PRIMER_LIB_AMBIGUITY_CODES_CONSENSUS=0
-
-3. We changed the NULL value for SEQUENCE_FORCE_{LEFT,RIGHT}_START_END to --1000000, and made it an error to select PRIMER_FIRST_BASE_INDEX <= -this value. This is to correct an error when -SEQUENCE_FORCE_{LEFT,RIGHT}_START_END was -1 (value previously used to -indicate a NULL) but PRIMER_FIRST_BASE_INDEX was < 0, which caused the -intended NULL value (-1) to be treated as a constraint on primer -location (a constraint that was not possible to satisfy).
-
-4. We changed the PRIMER_TASK called 'pick_detection_primers' to -'generic' while retaining 'pick_detection_primers' as an alias for -backward compatibility.
-
-5. The code now uses 'end' alignments when assessing template mispriming -using thermodynamic alignments. This is consistent with the approach -taken with the previous alignment algorithm and with checking for -mispriming against repeat libraries.
-
-6. We removed PRIMER_PAIR_MAX_HAIRPIN_TH (which was ignored previously).
-
-7. Primer3 now requires the user to set SEQUENCE_TARGET, not -SEQUENCE_INCLUDED_REGION when PRIMER_TASK=pick_discriminative_primers
-
-8. When PRIMER_TASK=pick_discriminative_primers or -PRIMER_TASK=pick_cloning_primers the value of SEQUENCE_INCLUDED_REGION -is no longer changed to the entire input sequence.
-
-9. The handling of divalent cations when PRIMER_SALT_CORRECTIONS=2 -(not the default and not the recommended value) has been updated. The -rationale is that, when divalent cations are present, the formula by -Owczarzy et al., 2004 (used previously by Primer3) can be improved -upon as described in (Ahsen et al., 2010; Owczarzy et al., -2008). Therefore we have updated the melting temperature calculation -to follow the scheme in Figure 9 of (Owczarzy et al., 2008). Please -find references to these papers below in the manual.
-
-10. We modified the error handling of non-memory related errors that -can occur during the thermodynamic alignment. They are no longer -fatal errors.
-
-11. We removed io_version 3, which was only kept for backward compatibility -with very old versions of primer3.
-
-12. In addition, several error corrections:
-
-12.1. Corrected a short, fixed-size buffer for the file/path names specified -by the command line arguments -output, -error and for the settings -file.
-
-12.2. Two other corrected errors were in p3_set_gs_primer_self_end and -p3_set_gs_primer_internal_oligo_self_end, which erroneously multiplied -their 'val' arguments by 100.
-
-12.3. Primer3 now detects and handles the situation in which user-supplied -primers (SEQUENCE_PRIMER and SEQUENCE_PRIMER_REVCOMP) have the left -primer to the right of the right primer. Also issue a warning if -user-supplied primers occur in more than one location in the template.

- -

6. INSTALLATION INSTRUCTIONS - UNIX/LINUX

- -

Unzip and untar the distribution. -DO NOT do this on a PC if you are going to -compile and/or test on a different operation system. -Primer3_core will not compile -and various tests will fail if pc -newlines get inserted into the code and test files. Instead, move the -distribution (primer3-<release>.tar.gz) to Unix/Linux, and then
-
-$ unzip primer3-<release>.tar.gz
-$ tar xvf primer3-<release>.tar
-$ cd primer3-<release>/src
-
-If you do not use gcc, then you will probably have -to modify the makefile to -use your (ANSI) C compiler with the compile -and link flags it understands.
-
-$ make all
-
-# You should have created executables primer3_core, ntdpal,
-# olgotm, and long_seq_tm_test
-
-$ make test
-
-# You should not see 'FAILED' during the tests.
-
-If your perl command is not called perl (for example, if it is -called perl5) you will have to modify the -Makefile in the test/ directory.
-
-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.

- -

7. INSTALLATION INSTRUCTIONS - Mac OSX

- -

How to install this software
-============================
-
-1. Double click on the .tar.gz file to extract the archive.
-
-2. The binary files are located in the 'bin' [for 'binary'] - folder
-
-3. (Optional) To run the tests, cd to the new directory and - then the test folder
-
-4. (Optional) Within this folder run: - a. 'perl -w p3test.pl'
-
-5. (Optional) You should not see 'FAILED' during the tests.
-
-6. (Optional) *NOTE*: 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).
-
-7. Copy the following files to a location of your choice:
- a. bin/long_seq_tm_test
- b. bin/ntdpal
- c. bin/oligotm
- d. bin/primer3_core
-
-8. (Optional) Make sure this location is within your $PATH - (see below)
-
-
-Where to put the binary files
-=============================
-
-A good place to put these is within ~/bin/ (this means in -your home folder, within a folder named `bin` [for 'binary']).
-
-You can also just drag the 'bin' folder to a location within -your home directory.
-
-You can certainly also copy the files within 'bin' to -/usr/local/bin (if you are an administrator) or another -similar location.
-
-You may need to adjust the permissions on the binaries if -you get fancy.
-
-
-Add the location to your $PATH
-==============================
-
-This is an optional step, but it will allow you to run -primer3 in any directory on your machine as your user just -by typing its name (primer3_core).
-
-*** You should be very careful when altering your $PATH as -things can go very wrong. See below for an alternate -method. ***
-
-If you added the binaries to /usr/local/bin, then you do -not need to do this.
-
-If you added the binaries to a local directory (let's say -~/bin/), do the following:
-
- 1. Edit your ~/.bash_profile. You can edit this on - the command line (Terminal) with:
-
- nano ~/.bash_profile
-
- 2. Add the following line if it is not present - (replacing '~/bin' if you used another directory):
-
- PATH=$PATH:~/bin/
-
- 3. If a PATH line *is* present, ensure you add a colon - to the end of what is there and then the directory, - so if you have something like:
-
- a) PATH=$PATH:/usr/local/genome/bin:/sw/bin
-
- make it look like:
-
- b) PATH=$PATH:/usr/local/genome/bin:/sw/bin:~/bin
-
- 4. Quit and restart terminal for the changes to take - effect.
-
-If you don't add the location to your $PATH
-===========================================
-
-Assuming you don't want to modify your $PATH, you can still -run the binaries. Let's assume you put the files in -'~/bin/. You may run primer3_core by doing either of the -following:
-
- 1. ~/bin/primer3_core < yourInputFile
- 2. /Users/<your username>/bin/primer3_core < yourInputFile
-
-The first option is just a shortcut to the second.

- -

8. INSTALLATION INSTRUCTIONS - WINDOWS

- -

How to install this software
-============================
-
-1. Unzip the '.zip' file downloaded from SourceForge.net
-2. You will create a primer3-<release> folder in the location - where the file was unzipped
-3. You may copy the files from the 'bin' directory of the - primer3-<release> folder to a location of your choice. - The exact same files are located within the 'src' folder - so that the tests may be run (windows does not allow - relative paths in shortcuts).
-
-Running the tests
-=================
-You must install a perl distribution to run the -windows tests.
-
-We *strongly* recommend you install ActiveState perl -(http://www.activestate.com/products/activeperl/) -as this was used to test our primer3 builds, and it is -known to work.
-
-1. Click on 'Start > Run...'
-2. Type 'cmd' into the space provided
-3. Hit enter (or select 'OK')
-4. Navigate to the location of the tests:
-
- A. if you put it in
- C:/Documents and Settings/YourName/primer3-<release>/test/,
- you would type
- 'cd c:/Documents and Settings/YourName/primer3-<release>/test/'
-
- B. you can also type 'cd ' (don't forget the space - after cd) and drag the primer3-<release> folder onto the - command-line window from windows explorer, this will - fill in the location for you
-
-5. On the command line, run 'mingw32-make TESTOPTS=--windows' in this - directory. You can also run the tests individually, - for example 'perl p3test.pl --windows'.
-6. You should see [OK] for all of the tests.
-
-Running the software
-====================
-
-To run the program, you must do so from the MS-DOS -command-line. The intricacies of the DOS command line are -beyond the scope of this document. Google for more -information, if needed. Here is a quick summary:
-
-1. Click on 'Start > Run...'
-2. Type 'cmd' into the space provided
-3. Hit enter (or select 'OK')
-4. Navigate to the location of the binary:
-
- A. if you put it in
- C:/Documents and Settings/YourName/Temp,
- you would type
- 'cd c:/Documents and Settings/YourName/Temp'
-
- B. you can also type 'cd ' (don't forget the space - after cd) and drag the primer3 folder onto the - command-line window from windows explorer, this will - fill in the location for you
-
-5. Run the example file by typing:
-
- primer3_core.exe < example
-
-Other files may be run in a similar fashion. If your input -filename is 'MyData.txt' you can run primer3 using this -file (in the correct format; see README) with:
-
- primer3_core.exe < MyData.txt
-
-If your file is not in the folder containing -primer3_core.exe, you could run the program from the -primer3_core folder using:
-
- primer3_core.exe < c:/someOtherFolder/someOtherFolder/MyData.txt
-
-Finally, if you want to run the program without going to -its folder, assuming primer3_core.exe is in c:/Temp, you -could run:
-
- c:/Temp/primer3_core.exe < c:/someOtherFolder/someOtherFolder/MyData.txt

- -

9. BUILDING A Mac OSX UNIVERSAL BINARY

- -

** To build a processor-native, NON-universal binary of primer3, -the following is NOT necessary**.
-
-The instructions above should be sufficient.
-
-A pre-compiled, universal binary download for OSX is available from -http://sourceforge.net/projects/primer3/ for the current release.
-
-These instructions assume you want to build binaries compatible -with *both* of the current processor architectures used by the Apple -platform (i,e. the binaries will be run on both PPC and Intel platforms).
-
-Provided you have the OS X developer tools installed -(you can download from http://developer.apple.com after -registering for a free account), you can compile a universal -build (Intel and PPC native) of primer3.
-
-o you must be running OS X > 10.4 and should have the most - recent version of XCode
-o run `make -f Makefile.OSX.Leopard all` if you run OS X 10.5
-o run `make -f Makefile.OSX.Tiger all` is you run OS X 10.4
-o run the tests as directed above
-
-Additional instructions for 'installing' the binaries may be found in -the README.OSX.txt.
-
-You should be able to compile a 3-way binary which includes PPC64 support -(Intel, PPC, PPC64) by adding the `-arch ppc64` flag to the -end of both the CFLAGS and LDFLAGS lines at the top of Makefile.OSX. -This has not been tested.

- -

10. SYSTEM REQUIREMENTS

- -

Please see http://sourceforge.net/projects/primer3/ for up-to-date -information. Primer3 should compile on any system using with an -ANSI C compiler like Linux/Unix, MacOS 10 or MS Windows. The -Makefile will probably need to be modified for compilation with -C compilers other than gcc. -

- -

11. INVOKING primer3_core

- -

By default, the executable program produced by the Makefile is -called primer3_core. This is the C program that does the heavy -lifting of primer picking. There are also two, more user-friendly, -web interfaces (distributed separately).
-
-The command line for primer3 is:
-
-primer3_core [ -format_output ] [ -default_version=1|-default_version=2 ] [ -io_version=4 ] [ -p3_settings_file=<file_path> ] [ -echo_settings_file ] [ -strict_tags ] [ -output=<file_path> ] [ -error=<file_path> ] [ input_file ]
-
-A complete list of valid command line arguments can be found in -COMMAND LINE ARGUMENTS below.
-
-If no input file is specified, primer3_core will read its input -from stdin.

- -

12. COMMAND LINE ARGUMENTS

- -

This section presents the list of arguments that may given in -the command line. Any unique abbreviation of the arguments is allowed -(e.g. -ab instead of -about) and each argument can be preceded by -either one or two dashes. In the case of arguments that receive -values, the '=' can be replaced -by a space.

-

-about

-

With this argument primer3 generates one line of output -indicating the release number and then exits. This allows scripts to -query primer3 for its version.

- -

-default_version=n

-

n=2 is the default, and directs primer3_core -to use the latest default values (the ones documented here). -n=1 directs primer3_core to use defaults from version -2.2.3 and before. -

- -

-format_output

-

This argument indicates that primer3_core should generate -user-oriented (rather than program-oriented) output.

- -

-strict_tags

-

This argument indicates that primer3_core should generate -a fatal error if there is any tag in the input that -it does not recognize. This tag also applies to the settings file (see -documentation for the -p3_settings_file argument), -if any, but with limitations: lines that do not begin with -PRIMER_ or P3_FILE_ID are always ignored in the settings file.

- -

-p3_settings_file=file_path

-

This argument specifies a settings file, -file_path. Primer3 reads the global -("PRIMER_...") parameters from this file first. -Tags appearing in the settings file override -default primer3 settings. The values set in -the settings files can be also overridden -by tags in the input file. See -primer3 file documentation for details on the file -format. WARNING: the -strict_tags flag applies only to -tags beginning with the string "PRIMER_"; lines that do -not begin with the string "PRIMER_" are ignored.

- -

-echo_settings_file

-

This argument indicates that primer3_core -should print the input tags specified -in the given settings file. If no settings file is -provided or if the -format_output option is given, -this argument will have no effect.

- -

-io_version=n

-

This argument is provided for backward compatibility. --io_version=4 is the only legal value and the default. - - - - - -output=file_path - -This argument specifies the file where the output -should be written. If omitted, stdout is used.

- -

-error=file_path

-

This argument specifies the file where the error -messages should be written. If omitted, stderr is used.

- - -

13. INPUT AND OUTPUT CONVENTIONS

- -

By default, primer3 accepts input in Boulder-IO format, a -pre-XML, pre-RDF, text-based input/output format for -program-to-program data interchange. By default, primer3 also -produces output in the same format.
-
-When run with the -format_output command-line flag, primer3 -prints a more user-oriented report for each sequence.
-
-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 '='.
-
-

An example of a legal (TAG,VALUE) pair is
-
-SEQUENCE_ID=my_marker
-
-and an example of a Boulder-IO record is
-
-SEQUENCE_ID=test1
-SEQUENCE_TEMPLATE=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:
-
-SEQUENCE_ID=test1
-SEQUENCE_TEMPLATE=GACTGATCGATGCTAGCTACGATCGATCGATGCATGCTAGCTAGCTAGCTGCTAGC
-=
-SEQUENCE_ID=test2
-SEQUENCE_TEMPLATE=CATCATCATCATCGATGCTAGCATCNNACGTACGANCANATGCATCGATCGT
-=
-SEQUENCE_ID=test3
-SEQUENCE_TEMPLATE=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 output tag PRIMER_ERROR -(see below). Primer3 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.
-
-This document lists the 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 primer3.
-
-Except for tags with the type "interval list" each tag should only -appear ONCE in any given input record. This restriction is not -systematically checked, and if a tag appears more than once, the -new value silently over-writes the previous value. -

- -

14. 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 create 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 'example', and then type the -Unix command 'primer3_core < example'.
-
-Let's look at the input record itself: -
-SEQUENCE_ID=example
-SEQUENCE_TEMPLATE=GTAGTCAGTAGACNATGACNACTGACGATGCAGACNACACACACACACACAGCACACAGGTATTAGTGGGCCATTCGATCCCGACCCAAATCGATAGCTACGATGACG
-SEQUENCE_TARGET=37,21
-PRIMER_TASK=generic
-PRIMER_PICK_LEFT_PRIMER=1
-PRIMER_PICK_INTERNAL_OLIGO=1
-PRIMER_PICK_RIGHT_PRIMER=1
-PRIMER_OPT_SIZE=18
-PRIMER_MIN_SIZE=15
-PRIMER_MAX_SIZE=21
-PRIMER_MAX_NS_ACCEPTED=1
-PRIMER_PRODUCT_SIZE_RANGE=75-100
-P3_FILE_FLAG=1
-SEQUENCE_INTERNAL_EXCLUDED_REGION=37,21
-PRIMER_EXPLAIN_FLAG=1
-=
-
-A breakdown of the reasoning behind each of the TAG=VALUE pairs -is below:
-
-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 P3_FILE_FLAG is non-0 -Because it provides the names of the files that contain lists -of oligos that primer3 considered.
-
-SEQUENCE_TEMPLATE=GTAGTCAGTAGACNATGACNACTGACGATGCAGACNACACACACACACACAGCACACAGGTATTAGTGGGCCATTCGATCCCGACCCAAATCGATAGCTACGATGACG
-
-The SEQUENCE_TEMPLATE provides the sequence -from which primer3 will design primers. -Note that there is no newline until the sequence terminates completely.
-
-SEQUENCE_TARGET=37,21
-
-There is a simple sequence repeat in this sequence. -The repeat starts -at base 37, and has a length of 21 bases. We instruct primer3 to -choose primers that flank the repeat site (because -we want to use the PCR product for -determining the length of the repeat, which is likely to be polymorphic). -
-
-PRIMER_TASK=generic
-
-The PRIMER_TASK tells primer3 which -type of primers to pick. You can select typical primers for PCR -detection, primers for cloning or for sequencing.
-
-PRIMER_PICK_LEFT_PRIMER=1
-PRIMER_PICK_INTERNAL_OLIGO=1
-PRIMER_PICK_RIGHT_PRIMER=1
-
-We would like to pick a left primer, an internal oligo and a -right primer, so we set these flags to 1 (true). In combination -with the PRIMER_TASK this tags control which primers are -picked.
-
-PRIMER_OPT_SIZE=18
-
-Since our sequence length is rather small (only 108 bases long), -we lower the PRIMER_OPT_SIZE from 20 to 18. It is -more likely that primer3 will succeed if it aims for smaller -primers.
-
-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_MAX_NS_ACCEPTED=1
-
-Since the sequence is short with a -non-negligible amount of unknown bases (N's) in it, we -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.
-
-P3_FILE_FLAG=1
-
-Because we have a short sequence with many Ns and -with a simple sequence repeat that we must amplify, -primer3 might fail to -pick and primers. Therefore, we want to get the list of primers it -considered, so that we could manually pick primers -ourselves if primer3 fails to do so. Setting this flag to 1 -asks primer3 to output the primers it considered to a -forwar primers and reverse primers to output files.
-
-SEQUENCE_INTERNAL_EXCLUDED_REGION=37,21
-
-Normally CA-repeats make poor hybridization probes (because they -not specific enough). Therefore, we exclude the CA repeat (which -is the TARGET) from consideration for the internal 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.
-
-There were many Boulder-IO input tags that were not -specified, -which is legal. For the tags with default -values, those defaults will be used in the analysis. For the -tags with NO default values (for example SEQUENCE_TARGET), the -functionality requested by the those tags will be absent. -Also, please note -that it is not the case that we need to surround a simple sequence -repeat every time we want to pick primers!

- -

15. HOW TO MIGRATE TAGS TO IO VERSION 4

- -

With primer3 release 2.0, many Boulder-IO tags were -modified and new tags were introduced. The new primer3 tags are -designed with the idea in mind that computer scripts and other -programs use primer3_core. The modifications make it easier for -programs to read and write primer3 input and output.
-
-Furthermore the primer3 default values and the use of -PRIMER_WT_TEMPLATE_MISPRIMING and PRIMER_PAIR_WT_TEMPLATE_MISPRIMING -have changed in version 2.0. -
-
-There are three classes of input: "Sequence" input tags describe -a particular input sequence to primer3, and are reset after -every Boulder record (now starting with SEQUENCE_). "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 (now starting with PRIMER_). "Program" -parameters that deal with the behavior of the primer3 program -itself (now starting with P3_). See below for a list of the -modified tags.
-
-The handling of PRIMER_TASK changed completely. In the past we -used it to tell primer3 what task to perform. Now the task is -complemented with PRIMER_PICK_RIGHT_PRIMER, -PRIMER_PICK_INTERNAL_OLIGO and PRIMER_PICK_LEFT_PRIMER, which -specify which primers are to be picked.
-
-These Tags are modified:
-
-The "per sequence" tags:

-
-NEW VERSION                       - OLD VERSION
-----------------------------------------------------------------------------------------                       
-SEQUENCE_ID                       - PRIMER_SEQUENCE_ID
-SEQUENCE_TEMPLATE                 - SEQUENCE
-SEQUENCE_QUALITY                  - PRIMER_SEQUENCE_QUALITY
-SEQUENCE_INCLUDED_REGION          - INCLUDED_REGION
-SEQUENCE_TARGET                   - TARGET
-SEQUENCE_EXCLUDED_REGION          - EXCLUDED_REGION
-SEQUENCE_START_CODON_POSITION     - PRIMER_START_CODON_POSITION
-SEQUENCE_PRIMER                   - PRIMER_LEFT_INPUT
-SEQUENCE_PRIMER_REVCOMP           - PRIMER_RIGHT_INPUT
-
-
-SEQUENCE_INTERNAL_OLIGO           - PRIMER_INTERNAL_OLIGO_INPUT
-SEQUENCE_INTERNAL_EXCLUDED_REGION - PRIMER_INTERNAL_OLIGO_EXCLUDED_REGION
-
---------------------------------------------------------------------------------
-The "global" tags:
-
-NEW VERSION                       - OLD VERSION
-
-PRIMER_TASK                       - PRIMER_TASK (modified use)
-PRIMER_PICK_RIGHT_PRIMER          - --- did not exist
-PRIMER_PICK_INTERNAL_OLIGO        - PRIMER_PICK_INTERNAL_OLIGO (modified use)
-PRIMER_PICK_LEFT_PRIMER           - --- did not exist
-
-PRIMER_PAIR_WT_TEMPLATE_MISPRIMING- PRIMER_PAIR_WT_TEMPLATE_MISPRIMING (modified use)
-PRIMER_WT_TEMPLATE_MISPRIMING     - PRIMER_WT_TEMPLATE_MISPRIMING (modified use)
-PRIMER_MAX_LIBRARY_MISPRIMING     - PRIMER_MAX_MISPRIMING
-PRIMER_INTERNAL_MAX_LIBRARY_MISHYB- PRIMER_INTERNAL_OLIGO_MAX_MISHYB
-PRIMER_PAIR_MAX_LIBRARY_MISPRIMING- PRIMER_PAIR_MAX_MISPRIMING
-PRIMER_WT_LIBRARY_MISPRIMING      - PRIMER_WT_REP_SIM
-PRIMER_INTERNAL_WT_LIBRARY_MISHYB - PRIMER_INTERNAL_WT_REP_SIM
-PRIMER_PAIR_WT_LIBRARY_MISPRIMING - PRIMER_PAIR_WT_REP_SIM
-
-PRIMER_MAX_NS_ACCEPTED            - PRIMER_NUM_NS_ACCEPTED
-PRIMER_PAIR_MAX_DIFF_TM           - PRIMER_MAX_DIFF_TM
-PRIMER_SALT_MONOVALENT            - PRIMER_SALT_CONC
-PRIMER_SALT_DIVALENT              - PRIMER_DIVALENT_CONC
-PRIMER_TM_FORMULA                 - PRIMER_TM_SANTALUCIA
-
-PRIMER_MAX_SELF_ANY               - PRIMER_SELF_ANY
-PRIMER_MAX_SELF_END               - PRIMER_SELF_END
-
-PRIMER_WT_SELF_ANY                - PRIMER_WT_COMPL_ANY
-PRIMER_WT_SELF_END                - PRIMER_WT_COMPL_END
-PRIMER_PAIR_MAX_COMPL_ANY         - PRIMER_PAIR_ANY
-PRIMER_PAIR_MAX_COMPL_END         - PRIMER_PAIR_END
-
-P3_FILE_FLAG                      - PRIMER_FILE_FLAG
-P3_COMMENT                        - PRIMER_COMMENT
-
-PRIMER_INTERNAL_SALT_MONOVALENT   - PRIMER_INTERNAL_OLIGO_SALT_CONC
-PRIMER_INTERNAL_SALT_DIVALENT     - PRIMER_INTERNAL_OLIGO_DIVALENT_CONC
-PRIMER_INTERNAL_WT_SELF_ANY       - PRIMER_IO_WT_COMPL_ANY
-PRIMER_INTERNAL_WT_SELF_END       - PRIMER_IO_WT_COMPL_END
-PRIMER_INTERNAL_MAX_NS_ACCEPTED   - PRIMER_INTERNAL_OLIGO_NUM_NS
-PRIMER_INTERNAL_MAX_SELF_ANY      - PRIMER_INTERNAL_OLIGO_SELF_ANY
-PRIMER_INTERNAL_MAX_SELF_END      - PRIMER_INTERNAL_OLIGO_SELF_END
-
-The following tags INTERNAL_OLIGO is replaced by INTERNAL:
-
-PRIMER_INTERNAL_OPT_SIZE          - PRIMER_INTERNAL_OLIGO_OPT_SIZE
-PRIMER_INTERNAL_MIN_SIZE          - PRIMER_INTERNAL_OLIGO_MIN_SIZE
-PRIMER_INTERNAL_MAX_SIZE          - PRIMER_INTERNAL_OLIGO_MAX_SIZE
-PRIMER_INTERNAL_OPT_TM            - PRIMER_INTERNAL_OLIGO_OPT_TM
-PRIMER_INTERNAL_MIN_TM            - PRIMER_INTERNAL_OLIGO_MIN_TM
-PRIMER_INTERNAL_MAX_TM            - PRIMER_INTERNAL_OLIGO_MAX_TM
-PRIMER_INTERNAL_MIN_GC            - PRIMER_INTERNAL_OLIGO_MIN_GC
-PRIMER_INTERNAL_OPT_GC_PERCENT    - PRIMER_INTERNAL_OLIGO_OPT_GC_PERCENT
-PRIMER_INTERNAL_MAX_GC            - PRIMER_INTERNAL_OLIGO_MAX_GC
-PRIMER_INTERNAL_DNTP_CONC         - PRIMER_INTERNAL_OLIGO_DNTP_CONC
-PRIMER_INTERNAL_DNA_CONC          - PRIMER_INTERNAL_OLIGO_DNA_CONC
-PRIMER_INTERNAL_MAX_POLY_X        - PRIMER_INTERNAL_OLIGO_MAX_POLY_X 
-PRIMER_INTERNAL_MISHYB_LIBRARY    - PRIMER_INTERNAL_OLIGO_MISHYB_LIBRARY
-PRIMER_INTERNAL_MIN_QUALITY       - PRIMER_INTERNAL_OLIGO_MIN_QUALITY
-
-The following tags IO is replaced by INTERNAL:
-
-PRIMER_INTERNAL_WT_TM_GT          - PRIMER_IO_WT_TM_GT
-PRIMER_INTERNAL_WT_TM_LT          - PRIMER_IO_WT_TM_LT
-PRIMER_INTERNAL_WT_SIZE_LT        - PRIMER_IO_WT_SIZE_LT
-PRIMER_INTERNAL_WT_SIZE_GT        - PRIMER_IO_WT_SIZE_GT
-PRIMER_INTERNAL_WT_GC_PERCENT_LT  - PRIMER_IO_WT_GC_PERCENT_LT
-PRIMER_INTERNAL_WT_GC_PERCENT_GT  - PRIMER_IO_WT_GC_PERCENT_GT
-PRIMER_INTERNAL_WT_NUM_NS         - PRIMER_IO_WT_NUM_NS
-PRIMER_INTERNAL_WT_SEQ_QUAL       - PRIMER_IO_WT_SEQ_QUAL
-
-

--------------------------------------------------------------------------------
-OUTPUT TAGS:
-
-There are three big changes on the output:
-- INTERNAL_OLIGO is now replaced by INTERNAL.
-- The first version is numbered 0.
-- The "PRODUCT" tags are renamed
-- The errors are modified
-- Errors caused by a specific primer are given as PRIMER_LEFT_4_PROBLEMS
-
-Now all primer related output follows the rule: -PRIMER_{LEFT,RIGHT,INTERNAL,PAIR}_<j>_<tag_name>. -where <j> is an integer from 0 to n, where n is at most the -value of PRIMER_NUM_RETURN - 1.
-
-This allows easy scripting by using the underscores _ to split -the name. The first part is PRIMER, the second the type of oligo -or pair parameters, the third is always a number, starting at -0 and the rest is used by the tags.
-
-That affects also (shown for output number 4):

-
-NEW VERSION                             - OLD VERSION
-------------------------------------------------------------------------------------------------------
-PRIMER_PAIR_4_PENALTY                   - PRIMER_PAIR_PENALTY_4 (number moved behind PAIR)
-PRIMER_PAIR_4_PRODUCT_SIZE              - PRIMER_PRODUCT_SIZE_4 (grouped with PAIR)
-PRIMER_PAIR_4_PRODUCT_TM                - PRIMER_PRODUCT_TM_4 (grouped with PAIR)
-PRIMER_PAIR_4_PRODUCT_TM_OLIGO_TM_DIFF  - PRIMER_PRODUCT_TM_OLIGO_TM_DIFF_4 (grouped with PAIR)
-
-PRIMER_INTERNAL_EXPLAIN                 - PRIMER_INTERNAL_OLIGO_EXPLAIN
-
-PRIMER_LEFT_4_LIBRARY_MISPRIMING                   - PRIMER_LEFT_4_MISPRIMING_SCORE
-PRIMER_INTERNAL_4_LIBRARY_MISHYB                   - PRIMER_INTERNAL_OLIGO_4_MISHYB_SCORE
-PRIMER_RIGHT_4_LIBRARY_MISPRIMING                  - PRIMER_RIGHT_4_MISPRIMING_SCORE
-PRIMER_PAIR_4_LIBRARY_MISPRIMING                   - PRIMER_PAIR_4_MISPRIMING_SCORE
-
-
- -

16. "SEQUENCE" INPUT TAGS

- -

"Sequence" input tags start with SEQUENCE_... and describe a -particular input sequence to primer3. They are reset after every -Boulder record. Errors in "Sequence" input tags invalidate the -current record, but primer3 will continue to process additional -records.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SEQUENCE_EXCLUDED_REGIONSEQUENCE_INCLUDED_REGIONSEQUENCE_PRIMER_REVCOMP
SEQUENCE_FORCE_LEFT_ENDSEQUENCE_INTERNAL_EXCLUDED_REGIONSEQUENCE_QUALITY
SEQUENCE_FORCE_LEFT_STARTSEQUENCE_INTERNAL_OLIGOSEQUENCE_START_CODON_POSITION
SEQUENCE_FORCE_RIGHT_ENDSEQUENCE_OVERLAP_JUNCTION_LISTSEQUENCE_TARGET
SEQUENCE_FORCE_RIGHT_STARTSEQUENCE_PRIMERSEQUENCE_TEMPLATE
SEQUENCE_IDSEQUENCE_PRIMER_PAIR_OK_REGION_LIST 
-

SEQUENCE_ID (string; default empty)

- -

Short description of the sequence. It is used as 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 P3_FILE_FLAG is non-zero.

- - -

SEQUENCE_TEMPLATE (nucleotide sequence; default empty)

- -

The sequence from which to choose primers. The sequence -must be presented 5' -> 3' (i.e, in the normal way). -In general, the bases may be upper or lower case, but -lower case letters are treated -specially if PRIMER_LOWERCASE_MASKING is set. -The entire sequence MUST be all on a single line. -(In other words, the sequence cannot span several lines.) -

- - -

SEQUENCE_INCLUDED_REGION (interval list; default empty)

- -

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.

- - -

SEQUENCE_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, or an exon for resequencing. 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.

- - -See also PRIMER_INSIDE_PENALTY, PRIMER_OUTSIDE_PENALTY. -Has a different meaning when PRIMER_TASK=pick_sequencing_primers. -See PRIMER_TASK for more information. - - -

SEQUENCE_EXCLUDED_REGION (interval list; default empty)

- -

Primers and 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.

- - -

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

- -

- -This tag allows detailed specification of possible -locations of left and right primers in primer pairs. -

-The associated value must be a semicolon-separated list of

- -
-<left_start>,<left_length>,<right_start>,<right_length>
-
-

quadruples. - -The left primer must be in the region specified by -<left_start>,<left_length> and -the right primer must be in the region specified by -<right_start>,<right_length>. - -<left_start> and <left_length> specify the location of the left primer in terms of the index of -the first base in the region and the length of the region. - -<right_start> and <right_length> specify the location of the right primer in analogous fashion. - -As seen in the example below, if no integers are specified for a region then the location of the -corresponding primer is not constrained. - -

-Example:

-
-SEQUENCE_PRIMER_PAIR_OK_REGION_LIST=100,50,300,50 ; 900,60,, ; ,,930,100
-
-

-
-Specifies that there are three choices: -

-Left primer in the 50 bp region starting at position 100 AND right primer -in the 50 bp region starting at position 300 -

-OR -

-Left primer in the 60 bp region starting at position 900 (and right primer anywhere) -

-OR -

-Right primer in the 100 bp region starting at position 930 (and left -primer anywhere) -

- - -

SEQUENCE_OVERLAP_JUNCTION_LIST (space separated integers; default empty)

- -

If this list is not empty, then -the forward OR the reverse primer must overlap one of -these junction points by at least PRIMER_MIN_3_PRIME_OVERLAP_OF_JUNCTION -nucleotides at the 3' end and at least PRIMER_MIN_5_PRIME_OVERLAP_OF_JUNCTION -nucleotides at the 5' end. -

-In more detail: The junction associated with a given position is the space immediately to the right -of that position in the template sequence on the strand given as input. -

-For example:

-
-
-SEQUENCE_OVERLAP_JUNCTION_LIST=20
-# 1-based indexes
-PRIMER_MIN_3_PRIME_OVERLAP_OF_JUNCTION=4
-
-template: atcataggccatgcctgagc^gctacgact
-
-          ok           ...gagc^gcta-3'  (left primer)
-          not ok       ...gagc^gct-3'   (left primer)
-          ok           3'-ctcg^cgat...  (right pimer)
-          not ok        3'-tcg^cgat...  (right primer)
-
-PRIMER_MIN_5_PRIME_OVERLAP_OF_JUNCTION=5
-
-         ok           5'-tgagc^gccg...  (left primer)
-         not ok        5'-gagc^gccg...  (left primer)
-         ok           ...tgagc^gctac-5' (right primer)
-         not ok       ...tgagc^gcta-5'  (right primer)
-
-
-
- - -

SEQUENCE_INTERNAL_EXCLUDED_REGION (interval list; default empty)

- -

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.

- - -

SEQUENCE_PRIMER (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_TEMPLATE.

- - -

SEQUENCE_INTERNAL_OLIGO (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_TEMPLATE.

- - -

SEQUENCE_PRIMER_REVCOMP (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_TEMPLATE.

- - -

SEQUENCE_START_CODON_POSITION (int; default -2000000)

- -

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.

- - -

SEQUENCE_QUALITY (space separated integers; default empty)

- -

A list of space separated integers. There must be exactly -one integer for each base in SEQUENCE_TEMPLATE if this argument is -non-empty. For example, for the sequence ANNTTCA... -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).

- - -

SEQUENCE_FORCE_LEFT_START (int; default -1000000)

- -

Forces the 5' end of the left primer to be at the indicated -position. Primers are also picked if they violate certain -constraints. The default value indicates that the start of the left primer -can be anywhere.

- - -

SEQUENCE_FORCE_LEFT_END (int; default -1000000)

- -

Forces the 3' end of the left primer to be at the indicated -position. Primers are also picked if they violate certain -constraints. The default value indicates that the end of the left primer -can be anywhere.

- - -

SEQUENCE_FORCE_RIGHT_START (int; default -1000000)

- -

Forces the 5' end of the right primer to be at the indicated -position. Primers are also picked if they violate certain -constraints. The default value indicates that the start of the right primer -can be anywhere.

- - -

SEQUENCE_FORCE_RIGHT_END (int; default -1000000)

- -

Forces the 3' end of the right primer to be at the indicated -position. Primers are also picked if they violate certain -constraints. The default value indicates that the end of the right primer -can be anywhere.

- - -

17. "GLOBAL" INPUT TAGS

- -

"Global" input tags start with PRIMER_... and describe the -general parameters that primer3 should use in its searches. -The values of these tags persist between input Boulder -records until or unless they are explicitly reset. Errors -in "Global" input tags are fatal because they invalidate -the basic conditions under which primers are being picked.
-
-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. -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PRIMER_DNA_CONCPRIMER_MAX_END_GCPRIMER_PAIR_WT_PRODUCT_SIZE_LT
PRIMER_DNTP_CONCPRIMER_MAX_END_STABILITYPRIMER_PAIR_WT_PRODUCT_TM_GT
PRIMER_EXPLAIN_FLAGPRIMER_MAX_GCPRIMER_PAIR_WT_PRODUCT_TM_LT
PRIMER_FIRST_BASE_INDEXPRIMER_MAX_HAIRPIN_THPRIMER_PAIR_WT_PR_PENALTY
PRIMER_GC_CLAMPPRIMER_MAX_LIBRARY_MISPRIMINGPRIMER_PAIR_WT_TEMPLATE_MISPRIMING
PRIMER_INSIDE_PENALTYPRIMER_MAX_NS_ACCEPTEDPRIMER_PAIR_WT_TEMPLATE_MISPRIMING_TH
PRIMER_INTERNAL_DNA_CONCPRIMER_MAX_POLY_XPRIMER_PICK_ANYWAY
PRIMER_INTERNAL_DNTP_CONCPRIMER_MAX_SELF_ANYPRIMER_PICK_INTERNAL_OLIGO
PRIMER_INTERNAL_MAX_GCPRIMER_MAX_SELF_ANY_THPRIMER_PICK_LEFT_PRIMER
PRIMER_INTERNAL_MAX_HAIRPIN_THPRIMER_MAX_SELF_ENDPRIMER_PICK_RIGHT_PRIMER
PRIMER_INTERNAL_MAX_LIBRARY_MISHYBPRIMER_MAX_SELF_END_THPRIMER_PRODUCT_MAX_TM
PRIMER_INTERNAL_MAX_NS_ACCEPTEDPRIMER_MAX_SIZEPRIMER_PRODUCT_MIN_TM
PRIMER_INTERNAL_MAX_POLY_XPRIMER_MAX_TEMPLATE_MISPRIMINGPRIMER_PRODUCT_OPT_SIZE
PRIMER_INTERNAL_MAX_SELF_ANYPRIMER_MAX_TEMPLATE_MISPRIMING_THPRIMER_PRODUCT_OPT_TM
PRIMER_INTERNAL_MAX_SELF_ANY_THPRIMER_MAX_TMPRIMER_PRODUCT_SIZE_RANGE
PRIMER_INTERNAL_MAX_SELF_ENDPRIMER_MIN_3_PRIME_OVERLAP_OF_JUNCTIONPRIMER_QUALITY_RANGE_MAX
PRIMER_INTERNAL_MAX_SELF_END_THPRIMER_MIN_5_PRIME_OVERLAP_OF_JUNCTIONPRIMER_QUALITY_RANGE_MIN
PRIMER_INTERNAL_MAX_SIZEPRIMER_MIN_END_QUALITYPRIMER_SALT_CORRECTIONS
PRIMER_INTERNAL_MAX_TMPRIMER_MIN_GCPRIMER_SALT_DIVALENT
PRIMER_INTERNAL_MIN_GCPRIMER_MIN_LEFT_THREE_PRIME_DISTANCEPRIMER_SALT_MONOVALENT
PRIMER_INTERNAL_MIN_QUALITYPRIMER_MIN_QUALITYPRIMER_SEQUENCING_ACCURACY
PRIMER_INTERNAL_MIN_SIZEPRIMER_MIN_RIGHT_THREE_PRIME_DISTANCEPRIMER_SEQUENCING_INTERVAL
PRIMER_INTERNAL_MIN_TMPRIMER_MIN_SIZEPRIMER_SEQUENCING_LEAD
PRIMER_INTERNAL_MISHYB_LIBRARYPRIMER_MIN_THREE_PRIME_DISTANCEPRIMER_SEQUENCING_SPACING
PRIMER_INTERNAL_MUST_MATCH_FIVE_PRIMEPRIMER_MIN_TMPRIMER_TASK
PRIMER_INTERNAL_MUST_MATCH_THREE_PRIMEPRIMER_MISPRIMING_LIBRARYPRIMER_THERMODYNAMIC_OLIGO_ALIGNMENT
PRIMER_INTERNAL_OPT_GC_PERCENTPRIMER_MUST_MATCH_FIVE_PRIMEPRIMER_THERMODYNAMIC_PARAMETERS_PATH
PRIMER_INTERNAL_OPT_SIZEPRIMER_MUST_MATCH_THREE_PRIMEPRIMER_THERMODYNAMIC_TEMPLATE_ALIGNMENT
PRIMER_INTERNAL_OPT_TMPRIMER_NUM_RETURNPRIMER_TM_FORMULA
PRIMER_INTERNAL_SALT_DIVALENTPRIMER_OPT_GC_PERCENTPRIMER_WT_END_QUAL
PRIMER_INTERNAL_SALT_MONOVALENTPRIMER_OPT_SIZEPRIMER_WT_END_STABILITY
PRIMER_INTERNAL_WT_END_QUALPRIMER_OPT_TMPRIMER_WT_GC_PERCENT_GT
PRIMER_INTERNAL_WT_GC_PERCENT_GTPRIMER_OUTSIDE_PENALTYPRIMER_WT_GC_PERCENT_LT
PRIMER_INTERNAL_WT_GC_PERCENT_LTPRIMER_PAIR_MAX_COMPL_ANYPRIMER_WT_HAIRPIN_TH
PRIMER_INTERNAL_WT_HAIRPIN_THPRIMER_PAIR_MAX_COMPL_ANY_THPRIMER_WT_LIBRARY_MISPRIMING
PRIMER_INTERNAL_WT_LIBRARY_MISHYBPRIMER_PAIR_MAX_COMPL_ENDPRIMER_WT_NUM_NS
PRIMER_INTERNAL_WT_NUM_NSPRIMER_PAIR_MAX_COMPL_END_THPRIMER_WT_POS_PENALTY
PRIMER_INTERNAL_WT_SELF_ANYPRIMER_PAIR_MAX_DIFF_TMPRIMER_WT_SELF_ANY
PRIMER_INTERNAL_WT_SELF_ANY_THPRIMER_PAIR_MAX_LIBRARY_MISPRIMINGPRIMER_WT_SELF_ANY_TH
PRIMER_INTERNAL_WT_SELF_ENDPRIMER_PAIR_MAX_TEMPLATE_MISPRIMINGPRIMER_WT_SELF_END
PRIMER_INTERNAL_WT_SELF_END_THPRIMER_PAIR_MAX_TEMPLATE_MISPRIMING_THPRIMER_WT_SELF_END_TH
PRIMER_INTERNAL_WT_SEQ_QUALPRIMER_PAIR_WT_COMPL_ANYPRIMER_WT_SEQ_QUAL
PRIMER_INTERNAL_WT_SIZE_GTPRIMER_PAIR_WT_COMPL_ANY_THPRIMER_WT_SIZE_GT
PRIMER_INTERNAL_WT_SIZE_LTPRIMER_PAIR_WT_COMPL_ENDPRIMER_WT_SIZE_LT
PRIMER_INTERNAL_WT_TM_GTPRIMER_PAIR_WT_COMPL_END_THPRIMER_WT_TEMPLATE_MISPRIMING
PRIMER_INTERNAL_WT_TM_LTPRIMER_PAIR_WT_DIFF_TMPRIMER_WT_TEMPLATE_MISPRIMING_TH
PRIMER_LIBERAL_BASEPRIMER_PAIR_WT_IO_PENALTYPRIMER_WT_TM_GT
PRIMER_LIB_AMBIGUITY_CODES_CONSENSUSPRIMER_PAIR_WT_LIBRARY_MISPRIMINGPRIMER_WT_TM_LT
PRIMER_LOWERCASE_MASKINGPRIMER_PAIR_WT_PRODUCT_SIZE_GT 
-

PRIMER_TASK (string; default generic)

- -

This tag tells primer3 what task to perform. -Legal values are:
-
- generic
-
- Design a primer pair (the classic primer3 task) if - the PRIMER_PICK_LEFT_PRIMER=1, and - PRIMER_PICK_RIGHT_PRIMER=1. In addition, pick - an internal hybridization oligo if - PRIMER_PICK_INTERNAL_OLIGO=1. -

- NOTE: If PRIMER_PICK_LEFT_PRIMER=1, - PRIMER_PICK_RIGHT_PRIMER=0 - and - PRIMER_PICK_INTERNAL_OLIGO=1, - then behaves similarly to - PRIMER_TASK=pick_primer_list. -
-
- pick_detection_primers
-
- Deprecated alias for PRIMER_TASK=generic
-
- check_primers
-
- Primer3 only checks the primers - provided in SEQUENCE_PRIMER, SEQUENCE_INTERNAL_OLIGO and - SEQUENCE_PRIMER_REVCOMP. It is the only task that does not - require a sequence. However, if SEQUENCE_TEMPLATE is provided, it is used. -
-
- pick_primer_list
-
- Pick all primers in SEQUENCE_TEMPLATE (possibly - limited by SEQUENCE_INCLUDED_REGION, - SEQUENCE_EXCLUDED_REGION, - SEQUENCE_PRIMER_PAIR_OK_REGION_LIST, etc.). - Returns the primers sorted by quality starting with the - best primers. If PRIMER_PICK_LEFT_PRIMER and - PRIMER_PICK_RIGHT_PRIMER is selected primer3 does not to pick - primer pairs but generates independent lists of left primers, right primers, - and, if requested, internal oligos.
-
- pick_sequencing_primers
-
- Pick primers suited to sequence a region. SEQUENCE_TARGET can be - used to indicate several targets. The position of each primer is - calculated for optimal sequencing results.
-
- pick_cloning_primers
-
- Pick primers suited to clone a gene were the start nucleotide and - the end nucleotide of the PCR fragment must be fixed, for example - to clone an ORF. SEQUENCE_INCLUDED_REGION must be used to - indicate the first and the last nucleotide. Due to these - limitations primer3 can only vary the length of the primers. Set - PRIMER_PICK_ANYWAY=1 to obtain primers even if they violate - specific constraints.
-
- pick_discriminative_primers
-
- Pick primers suited to select primers which bind with their end at - a specific position. This can be used to force the end of a primer - to a polymorphic site, with the goal of discriminating between - sequence variants. SEQUENCE_INCLUDED_REGION must be used to - indicate the last nucleotide of the left (first nucleotide of - included region) and the right primer (last nucleotide of - included region). Due to these limitations primer3 can only vary - the length of the primers. Set PRIMER_PICK_ANYWAY=1 to obtain - primers even if they violate specific constraints.
-
- pick_pcr_primers
-
- Deprecated shortcut for the following settings:
- PRIMER_TASK=generic
- PRIMER_PICK_LEFT_PRIMER=1
- PRIMER_PICK_INTERNAL_OLIGO=0
- PRIMER_PICK_RIGHT_PRIMER=1
-
- WARNING: this task changes the values of PRIMER_PICK_LEFT_PRIMER, - PRIMER_PICK_INTERNAL_OLIGO, and PRIMER_PICK_RIGHT_PRIMER - in a way that is not obvious by looking at the input.
-
- pick_pcr_primers_and_hyb_probe
-
- Deprecated shortcut for the following settings:
- PRIMER_TASK=generic
- PRIMER_PICK_LEFT_PRIMER=1
- PRIMER_PICK_INTERNAL_OLIGO=1
- PRIMER_PICK_RIGHT_PRIMER=1
-
- WARNING: this task changes the values of PRIMER_PICK_LEFT_PRIMER, - PRIMER_PICK_INTERNAL_OLIGO, and PRIMER_PICK_RIGHT_PRIMER - in a way that is not obvious by looking at the input.
-
- pick_left_only
-
- Deprecated shortcut for the following settings:
- PRIMER_TASK=generic
- PRIMER_PICK_LEFT_PRIMER=1
- PRIMER_PICK_INTERNAL_OLIGO=0
- PRIMER_PICK_RIGHT_PRIMER=0
-
- WARNING: this task changes the values of PRIMER_PICK_LEFT_PRIMER, - PRIMER_PICK_INTERNAL_OLIGO, and PRIMER_PICK_RIGHT_PRIMER - in a way that is not obvious by looking at the input.
-
- pick_right_only
-
- Deprecated shortcut for the following settings:
- PRIMER_TASK=generic
- PRIMER_PICK_LEFT_PRIMER=0
- PRIMER_PICK_INTERNAL_OLIGO=0
- PRIMER_PICK_RIGHT_PRIMER=1
-
- WARNING: this task changes the values of PRIMER_PICK_LEFT_PRIMER, - PRIMER_PICK_INTERNAL_OLIGO, and PRIMER_PICK_RIGHT_PRIMER - in a way that is not obvious by looking at the input.
-
- pick_hyb_probe_only
-
- Deprecated shortcut for the following settings:
- PRIMER_TASK=generic
- PRIMER_PICK_LEFT_PRIMER=0
- PRIMER_PICK_INTERNAL_OLIGO=1
- PRIMER_PICK_RIGHT_PRIMER=0
-
- WARNING: this task changes the values of PRIMER_PICK_LEFT_PRIMER, - PRIMER_PICK_INTERNAL_OLIGO, and PRIMER_PICK_RIGHT_PRIMER - in a way that is not obvious by looking at the input.
-

- - -

PRIMER_PICK_LEFT_PRIMER (boolean; default 1)

- -

If the associated value = 1 (non-0), then primer3 will attempt to -pick left primers.

- - -

PRIMER_PICK_INTERNAL_OLIGO (boolean; default 0)

- -

If the associated value = 1 (non-0), then primer3 will attempt to -pick an internal oligo (hybridization probe to detect the PCR -product).

- - -

PRIMER_PICK_RIGHT_PRIMER (boolean; default 1)

- -

If the associated value = 1 (non-0), then primer3 will attempt to -pick a right primer.

- - -

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_MIN_3_PRIME_OVERLAP_OF_JUNCTION (int; default 4)

- -

The 3' end of the left OR the right primer must -overlap one of the junctions in SEQUENCE_OVERLAP_JUNCTION_LIST by this amount. -See details in SEQUENCE_OVERLAP_JUNCTION_LIST. -

- - -

PRIMER_MIN_5_PRIME_OVERLAP_OF_JUNCTION (int; default 7)

- -

The 5' end of the left OR the right primer must -overlap one of the junctions in SEQUENCE_OVERLAP_JUNCTION_LIST by this amount. -See details in SEQUENCE_OVERLAP_JUNCTION_LIST. -

- - -

PRIMER_MUST_MATCH_FIVE_PRIME (ambiguous nucleotide sequence; default empty)

- -

Discards all primers which do not match this match sequence at the 5' end. -(New in v. 2.3.6, added by A. Untergasser.)
-
-The match sequence must be 5 nucletides long and can contain the following letters:
-

-    N   Any nucleotide
-
-    A   Adenine
-    G   Guanine
-    C   Cytosine
-    T   Thymine
-
-    R   Purine (A or G)
-    Y   Pyrimidine (C or T)
-    W   Weak (A or T)
-    S   Strong (G or C)
-    M   Amino (A or C)
-    K   Keto (G or T)
-    B   Not A (G or C or T)
-    H   Not G (A or C or T)
-    D   Not C (A or G or T)
-    V   Not T (A or G or C)
-
-Any primer which will not match the entire match sequence at th 5' end will -be discarded and not evaluated. Setting strict requirements here will result -in low quality primers due to the high numbers of primers discarded at this -step.
-
-Example 1:
-PRIMER_MUST_MATCH_FIVE_PRIME=tgnnn

-Could result in the following matching:
-
-    tgcatgattggatacgtttga
-    |||||
-    tgnnn
-
- -> This primer would be used.
-
-
-    attcgattctccccggtatc
-      |||
-    tgnnn
-
- -> This primer would be discarded.
-


-Example 2:
-PRIMER_MUST_MATCH_FIVE_PRIME=hnnnn

-Could result in the following matching:
-
-    tgcatgattggatacgtttga
-    |||||
-    hnnnn
-
- -> This primer would be used.
-
-
-    ggctgatgaaggaaagcaag
-     ||||
-    hnnnn
-
- -> This primer would be discarded.
-


-This parameter would force all primers selected by primer3 to not have guanosine -at the 5' end of any primer which could be useful to avoid quenching of -flourochromes. -

- - -

PRIMER_INTERNAL_MUST_MATCH_FIVE_PRIME (ambiguous nucleotide sequence; default empty)

- -

Equivalent parameter of PRIMER_MUST_MATCH_FIVE_PRIME for the internal oligo.

- - -

PRIMER_MUST_MATCH_THREE_PRIME (ambiguous nucleotide sequence; default empty)

- -

Discards all primers which do not match this match sequence at the 3' end. Similar -parameter to PRIMER_MUST_MATCH_FIVE_PRIME, but limits the 3' end. -(New in v. 2.3.6, added by A. Untergasser.)
-
-The match sequence must be 5 nucletides long and can contain the following letters:
-

-    N   Any nucleotide
-
-    A   Adenine
-    G   Guanine
-    C   Cytosine
-    T   Thymine
-
-    R   Purine (A or G)
-    Y   Pyrimidine (C or T)
-    W   Weak (A or T)
-    S   Strong (G or C)
-    M   Amino (A or C)
-    K   Keto (G or T)
-    B   Not A (G or C or T)
-    H   Not G (A or C or T)
-    D   Not C (A or G or T)
-    V   Not T (A or G or C)
-
-Any primer which will not match the entire match sequence at th 3' end will -be discarded and not evaluated. Setting strict requirements here will result -in low quality primers due to the high numbers of primers discarded at this -step.
-
-Example 1:
-PRIMER_MUST_MATCH_FIVE_PRIME=nnnga

-Could result in the following matching:
-
-    tgcatgattggatacgtttga
-                    |||||
-                    nnnga
-
- -> This primer would be used.
-
-
-    attcgattctccccggtatc
-                   |||
-                   nnnga
-
- -> This primer would be discarded.
-
-

- - -

PRIMER_INTERNAL_MUST_MATCH_THREE_PRIME (ambiguous nucleotide sequence; default empty)

- -

Equivalent parameter of PRIMER_MUST_MATCH_THREE_PRIME for the internal oligo.

- - -

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 product-size 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 pairs in subsequent ranges. - -Only if there are an insufficient number of primers in the first -range will primer3 return primers in a subsequent range.
-
-For those with primarily a computational background, -the PCR product size is the size (in base pairs) -of the DNA fragment that would be produced by the -PCR reaction on the given sequence template. This -would, of course, include the primers themselves.

- - -

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.
- -A non-0 value for this parameter will likely increase calculation time, so set this only if -a product size near a specific value is truly important. -

- - -

PRIMER_PAIR_WT_PRODUCT_SIZE_LT (float; default 0.0)

- -

Penalty weight for products shorter than PRIMER_PRODUCT_OPT_SIZE.

- - -

PRIMER_PAIR_WT_PRODUCT_SIZE_GT (float; default 0.0)

- -

Penalty weight for products longer than PRIMER_PRODUCT_OPT_SIZE.

- - -

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_INTERNAL_MIN_SIZE (int; default 18)

- -

Equivalent parameter of PRIMER_MIN_SIZE for the internal oligo.

- - -

PRIMER_OPT_SIZE (int; default 20)

- -

Optimum length (in bases) of a primer. Primer3 will attempt to -pick primers close to this length.

- - -

PRIMER_INTERNAL_OPT_SIZE (int; default 20)

- -

Equivalent parameter of PRIMER_OPT_SIZE for the internal oligo.

- - -

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_INTERNAL_MAX_SIZE (int; default 27)

- -

Equivalent parameter of PRIMER_MAX_SIZE for the internal oligo.

- - -

PRIMER_WT_SIZE_LT (float; default 1.0)

- -

Penalty weight for primers shorter than PRIMER_OPT_SIZE.

- - -

PRIMER_INTERNAL_WT_SIZE_LT (float; default 1.0)

- -

Equivalent parameter of PRIMER_WT_SIZE_LT for the internal oligo.

- - -

PRIMER_WT_SIZE_GT (float; default 1.0)

- -

Penalty weight for primers longer than PRIMER_OPT_SIZE.

- - -

PRIMER_INTERNAL_WT_SIZE_GT (float; default 1.0)

- -

Equivalent parameter of PRIMER_INTERNAL_WT_SIZE_GT for the internal oligo.

- - -

PRIMER_MIN_GC (float; default 20.0)

- -

Minimum allowable percentage of Gs and Cs in any primer.

- - -

PRIMER_INTERNAL_MIN_GC (float; default 20.0)

- -

Equivalent parameter of PRIMER_MIN_GC for the internal oligo.

- - -

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_INTERNAL_OPT_GC_PERCENT (float; default 50.0)

- -

Equivalent parameter of PRIMER_OPT_GC_PERCENT for the internal oligo.

- - -

PRIMER_MAX_GC (float; default 80.0)

- -

Maximum allowable percentage of Gs and Cs in any primer generated -by Primer.

- - -

PRIMER_INTERNAL_MAX_GC (float; default 80.0)

- -

Equivalent parameter of PRIMER_MAX_GC for the internal oligo.

- - -

PRIMER_WT_GC_PERCENT_LT (float; default 0.0)

- -

Penalty weight for primers with GC percent lower than -PRIMER_OPT_GC_PERCENT.

- - -

PRIMER_INTERNAL_WT_GC_PERCENT_LT (float; default 0.0)

- -

Equivalent parameter of PRIMER_WT_GC_PERCENT_LT for the internal oligo.

- - -

PRIMER_WT_GC_PERCENT_GT (float; default 0.0)

- -

Penalty weight for primers with GC percent higher than -PRIMER_OPT_GC_PERCENT.

- - -

PRIMER_INTERNAL_WT_GC_PERCENT_GT (float; default 0.0)

- -

Equivalent parameter of PRIMER_WT_GC_PERCENT_GT for the internal oligo.

- - -

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_MAX_END_GC (int; default 5)

- -

The maximum number of Gs or Cs allowed in the last five 3' -bases of a left or right primer.

- - -

PRIMER_MIN_TM (float; default 57.0)

- -

Minimum acceptable melting temperature (Celsius) for a primer -oligo.

- - -

PRIMER_INTERNAL_MIN_TM (float; default 57.0)

- -

Equivalent parameter of PRIMER_MIN_TM for the internal oligo.

- - -

PRIMER_OPT_TM (float; default 60.0)

- -

Optimum melting temperature (Celsius) for a primer. Primer3 -will try to pick primers with melting temperatures are close to -this temperature. The oligo melting temperature formula used can -be specified by user. Please see PRIMER_TM_FORMULA for more -information.

- - -

PRIMER_INTERNAL_OPT_TM (float; default 60.0)

- -

Equivalent parameter of PRIMER_OPT_TM for the internal oligo.

- - -

PRIMER_MAX_TM (float; default 63.0)

- -

Maximum acceptable melting temperature (Celsius) for a primer -oligo.

- - -

PRIMER_INTERNAL_MAX_TM (float; default 63.0)

- -

Equivalent parameter of PRIMER_MAX_TM for the internal oligo.

- - -

PRIMER_PAIR_MAX_DIFF_TM (float; default 100.0)

- -

Maximum acceptable (unsigned) difference between the melting -temperatures of the left and right primers.

- - -

PRIMER_WT_TM_LT (float; default 1.0)

- -

Penalty weight for primers with Tm lower than PRIMER_OPT_TM.

- - -

PRIMER_INTERNAL_WT_TM_LT (float; default 1.0)

- -

Equivalent parameter of PRIMER_WT_TM_LT for the internal oligo.

- - -

PRIMER_WT_TM_GT (float; default 1.0)

- -

Penalty weight for primers with Tm over PRIMER_OPT_TM.

- - -

PRIMER_INTERNAL_WT_TM_GT (float; default 1.0)

- -

Equivalent parameter of PRIMER_WT_TM_GT for the internal oligo.

- - -

PRIMER_PAIR_WT_DIFF_TM (float; default 0.0)

- -

Penalty weight for the TM difference between the left primer and -the right primer.

- - -

PRIMER_PRODUCT_MIN_TM (float; default -1000000.0)

- -

The minimum allowed melting temperature of the amplicon. Please -see the documentation on PRIMER_PRODUCT_MAX_TM for details.

- - -

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_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_PAIR_WT_PRODUCT_TM_LT (float; default 0.0)

- -

Penalty weight for products with a Tm lower than -PRIMER_PRODUCT_OPT_TM.

- - -

PRIMER_PAIR_WT_PRODUCT_TM_GT (float; default 0.0)

- -

Penalty weight for products with a Tm higher than -PRIMER_PRODUCT_OPT_TM.

- - -

PRIMER_TM_FORMULA (int; default 1)

- -

Specifies details of melting temperature calculation. (New in -v. 1.1.0, added by Maido Remm and Triinu Koressaar.)
-
-A value of 0 directs primer3 to a backward compatible calculation -(in other words, the only calculation available 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://dx.doi.org/10.1093/nar/18.21.6409].
-
-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].
-
-Use tag PRIMER_SALT_CORRECTIONS, to specify the salt correction -method for melting temperature calculation.
-
-Example of calculating the melting temperature of an oligo if -PRIMER_TM_FORMULA=1 and PRIMER_SALT_CORRECTIONS=1 -recommended values):
-
-primer=CGTGACGTGACGGACT
-
-Using default salt and DNA concentrations we have

-
-Tm = deltaH/(deltaS + R*ln(C/4))
-
-

where R is the gas constant (1.987 cal/K mol) and C is the DNA -concentration.

-
-deltaH(predicted) =
-  = dH(CG) + dH(GT) + dH(TG) + .. + dH(CT) +
-     + dH(init.w.term.GC) + dH(init.w.term.AT) =
-
-  = -10.6 + (-8.4) + (-8.5) + .. + (-7.8) + 0.1 + 2.3  =
-
-  = -128.8 kcal/mol
-
-

where 'init.w.term GC' and 'init.w.term AT' are two -initiation parameters for duplex formation: 'initiation with -terminal GC' and 'initiation with terminal AT'

-
-deltaS(predicted) =
-  = dS(CG) + dS(GT) + dS(TG) + .. + dS(CT) +
-    + dS(init.w.term.GC) + dS(init.w.term.AT) =
-
-  = -27.2 + (-22.4) + (-22.7) + .. + (-21.0) + (-2.8) + 4.1 =
- 
-  = -345.2 cal/k*mol
-
-deltaS(salt corrected) = 
-  = deltaS(predicted) + 0.368*15(NN pairs)*ln(0.05M monovalent cations) =
-  = -361.736
-
-Tm = -128.800/(-361.736+1.987*ln((5*10^(-8))/4)) =
-   = 323.704 K
-
-Tm(C) = 323.704 - 273.15 = 50.554 C
-
- - -

PRIMER_SALT_MONOVALENT (float; default 50.0)

- -

The millimolar (mM) concentration of monovalent salt cations (usually KCl) in the PCR. -Primer3 uses this argument to calculate oligo and primer melting -temperatures. -Use tag PRIMER_SALT_DIVALENT and -PRIMER_INTERNAL_SALT_DIVALENT to specify the concentrations -of divalent cations (in which case you also should also set tag PRIMER_DNTP_CONC to -a reasonable value). -

- - -

PRIMER_INTERNAL_SALT_MONOVALENT (float; default 50.0)

- -

Equivalent parameter of PRIMER_SALT_MONOVALENT for the internal oligo.

- - -

PRIMER_SALT_DIVALENT (float; default 1.5)

- -

The millimolar concentration of divalent salt cations (usually MgCl^(2+)) in -the PCR. (New in v. 1.1.0, added by Maido Remm and Triinu Koressaar)
-
-Primer3 converts concentration of divalent cations to concentration -of monovalent cations using formula suggested 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 Comparison to Alternative Empirical -Formulas", Clinical Chemistry 47:1956-61 http://www.clinchem.org/cgi/content/full/47/11/1956].

-
-[Monovalent cations] = [Monovalent cations] + 120*(([divalent cations] - [dNTP])^0.5)
-
-

In addition, -if the specified concentration of dNTPs (PRIMER_DNTP_CONC) -is larger than the concentration of divalent cations (PRIMER_SALT_DIVALENT) -then the effect of the divalent cations is not considered. The -concentration of dNTPs is considered in the formula above -because of some magnesium is bound by the dNTP. -The adjusted concentration of monovalent cations is used in the -calculation of oligo/primer -melting temperature, PCR product melting temperature, -the stability of oligo dimers and -secondary structures (when PRIMER_THERMODYNAMIC_OLIGO_ALIGNMENT is 1), -and the stability of ectopic annealing of oligos to template -(when PRIMER_THERMODYNAMIC_TEMPLATE_ALIGNMENT is 1). -If PRIMER_SALT_DIVALENT > 0.0, be sure to -set tag PRIMER_DNTP_CONC to specify the concentration of dNTPs. -

- - -

PRIMER_INTERNAL_SALT_DIVALENT (float; default 0.0)

- -

Equivalent parameter of PRIMER_SALT_DIVALENT for the internal oligo.

- - -

PRIMER_DNTP_CONC (float; default 0.6)

- -

The millimolar concentration of the sum of all -deoxyribonucleotide triphosphates. A reaction mix containing -0.2 mM ATP, 0.2 mM CTP, 0.2 mM GTP and 0.2 mM TTP would have a -PRIMER_DNTP_CONC=0.8. -This argument is considered for oligo and -primer melting temperatures, for -PCR product melting temperature, or for secondary -structure calculations only if -PRIMER_SALT_DIVALENT is > 0.0. -See PRIMER_SALT_DIVALENT.

- - -

PRIMER_INTERNAL_DNTP_CONC (float; default 0.0)

- -

Parameter for internal oligos analogous to PRIMER_DNTP_CONC.

- - -

PRIMER_SALT_CORRECTIONS (int; default 1)

- -

Specifies the salt correction formula for the melting temperature -calculation. (New in v. 1.1.0, added by Maido Remm and Triinu -Koressaar)
-
-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 older versions of primer3. -
-
-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 2 directs primer3 to use the salt correction formula -in the paper [Owczarzy, R., Moreira, B.G., You, Y., Behlke, M.A., and -Walder, J.A. (2008). Predicting stability of DNA duplexes in solutions -containing magnesium and monovalent cations. Biochemistry 47, 5336-5353 -http://dx.doi.org/10.1021/bi702363u] following recommendations in the paper -[Ahsen, v.N., Wittwer, C.T., and Schütz, E. (2010). Monovalent and divalent -salt correction algorithms for Tm prediction-recommendations for Primer3 -usage. Brief Bioinform 12, 514 http://dx.doi.org/10.1093/bib/bbq081]. -
-
-For all values of PRIMER_SALT_CORRECTIONS, -Primer3 also considers the values of the -tags PRIMER_SALT_DIVALENT, -PRIMER_INTERNAL_SALT_DIVALENT, -PRIMER_DNTP_CONC, and -PRIMER_INTERNAL_DNTP_CONC. -

- - -

PRIMER_DNA_CONC (float; default 50.0)

- -

-

-A value to use as nanomolar (nM) concentration of each annealing oligo -over the course the PCR. -Primer3 uses this argument to esimate oligo melting -temperatures. This parameter corresponds to 'c' in equation (ii) -of the paper [SantaLucia (1998) A unified view of polymer, dumbbell, -and oligonucleotide DNA nearest-neighbor thermodynamics. -Proc Natl Acad Sci 95:1460-1465 -http://www.pnas.org/content/95/4/1460.full.pdf+html], -where a suitable value (for a lower initial concentration of template) -is "empirically determined".
-
-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 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.
-
-The value of this parameter is less than the actual -concentration of oligos in the initial reaction mix 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_INTERNAL_DNA_CONC (float; default 50.0)

- -

Equivalent parameter of PRIMER_DNA_CONC for the internal oligo.

- - -

PRIMER_THERMODYNAMIC_OLIGO_ALIGNMENT (boolean; default 1)

- -

If the associated value = 1, then primer3 will use -thermodynamic models to calculate the -the propensity of oligos to form hairpins and dimers. -

- - -

PRIMER_THERMODYNAMIC_TEMPLATE_ALIGNMENT (boolean; default 0)

- -

If the associated value = 1, then primer3 will use -thermodynamic models to calculate the -the propensity of oligos to anneal to undesired sites in the template sequence. -

- - -

PRIMER_THERMODYNAMIC_PARAMETERS_PATH (string; default ./primer3_config)

- -

This tag specifies the path to the directory that contains all the -parameter files used by the thermodynamic approach. In Linux, there are two -default locations that are tested if this tag is not defined: -./primer3_config/ and /opt/primer3_config/. -For Windows, there is only one default location: .\primer3_config\.

- - -

PRIMER_MAX_SELF_ANY (decimal, 9999.99; default 8.00)

- -

PRIMER_MAX_SELF_ANY describes the tendency of a primer to bind to -itself (interfering with target sequence binding). It will score -ANY binding occurring within the entire primer sequence.
-It is the maximum allowable local alignment score when testing -a single primer for (local) self-complementarity. 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_MAX_SELF_ANY_TH (decimal, 9999,99; default 47.00)

- -

The same as PRIMER_MAX_SELF_ANY but all calculations are based on - thermodynamical approach. The melting temperature of the most stable - structure is calculated. To calculate secondary structures nearest-neighbor - parameters for perfect matches, single internal mismatches, terminal - mismatches, dangling ends have been used. Also parameters for -increments for length dependence of -bulge and internal loops have been used. This parameter is calculated only -if PRIMER_THERMODYNAMIC_OLIGO_ALIGNMENT=1. The default value is 10 degrees -lower than the default value of PRIMER_MIN_TM. For example, the alignment -width length 15nt

-
-  5' ATTAGATAGAGCATC 3'
-  3' TAATCTATCTCGTAG 5'
-
-is allowed (and yields a melting temperature of 32.1493 -width by default -primer3 parameters), but the alignment -
-     T        C
-  5'  GCGGCCGC GCGC 3'
-  3'  CGCCGGCG CGCG 5'
-     A        A
-
-

is not considered (Tm=57.0997 and the length of oligo is 14nt). -Thermodynamical parameters and methods for finding -the most stable structure are described in following papers:

-
  • [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] -
  • -[SantaLucia JR and Hicks D (2004) "The thermodynamics of DNA structural -motifs", Annu Rev Biophys Biomol Struct 33:415-40 -http://dx.doi.org/10.1146/annurev.biophys.32.110601.141800] -
  • -[Bommarito S, Peyret N and SantaLucia J Jr (2000) "Thermodynamic parameters -for DNA sequences with dangling ends", Nucleic Acids Res 28(9):1929-34 -http://dx.doi.org/10.1093/nar/28.9.1929] -
  • -[Peyret N, Seneviratne PA, Allawi HT, SantaLucia J Jr. (1999) -"Nearest-neighbor thermodynamics and NMR of DNA sequences with internal A.A, -C.C, G.G, and T.T mismatches", Biochemistry 38(12):3468-77 -http://dx.doi.org/10.1021/bi9825091] -
  • -[Allawi HT and SantaLucia J Jr. (1998) "Nearest-Neighbor Thermodynamics of -Internal A·C Mismatches in DNA: Sequence Dependence and pH Effects", -Biochemistry 37(26):9435-44 -http://dx.doi.org/10.1021/bi9803729 -
  • -[Allawi HT and SantaLucia J Jr. (1998) "Thermodynamics of internal C.T -mismatches in DNA." Nucleic Acids Res 26(11):2694-701http://dx.doi.org/10.1093/nar/26.11.2694] -
  • -[Allawi HT and SantaLucia J Jr. (1998) "Nearest neighbor thermodynamic -parameters for internal G.A mismatches in DNA." Biochemistry 37(8):2170-9 -http://dx.doi.org/10.1021/bi9724873] -
  • -[Allawi HT and SantaLucia J Jr. (1997) "Thermodynamics and NMR of internal -G.T mismatches in DNA." Biochemistry 36(34):10581-94 -http://dx.doi.org/10.1021/bi962590c] -
  • -[SantaLucia J Jr and Peyret N. (2001) "Method and system for predicting -nucleic acid hybridization thermodynamics and computer-readable storage -medium for use therein" World Intellectual Property Organization, WO 01/94611 -http://www.wipo.int/pctdb/en/wo.jsp?wo=2001094611] -
-


-Predicting secondary structures can improve primer design by eliminating -sequences with high possibility to form alternative secondary structures. -

- - -

PRIMER_INTERNAL_MAX_SELF_ANY (decimal, 9999.99; default 12.00)

- -

Equivalent parameter of PRIMER_MAX_SELF_ANY for the internal oligo.

- - -

PRIMER_INTERNAL_MAX_SELF_ANY_TH (decimal, 9999.99; default 47.00)

- -

Equivalent parameter of PRIMER_MAX_SELF_ANY_TH for the internal oligo.

- - -

PRIMER_PAIR_MAX_COMPL_ANY (decimal, 9999.99; default 8.00)

- -

PRIMER_PAIR_MAX_COMPL_ANY describes the tendency of the left primer -to bind to the right primer. It is the maximum allowable local alignment score when testing for -complementarity between left and right primers. It is similar to PRIMER_MAX_SELF_ANY.

- - -

PRIMER_PAIR_MAX_COMPL_ANY_TH (decimal, 9999.99; default 47.00)

- -

PRIMER_PAIR_MAX_COMPL_ANY_TH describes the tendency of the left primer - to bind to the right primer. It is similar to PRIMER_MAX_SELF_ANY_TH.

- - -

PRIMER_WT_SELF_ANY (float; default 0.0)

- -

Penalty weight for the individual primer self binding value as in -PRIMER_MAX_SELF_ANY.

- - -

PRIMER_WT_SELF_ANY_TH (float; default 0.0)

- -

Penalty weight for the individual primer self binding value as in - PRIMER_MAX_SELF_ANY_TH.

- - -

PRIMER_INTERNAL_WT_SELF_ANY (float; default 0.0)

- -

Equivalent parameter of PRIMER_WT_SELF_ANY for the internal oligo.

- - -

PRIMER_INTERNAL_WT_SELF_ANY_TH (float; default 0.0)

- -

Equivalent parameter of PRIMER_WT_SELF_ANY_TH for the internal oligo.

- - -

PRIMER_PAIR_WT_COMPL_ANY (float; default 0.0)

- -

Penalty weight for the binding value of the primer pair as in -PRIMER_MAX_SELF_ANY.

- - -

PRIMER_PAIR_WT_COMPL_ANY_TH (float; default 0.0)

- -

Penalty weight for the binding value of the primer pair as in PRIMER_MAX_SELF_ANY_TH.

- - -

PRIMER_MAX_SELF_END (decimal, 9999.99; default 3.00)

- -

-PRIMER_MAX_SELF_END tries to bind the 3'-END to a identical primer -and scores the best binding it can find. This is critical for -primer quality because it allows primers use itself as a target -and amplify a short piece (forming a primer-dimer). These primers -are then unable to bind and amplify the target sequence.
-PRIMER_MAX_SELF_END is the maximum allowable 3'-anchored global -alignment score when testing a single primer for -self-complementarity. 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, Primer3 -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 (PRIMER_MAX_SELF_ANY) because the score of a local -alignment will always be at least as great as the score of a -global alignment.

- - -

PRIMER_MAX_SELF_END_TH (decimal 9999.99; default 47.00)

- -

Same as PRIMER_MAX_SELF_END but is based on -thermodynamical approach - the stability of structure is analyzed. The value -of tag is expressed as melting temperature. See -PRIMER_MAX_SELF_ANY_TH for details.

- - -

PRIMER_INTERNAL_MAX_SELF_END (decimal 9999.99; default 12.00)

- -

PRIMER_INTERNAL_MAX_SELF_END is meaningless when applied -to internal oligos used for hybridization-based detection, since -primer-dimer will not occur. We recommend that -PRIMER_INTERNAL_MAX_SELF_END be set at least as high as -PRIMER_INTERNAL_MAX_SELF_ANY.

- - -

PRIMER_INTERNAL_MAX_SELF_END_TH (decimal 9999.99; default 47.00)

- -

Same as PRIMER_INTERNAL_MAX_SELF_END but for -calculating the score (melting temperature of structure) thermodynamical -approach is used.

- - -

PRIMER_PAIR_MAX_COMPL_END (decimal, 9999.99; default 3.00)

- -

PRIMER_PAIR_MAX_COMPL_END tries to bind the 3'-END of the left primer -to the right primer and scores the best binding it can find. -It is similar to PRIMER_MAX_SELF_END.

- - -

PRIMER_PAIR_MAX_COMPL_END_TH (decimal, 9999.99; default 47.00)

- -

Same as PRIMER_PAIR_MAX_COMPL_END but for calculating the -score (melting temperature of structure) thermodynamical approach is used.

- - -

PRIMER_WT_SELF_END (float; default 0.0)

- -

Penalty weight for the individual primer self binding value as in -PRIMER_MAX_SELF_END.

- - -

PRIMER_WT_SELF_END_TH (float; default 0.0)

- -

Penalty weight for the individual primer self binding -value as in PRIMER_MAX_SELF_END_TH

- - -

PRIMER_INTERNAL_WT_SELF_END (float; default 0.0)

- -

Equivalent parameter of PRIMER_WT_SELF_END for the internal oligo.

- - -

PRIMER_INTERNAL_WT_SELF_END_TH (float; default 0.0)

- -

Equivalent parameter of PRIMER_WT_SELF_END_TH for the internal oligo.

- - -

PRIMER_PAIR_WT_COMPL_END (float; default 0.0)

- -

Penalty weight for the binding value of the primer pair as in -PRIMER_MAX_SELF_END.

- - -

PRIMER_PAIR_WT_COMPL_END_TH (float; default 0.0)

- -

Penalty weight for the binding value of the primer pair as in PRIMER_MAX_SELF_END_TH.

- - -

PRIMER_MAX_HAIRPIN_TH (float; default 47.0)

- -

This is the most stable monomer structure of internal oligo -calculated by thermodynamic approach. The hairpin loops, -bulge loops, internal loops, internal single mismatches, dangling ends, -terminal mismatches have been considered. This parameter is calculated only -if PRIMER_THERMODYNAMIC_OLIGO_ALIGNMENT=1. The default value is 10 degrees -lower than the default value of PRIMER_MIN_TM. For example the structure:

-
-      -///------\\\-
-   5' ACGCTGTGCTGCGA 3'
-
-with melting temperature 53.7263 (calculated according to by -default values of primer3) and -
-      //////----\\\\\\
-   5' CCGCAGTAAGCTGCGG 3'
-
-

-with melting temperature 71.0918 (calculated according to by -default values of primer3) - -For details about papers used for calculating hairpins see PRIMER_MAX_SELF_ANY_TH

- - -

PRIMER_INTERNAL_MAX_HAIRPIN_TH (float; default 47.0)

- -

The most stable monomer structure of internal oligo -calculated by thermodynamic approach. See PRIMER_MAX_HAIRPIN_TH for details.

- - -

PRIMER_WT_HAIRPIN_TH (float; default 0.0)

- -

Penalty weight for the individual primer hairpin structure value as in PRIMER_MAX_HAIRPIN_TH.

- - -

PRIMER_INTERNAL_WT_HAIRPIN_TH (float; default 0.0)

- -

Penalty weight for the most stable -primer hairpin structure value as in PRIMER_INTERNAL_MAX_HAIRPIN_TH.

- - -

PRIMER_MAX_END_STABILITY (float, 999.9999; default 100.0)

- -

The maximum stability for the last five 3' bases of a left or -right primer. Bigger numbers mean more stable 3' ends. The -value is the maximum delta G (kcal/mol) for duplex disruption for -the five 3' bases as calculated using the nearest-neighbor -parameter values specified by the option of PRIMER_TM_FORMULA -
-
-For example if the table of thermodynamic parameters suggested -by SantaLucia 1998, DOI:10.1073/pnas.95.4.1460 is used the deltaG -values for the most stable and for the most labile 5mer duplex -are 6.86 kcal/mol (GCGCG) and 0.86 kcal/mol (TATAT) respectively.
-
-If the table of thermodynamic parameters suggested by -Breslauer et al. 1986, 10.1073/pnas.83.11.3746 is used the deltaG -values for the most stable and for the most labile 5mer are -13.4 kcal/mol (GCGCG) and 4.6 kcal/mol (TATAC) respectively. - - -

PRIMER_WT_END_STABILITY (float; default 0.0)

- -

Penalty factor for the calculated maximum stability for the -last five 3' bases of a left or right primer.

- - -

PRIMER_MAX_NS_ACCEPTED (int; default 0)

- -

Maximum number of unknown bases (N) allowable in any primer.

- - -

PRIMER_INTERNAL_MAX_NS_ACCEPTED (int; default 0)

- -

Equivalent parameter of PRIMER_MAX_NS_ACCEPTED for the internal oligo.

- - -

PRIMER_WT_NUM_NS (float; default 0.0)

- -

Penalty weight for the number of Ns in the primer.

- - -

PRIMER_INTERNAL_WT_NUM_NS (float; default 0.0)

- -

Equivalent parameter of PRIMER_WT_NUM_NS for the internal oligo.

- - -

PRIMER_MAX_POLY_X (int; default 5)

- -

The maximum allowable length of a mononucleotide repeat, -for example AAAAAA.

- - -

PRIMER_INTERNAL_MAX_POLY_X (int; default 5)

- -

Equivalent parameter of PRIMER_MAX_POLY_X for the internal oligo.

- - -

PRIMER_MIN_LEFT_THREE_PRIME_DISTANCE (int; default -1)

- -

When returning multiple primer pairs, -the minimum number of base pairs between the 3' ends of -any two left primers.
-
-Primers with 3' ends at positions e.g. 30 and 31 in the template -sequence have a three-prime distance of 1.
-
-In addition to positive values, the values -1 and 0 -are acceptable and have special interpretations: -
-
--1 indicates that a given left primer can appear in -multiple primer pairs returned by primer3. -This is the default behavior. - -
-
- -0 indicates that a left primer is acceptable if it -was not already used. -In other words, two left primers are allowed to -have the same 3' position provided their 5' positions differ. - -
-
- -For n > 0: -A left primer is acceptable if:
-
-NOT(3' end of left primer closer than n to the 3' end of a previously -used left primer)

- - -

PRIMER_MIN_RIGHT_THREE_PRIME_DISTANCE (int; default -1)

- -

Analogous to PRIMER_MIN_LEFT_THREE_PRIME_DISTANCE, -but for right primers.

- - -

PRIMER_MIN_THREE_PRIME_DISTANCE (int; default -1)

- -

A "convenience" tag that simultaneously -sets -PRIMER_MIN_LEFT_THREE_PRIME_DISTANCE -and -PRIMER_MIN_RIGHT_THREE_PRIME_DISTANCE -
-
-For example

-
-PRIMER_MIN_THREE_PRIME_DISTANCE=3
-
-is equivalent to -
-PRIMER_MIN_LEFT_THREE_PRIME_DISTANCE=3
-PRIMER_MIN_RIGHT_THREE_PRIME_DISTANCE=3
-
-

-It is an error to specify both -PRIMER_MIN_THREE_PRIME_DISTANCE and either -PRIMER_MIN_LEFT_THREE_PRIME_DISTANCE or -PRIMER_MIN_RIGHT_THREE_PRIME_DISTANCE -in the same input record.

- - -

PRIMER_PICK_ANYWAY (boolean; default 0)

- -

If true use primer provided in SEQUENCE_PRIMER, SEQUENCE_PRIMER_REVCOMP, -or SEQUENCE_INTERNAL_OLIGO even if it violates specific -constraints.

- - -

PRIMER_LOWERCASE_MASKING (int; default 0)

- -

This option allows for intelligent design of primers in sequence in -which masked regions (for example repeat-masked regions) are -lower-cased. (New in v. 1.1.0, added by Maido Remm and Triinu -Koressaar)
-
-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.

- - -

PRIMER_EXPLAIN_FLAG (boolean; default 0)

- -

If this flag is 1 (non-0), produce PRIMER_LEFT_EXPLAIN, -PRIMER_RIGHT_EXPLAIN, PRIMER_INTERNAL_EXPLAIN and/or -PRIMER_PAIR_EXPLAIN output -tags as appropriate. -These output tags are intended to provide information on the number of -oligos and primer pairs that primer3 examined and counts of -the number discarded for various reasons. If -format_output is -set similar information is produced in the user-oriented output.

- - -

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_MAX_NS_ACCEPTED to a -1 (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_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_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_LIBRARY_MISPRIMING, except -that an ambiguity code in the template is never treated as a -consensus (see PRIMER_LIB_AMBIGUITY_CODES_CONSENSUS).

- - -

PRIMER_MAX_TEMPLATE_MISPRIMING_TH (decimal, 9999.99; default -1.00)

- -

Similar to PRIMER_MAX_TEMPLATE_MISPRIMING but -assesses alternative binding sites in the template using thermodynamic models -(when PRIMER_THERMODYNAMIC_TEMPLATE_ALIGNMENT=1). -This parameter specifies the maximum allowed -melting temperature of an oligo (primer) -at an "ectopic" site within the template sequence; 47.0 would be -a reasonable choice if PRIMER_MIN_TM is 57.0. -

- - -

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_LIBRARY_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_PAIR_MAX_TEMPLATE_MISPRIMING_TH (decimal, 9999.99; default -1.00)

- -

The maximum allowed summed melting temperatures -of both primers at ectopic sites within the template (with -the two primers in an orientation that would allow PCR -amplification.) -The melting temperatures are calculated -as for PRIMER_MAX_TEMPLATE_MISPRIMING_TH. - - -

PRIMER_WT_TEMPLATE_MISPRIMING (float; default 0.0)

- -

Penalty for a single primer binding to the template sequence.
-
-The use of this Tag is modified from primer3 version 2.0 on: -The values used with the older versions have to be multiplied -by the factor 100 to have the same effect.

- - -

PRIMER_WT_TEMPLATE_MISPRIMING_TH (float; default 0.0)

- -

Penalty for a single primer binding to the template sequence (thermodynamic approach, when PRIMER_THERMODYNAMIC_TEMPLATE_ALIGNMENT=1).

- - -

PRIMER_PAIR_WT_TEMPLATE_MISPRIMING (float; default 0.0)

- -

Penalty for a primer pair binding to the template sequence.
-
-The use of this Tag is modified from primer3 version 2.0 on: -The values used with the older versions have to be multiplied -by the factor 100 to have the same effect.

- - -

PRIMER_PAIR_WT_TEMPLATE_MISPRIMING_TH (float; default 0.0)

- -

Penalty for a primer pair binding to the template sequence -(thermodynamic approach, when PRIMER_THERMODYNAMIC_TEMPLATE_ALIGNMENT=1).

- - -

PRIMER_MISPRIMING_LIBRARY (string; default empty)

- -

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_LIBRARY_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_MAX_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. For technical -reasons the length of the sequence must be >= 3. Of course, -sequences of length < 10 or so are probably useless, but -will be accepted without complaint.
-
-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://ftp.ncbi.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_INTERNAL_MISHYB_LIBRARY (string; default empty)

- -

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_LIB_AMBIGUITY_CODES_CONSENSUS (boolean; default 0)

- -

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_LIBRARY_MISPRIMING (decimal, 9999.99; default 12.00)

- -

The maximum allowed weighted similarity with any sequence in -PRIMER_MISPRIMING_LIBRARY.

- - -

PRIMER_INTERNAL_MAX_LIBRARY_MISHYB (decimal,9999.99; default 12.00)

- -

Similar to PRIMER_MAX_LIBRARY_MISPRIMING except that this parameter applies -to the similarity of candidate internal oligos to the library -specified in PRIMER_INTERNAL_MISHYB_LIBRARY.

- - -

PRIMER_PAIR_MAX_LIBRARY_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_WT_LIBRARY_MISPRIMING (float; default 0.0)

- -

Penalty for a single primer binding to any single sequence -in PRIMER_MISPRIMING_LIBRARY.

- - -

PRIMER_INTERNAL_WT_LIBRARY_MISHYB (float; default 0.0)

- -

Equivalent parameter of PRIMER_WT_LIBRARY_MISPRIMING for the internal oligo.

- - -

PRIMER_PAIR_WT_LIBRARY_MISPRIMING (float; default 0.0)

- -

Penalty for a primer pair binding to any single sequence -in PRIMER_MISPRIMING_LIBRARY.

- - -

PRIMER_MIN_QUALITY (int; default 0)

- -

The minimum sequence quality (as specified by -SEQUENCE_QUALITY) allowed within a primer.

- - -

PRIMER_INTERNAL_MIN_QUALITY (int; default 0)

- -

Equivalent parameter of PRIMER_MIN_QUALITY for the internal oligo.

- - -

PRIMER_MIN_END_QUALITY (int; default 0)

- -

The minimum sequence quality (as specified by -SEQUENCE_QUALITY) allowed within the 5' pentamer of a -primer. Note that there is no PRIMER_INTERNAL_MIN_END_QUALITY.

- - -

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_WT_SEQ_QUAL (float; default 0.0)

- -

Penalty weight for the sequence quality of the primer.

- - -

PRIMER_INTERNAL_WT_SEQ_QUAL (float; default 0.0)

- -

Equivalent parameter of PRIMER_WT_SEQ_QUAL for the internal oligo.

- - -

PRIMER_PAIR_WT_PR_PENALTY (float; default 1.0)

- -

Penalty factor for the sum of the left and the right primer added -to the pair penalty. Setting this value below 1.0 will increase -running time.
-
-As PRIMER_PAIR_WT_PR_PENALTY or the per-primer -penalties it multiplies become lower with respect to various -pair penalties (for example PRIMER_PAIR_WT_PRODUCT_SIZE_LT -PRIMER_PAIR_WT_PRODUCT_SIZE_GT -PRIMER_PAIR_WT_DIFF_TM, etc.) the running time of the -search for primer pairs is likely to grow substantially. The -reason is that the search algorithm must calculate the penalty -for more primer pairs (as opposed to excluding them based on -the penalties of the individual oligos). - -

- - -

PRIMER_PAIR_WT_IO_PENALTY (float; default 0.0)

- -

Penalty factor for the internal oligo added to the pair penalty.

- - -

PRIMER_INSIDE_PENALTY (float; default -1.0)

- -

Non-default values are 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)

- -

Non-default values are 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_WT_POS_PENALTY (float; default 1.0)

- -

Penalty for the primer which do not overlap the target.

- - -

PRIMER_SEQUENCING_LEAD (int; default 50)

- -

Defines the space from the 3'end of the primer to the point -were the trace signals are readable. Value only used if -PRIMER_TASK=pick_sequencing_primers.

- - -

PRIMER_SEQUENCING_SPACING (int; default 500)

- -

Defines the space from the 3'end of the primer to the 3'end of -the next primer on the same strand. Value only used if -PRIMER_TASK=pick_sequencing_primers.

- - -

PRIMER_SEQUENCING_INTERVAL (int; default 250)

- -

Defines the space from the 3'end of the primer to the 3'end of -the next primer on the reverse strand. Value only used if -PRIMER_TASK=pick_sequencing_primers.

- - -

PRIMER_SEQUENCING_ACCURACY (int; default 20)

- -

Defines the space from the calculated position of the 3'end to -both sides in which primer3plus picks the best primer. Value only used if -PRIMER_TASK=pick_sequencing_primers.

- - -

PRIMER_WT_END_QUAL (float; default 0.0)

- -

- - -

PRIMER_INTERNAL_WT_END_QUAL (float; default 0.0)

- -

- - -

18. "PROGRAM" INPUT TAGS

- -

"Program" input tags start with P3_... describe the -parameters that deal with the behavior of the primer3 program -itself.)

-

P3_FILE_ID (string; default empty)

- -

-This tag is only valid in primer3 setting files. It should be used to -identify the purpose of the settings files it appears in. -It is always printed out on the output of primer3. -See also also the command line flag -echo_settings_file, -which causes the entire settings file to be echoed in primer3_core's -output. -

- - -

P3_FILE_FLAG (boolean; default 0)

- -

If the associated value = 1 (non-0), then primer3 creates -one or more output -files for each input SEQUENCE_TEMPLATE. 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 SEQUENCE_ID tag (which -must be supplied). If internal oligos -are requested, primer3 produces a file -<sequence_id>.int, which lists all -acceptable internal oligos. Obviously, <sequence_id> needs -to be a string that will work as a file name. - -
-
- -See also the pick_primer_list -argument to PRIMER_TASK, which offers similar functionality on stdout. - -

- - -

P3_COMMENT (string; default empty)

- -

The value of this tag is ignored. It can be used to annotate input.

- - -

19. HOW PRIMER3 CALCULATES THE PENALTY VALUE

- -

-In essense, the penalty values define what is the best primer -pair. -The calculation of penalty values -takes into consideration penalty weights, which allow -one to fine-tune the selection of primers to specific needs.
-
-This section will explain the selection process of primers by -primer3. In general the selection is a multi step process:
-
-In the first step, primer3 evaluates every primer that -can be picked in the region of interest, possibly subject to -constraints due to target regions, product size ranges, and -so forth, that might preclude the use of primers in the -eventually selected primer pairs. In this pass the hard -limits are tested like PRIMER_MAX_GC or PRIMER_MIN_TM. Primers -with a GC lower than PRIMER_MAX_GC or a Tm higher than -PRIMER_MIN_TM are memorized, the primers which fail in one of -these tests are excluded. Primer3 can be forced to use primers -failing to pass this test by setting PRIMER_PICK_ANYWAY to one -(only available for primers provided by the user).
-
-In the second step, primer3 calculates a penalty for each -primer. This penalty is the only score by which primer3 -evaluates the primers It is also provided as output -PRIMER_LEFT_4_PENALTY, PRIMER_INTERNAL_4_PENALTY and -PRIMER_RIGHT_4_PENALTY (shown for the primer set 4). For each -primer, it is calculated like that:

- -

Left Primers:

-
-PRIMER_LEFT_4_PENALTY =
-
-   If PRIMER_LEFT_4_TM > PRIMER_OPT_TM then this is added (+):
-
-       + PRIMER_WT_TM_GT * ( PRIMER_LEFT_4_TM - PRIMER_OPT_TM )
-
-   If PRIMER_LEFT_4_TM < PRIMER_OPT_TM then this is added (+):
-
-       + PRIMER_WT_TM_LT * ( PRIMER_OPT_TM - PRIMER_LEFT_4_TM )
-
-
-   If PRIMER_LEFT_4_GC_PERCENT > PRIMER_OPT_GC_PERCENT then 
-       this is added (+):
-
-       + PRIMER_WT_GC_PERCENT_GT *
-            ( PRIMER_LEFT_4_GC_PERCENT - PRIMER_OPT_GC_PERCENT )
-
-   If PRIMER_LEFT_4_GC_PERCENT < PRIMER_OPT_GC_PERCENT then
-       this is added (+):
-
-       + PRIMER_WT_GC_PERCENT_LT *
-            ( PRIMER_OPT_GC_PERCENT - PRIMER_LEFT_4_GC_PERCENT )
-
-
-   The following section uses <primer length> as part of 
-   the term which is given as output in 
-   PRIMER_LEFT_4=position,<primer length> 
-
-   If <primer length> > PRIMER_OPT_SIZE then
-       this is added (+):
-
-       + PRIMER_WT_SIZE_GT *
-            ( <primer length> - PRIMER_OPT_SIZE )
-
-   If <primer length> < PRIMER_OPT_SIZE then
-       this is added (+):
-
-       + PRIMER_WT_SIZE_LT *
-            ( PRIMER_OPT_SIZE - <primer length> )
-
-
-   If the primer does not overlap a target then
-       this is added (+):
-	
-       + PRIMER_WT_POS_PENALTY * PRIMER_LEFT_4_POSITION_PENALTY
-
-
-   These are allways added (+) to the penalty
-   (if the thermodynamic approach is used then the part in italic
-      is substituted with text below this calculation):
-
-    + PRIMER_WT_SELF_ANY * PRIMER_LEFT_4_SELF_ANY
-
-       + PRIMER_WT_SELF_END * PRIMER_LEFT_4_SELF_END
-
-       + PRIMER_WT_TEMPLATE_MISPRIMING *
-            PRIMER_LEFT_4_TEMPLATE_MISPRIMING
-
-       + PRIMER_WT_END_STABILITY * PRIMER_LEFT_4_END_STABILITY
-
-       + PRIMER_WT_NUM_NS * <numbers of N in the selected primer>
-
-       + PRIMER_WT_LIBRARY_MISPRIMING * PRIMER_LEFT_4_LIBRARY_MISPRIMING
-
-       + PRIMER_WT_SEQ_QUAL *
-            ( PRIMER_QUALITY_RANGE_MAX - 
-              PRIMER_LEFT_4_MIN_SEQ_QUALITY )
-      
-      If the thermodynamic approach is used then the part of italic in
-          the above calculation is replaced by this:
-
- 
-     If ((PRIMER_LEFT_4_TM - 5) ≤ PRIMER_LEFT_4_SELF_ANY_TH) then is added (+):
-      + PRIMER_WT_SELF_ANY_TH *
-                  (PRIMER_LEFT_4_SELF_ANY_TH - (PRIMER_LEFT_4_TM - 5 - 1))
-    else if ((PRIMER_LEFT_4_TM - 5) > PRIMER_LEFT_4_SELF_ANY_TH) then is added (+):
-      + PRIMER_WT_SELF_ANY_TH *
-            (1/(PRIMER_LEFT_4_TM - 5 + 1 - PRIMER_LEFT_4_SELF_ANY_TH));
-
-    If ((PRIMER_LEFT_4_TM - 5) ≤ PRIMER_LEFT_4_SELF_END_TH) then is added (+):
-     + PRIMER_WT_SELF_END_TH *
-               (PRIMER_LEFT_4_SELF_END_TH - (PRIMER_LEFT_4_TM - 5 - 1))
-    else if ((PRIMER_LEFT_4_TM - 5) > PRIMER_LEFT_4_SELF_END_TH) then is added (+):
-     + PRIMER_WT_SELF_END_TH *
-       (1/(PRIMER_LEFT_4_TM - 5 + 1 - PRIMER_LEFT_4_SELF_ANY_TH));
-
-    If ((PRIMER_LEFT_4_TM - 5) ≤ PRIMER_LEFT_4_TEMPLATE_MISPRIMING_TH) then is added (+):
-     + PRIMER_WT_TEMPLATE_MISPRIMING_TH *
-       (PRIMER_LEFT_4_TEMPLATE_MISPRIMING_TH - (PRIMER_LEFT_4_TM - 5 - 1))
-    else if ((PRIMER_LEFT_4_TM - 5) > PRIMER_LEFT_4_TEMPLATE_MISPRIMING_TH) then is added (+):
-     + PRIMER_WT_TEMPLATE_MISPRIMING_TH *
-      (1/(PRIMER_LEFT_4_TM - 5 + 1 - PRIMER_LEFT_4_TEMPLATE_MISPRIMING_TH));
-
-    If ((PRIMER_LEFT_4_TM - 5) ≤ PRIMER_LEFT_4_HAIRPIN_TH) then is added (+):
-      + PRIMER_WT_HAIRPIN_TH *
-             (PRIMER_LEFT_4_HAIRPIN_TH - (PRIMER_LEFT_4_TM - 5 - 1))
-    else if ((PRIMER_LEFT_4_TM - 5) > PRIMER_LEFT_4_HAIRPIN_TH) then is added (+):
-      + PRIMER_WT_HAIRPIN_TH *
-            (1/(PRIMER_LEFT_4_TM - 5 + 1 - PRIMER_LEFT_4_HAIRPIN_TH));
- 
-
-
- -

Right Primers (identical to Left Primers):

-
-PRIMER_RIGHT_4_PENALTY =
-
-   If PRIMER_RIGHT_4_TM > PRIMER_OPT_TM then 
-       this is added (+):
-
-       + PRIMER_WT_TM_GT * ( PRIMER_RIGHT_4_TM - PRIMER_OPT_TM )
-
-   If PRIMER_RIGHT_4_TM < PRIMER_OPT_TM then 
-       this is added (+):
-
-       + PRIMER_WT_TM_LT * ( PRIMER_OPT_TM - PRIMER_RIGHT_4_TM )
-
-
-   If PRIMER_RIGHT_4_GC_PERCENT > PRIMER_OPT_GC_PERCENT then 
-       this is added (+):
-
-       + PRIMER_WT_GC_PERCENT_GT *
-            ( PRIMER_RIGHT_4_GC_PERCENT - PRIMER_OPT_GC_PERCENT )
-
-   If PRIMER_RIGHT_4_GC_PERCENT < PRIMER_OPT_GC_PERCENT then 
-       this is added (+):
-
-       + PRIMER_WT_GC_PERCENT_LT *
-            ( PRIMER_OPT_GC_PERCENT - PRIMER_RIGHT_4_GC_PERCENT )
-
-
-   The following section uses <primer length> as part of 
-   the term which is given as output in 
-   PRIMER_RIGHT_4=position,<primer length> 
-
-   If <primer length> > PRIMER_OPT_SIZE then 
-       this is added (+):
-
-       + PRIMER_WT_SIZE_GT *
-            ( <primer length> - PRIMER_OPT_SIZE )
-
-   If <primer length> < PRIMER_OPT_SIZE then 
-       this is added (+):
-
-       + PRIMER_WT_SIZE_LT *
-            ( PRIMER_OPT_SIZE - <primer length> )
-
-
-   If the primer does not overlap a target then 
-       this is added (+):
-
-       + PRIMER_WT_POS_PENALTY * PRIMER_RIGHT_4_POSITION_PENALTY
-
-
-   These are allways added (+) to the penalty
-   (if the thermodynamic approach is used then the part in italic
-      is substituted with text below this calculation):
-
-    + PRIMER_WT_SELF_ANY * PRIMER_RIGHT_4_SELF_ANY
-
-       + PRIMER_WT_SELF_END * PRIMER_RIGHT_4_SELF_END
-
-       + PRIMER_WT_TEMPLATE_MISPRIMING *
-            PRIMER_RIGHT_4_TEMPLATE_MISPRIMING
-
-       + PRIMER_WT_END_STABILITY * PRIMER_RIGHT_4_END_STABILITY
-
-       + PRIMER_WT_NUM_NS * <numbers of N in the selected primer>
-
-       + PRIMER_WT_LIBRARY_MISPRIMING * PRIMER_RIGHT_4_LIBRARY_MISPRIMING
-
-       + PRIMER_WT_SEQ_QUAL *
-            ( PRIMER_QUALITY_RANGE_MAX - 
-              PRIMER_RIGHT_4_MIN_SEQ_QUALITY )
-     
-     If the thermodynamic approach is used then the part of italic in
-         the above calculation is replaced by this:
-
-
-    If ((PRIMER_RIGHT_4_TM - 5) ≤ PRIMER_RIGHT_4_SELF_ANY_TH) then is added (+):
-      + PRIMER_WT_SELF_ANY_TH *
-                  (PRIMER_RIGHT_4_SELF_ANY_TH - (PRIMER_RIGHT_4_TM - 5 - 1))
-    else if ((PRIMER_RIGHT_4_TM - 5) > PRIMER_RIGHT_4_SELF_ANY_TH) then is added (+):
-      + PRIMER_WT_SELF_ANY_TH *
-            (1/(PRIMER_RIGHT_4_TM - 5 + 1 - PRIMER_RIGHT_4_SELF_ANY_TH));
-
-    If ((PRIMER_RIGHT_4_TM - 5) ≤ PRIMER_RIGHT_4_SELF_END_TH) then is added (+):
-     + PRIMER_WT_SELF_END_TH *
-               (PRIMER_RIGHT_4_SELF_END_TH - (PRIMER_RIGHT_4_TM - 5 - 1))
-    else if ((PRIMER_RIGHT_4_TM - 5) > PRIMER_RIGHT_4_SELF_END_TH) then is added (+):
-     + PRIMER_WT_SELF_END_TH *
-               (1/(PRIMER_RIGHT_4_TM - 5 + 1 - PRIMER_RIGHT_4_SELF_ANY_TH));
-
-    If ((PRIMER_RIGHT_4_TM - 5) ≤ PRIMER_RIGHT_4_TEMPLATE_MISPRIMING_TH) then is added (+):
-      + PRIMER_WT_TEMPLATE_MISPRIMING_TH *
-       (PRIMER_RIGHT_4_TEMPLATE_MISPRIMING_TH - (PRIMER_RIGHT_4_TM - 5 - 1))
-    else if ((PRIMER_RIGHT_4_TM - 5) > PRIMER_RIGHT_4_TEMPLATE_MISPRIMING_TH) then is added (+):
-      + PRIMER_WT_TEMPLATE_MISPRIMING_TH *
-      (1/(PRIMER_RIGHT_4_TM - 5 + 1 - PRIMER_RIGHT_4_TEMPLATE_MISPRIMING_TH));
-
-    If ((PRIMER_RIGHT_4_TM - 5) ≤ PRIMER_RIGHT_4_HAIRPIN_TH) then is added (+):
-      + PRIMER_WT_HAIRPIN_TH *
-             (PRIMER_RIGHT_4_HAIRPIN_TH - (PRIMER_RIGHT_4_TM - 5 - 1))
-    else if ((PRIMER_RIGHT_4_TM - 5) > PRIMER_RIGHT_4_HAIRPIN_TH) then is added (+):
-      + PRIMER_WT_HAIRPIN_TH *
-            (1/(PRIMER_RIGHT_4_TM - 5 + 1 - PRIMER_RIGHT_4_HAIRPIN_TH));
-
-
- -

Internal Oligos:

-
-PRIMER_INTERNAL_4_PENALTY =
-
-   If PRIMER_INTERNAL_4_TM > PRIMER_INTERNAL_OPT_TM then
-       this is added (+):
-
-       + PRIMER_INTERNAL_WT_TM_GT *
-            ( PRIMER_INTERNAL_4_TM - PRIMER_INTERNAL_OPT_TM )
-
-   If PRIMER_INTERNAL_4_TM < PRIMER_INTERNAL_OPT_TM then
-       this is added (+):
-
-       + PRIMER_INTERNAL_WT_TM_LT *
-            ( PRIMER_INTERNAL_OPT_TM - PRIMER_INTERNAL_4_TM )
-
-
-   If PRIMER_INTERNAL_4_GC_PERCENT > PRIMER_INTERNAL_OPT_GC_PERCENT
-       then this is added (+):
-
-       + PRIMER_INTERNAL_WT_GC_PERCENT_GT *
-            ( PRIMER_INTERNAL_4_GC_PERCENT - 
-              PRIMER_INTERNAL_OPT_GC_PERCENT )
-
-   If PRIMER_INTERNAL_4_GC_PERCENT < PRIMER_INTERNAL_OPT_GC_PERCENT
-       then this is added (+):
-
-       + PRIMER_INTERNAL_WT_GC_PERCENT_LT *
-            ( PRIMER_INTERNAL_OPT_GC_PERCENT -
-              PRIMER_INTERNAL_4_GC_PERCENT )
-
-
-   The following section uses <primer length> as part of 
-   the term which is given as output in 
-   PRIMER_INTERNAL_4=position,<primer length> 
-
-   If <primer length> > PRIMER_INTERNAL_OPT_SIZE then 
-       this is added (+):
-
-       + PRIMER_INTERNAL_WT_SIZE_GT *
-            ( <primer length> - PRIMER_INTERNAL_OPT_SIZE )
-
-   If <primer length> < PRIMER_INTERNAL_OPT_SIZE then
-       this is added (+):
-
-       + PRIMER_INTERNAL_WT_SIZE_LT *
-            ( PRIMER_INTERNAL_OPT_SIZE - <primer length> )
-
-
-   These are always added (+) to the penalty:
-   (if the thermodynamic approach is used then the part in italic
-      is substituted with text below this calculation):
-      
-  + PRIMER_INTERNAL_WT_SELF_ANY * PRIMER_INTERNAL_4_SELF_ANY
-
-     + PRIMER_INTERNAL_WT_SELF_END * PRIMER_INTERNAL_4_SELF_END
-
-     + PRIMER_INTERNAL_WT_NUM_NS *
-          <numbers of N in the selected primer>
-
-     + PRIMER_INTERNAL_WT_LIBRARY_MISHYB *
-          PRIMER_INTERNAL_4_LIBRARY_MISHYB
-
-     + PRIMER_INTERNAL_WT_SEQ_QUAL * 
-          ( PRIMER_QUALITY_RANGE_MAX - 
-            PRIMER_INTERNAL_4_MIN_SEQ_QUALITY )
-
-   If the thermodynamic approach is used then the part of italic in
-   the above calculation is replaced by this:
-
-   If ((PRIMER_INTERNAL_4_TM - 5) ≤ PRIMER_INTERNAL_4_SELF_ANY_TH) then is added (+):
-    + PRIMER_INTERNAL_WT_SELF_ANY_TH *
-        (PRIMER_INTERNAL_4_SELF_ANY_TH - (PRIMER_INTERNAL_4_TM - 5 - 1))
-    else if ((PRIMER_INTERNAL_4_TM - 5) > PRIMER_INTERNAL_4_SELF_ANY_TH) then is added (+):
-    + PRIMER_INTERNAL_WT_SELF_ANY_TH *
-        (1/(PRIMER_INTERNAL_4_TM - 5 + 1 - PRIMER_INTERNAL_4_SELF_ANY_TH));
-
-    If ((PRIMER_INTERNAL_4_TM - 5) ≤ PRIMER_INTERNAL_4_SELF_END_TH) then is added (+):
-     + PRIMER_INTERNAL_WT_SELF_END_TH *
-         (PRIMER_INTERNAL_4_SELF_END_TH - (PRIMER_INTERNAL_4_TM - 5 - 1))
-    else if ((PRIMER_INTERNAL_4_TM - 5) > PRIMER_INTERNAL_4_SELF_END_TH) then is added (+):
-      + PRIMER_INTERNAL_WT_SELF_END_TH *
-          (1/(PRIMER_INTERNAL_4_TM - 5 + 1 - PRIMER_INTERNAL_4_SELF_ANY_TH));
-
-    If ((PRIMER_INTERNAL_4_TM - 5) ≤ PRIMER_INTERNAL_4_HAIRPIN_TH) then is added (+):
-      + PRIMER_INTERNAL_WT_HAIRPIN_TH *
-        (PRIMER_INTERNAL_4_HAIRPIN_TH - (PRIMER_INTERNAL_4_TM - 5 - 1))
-    else if ((PRIMER_INTERNAL_4_TM - 5) > PRIMER_INTERNAL_4_HAIRPIN_TH) then is added (+):
-      + PRIMER_INTERNAL_WT_HAIRPIN_TH *
-        (1/(PRIMER_INTERNAL_4_TM - 5 + 1 - PRIMER_INTERNAL_4_HAIRPIN_TH));
-
-
-

-The primers are then sorted by penalty and primer3 tries to pick -the primers with the lowest penalty. For the PRIMER_TASK -pick_primer_list or pick_sequencing_primers the selection ends at -this point. If primer pairs have to be selected, a -PRIMER_PAIR_4_PENALTY is calculated: -

-PRIMER_PAIR_4_PENALTY =
-
-   To the pair penalty are at first the single primer penalties 
-   added (+):
-
-       + PRIMER_PAIR_WT_PR_PENALTY *
-            ( PRIMER_LEFT_4_PENALTY + PRIMER_RIGHT_4_PENALTY )
-
-
-   If internal oligo is picked then this is added (+):
-
-       + PRIMER_PAIR_WT_IO_PENALTY * PRIMER_INTERNAL_4_PENALTY
-	
-
-   If PRIMER_PAIR_4_PRODUCT_TM > PRIMER_PRODUCT_OPT_TM then
-       this is added (+):
-
-       + PRIMER_PAIR_WT_PRODUCT_TM_GT *
-            ( PRIMER_PAIR_4_PRODUCT_TM - PRIMER_PRODUCT_OPT_TM )
-
-   If PRIMER_PAIR_4_PRODUCT_TM < PRIMER_PRODUCT_OPT_TM then
-       this is added (+):
-
-       + PRIMER_PAIR_WT_PRODUCT_TM_LT *
-            ( PRIMER_PRODUCT_OPT_TM - PRIMER_PAIR_4_PRODUCT_TM )
-
-
-   If PRIMER_PAIR_4_PRODUCT_SIZE > PRIMER_PRODUCT_OPT_SIZE then
-       this is added (+):
-
-       + PRIMER_PAIR_WT_PRODUCT_SIZE_GT *
-            ( PRIMER_PAIR_4_PRODUCT_SIZE - PRIMER_PRODUCT_OPT_SIZE )
-
-   If PRIMER_PAIR_4_PRODUCT_SIZE < PRIMER_PRODUCT_OPT_SIZE then
-       this is added (+):
-
-       + PRIMER_PAIR_WT_PRODUCT_SIZE_LT *
-            ( PRIMER_PRODUCT_OPT_SIZE - PRIMER_PAIR_4_PRODUCT_SIZE )
-
-
-   These are allways added (+) to the penalty:
-   (if the thermodynamic approach is used then the part in italic
-       is substituted with text below this calculation):
-       
-     + PRIMER_PAIR_WT_DIFF_TM * 
-          <difference in Tm between the left and the right primer>
-
-  + PRIMER_PAIR_WT_COMPL_ANY * PRIMER_PAIR_4_COMPL_ANY
-
-     + PRIMER_PAIR_WT_COMPL_END * PRIMER_PAIR_4_COMPL_END
-
-     + PRIMER_PAIR_WT_LIBRARY_MISPRIMING * PRIMER_PAIR_4_LIBRARY_MISPRIMING
-
-     + PRIMER_PAIR_WT_TEMPLATE_MISPRIMING *
-          PRIMER_PAIR_4_TEMPLATE_MISPRIMING
-
-     If the thermodynamic approach is used then the part of italic in
-     the above calculation is replaced by this:
-
-   If ((min(PRIMER_LEFT_4_TM,PRIMER_RIGHT_4_TM) - 5) ≤ PRIMER_PAIR_4_COMPL_ANY_TH) then is added (+):
-   + PRIMER_PAIR_WT_COMPL_ANY_TH *
-       (PRIMER_PAIR_4_COMPL_ANY_TH - (min(PRIMER_LEFT_4_TM,PRIMER_RIGHT_4_TM) - 5 - 1))
-  else if ((min(PRIMER_LEFT_4_TM,PRIMER_RIGHT_4_TM) - 5) > PRIMER_PAIR_4_COMPL_ANY_TH) then is added (+):
-   + PRIMER_PAIR_WT_COMPL_ANY_TH *
-      (1/(min(PRIMER_LEFT_4_TM,PRIMER_RIGHT_4_TM - 5 + 1 - PRIMER_PAIR_4_COMPL_ANY_TH));
- 
-   If ((min(PRIMER_LEFT_4_TM,PRIMER_RIGHT_4_TM - 5) ≤ PRIMER_PAIR_4_COMPL_END_TH) then is added (+):
-   + PRIMER_PAIR_WT_COMPL_END_TH *
-       (PRIMER_PAIR_4_COMPL_END_TH - (min(PRIMER_LEFT_4_TM,PRIMER_RIGHT_4_TM) - 5 - 1))
-  else if ((min(PRIMER_LEFT_4_TM,PRIMER_RIGHT_4_TM - 5) > PRIMER_PAIR_4_COMPL_END_TH) then is added (+):
-    + PRIMER_PAIR_WT_COMPL_END_TH *
-         (1/(min(PRIMER_LEFT_4_TM,PRIMER_RIGHT_4_TM - 5 + 1 - PRIMER_PAIR_4_COMPL_ANY_TH));
-
-  If ((min(PRIMER_LEFT_4_TM,PRIMER_RIGHT_4_TM - 5) ≤ PRIMER_PAIR_4_TEMPLATE_MISPRIMING_TH) then is added (+):
-   + PRIMER_PAIR_WT_TEMPLATE_MISPRIMING_TH *
-    (PRIMER_PAIR_4_TEMPLATE_MISPRIMING_TH - (min(PRIMER_LEFT_4_TM,PRIMER_RIGHT_4_TM - 5 - 1))
-  else if ((min(PRIMER_LEFT_4_TM,PRIMER_RIGHT_4_TM - 5) > PRIMER_PAIR_4_TEMPLATE_MISPRIMING_TH) then is added (+):
-   + PRIMER_PAIR_WT_TEMPLATE_MISPRIMING_TH *
-     (1/(min(PRIMER_LEFT_4_TM,PRIMER_RIGHT_4_TM - 5 + 1 - PRIMER_PAIR_4_TEMPLATE_MISPRIMING_TH));
-
-
-
-

Primer3 tries to select pairs with the lowest penalty which -still fulfill all necessary requirements like non-redundancy or -product size limits.

- -

20. PRIMER3 SETTINGS FILE FORMAT

- -

Primer3 can read global settings from a text file at program -start up. This allows the user to save and exchange settings -tailored to special applications.
-
-Such a primer3 settings file is a text file. The first three -lines of the file have to be as described below followed by tags -as they would be provided at standard input:

-
-Primer3 File - http://primer3.sourceforge.net
-P3_FILE_TYPE=settings
-
-P3_FILE_ID=Description of the settings
-SEQUENCE_TEMPLATE=ATG...
-...
-...
-...
-=
-
-

-In the first line "Primer3 File - http://primer3.sourceforge.net" -without tailing space. In the second line "P3_FILE_TYPE=settings". -Valid values for P3_FILE_TYPE are all_parameters, sequence and -settings. Up to now, only settings is supported. The third line -has to be empty. It is strongly advised to describe the settings -using the P3_FILE_ID tag. It will print the description of the -settings on the output. From the fourth line on regular -Boulder-IO can be used as it is used in regular input. It also -has to be terminated with a single "=". There can be only one -input per file.

- -

21. OUTPUT TAGS

- -

For each Boulder-IO record passed into primer3 via stdin, exactly -one Boulder-IO record comes out of primer3 on stdout. -If a settings file is provided and the option to echo the settings file is given -on the command line, then the contents of the settings file will also be -part of the output. Two additional tags are used to indicate where the -records of the settings file begin and end: P3_SETTINGS_FILE_USED specifies -the path to the settings file that was provided, P3_SETTINGS_FILE_END -does not have any value and it just indicates the end of the settings records.
-
-The 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.
-
-Tags are of the form PRIMER_{LEFT,RIGHT,INTERNAL,PAIR}_<j>_<tag_name> -where <j> is an integer from 0 to n, where n is at most the -value of PRIMER_NUM_RETURN. In the documentation the output -number 4 is shown as for example: PRIMER_LEFT_4_TM.
-
-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-correctable errors detected in the input -(separated by semicolons). This tag is absent if there are no -errors.

- - -

PRIMER_WARNING=s (*)

- -

s lists warnings generated by primer3` (separated by semicolons); -this tag is absent if there are no warnings.

- - -

PRIMER_LEFT_NUM_RETURNED=i

-

PRIMER_RIGHT_NUM_RETURNED=i

-

PRIMER_INTERNAL_NUM_RETURNED=i

-

PRIMER_PAIR_NUM_RETURNED=i

- -

i is the number of primers -or primer pairs returned on standard output. -These tags are always generated under -IO version 4 if there are no internal errors and -if PRIMER_ERROR is not present.
-
-If primer pairs were requested, -PRIMER_LEFT_NUM_RETURNED and -PRIMER_RIGHT_NUM_RETURNED will be equal to the -number of pairs returned, even if the -actual number of distinct left or right primers -was lower than the number of pairs. If primer -pairs with internal oligos were requested, -PRIMER_INTERNAL_NUM_RETURNED will also be set -to the number of pairs returned.
-
-If only left or right primers or hybridization -(internal) oligos were requested, PRIMER_PAIR_NUM_RETURNED -will be 0 and only the relevant tag -will have a non-zero value. -For example, if only left primers were requested, -PRIMER_RIGHT_NUM_RETURNED, PRIMER_INTERNAL_NUM_RETURNED and -PRIMER_PAIR_NUM_RETURNED will be 0.
-
-Some tasks, such as pick_sequencing_primers or -pick_primer_list, return left and right primers -that are not parts of primer pairs. In this case -PRIMER_PAIR_NUM_RETURNED will be 0. -

- - -

PRIMER_LEFT_4_PROBLEMS=s (*)

-

PRIMER_INTERNAL_4_PROBLEMS=s (*)

-

PRIMER_RIGHT_4_PROBLEMS=s (*)

- -

s lists the problems (constraint violations) associated -with the corresponding primer oligo.

- - -

PRIMER_LEFT_EXPLAIN=s (*)

-

PRIMER_INTERNAL_EXPLAIN=s (*)

-

PRIMER_RIGHT_EXPLAIN=s (*)

- -

s is a (more or less) self-documenting string containing -statistics on the possibilities 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. -In some cases the ok count may be higher than the actual number -of ok oligos. This is because a primer can be considered as part of -pair before all of the primer's characteristics have been -computed and checked. If a primer is never in a legal -pair or never in a pair with a fully evaluated penalty, then -this may occur. This -situation never results in a primer pair that contains -an illegal primer. -

- - -

PRIMER_PAIR_EXPLAIN=s (*)

- -

s is a self-documenting string containing statistics on picking a -primer pair (plus internal oligo if requested). For example

-
-PRIMER_PAIR_EXPLAIN=considered 81, unacceptable product size 49, no internal oligo 32, ok 0
-
-The purpose of this string is to provide information -in the case that not enough primer pairs are returned. This -information can be used, for example, to decide -which constraints to relax. In some cases the -information in this string can also give insight into -the causes of long running time. - -The counts in the string are only approximate, -because of several reasons: - -
    - -
  • When there are multiple PRIMER_PRODUCT_SIZE_RANGEs, -a primer pair may not be ok in one size range but ok -in another. Approximately, the counts for each statistic -are summed over all product size ranges. -
  • - -
  • When PRIMER_MIN_THREE_PRIME_DISTANCE -is > -1, the number of ok primer pairs -reported may be larger than the actual -number. The discrepancy is due to a primer -in the pair that would overlap a primer in a -'better' (lower penalty) pair. (The search -algorithm does not record state -that would allow it to detect -when a pair that was formerly ok becomes -not ok as the result of -another primer being inserted -into the output list before it is.) -
  • - -
  • In some instances, -primer3 will examine a primer pair before it -discovers that one of the individual -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_EXPLAIN has 'ok 0'. -
  • -
- - -

PRIMER_LEFT_4=i,n

- -

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_INTERNAL_4=i,n

- -

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_RIGHT_4=i,n

- -

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_LEFT_4_SEQUENCE=s

-

PRIMER_INTERNAL_4_SEQUENCE=s

-

PRIMER_RIGHT_4_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_TEMPLATE (which must be presented 5' -> 3'). The -sequence of the right primer is presented 5' -> 3' on the -opposite strand from the input SEQUENCE_TEMPLATE.

- - -

PRIMER_PAIR_4_PRODUCT_SIZE=x

- -

x is the product size of the PCR product.

- - -

PRIMER_LEFT_4_PENALTY=f

-

PRIMER_INTERNAL_4_PENALTY=f

-

PRIMER_RIGHT_4_PENALTY=f

- -

The contribution of this individual primer or oligo to the -objective function.

- - -

PRIMER_PAIR_4_PENALTY=f

- -

The value of the objective function for this pair (lower is better).

- - -

PRIMER_LEFT_4_TM=f

-

PRIMER_INTERNAL_4_TM=f

-

PRIMER_RIGHT_4_TM=f

- -

The melting TM for the selected oligo.

- - -

PRIMER_PAIR_4_PRODUCT_TM=f

- -

f is the melting temperature of the product. Calculated using -equation (iii) from 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://dx.doi.org/10.1093/nar/18.21.6409]. -Printed only if a non-default value of PRIMER_PRODUCT_MAX_TM or -PRIMER_PRODUCT_MIN_TM is specified.

- - -

PRIMER_PAIR_4_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_PRODUCT_MAX_TM or PRIMER_PRODUCT_MIN_TM is -specified.

- - -

PRIMER_PAIR_4_T_OPT_A=f

- -

f is T sub a super OPT from equation (i) in [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://dx.doi.org/10.1093/nar/18.21.6409]. -Printed only if PRIMER_PRODUCT_MAX_TM or PRIMER_PRODUCT_MIN_TM is -specified.

- - -

PRIMER_LEFT_4_GC_PERCENT=f

-

PRIMER_INTERNAL_4_GC_PERCENT=f

-

PRIMER_RIGHT_4_GC_PERCENT=f

- -

The percent GC for the selected oligo (denominator is the number -of non-ambiguous bases).

- - -

PRIMER_LEFT_4_SELF_ANY=f

-

PRIMER_INTERNAL_4_SELF_ANY=f

-

PRIMER_RIGHT_4_SELF_ANY=f

- -

The calculated value for the tendency of a primer to bind to -itself (interfering with target sequence binding). It will score -ANY binding occurring within the entire primer sequence. For -details see PRIMER_MAX_SELF_ANY.
-The self-complementarity measures for the selected oligo.

- - -

PRIMER_LEFT_4_SELF_ANY_TH=f

-

PRIMER_INTERNAL_4_SELF_ANY_TH=f

-

PRIMER_RIGHT_4_SELF_ANY_TH=f

- -

The calculated value for the tendency of a primer to bind to -itself (interfering with target sequence binding). It will calculate the -melting temperature for ANY binding occurring within the entire primer -sequence. For details see PRIMER_MAX_SELF_ANY_TH. -The self-complementarity measures for the selected oligo.

- - -

PRIMER_RIGHT_4_HAIRPIN_TH=f

- -

The calculated value of melting temperature of hairpin structure of primer. - For details see PRIMER_MAX_HAIRPIN_TH

- - -

PRIMER_PAIR_4_COMPL_ANY=f

- -

The calculated value for the tendency of a primer pair to bind to -each other (interfering with target sequence binding). It will -score ANY binding occurring within the entire primer sequence. -For details see PRIMER_MAX_SELF_ANY.
-The inter-pair complementarity measures over the complete primer -for selected left and right primer.

- - -

PRIMER_PAIR_4_COMPL_ANY_TH=f

- -

The calculated value for the tendency of a primer pair to -bind to each other (interfering with target sequence binding). It will -calculate the melting temperature of ANY binding occurring within the entire -primer sequence. For details see PRIMER_MAX_SELF_ANY_TH. -The inter-pair complementarity measures over the complete primer for -selected left and right primer.

- - -

PRIMER_LEFT_4_SELF_END=f

-

PRIMER_INTERNAL_4_SELF_END=f

-

PRIMER_RIGHT_4_SELF_END=f

- -

The calculated value for the tendency of the 3'-END to bind to a -identical primer. This is critical for primer quality because it -allows primers use itself as a target and amplify a short piece -(forming a primer-dimer). These primer are then unable to bind -and amplify the target sequence. For details see PRIMER_MAX_SELF_END.
-The self-complementarity measures for the ends of selected oligo.

- - -

PRIMER_LEFT_4_SELF_END_TH=f

-

PRIMER_INTERNAL_4_SELF_END_TH=f

-

PRIMER_RIGHT_4_SELF_END_TH=f

- -

The calculated value for the tendency of the 3'-END to bind -to a identical primer. This is critical for primer quality because it allows -primers use itself as a target and amplify a short piece (forming a -primer-dimer). These primer are then unable to bind and amplify the target -sequence. For details see PRIMER_MAX_SELF_END_TH. -The self-complementarity measures for the ends of selected oligo.

- - -

PRIMER_LEFT_4_HAIRPIN_TH=f

- -

The calculated value of melting temperature of hairpin -structure of primer. For details see PRIMER_MAX_HAIRPIN_TH

- - -

PRIMER_INTERNAL_4_HAIRPIN_TH=f

- -

The calculated value of melting temperature of hairpin -structure of primer. For details see PRIMER_MAX_HAIRPIN_TH -

- - -

PRIMER_PAIR_4_COMPL_END=f

- -

The calculated value for the tendency of the 3'-ENDs of a primer pair to bind to -each other. This is critical for primer quality because it -allows primers use itself as a target and amplify a short piece -(forming a primer-dimer). These primer are then unable to bind -and amplify the target sequence. For details see -PRIMER_MAX_SELF_END.
-The inter-pair complementarity measures for the ends of selected -left and right primer.

- - -

PRIMER_PAIR_4_COMPL_END_TH=f

- -

The calculated value for the tendency of the 3'-ENDs of a -primer pair to bind to each other. This is critical for primer quality -because it allows primers use itself as a target and amplify a short piece -(forming a primer-dimer). These primer are then unable to bind and amplify -the target sequence. For details see PRIMER_MAX_SELF_END_TH. -The inter-pair complementarity measures for the ends of selected left and -right primer.

- - -

PRIMER_LEFT_4_END_STABILITY=f

-

PRIMER_RIGHT_4_END_STABILITY=f

- -

f is the delta G of disruption of the five 3' bases of the -primer.

- - -

PRIMER_LEFT_4_TEMPLATE_MISPRIMING=f

-

PRIMER_RIGHT_4_TEMPLATE_MISPRIMING=f

-

PRIMER_PAIR_4_TEMPLATE_MISPRIMING=f

- -

Analogous to PRIMER_{LEFT,RIGHT,PAIR}_LIBRARY_MISPRIMING, 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_LEFT_4_TEMPLATE_MISPRIMING_TH=f

-

PRIMER_RIGHT_4_TEMPLATE_MISPRIMING_TH=f

-

PRIMER_PAIR_4_TEMPLATE_MISPRIMING_TH=f

- -

These output tags apply to mispriming within the template sequence and the calculation -method is based on thermodynamical approach. This often arises, for example, -in genes with repeated exons.

- - -

PRIMER_LEFT_4_LIBRARY_MISPRIMING=f, s

-

PRIMER_RIGHT_4_LIBRARY_MISPRIMING=f, s

-

PRIMER_PAIR_4_LIBRARY_MISPRIMING=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_MAX_LIBRARY_MISPRIMING is the maximum sum of -mispriming scores in any single library sequence (perhaps a -more reasonable estimator of the likelihood of mispriming).

- - -

PRIMER_INTERNAL_4_LIBRARY_MISHYB=f, s

- -

f is the maximum mishybridization score for the right primer -against any sequence in the given -PRIMER_INTERNAL_MISHYB_LIBRARY; s is the id of -corresponding library sequence.

- - -

PRIMER_LEFT_4_MIN_SEQ_QUALITY=i

-

PRIMER_INTERNAL_4_MIN_SEQ_QUALITY=i

-

PRIMER_RIGHT_4_MIN_SEQ_QUALITY=i

- -

i is the minimum _sequence_ quality within the primer -or oligo (not to be confused with the PRIMER_PAIR_4_PENALTY -output tag, which is really the value of the objective -function.)

- - -

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 SEQUENCE_START_CODON_POSITION with a -non-default value is supplied.

- - -

PRIMER_LEFT_4_POSITION_PENALTY=i

-

PRIMER_RIGHT_4_POSITION_PENALTY=i

- -

i is the penalty of the primer by its -position.

- - -

22. EXAMPLE OUTPUT

- -

You should run it yourself. Use the file 'example' -that came with this distribution -directory as input.

- -

23. ADVICE FOR PICKING PRIMERS

- -

We suggest consulting: Wojciech Rychlik (1993) "Selection of -Primers for Polymerase Chain Reaction" in BA White, Ed., "Methods -in Molecular Biology, Vol. 15: PCR Protocols: Current Methods and -Applications", pp 31-40, Humana Press, Totowa NJ.

- -

24. 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://ftp.ncbi.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 SEQUENCE_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) -that output this information.

- -

25. WHAT TO DO IF PRIMER3 CANNOT FIND ANY 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.

- -

26. DIFFERENCES FROM EARLIER VERSIONS

- -

The section HOW TO MIGRATE TAGS TO -IO VERSION 4 describes th modified tags in detail. -See also the file release_notes.txt in this directory. -

- -

27. 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.

- -

28. PRIMER3 WWW INTERFACES

- -

There are two web interfaces available :
-The Whitehead Institute for Biomedical Research provides a basic -web-based front end to primer3 named primer3web at -http://primer3.wi.mit.edu/
-
-A Primer3plus web services is at -http://primer3plus.com
-
-This distribution does not contain the Primer3 WWW interfaces.
-
-Web interface code is available at -http://sourceforge.net/projects/primer3/.

- -

29. ACKNOWLEDGMENTS

- -

Initial 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), -but ongoing development and maintenance are not currently funded. -
-
-Primer3 was originally written by Helen J. Skaletsky (Howard Hughes -Medical Institute, Whitehead Institute) and Steve Rozen (Duke-NUS -Graduate Medical School Singapore, formerly at Whitehead Institute) -based on the design of earlier versions, notably Primer 0.5 -(Steve Lincoln, Mark Daly, and Eric S. Lander). -The original web interface was designed by Richard Resnick. Lincoln -Stein designed the Boulder-IO format in the days before XML and RDF, and -championed the idea of making primer3 a software component, which -has been key to its wide utility.
-
-In addition, among others, Ernst Molitor, Carl Foeller, and James Bonfield -contributed to the early -design of primer3. Brant Faircloth has helped with -ensuring that primer3 runs on Windows and MacOS and with the -primer3 web site. -Triinu Koressaar and Maido Remm modernized the melting -temperature calculations in 2008. -Triinu Koressaar added secondary structure, -primer-dimer, and template mispriming based on a thermodynamic -model in 2.2.0. -Ioana Cutcutache is responsible for most of the -remaining improvements -in 2.2.0, including performance enhancements, modern -command line arguments, and new input tags to -control primer location (with the "overlap junction" -tags initially implemented by Andreas Untergasser). -Jian Ye patiently provided new requirements.
-
-Harm Nijveen and Andreas Untergasser developed the webinterface -Primer3Plus in 2006-2009. Currently Primer3Plus is maintained by -Andreas Untergasser. -
-
-Primer3 is an open software development project hosted -on SourceForge: http://sourceforge.net/projects/primer3/.

- -
- - diff -Nru primer3-2.3.7/primer3_v1_1_4_default_settings.txt primer3-2.4.0/primer3_v1_1_4_default_settings.txt --- primer3-2.3.7/primer3_v1_1_4_default_settings.txt 2016-02-17 10:11:38.000000000 +0000 +++ primer3-2.4.0/primer3_v1_1_4_default_settings.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,118 +0,0 @@ -Primer3 File - http://primer3.sourceforge.net -P3_FILE_TYPE=settings - -P3_FILE_ID=Default settings of primer3 version 1.1.4 -PRIMER_TASK=pick_detection_primers -PRIMER_PICK_LEFT_PRIMER=1 -PRIMER_PICK_INTERNAL_OLIGO=0 -PRIMER_PICK_RIGHT_PRIMER=1 -PRIMER_NUM_RETURN=5 -PRIMER_MIN_5_PRIME_OVERLAP_OF_JUNCTION=5 -PRIMER_PRODUCT_SIZE_RANGE=100-300 -PRIMER_PRODUCT_OPT_SIZE=0 -PRIMER_PAIR_WT_PRODUCT_SIZE_LT=0.0 -PRIMER_PAIR_WT_PRODUCT_SIZE_GT=0.0 -PRIMER_MIN_SIZE=18 -PRIMER_INTERNAL_MIN_SIZE=18 -PRIMER_OPT_SIZE=20 -PRIMER_INTERNAL_OPT_SIZE=20 -PRIMER_MAX_SIZE=27 -PRIMER_INTERNAL_MAX_SIZE=27 -PRIMER_WT_SIZE_LT=1.0 -PRIMER_INTERNAL_WT_SIZE_LT=1.0 -PRIMER_WT_SIZE_GT=1.0 -PRIMER_INTERNAL_WT_SIZE_GT=1.0 -PRIMER_MIN_GC=20.0 -PRIMER_INTERNAL_MIN_GC=20.0 -PRIMER_OPT_GC_PERCENT=50.0 -PRIMER_MAX_GC=80.0 -PRIMER_INTERNAL_MAX_GC=80.0 -PRIMER_WT_GC_PERCENT_LT=0.0 -PRIMER_INTERNAL_WT_GC_PERCENT_LT=0.0 -PRIMER_WT_GC_PERCENT_GT=0.0 -PRIMER_INTERNAL_WT_GC_PERCENT_GT=0.0 -PRIMER_GC_CLAMP=0 -PRIMER_MAX_END_GC=5 -PRIMER_MIN_TM=57.0 -PRIMER_INTERNAL_MIN_TM=57.0 -PRIMER_OPT_TM=60.0 -PRIMER_INTERNAL_OPT_TM=60.0 -PRIMER_MAX_TM=63.0 -PRIMER_INTERNAL_MAX_TM=63.0 -PRIMER_PAIR_MAX_DIFF_TM=100.0 -PRIMER_WT_TM_LT=1.0 -PRIMER_INTERNAL_WT_TM_LT=1.0 -PRIMER_WT_TM_GT=1.0 -PRIMER_INTERNAL_WT_TM_GT=1.0 -PRIMER_PAIR_WT_DIFF_TM=0.0 -PRIMER_PRODUCT_MIN_TM=-1000000.0 -PRIMER_PRODUCT_OPT_TM=0.0 -PRIMER_PRODUCT_MAX_TM=1000000.0 -PRIMER_PAIR_WT_PRODUCT_TM_LT=0.0 -PRIMER_PAIR_WT_PRODUCT_TM_GT=0.0 -PRIMER_TM_FORMULA=0 -PRIMER_SALT_MONOVALENT=50.0 -PRIMER_INTERNAL_SALT_MONOVALENT=50.0 -PRIMER_SALT_DIVALENT=0.0 -PRIMER_INTERNAL_SALT_DIVALENT=0.0 -PRIMER_DNTP_CONC=0.0 -PRIMER_INTERNAL_DNTP_CONC=0.0 -PRIMER_SALT_CORRECTIONS=0 -PRIMER_DNA_CONC=50.0 -PRIMER_INTERNAL_DNA_CONC=50.0 -PRIMER_MAX_SELF_ANY=8.00 -PRIMER_INTERNAL_MAX_SELF_ANY=12.00 -PRIMER_PAIR_MAX_COMPL_ANY=8.00 -PRIMER_WT_SELF_ANY=0.0 -PRIMER_INTERNAL_WT_SELF_ANY=0.0 -PRIMER_PAIR_WT_COMPL_ANY=0.0 -PRIMER_MAX_SELF_END=3.00 -PRIMER_INTERNAL_MAX_SELF_END=12.00 -PRIMER_PAIR_MAX_COMPL_END=3.00 -PRIMER_WT_SELF_END=0.0 -PRIMER_INTERNAL_WT_SELF_END=0.0 -PRIMER_PAIR_WT_COMPL_END=0.0 -PRIMER_MAX_END_STABILITY=100.0 -PRIMER_WT_END_STABILITY=0.0 -PRIMER_MAX_NS_ACCEPTED=0 -PRIMER_INTERNAL_MAX_NS_ACCEPTED=0 -PRIMER_WT_NUM_NS=0.0 -PRIMER_INTERNAL_WT_NUM_NS=0.0 -PRIMER_MAX_POLY_X=5 -PRIMER_INTERNAL_MAX_POLY_X=5 -PRIMER_MIN_THREE_PRIME_DISTANCE=-1 -PRIMER_PICK_ANYWAY=0 -PRIMER_LOWERCASE_MASKING=0 -PRIMER_EXPLAIN_FLAG=0 -PRIMER_LIBERAL_BASE=0 -PRIMER_FIRST_BASE_INDEX=0 -PRIMER_MAX_TEMPLATE_MISPRIMING=-1.00 -PRIMER_PAIR_MAX_TEMPLATE_MISPRIMING=-1.00 -PRIMER_WT_TEMPLATE_MISPRIMING=0.0 -PRIMER_PAIR_WT_TEMPLATE_MISPRIMING=0.0 -PRIMER_LIB_AMBIGUITY_CODES_CONSENSUS=1 -PRIMER_MAX_LIBRARY_MISPRIMING=12.00 -PRIMER_INTERNAL_MAX_LIBRARY_MISHYB=12.00 -PRIMER_PAIR_MAX_LIBRARY_MISPRIMING=24.00 -PRIMER_WT_LIBRARY_MISPRIMING=0.0 -PRIMER_INTERNAL_WT_LIBRARY_MISHYB=0.0 -PRIMER_PAIR_WT_LIBRARY_MISPRIMING=0.0 -PRIMER_MIN_QUALITY=0 -PRIMER_INTERNAL_MIN_QUALITY=0 -PRIMER_MIN_END_QUALITY=0 -PRIMER_QUALITY_RANGE_MIN=0 -PRIMER_QUALITY_RANGE_MAX=100 -PRIMER_WT_SEQ_QUAL=0.0 -PRIMER_INTERNAL_WT_SEQ_QUAL=0.0 -PRIMER_PAIR_WT_PR_PENALTY=1.0 -PRIMER_PAIR_WT_IO_PENALTY=0.0 -PRIMER_INSIDE_PENALTY=-1.0 -PRIMER_OUTSIDE_PENALTY=0.0 -PRIMER_WT_POS_PENALTY=1.0 -PRIMER_SEQUENCING_LEAD=50 -PRIMER_SEQUENCING_SPACING=500 -PRIMER_SEQUENCING_INTERVAL=250 -PRIMER_SEQUENCING_ACCURACY=20 -PRIMER_WT_END_QUAL=0.0 -PRIMER_INTERNAL_WT_END_QUAL=0.0 -= diff -Nru primer3-2.3.7/primer3web_v0_4_0_default_settings.txt primer3-2.4.0/primer3web_v0_4_0_default_settings.txt --- primer3-2.3.7/primer3web_v0_4_0_default_settings.txt 2016-02-17 10:11:38.000000000 +0000 +++ primer3-2.4.0/primer3web_v0_4_0_default_settings.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,119 +0,0 @@ -Primer3 File - http://primer3.sourceforge.net -P3_FILE_TYPE=settings - -P3_FILE_ID=Default settings of primer3web version 0.4.0 -PRIMER_THERMODYNAMIC_OLIGO_ALIGNMENT=0 -PRIMER_THERMODYNAMIC_TEMPLATE_ALIGNMENT=0 -PRIMER_TASK=pick_detection_primers -PRIMER_PICK_LEFT_PRIMER=1 -PRIMER_PICK_INTERNAL_OLIGO=0 -PRIMER_PICK_RIGHT_PRIMER=1 -PRIMER_NUM_RETURN=5 -PRIMER_MIN_5_PRIME_OVERLAP_OF_JUNCTION=5 -PRIMER_PRODUCT_SIZE_RANGE=150-250 100-300 301-400 401-500 501-600 601-700 701-850 851-1000 -PRIMER_PRODUCT_OPT_SIZE=0 -PRIMER_PAIR_WT_PRODUCT_SIZE_LT=0.0 -PRIMER_PAIR_WT_PRODUCT_SIZE_GT=0.0 -PRIMER_MIN_SIZE=18 -PRIMER_INTERNAL_MIN_SIZE=18 -PRIMER_OPT_SIZE=20 -PRIMER_INTERNAL_OPT_SIZE=20 -PRIMER_MAX_SIZE=27 -PRIMER_INTERNAL_MAX_SIZE=27 -PRIMER_WT_SIZE_LT=1.0 -PRIMER_INTERNAL_WT_SIZE_LT=1.0 -PRIMER_WT_SIZE_GT=1.0 -PRIMER_INTERNAL_WT_SIZE_GT=1.0 -PRIMER_MIN_GC=20.0 -PRIMER_INTERNAL_MIN_GC=20.0 -PRIMER_MAX_GC=80.0 -PRIMER_INTERNAL_MAX_GC=80.0 -PRIMER_WT_GC_PERCENT_LT=0.0 -PRIMER_INTERNAL_WT_GC_PERCENT_LT=0.0 -PRIMER_WT_GC_PERCENT_GT=0.0 -PRIMER_INTERNAL_WT_GC_PERCENT_GT=0.0 -PRIMER_GC_CLAMP=0 -PRIMER_MAX_END_GC=5 -PRIMER_MIN_TM=57.0 -PRIMER_INTERNAL_MIN_TM=57.0 -PRIMER_OPT_TM=60.0 -PRIMER_INTERNAL_OPT_TM=60.0 -PRIMER_MAX_TM=63.0 -PRIMER_INTERNAL_MAX_TM=63.0 -PRIMER_PAIR_MAX_DIFF_TM=100.0 -PRIMER_WT_TM_LT=1.0 -PRIMER_INTERNAL_WT_TM_LT=1.0 -PRIMER_WT_TM_GT=1.0 -PRIMER_INTERNAL_WT_TM_GT=1.0 -PRIMER_PAIR_WT_DIFF_TM=0.0 -PRIMER_PRODUCT_MIN_TM=-1000000.0 -PRIMER_PRODUCT_OPT_TM=0.0 -PRIMER_PRODUCT_MAX_TM=1000000.0 -PRIMER_PAIR_WT_PRODUCT_TM_LT=0.0 -PRIMER_PAIR_WT_PRODUCT_TM_GT=0.0 -PRIMER_TM_FORMULA=0 -PRIMER_SALT_MONOVALENT=50.0 -PRIMER_INTERNAL_SALT_MONOVALENT=50.0 -PRIMER_SALT_DIVALENT=0.0 -PRIMER_INTERNAL_SALT_DIVALENT=0.0 -PRIMER_DNTP_CONC=0.0 -PRIMER_INTERNAL_DNTP_CONC=0.0 -PRIMER_SALT_CORRECTIONS=0 -PRIMER_DNA_CONC=50.0 -PRIMER_INTERNAL_DNA_CONC=50.0 -PRIMER_MAX_SELF_ANY=8.00 -PRIMER_INTERNAL_MAX_SELF_ANY=12.00 -PRIMER_PAIR_MAX_COMPL_ANY=8.00 -PRIMER_WT_SELF_ANY=0.0 -PRIMER_INTERNAL_WT_SELF_ANY=0.0 -PRIMER_PAIR_WT_COMPL_ANY=0.0 -PRIMER_MAX_SELF_END=3.00 -PRIMER_INTERNAL_MAX_SELF_END=12.00 -PRIMER_PAIR_MAX_COMPL_END=3.00 -PRIMER_WT_SELF_END=0.0 -PRIMER_INTERNAL_WT_SELF_END=0.0 -PRIMER_PAIR_WT_COMPL_END=0.0 -PRIMER_MAX_END_STABILITY=9.0 -PRIMER_WT_END_STABILITY=0.0 -PRIMER_MAX_NS_ACCEPTED=0 -PRIMER_INTERNAL_MAX_NS_ACCEPTED=0 -PRIMER_WT_NUM_NS=0.0 -PRIMER_INTERNAL_WT_NUM_NS=0.0 -PRIMER_MAX_POLY_X=5 -PRIMER_INTERNAL_MAX_POLY_X=5 -PRIMER_MIN_THREE_PRIME_DISTANCE=-1 -PRIMER_PICK_ANYWAY=1 -PRIMER_LOWERCASE_MASKING=0 -PRIMER_EXPLAIN_FLAG=1 -PRIMER_LIBERAL_BASE=1 -PRIMER_FIRST_BASE_INDEX=1 -PRIMER_MAX_TEMPLATE_MISPRIMING=12.00 -PRIMER_PAIR_MAX_TEMPLATE_MISPRIMING=24.00 -PRIMER_WT_TEMPLATE_MISPRIMING=0.0 -PRIMER_PAIR_WT_TEMPLATE_MISPRIMING=0.0 -PRIMER_LIB_AMBIGUITY_CODES_CONSENSUS=0 -PRIMER_MAX_LIBRARY_MISPRIMING=12.00 -PRIMER_INTERNAL_MAX_LIBRARY_MISHYB=12.00 -PRIMER_PAIR_MAX_LIBRARY_MISPRIMING=24.00 -PRIMER_WT_LIBRARY_MISPRIMING=0.0 -PRIMER_INTERNAL_WT_LIBRARY_MISHYB=0.0 -PRIMER_PAIR_WT_LIBRARY_MISPRIMING=0.0 -PRIMER_MIN_QUALITY=0 -PRIMER_INTERNAL_MIN_QUALITY=0 -PRIMER_MIN_END_QUALITY=0 -PRIMER_QUALITY_RANGE_MIN=0 -PRIMER_QUALITY_RANGE_MAX=100 -PRIMER_WT_SEQ_QUAL=0.0 -PRIMER_INTERNAL_WT_SEQ_QUAL=0.0 -PRIMER_PAIR_WT_PR_PENALTY=1.0 -PRIMER_PAIR_WT_IO_PENALTY=0.0 -PRIMER_INSIDE_PENALTY=-1.0 -PRIMER_OUTSIDE_PENALTY=0.0 -PRIMER_WT_POS_PENALTY=0.0 -PRIMER_SEQUENCING_LEAD=50 -PRIMER_SEQUENCING_SPACING=500 -PRIMER_SEQUENCING_INTERVAL=250 -PRIMER_SEQUENCING_ACCURACY=20 -PRIMER_WT_END_QUAL=0.0 -PRIMER_INTERNAL_WT_END_QUAL=0.0 -= diff -Nru primer3-2.3.7/primer3web_v3_0_0_default_settings.txt primer3-2.4.0/primer3web_v3_0_0_default_settings.txt --- primer3-2.3.7/primer3web_v3_0_0_default_settings.txt 2016-02-17 10:11:38.000000000 +0000 +++ primer3-2.4.0/primer3web_v3_0_0_default_settings.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,145 +0,0 @@ -Primer3 File - http://primer3.sourceforge.net -P3_FILE_TYPE=settings - -PRIMER_FIRST_BASE_INDEX=1 -PRIMER_TASK=generic -P3_FILE_ID=Settings for PCR amplification followed by Sanger sequencing on both strands using PCR primers -PRIMER_MIN_THREE_PRIME_DISTANCE=3 -PRIMER_EXPLAIN_FLAG=1 - -# Put something reasonable for PRIMER_MISPRIMING_LIBRARY depending -# on the species you are designing primers for. -PRIMER_MISPRIMING_LIBRARY= -PRIMER_MAX_LIBRARY_MISPRIMING=12.00 -PRIMER_PAIR_MAX_LIBRARY_MISPRIMING=20.00 - -PRIMER_PRODUCT_SIZE_RANGE=150-250 100-300 301-400 401-500 501-600 601-700 701-850 851-1000 -PRIMER_NUM_RETURN=5 -PRIMER_MAX_END_STABILITY=9.0 -# -PRIMER_MAX_SELF_ANY_TH=45.00 -PRIMER_MAX_SELF_END_TH=35.00 -PRIMER_PAIR_MAX_COMPL_ANY_TH=45.00 -PRIMER_PAIR_MAX_COMPL_END_TH=35.00 - -PRIMER_MAX_HAIRPIN_TH=24.00 -PRIMER_MAX_TEMPLATE_MISPRIMING_TH=40.00 -PRIMER_PAIR_MAX_TEMPLATE_MISPRIMING_TH=70.00 -PRIMER_MIN_SIZE=18 -PRIMER_OPT_SIZE=20 -PRIMER_MAX_SIZE=23 -PRIMER_MIN_TM=57.0 -PRIMER_OPT_TM=59.0 -PRIMER_MAX_TM=62.0 -PRIMER_PAIR_MAX_DIFF_TM=5.0 -# PRIMER_TM_FORMULA=1 means use the SantaLucia parameters (Proc Natl Acad Sci 95:1460-65) -PRIMER_TM_FORMULA=1 -PRIMER_SALT_MONOVALENT=50.0 -# PRIMER_SALT_CORRECTIONS=1 means use the salt correction in SantaLucia et al 1998 -PRIMER_SALT_CORRECTIONS=1 -# Millimolar conc of MgCl+2 -PRIMER_SALT_DIVALENT=1.5 -# Millimolar conc of dNTPs -PRIMER_DNTP_CONC=0.6 -PRIMER_DNA_CONC=50.0 -PRIMER_THERMODYNAMIC_OLIGO_ALIGNMENT=1 -PRIMER_THERMODYNAMIC_TEMPLATE_ALIGNMENT=1 -PRIMER_LOWERCASE_MASKING=0 -# -PRIMER_MIN_GC=30.0 -PRIMER_MAX_GC=70.0 -PRIMER_MAX_NS_ACCEPTED=0 -PRIMER_MAX_POLY_X=4 -PRIMER_OUTSIDE_PENALTY=0 -PRIMER_GC_CLAMP=0 -PRIMER_LIBERAL_BASE=1 -PRIMER_LIB_AMBIGUITY_CODES_CONSENSUS=0 -PRIMER_PICK_ANYWAY=1 - -PRIMER_WT_TM_LT=1.0 -PRIMER_WT_TM_GT=1.0 -PRIMER_WT_SIZE_LT=1.0 -PRIMER_WT_SIZE_GT=1.0 -PRIMER_WT_GC_PERCENT_LT=0.0 -PRIMER_WT_GC_PERCENT_GT=0.0 -PRIMER_WT_SELF_ANY_TH=0.0 -PRIMER_WT_SELF_END_TH=0.0 -PRIMER_WT_HAIRPIN_TH=0.0 -PRIMER_WT_NUM_NS=0.0 -PRIMER_WT_LIBRARY_MISPRIMING=0.0 -PRIMER_WT_SEQ_QUAL=0.0 -PRIMER_WT_END_QUAL=0.0 -PRIMER_WT_POS_PENALTY=0.0 -PRIMER_WT_END_STABILITY=0.0 -PRIMER_WT_TEMPLATE_MISPRIMING_TH=0.0 -PRIMER_PAIR_WT_PRODUCT_SIZE_LT=0.0 -PRIMER_PAIR_WT_PRODUCT_SIZE_GT=0.0 -PRIMER_PAIR_WT_PRODUCT_TM_LT=0.0 -PRIMER_PAIR_WT_PRODUCT_TM_GT=0.0 -PRIMER_PAIR_WT_DIFF_TM=0.0 -PRIMER_PAIR_WT_COMPL_ANY_TH=0.0 -PRIMER_PAIR_WT_COMPL_END_TH=0.0 -PRIMER_PAIR_WT_LIBRARY_MISPRIMING=0.0 -PRIMER_PAIR_WT_PR_PENALTY=1.0 -PRIMER_PAIR_WT_IO_PENALTY=0.0 -PRIMER_PAIR_WT_TEMPLATE_MISPRIMING=0.0 - -PRIMER_INTERNAL_WT_SIZE_LT=1.0 -PRIMER_INTERNAL_WT_END_QUAL=0.0 -PRIMER_INTERNAL_MAX_SELF_END=12.00 -PRIMER_QUALITY_RANGE_MIN=0 -PRIMER_PAIR_MAX_COMPL_END=3.00 -PRIMER_PRODUCT_MAX_TM=1000000.0 -PRIMER_INTERNAL_MAX_SIZE=27 -PRIMER_INTERNAL_WT_SELF_ANY=0.0 -PRIMER_INTERNAL_MAX_POLY_X=5 -PRIMER_INTERNAL_WT_SIZE_GT=1.0 -PRIMER_SEQUENCING_ACCURACY=20 -PRIMER_INTERNAL_WT_TM_GT=1.0 -PRIMER_INTERNAL_WT_LIBRARY_MISHYB=0.0 -PRIMER_INTERNAL_MAX_GC=80.0 -PRIMER_PAIR_WT_COMPL_ANY=0.0 -PRIMER_PICK_INTERNAL_OLIGO=0 -PRIMER_MAX_SELF_END=3.00 -PRIMER_QUALITY_RANGE_MAX=100 -PRIMER_INTERNAL_DNTP_CONC=0.0 -PRIMER_INTERNAL_MIN_SIZE=18 -PRIMER_INTERNAL_MIN_QUALITY=0 -PRIMER_SEQUENCING_INTERVAL=250 -PRIMER_INTERNAL_SALT_DIVALENT=1.5 -PRIMER_MAX_SELF_ANY=8.00 -PRIMER_INTERNAL_WT_SEQ_QUAL=0.0 -PRIMER_PAIR_WT_COMPL_END=0.0 -PRIMER_INTERNAL_OPT_TM=60.0 -PRIMER_SEQUENCING_SPACING=500 -PRIMER_INTERNAL_MAX_SELF_ANY=12.00 -PRIMER_MIN_END_QUALITY=0 -PRIMER_INTERNAL_MIN_TM=57.0 -PRIMER_PAIR_MAX_COMPL_ANY=8.00 -PRIMER_SEQUENCING_LEAD=50 -PRIMER_PICK_LEFT_PRIMER=1 -PRIMER_INTERNAL_OPT_SIZE=20 -PRIMER_WT_TEMPLATE_MISPRIMING=0.0 -PRIMER_MAX_END_GC=5 -PRIMER_MIN_QUALITY=0 -PRIMER_INTERNAL_MAX_LIBRARY_MISHYB=12.00 -PRIMER_INTERNAL_WT_GC_PERCENT_GT=0.0 -PRIMER_INTERNAL_MAX_NS_ACCEPTED=0 -PRIMER_WT_SELF_ANY=0.0 -PRIMER_MAX_TEMPLATE_MISPRIMING=12.00 -PRIMER_INTERNAL_WT_NUM_NS=0.0 -PRIMER_INTERNAL_WT_SELF_END=0.0 -PRIMER_PRODUCT_OPT_SIZE=0 -PRIMER_PRODUCT_OPT_TM=0.0 -PRIMER_PAIR_MAX_TEMPLATE_MISPRIMING=24.00 -PRIMER_INSIDE_PENALTY=-1.0 -PRIMER_INTERNAL_MIN_GC=20.0 -PRIMER_PRODUCT_MIN_TM=-1000000.0 -PRIMER_INTERNAL_SALT_MONOVALENT=50.0 -PRIMER_WT_SELF_END=0.0 -PRIMER_INTERNAL_DNA_CONC=50.0 -PRIMER_PICK_RIGHT_PRIMER=1 -PRIMER_INTERNAL_MAX_TM=63.0 -PRIMER_INTERNAL_WT_GC_PERCENT_LT=0.0 -PRIMER_INTERNAL_WT_TM_LT=1.0 -= diff -Nru primer3-2.3.7/primer3web_v4_0_0_default_settings.txt primer3-2.4.0/primer3web_v4_0_0_default_settings.txt --- primer3-2.3.7/primer3web_v4_0_0_default_settings.txt 2016-02-17 10:11:38.000000000 +0000 +++ primer3-2.4.0/primer3web_v4_0_0_default_settings.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,145 +0,0 @@ -Primer3 File - http://primer3.sourceforge.net -P3_FILE_TYPE=settings - -PRIMER_FIRST_BASE_INDEX=1 -PRIMER_TASK=generic -P3_FILE_ID=Settings for PCR amplification followed by Sanger sequencing on both strands using PCR primers -PRIMER_MIN_THREE_PRIME_DISTANCE=3 -PRIMER_EXPLAIN_FLAG=1 - -# Put something reasonable for PRIMER_MISPRIMING_LIBRARY depending -# on the species you are designing primers for. -PRIMER_MISPRIMING_LIBRARY= -PRIMER_MAX_LIBRARY_MISPRIMING=12.00 -PRIMER_PAIR_MAX_LIBRARY_MISPRIMING=20.00 - -PRIMER_PRODUCT_SIZE_RANGE=150-250 100-300 301-400 401-500 501-600 601-700 701-850 851-1000 -PRIMER_NUM_RETURN=5 -PRIMER_MAX_END_STABILITY=9.0 -# -PRIMER_MAX_SELF_ANY_TH=45.00 -PRIMER_MAX_SELF_END_TH=35.00 -PRIMER_PAIR_MAX_COMPL_ANY_TH=45.00 -PRIMER_PAIR_MAX_COMPL_END_TH=35.00 - -PRIMER_MAX_HAIRPIN_TH=24.00 -PRIMER_MAX_TEMPLATE_MISPRIMING_TH=40.00 -PRIMER_PAIR_MAX_TEMPLATE_MISPRIMING_TH=70.00 -PRIMER_MIN_SIZE=18 -PRIMER_OPT_SIZE=20 -PRIMER_MAX_SIZE=23 -PRIMER_MIN_TM=57.0 -PRIMER_OPT_TM=59.0 -PRIMER_MAX_TM=62.0 -PRIMER_PAIR_MAX_DIFF_TM=5.0 -# PRIMER_TM_FORMULA=1 means use the SantaLucia parameters (Proc Natl Acad Sci 95:1460-65) -PRIMER_TM_FORMULA=1 -PRIMER_SALT_MONOVALENT=50.0 -# PRIMER_SALT_CORRECTIONS=1 means use the salt correction in SantaLucia et al 1998 -PRIMER_SALT_CORRECTIONS=1 -# Millimolar conc of MgCl+2 -PRIMER_SALT_DIVALENT=1.5 -# Millimolar conc of dNTPs -PRIMER_DNTP_CONC=0.6 -PRIMER_DNA_CONC=50.0 -PRIMER_THERMODYNAMIC_OLIGO_ALIGNMENT=1 -PRIMER_THERMODYNAMIC_TEMPLATE_ALIGNMENT=0 -PRIMER_LOWERCASE_MASKING=0 -# -PRIMER_MIN_GC=30.0 -PRIMER_MAX_GC=70.0 -PRIMER_MAX_NS_ACCEPTED=0 -PRIMER_MAX_POLY_X=4 -PRIMER_OUTSIDE_PENALTY=0 -PRIMER_GC_CLAMP=0 -PRIMER_LIBERAL_BASE=1 -PRIMER_LIB_AMBIGUITY_CODES_CONSENSUS=0 -PRIMER_PICK_ANYWAY=1 - -PRIMER_WT_TM_LT=1.0 -PRIMER_WT_TM_GT=1.0 -PRIMER_WT_SIZE_LT=1.0 -PRIMER_WT_SIZE_GT=1.0 -PRIMER_WT_GC_PERCENT_LT=0.0 -PRIMER_WT_GC_PERCENT_GT=0.0 -PRIMER_WT_SELF_ANY_TH=0.0 -PRIMER_WT_SELF_END_TH=0.0 -PRIMER_WT_HAIRPIN_TH=0.0 -PRIMER_WT_NUM_NS=0.0 -PRIMER_WT_LIBRARY_MISPRIMING=0.0 -PRIMER_WT_SEQ_QUAL=0.0 -PRIMER_WT_END_QUAL=0.0 -PRIMER_WT_POS_PENALTY=0.0 -PRIMER_WT_END_STABILITY=0.0 -PRIMER_WT_TEMPLATE_MISPRIMING_TH=0.0 -PRIMER_PAIR_WT_PRODUCT_SIZE_LT=0.0 -PRIMER_PAIR_WT_PRODUCT_SIZE_GT=0.0 -PRIMER_PAIR_WT_PRODUCT_TM_LT=0.0 -PRIMER_PAIR_WT_PRODUCT_TM_GT=0.0 -PRIMER_PAIR_WT_DIFF_TM=0.0 -PRIMER_PAIR_WT_COMPL_ANY_TH=0.0 -PRIMER_PAIR_WT_COMPL_END_TH=0.0 -PRIMER_PAIR_WT_LIBRARY_MISPRIMING=0.0 -PRIMER_PAIR_WT_PR_PENALTY=1.0 -PRIMER_PAIR_WT_IO_PENALTY=0.0 -PRIMER_PAIR_WT_TEMPLATE_MISPRIMING=0.0 - -PRIMER_INTERNAL_WT_SIZE_LT=1.0 -PRIMER_INTERNAL_WT_END_QUAL=0.0 -PRIMER_INTERNAL_MAX_SELF_END=12.00 -PRIMER_QUALITY_RANGE_MIN=0 -PRIMER_PAIR_MAX_COMPL_END=3.00 -PRIMER_PRODUCT_MAX_TM=1000000.0 -PRIMER_INTERNAL_MAX_SIZE=27 -PRIMER_INTERNAL_WT_SELF_ANY=0.0 -PRIMER_INTERNAL_MAX_POLY_X=5 -PRIMER_INTERNAL_WT_SIZE_GT=1.0 -PRIMER_SEQUENCING_ACCURACY=20 -PRIMER_INTERNAL_WT_TM_GT=1.0 -PRIMER_INTERNAL_WT_LIBRARY_MISHYB=0.0 -PRIMER_INTERNAL_MAX_GC=80.0 -PRIMER_PAIR_WT_COMPL_ANY=0.0 -PRIMER_PICK_INTERNAL_OLIGO=0 -PRIMER_MAX_SELF_END=3.00 -PRIMER_QUALITY_RANGE_MAX=100 -PRIMER_INTERNAL_DNTP_CONC=0.0 -PRIMER_INTERNAL_MIN_SIZE=18 -PRIMER_INTERNAL_MIN_QUALITY=0 -PRIMER_SEQUENCING_INTERVAL=250 -PRIMER_INTERNAL_SALT_DIVALENT=1.5 -PRIMER_MAX_SELF_ANY=8.00 -PRIMER_INTERNAL_WT_SEQ_QUAL=0.0 -PRIMER_PAIR_WT_COMPL_END=0.0 -PRIMER_INTERNAL_OPT_TM=60.0 -PRIMER_SEQUENCING_SPACING=500 -PRIMER_INTERNAL_MAX_SELF_ANY=12.00 -PRIMER_MIN_END_QUALITY=0 -PRIMER_INTERNAL_MIN_TM=57.0 -PRIMER_PAIR_MAX_COMPL_ANY=8.00 -PRIMER_SEQUENCING_LEAD=50 -PRIMER_PICK_LEFT_PRIMER=1 -PRIMER_INTERNAL_OPT_SIZE=20 -PRIMER_WT_TEMPLATE_MISPRIMING=0.0 -PRIMER_MAX_END_GC=5 -PRIMER_MIN_QUALITY=0 -PRIMER_INTERNAL_MAX_LIBRARY_MISHYB=12.00 -PRIMER_INTERNAL_WT_GC_PERCENT_GT=0.0 -PRIMER_INTERNAL_MAX_NS_ACCEPTED=0 -PRIMER_WT_SELF_ANY=0.0 -PRIMER_MAX_TEMPLATE_MISPRIMING=12.00 -PRIMER_INTERNAL_WT_NUM_NS=0.0 -PRIMER_INTERNAL_WT_SELF_END=0.0 -PRIMER_PRODUCT_OPT_SIZE=0 -PRIMER_PRODUCT_OPT_TM=0.0 -PRIMER_PAIR_MAX_TEMPLATE_MISPRIMING=24.00 -PRIMER_INSIDE_PENALTY=-1.0 -PRIMER_INTERNAL_MIN_GC=20.0 -PRIMER_PRODUCT_MIN_TM=-1000000.0 -PRIMER_INTERNAL_SALT_MONOVALENT=50.0 -PRIMER_WT_SELF_END=0.0 -PRIMER_INTERNAL_DNA_CONC=50.0 -PRIMER_PICK_RIGHT_PRIMER=1 -PRIMER_INTERNAL_MAX_TM=63.0 -PRIMER_INTERNAL_WT_GC_PERCENT_LT=0.0 -PRIMER_INTERNAL_WT_TM_LT=1.0 -= diff -Nru primer3-2.3.7/README.md primer3-2.4.0/README.md --- primer3-2.3.7/README.md 1970-01-01 00:00:00.000000000 +0000 +++ primer3-2.4.0/README.md 2017-11-03 16:29:54.000000000 +0000 @@ -0,0 +1,29 @@ +Design PCR primers from DNA sequence. Widely used (190k Google hits for "primer3"). +From mispriming libraries to sequence quality data to the generation of internal +oligos, primer3 does it. C&perl. + +Installing +---------- + +`sudo apt-get install -y build-essential g++ cmake git-all` + +`git clone https://github.com/primer3-org/primer3.git primer3` + +`cd primer3/src` + +`make` + +`make test` + + +Run Primer3 +----------- + +`./primer3_core ../example` + + +Read the complete Primer3 manual +-------------------------------- +[Primer3 Manual](http://primer3.org/primer3_manual.htm) + +or see /src/primer3_manual.htm diff -Nru primer3-2.3.7/settings_files/p3_th_settings.txt primer3-2.4.0/settings_files/p3_th_settings.txt --- primer3-2.3.7/settings_files/p3_th_settings.txt 1970-01-01 00:00:00.000000000 +0000 +++ primer3-2.4.0/settings_files/p3_th_settings.txt 2017-11-03 16:29:54.000000000 +0000 @@ -0,0 +1,102 @@ +Primer3 File - http://primer3.org +P3_FILE_TYPE=settings + +PRIMER_FIRST_BASE_INDEX=1 +PRIMER_TASK=generic +P3_FILE_ID=Settings for PCR amplification followed by Sanger sequencing on both strands using PCR primers +# 2012 01 29 +PRIMER_MIN_THREE_PRIME_DISTANCE=3 +PRIMER_EXPLAIN_FLAG=1 + +# Put something reasonable for PRIMER_MISPRIMING_LIBRARY depending +# on the species you are designing primers for. +PRIMER_MISPRIMING_LIBRARY= +PRIMER_MAX_LIBRARY_MISPRIMING=12.00 +PRIMER_PAIR_MAX_LIBRARY_MISPRIMING=20.00 + +PRIMER_PRODUCT_SIZE_RANGE=300-400 401-500 501-600 601-700 701-850 851-1001 +PRIMER_NUM_RETURN=5 +PRIMER_MAX_END_STABILITY=9.0 +# +PRIMER_MAX_SELF_ANY_TH=45.00 +PRIMER_MAX_SELF_END_TH=35.00 +PRIMER_PAIR_MAX_COMPL_ANY_TH=45.00 +PRIMER_PAIR_MAX_COMPL_END_TH=35.00 + +PRIMER_MAX_HAIRPIN_TH=24.00 +PRIMER_MAX_TEMPLATE_MISPRIMING_TH=40.00 +PRIMER_PAIR_MAX_TEMPLATE_MISPRIMING_TH=70.00 +PRIMER_MIN_SIZE=18 +PRIMER_OPT_SIZE=20 +PRIMER_MAX_SIZE=23 +PRIMER_MIN_TM=57.0 +PRIMER_OPT_TM=59.0 +PRIMER_MAX_TM=62.0 +PRIMER_PAIR_MAX_DIFF_TM=5.0 + +# PRIMER_TM_FORMULA=1 means use the SantaLucia parameters (Proc Natl Acad Sci 95:1460-65) +PRIMER_TM_FORMULA=1 + +# PRIMER_SALT_CORRECTIONS=1 means used the salt correction in SantaLucia et al 1998 +PRIMER_SALT_CORRECTIONS=1 + +PRIMER_SALT_MONOVALENT=50.0 +PRIMER_INTERNAL_SALT_MONOVALENT=50.0 + +# Millimolar conc of MgCl+2 +PRIMER_SALT_DIVALENT=1.5 +PRIMER_INTERNAL_SALT_DIVALENT=1.5 + +# Millimolar conc of dNTPs +PRIMER_DNTP_CONC=0.6 + +# Correct, 0, since we are assuming +# no dNTP's present when hybridizing. +PRIMER_INTERNAL_DNTP_CONC=0.0 + +PRIMER_DNA_CONC=50.0 +PRIMER_INTERNAL_DNA_CONC=50.0 + +PRIMER_THERMODYNAMIC_OLIGO_ALIGNMENT=1 +PRIMER_THERMODYNAMIC_TEMPLATE_ALIGNMENT=1 +PRIMER_THERMODYNAMIC_PARAMETERS_PATH=/data/public/tools/primer3/primer3/trunk/src/primer3_config/ +PRIMER_LOWERCASE_MASKING=0 +# +PRIMER_MIN_GC=30.0 +PRIMER_MAX_GC=70.0 +PRIMER_MAX_NS_ACCEPTED=0 +PRIMER_MAX_POLY_X=4 +PRIMER_OUTSIDE_PENALTY=0 +PRIMER_GC_CLAMP=0 +PRIMER_LIBERAL_BASE=1 +PRIMER_LIB_AMBIGUITY_CODES_CONSENSUS=0 +PRIMER_PICK_ANYWAY=1 + +PRIMER_WT_TM_LT=1.0 +PRIMER_WT_TM_GT=1.0 +PRIMER_WT_SIZE_LT=1.0 +PRIMER_WT_SIZE_GT=1.0 +PRIMER_WT_GC_PERCENT_LT=0.0 +PRIMER_WT_GC_PERCENT_GT=0.0 +PRIMER_WT_SELF_ANY_TH=0.0 +PRIMER_WT_SELF_END_TH=0.0 +PRIMER_WT_HAIRPIN_TH=0.0 +PRIMER_WT_NUM_NS=0.0 +PRIMER_WT_LIBRARY_MISPRIMING=0.0 +PRIMER_WT_SEQ_QUAL=0.0 +PRIMER_WT_END_QUAL=0.0 +PRIMER_WT_POS_PENALTY=0.0 +PRIMER_WT_END_STABILITY=0.0 +PRIMER_WT_TEMPLATE_MISPRIMING_TH=0.0 +PRIMER_PAIR_WT_PRODUCT_SIZE_LT=0.0 +PRIMER_PAIR_WT_PRODUCT_SIZE_GT=0.0 +PRIMER_PAIR_WT_PRODUCT_TM_LT=0.0 +PRIMER_PAIR_WT_PRODUCT_TM_GT=0.0 +PRIMER_PAIR_WT_DIFF_TM=0.0 +PRIMER_PAIR_WT_COMPL_ANY_TH=0.0 +PRIMER_PAIR_WT_COMPL_END_TH=0.0 +PRIMER_PAIR_WT_LIBRARY_MISPRIMING=0.0 +PRIMER_PAIR_WT_PR_PENALTY=1.0 +PRIMER_PAIR_WT_IO_PENALTY=0.0 +PRIMER_PAIR_WT_TEMPLATE_MISPRIMING=0.0 += diff -Nru primer3-2.3.7/settings_files/primer3_v1_1_4_default_settings.txt primer3-2.4.0/settings_files/primer3_v1_1_4_default_settings.txt --- primer3-2.3.7/settings_files/primer3_v1_1_4_default_settings.txt 1970-01-01 00:00:00.000000000 +0000 +++ primer3-2.4.0/settings_files/primer3_v1_1_4_default_settings.txt 2017-11-03 16:29:54.000000000 +0000 @@ -0,0 +1,118 @@ +Primer3 File - http://primer3.org +P3_FILE_TYPE=settings + +P3_FILE_ID=Default settings of primer3 version 1.1.4 +PRIMER_TASK=pick_detection_primers +PRIMER_PICK_LEFT_PRIMER=1 +PRIMER_PICK_INTERNAL_OLIGO=0 +PRIMER_PICK_RIGHT_PRIMER=1 +PRIMER_NUM_RETURN=5 +PRIMER_MIN_5_PRIME_OVERLAP_OF_JUNCTION=5 +PRIMER_PRODUCT_SIZE_RANGE=100-300 +PRIMER_PRODUCT_OPT_SIZE=0 +PRIMER_PAIR_WT_PRODUCT_SIZE_LT=0.0 +PRIMER_PAIR_WT_PRODUCT_SIZE_GT=0.0 +PRIMER_MIN_SIZE=18 +PRIMER_INTERNAL_MIN_SIZE=18 +PRIMER_OPT_SIZE=20 +PRIMER_INTERNAL_OPT_SIZE=20 +PRIMER_MAX_SIZE=27 +PRIMER_INTERNAL_MAX_SIZE=27 +PRIMER_WT_SIZE_LT=1.0 +PRIMER_INTERNAL_WT_SIZE_LT=1.0 +PRIMER_WT_SIZE_GT=1.0 +PRIMER_INTERNAL_WT_SIZE_GT=1.0 +PRIMER_MIN_GC=20.0 +PRIMER_INTERNAL_MIN_GC=20.0 +PRIMER_OPT_GC_PERCENT=50.0 +PRIMER_MAX_GC=80.0 +PRIMER_INTERNAL_MAX_GC=80.0 +PRIMER_WT_GC_PERCENT_LT=0.0 +PRIMER_INTERNAL_WT_GC_PERCENT_LT=0.0 +PRIMER_WT_GC_PERCENT_GT=0.0 +PRIMER_INTERNAL_WT_GC_PERCENT_GT=0.0 +PRIMER_GC_CLAMP=0 +PRIMER_MAX_END_GC=5 +PRIMER_MIN_TM=57.0 +PRIMER_INTERNAL_MIN_TM=57.0 +PRIMER_OPT_TM=60.0 +PRIMER_INTERNAL_OPT_TM=60.0 +PRIMER_MAX_TM=63.0 +PRIMER_INTERNAL_MAX_TM=63.0 +PRIMER_PAIR_MAX_DIFF_TM=100.0 +PRIMER_WT_TM_LT=1.0 +PRIMER_INTERNAL_WT_TM_LT=1.0 +PRIMER_WT_TM_GT=1.0 +PRIMER_INTERNAL_WT_TM_GT=1.0 +PRIMER_PAIR_WT_DIFF_TM=0.0 +PRIMER_PRODUCT_MIN_TM=-1000000.0 +PRIMER_PRODUCT_OPT_TM=0.0 +PRIMER_PRODUCT_MAX_TM=1000000.0 +PRIMER_PAIR_WT_PRODUCT_TM_LT=0.0 +PRIMER_PAIR_WT_PRODUCT_TM_GT=0.0 +PRIMER_TM_FORMULA=0 +PRIMER_SALT_MONOVALENT=50.0 +PRIMER_INTERNAL_SALT_MONOVALENT=50.0 +PRIMER_SALT_DIVALENT=0.0 +PRIMER_INTERNAL_SALT_DIVALENT=0.0 +PRIMER_DNTP_CONC=0.0 +PRIMER_INTERNAL_DNTP_CONC=0.0 +PRIMER_SALT_CORRECTIONS=0 +PRIMER_DNA_CONC=50.0 +PRIMER_INTERNAL_DNA_CONC=50.0 +PRIMER_MAX_SELF_ANY=8.00 +PRIMER_INTERNAL_MAX_SELF_ANY=12.00 +PRIMER_PAIR_MAX_COMPL_ANY=8.00 +PRIMER_WT_SELF_ANY=0.0 +PRIMER_INTERNAL_WT_SELF_ANY=0.0 +PRIMER_PAIR_WT_COMPL_ANY=0.0 +PRIMER_MAX_SELF_END=3.00 +PRIMER_INTERNAL_MAX_SELF_END=12.00 +PRIMER_PAIR_MAX_COMPL_END=3.00 +PRIMER_WT_SELF_END=0.0 +PRIMER_INTERNAL_WT_SELF_END=0.0 +PRIMER_PAIR_WT_COMPL_END=0.0 +PRIMER_MAX_END_STABILITY=100.0 +PRIMER_WT_END_STABILITY=0.0 +PRIMER_MAX_NS_ACCEPTED=0 +PRIMER_INTERNAL_MAX_NS_ACCEPTED=0 +PRIMER_WT_NUM_NS=0.0 +PRIMER_INTERNAL_WT_NUM_NS=0.0 +PRIMER_MAX_POLY_X=5 +PRIMER_INTERNAL_MAX_POLY_X=5 +PRIMER_MIN_THREE_PRIME_DISTANCE=-1 +PRIMER_PICK_ANYWAY=0 +PRIMER_LOWERCASE_MASKING=0 +PRIMER_EXPLAIN_FLAG=0 +PRIMER_LIBERAL_BASE=0 +PRIMER_FIRST_BASE_INDEX=0 +PRIMER_MAX_TEMPLATE_MISPRIMING=-1.00 +PRIMER_PAIR_MAX_TEMPLATE_MISPRIMING=-1.00 +PRIMER_WT_TEMPLATE_MISPRIMING=0.0 +PRIMER_PAIR_WT_TEMPLATE_MISPRIMING=0.0 +PRIMER_LIB_AMBIGUITY_CODES_CONSENSUS=1 +PRIMER_MAX_LIBRARY_MISPRIMING=12.00 +PRIMER_INTERNAL_MAX_LIBRARY_MISHYB=12.00 +PRIMER_PAIR_MAX_LIBRARY_MISPRIMING=24.00 +PRIMER_WT_LIBRARY_MISPRIMING=0.0 +PRIMER_INTERNAL_WT_LIBRARY_MISHYB=0.0 +PRIMER_PAIR_WT_LIBRARY_MISPRIMING=0.0 +PRIMER_MIN_QUALITY=0 +PRIMER_INTERNAL_MIN_QUALITY=0 +PRIMER_MIN_END_QUALITY=0 +PRIMER_QUALITY_RANGE_MIN=0 +PRIMER_QUALITY_RANGE_MAX=100 +PRIMER_WT_SEQ_QUAL=0.0 +PRIMER_INTERNAL_WT_SEQ_QUAL=0.0 +PRIMER_PAIR_WT_PR_PENALTY=1.0 +PRIMER_PAIR_WT_IO_PENALTY=0.0 +PRIMER_INSIDE_PENALTY=-1.0 +PRIMER_OUTSIDE_PENALTY=0.0 +PRIMER_WT_POS_PENALTY=1.0 +PRIMER_SEQUENCING_LEAD=50 +PRIMER_SEQUENCING_SPACING=500 +PRIMER_SEQUENCING_INTERVAL=250 +PRIMER_SEQUENCING_ACCURACY=20 +PRIMER_WT_END_QUAL=0.0 +PRIMER_INTERNAL_WT_END_QUAL=0.0 += diff -Nru primer3-2.3.7/settings_files/primer3web_v0_4_0_default_settings.txt primer3-2.4.0/settings_files/primer3web_v0_4_0_default_settings.txt --- primer3-2.3.7/settings_files/primer3web_v0_4_0_default_settings.txt 1970-01-01 00:00:00.000000000 +0000 +++ primer3-2.4.0/settings_files/primer3web_v0_4_0_default_settings.txt 2017-11-03 16:29:54.000000000 +0000 @@ -0,0 +1,119 @@ +Primer3 File - http://primer3.org +P3_FILE_TYPE=settings + +P3_FILE_ID=Default settings of primer3web version 0.4.0 +PRIMER_THERMODYNAMIC_OLIGO_ALIGNMENT=0 +PRIMER_THERMODYNAMIC_TEMPLATE_ALIGNMENT=0 +PRIMER_TASK=pick_detection_primers +PRIMER_PICK_LEFT_PRIMER=1 +PRIMER_PICK_INTERNAL_OLIGO=0 +PRIMER_PICK_RIGHT_PRIMER=1 +PRIMER_NUM_RETURN=5 +PRIMER_MIN_5_PRIME_OVERLAP_OF_JUNCTION=5 +PRIMER_PRODUCT_SIZE_RANGE=150-250 100-300 301-400 401-500 501-600 601-700 701-850 851-1000 +PRIMER_PRODUCT_OPT_SIZE=0 +PRIMER_PAIR_WT_PRODUCT_SIZE_LT=0.0 +PRIMER_PAIR_WT_PRODUCT_SIZE_GT=0.0 +PRIMER_MIN_SIZE=18 +PRIMER_INTERNAL_MIN_SIZE=18 +PRIMER_OPT_SIZE=20 +PRIMER_INTERNAL_OPT_SIZE=20 +PRIMER_MAX_SIZE=27 +PRIMER_INTERNAL_MAX_SIZE=27 +PRIMER_WT_SIZE_LT=1.0 +PRIMER_INTERNAL_WT_SIZE_LT=1.0 +PRIMER_WT_SIZE_GT=1.0 +PRIMER_INTERNAL_WT_SIZE_GT=1.0 +PRIMER_MIN_GC=20.0 +PRIMER_INTERNAL_MIN_GC=20.0 +PRIMER_MAX_GC=80.0 +PRIMER_INTERNAL_MAX_GC=80.0 +PRIMER_WT_GC_PERCENT_LT=0.0 +PRIMER_INTERNAL_WT_GC_PERCENT_LT=0.0 +PRIMER_WT_GC_PERCENT_GT=0.0 +PRIMER_INTERNAL_WT_GC_PERCENT_GT=0.0 +PRIMER_GC_CLAMP=0 +PRIMER_MAX_END_GC=5 +PRIMER_MIN_TM=57.0 +PRIMER_INTERNAL_MIN_TM=57.0 +PRIMER_OPT_TM=60.0 +PRIMER_INTERNAL_OPT_TM=60.0 +PRIMER_MAX_TM=63.0 +PRIMER_INTERNAL_MAX_TM=63.0 +PRIMER_PAIR_MAX_DIFF_TM=100.0 +PRIMER_WT_TM_LT=1.0 +PRIMER_INTERNAL_WT_TM_LT=1.0 +PRIMER_WT_TM_GT=1.0 +PRIMER_INTERNAL_WT_TM_GT=1.0 +PRIMER_PAIR_WT_DIFF_TM=0.0 +PRIMER_PRODUCT_MIN_TM=-1000000.0 +PRIMER_PRODUCT_OPT_TM=0.0 +PRIMER_PRODUCT_MAX_TM=1000000.0 +PRIMER_PAIR_WT_PRODUCT_TM_LT=0.0 +PRIMER_PAIR_WT_PRODUCT_TM_GT=0.0 +PRIMER_TM_FORMULA=0 +PRIMER_SALT_MONOVALENT=50.0 +PRIMER_INTERNAL_SALT_MONOVALENT=50.0 +PRIMER_SALT_DIVALENT=0.0 +PRIMER_INTERNAL_SALT_DIVALENT=0.0 +PRIMER_DNTP_CONC=0.0 +PRIMER_INTERNAL_DNTP_CONC=0.0 +PRIMER_SALT_CORRECTIONS=0 +PRIMER_DNA_CONC=50.0 +PRIMER_INTERNAL_DNA_CONC=50.0 +PRIMER_MAX_SELF_ANY=8.00 +PRIMER_INTERNAL_MAX_SELF_ANY=12.00 +PRIMER_PAIR_MAX_COMPL_ANY=8.00 +PRIMER_WT_SELF_ANY=0.0 +PRIMER_INTERNAL_WT_SELF_ANY=0.0 +PRIMER_PAIR_WT_COMPL_ANY=0.0 +PRIMER_MAX_SELF_END=3.00 +PRIMER_INTERNAL_MAX_SELF_END=12.00 +PRIMER_PAIR_MAX_COMPL_END=3.00 +PRIMER_WT_SELF_END=0.0 +PRIMER_INTERNAL_WT_SELF_END=0.0 +PRIMER_PAIR_WT_COMPL_END=0.0 +PRIMER_MAX_END_STABILITY=9.0 +PRIMER_WT_END_STABILITY=0.0 +PRIMER_MAX_NS_ACCEPTED=0 +PRIMER_INTERNAL_MAX_NS_ACCEPTED=0 +PRIMER_WT_NUM_NS=0.0 +PRIMER_INTERNAL_WT_NUM_NS=0.0 +PRIMER_MAX_POLY_X=5 +PRIMER_INTERNAL_MAX_POLY_X=5 +PRIMER_MIN_THREE_PRIME_DISTANCE=-1 +PRIMER_PICK_ANYWAY=1 +PRIMER_LOWERCASE_MASKING=0 +PRIMER_EXPLAIN_FLAG=1 +PRIMER_LIBERAL_BASE=1 +PRIMER_FIRST_BASE_INDEX=1 +PRIMER_MAX_TEMPLATE_MISPRIMING=12.00 +PRIMER_PAIR_MAX_TEMPLATE_MISPRIMING=24.00 +PRIMER_WT_TEMPLATE_MISPRIMING=0.0 +PRIMER_PAIR_WT_TEMPLATE_MISPRIMING=0.0 +PRIMER_LIB_AMBIGUITY_CODES_CONSENSUS=0 +PRIMER_MAX_LIBRARY_MISPRIMING=12.00 +PRIMER_INTERNAL_MAX_LIBRARY_MISHYB=12.00 +PRIMER_PAIR_MAX_LIBRARY_MISPRIMING=24.00 +PRIMER_WT_LIBRARY_MISPRIMING=0.0 +PRIMER_INTERNAL_WT_LIBRARY_MISHYB=0.0 +PRIMER_PAIR_WT_LIBRARY_MISPRIMING=0.0 +PRIMER_MIN_QUALITY=0 +PRIMER_INTERNAL_MIN_QUALITY=0 +PRIMER_MIN_END_QUALITY=0 +PRIMER_QUALITY_RANGE_MIN=0 +PRIMER_QUALITY_RANGE_MAX=100 +PRIMER_WT_SEQ_QUAL=0.0 +PRIMER_INTERNAL_WT_SEQ_QUAL=0.0 +PRIMER_PAIR_WT_PR_PENALTY=1.0 +PRIMER_PAIR_WT_IO_PENALTY=0.0 +PRIMER_INSIDE_PENALTY=-1.0 +PRIMER_OUTSIDE_PENALTY=0.0 +PRIMER_WT_POS_PENALTY=0.0 +PRIMER_SEQUENCING_LEAD=50 +PRIMER_SEQUENCING_SPACING=500 +PRIMER_SEQUENCING_INTERVAL=250 +PRIMER_SEQUENCING_ACCURACY=20 +PRIMER_WT_END_QUAL=0.0 +PRIMER_INTERNAL_WT_END_QUAL=0.0 += diff -Nru primer3-2.3.7/settings_files/primer3web_v3_0_0_default_settings.txt primer3-2.4.0/settings_files/primer3web_v3_0_0_default_settings.txt --- primer3-2.3.7/settings_files/primer3web_v3_0_0_default_settings.txt 1970-01-01 00:00:00.000000000 +0000 +++ primer3-2.4.0/settings_files/primer3web_v3_0_0_default_settings.txt 2017-11-03 16:29:54.000000000 +0000 @@ -0,0 +1,145 @@ +Primer3 File - http://primer3.org +P3_FILE_TYPE=settings + +PRIMER_FIRST_BASE_INDEX=1 +PRIMER_TASK=generic +P3_FILE_ID=Settings for PCR amplification followed by Sanger sequencing on both strands using PCR primers +PRIMER_MIN_THREE_PRIME_DISTANCE=3 +PRIMER_EXPLAIN_FLAG=1 + +# Put something reasonable for PRIMER_MISPRIMING_LIBRARY depending +# on the species you are designing primers for. +PRIMER_MISPRIMING_LIBRARY= +PRIMER_MAX_LIBRARY_MISPRIMING=12.00 +PRIMER_PAIR_MAX_LIBRARY_MISPRIMING=20.00 + +PRIMER_PRODUCT_SIZE_RANGE=150-250 100-300 301-400 401-500 501-600 601-700 701-850 851-1000 +PRIMER_NUM_RETURN=5 +PRIMER_MAX_END_STABILITY=9.0 +# +PRIMER_MAX_SELF_ANY_TH=45.00 +PRIMER_MAX_SELF_END_TH=35.00 +PRIMER_PAIR_MAX_COMPL_ANY_TH=45.00 +PRIMER_PAIR_MAX_COMPL_END_TH=35.00 + +PRIMER_MAX_HAIRPIN_TH=24.00 +PRIMER_MAX_TEMPLATE_MISPRIMING_TH=40.00 +PRIMER_PAIR_MAX_TEMPLATE_MISPRIMING_TH=70.00 +PRIMER_MIN_SIZE=18 +PRIMER_OPT_SIZE=20 +PRIMER_MAX_SIZE=23 +PRIMER_MIN_TM=57.0 +PRIMER_OPT_TM=59.0 +PRIMER_MAX_TM=62.0 +PRIMER_PAIR_MAX_DIFF_TM=5.0 +# PRIMER_TM_FORMULA=1 means use the SantaLucia parameters (Proc Natl Acad Sci 95:1460-65) +PRIMER_TM_FORMULA=1 +PRIMER_SALT_MONOVALENT=50.0 +# PRIMER_SALT_CORRECTIONS=1 means use the salt correction in SantaLucia et al 1998 +PRIMER_SALT_CORRECTIONS=1 +# Millimolar conc of MgCl+2 +PRIMER_SALT_DIVALENT=1.5 +# Millimolar conc of dNTPs +PRIMER_DNTP_CONC=0.6 +PRIMER_DNA_CONC=50.0 +PRIMER_THERMODYNAMIC_OLIGO_ALIGNMENT=1 +PRIMER_THERMODYNAMIC_TEMPLATE_ALIGNMENT=1 +PRIMER_LOWERCASE_MASKING=0 +# +PRIMER_MIN_GC=30.0 +PRIMER_MAX_GC=70.0 +PRIMER_MAX_NS_ACCEPTED=0 +PRIMER_MAX_POLY_X=4 +PRIMER_OUTSIDE_PENALTY=0 +PRIMER_GC_CLAMP=0 +PRIMER_LIBERAL_BASE=1 +PRIMER_LIB_AMBIGUITY_CODES_CONSENSUS=0 +PRIMER_PICK_ANYWAY=1 + +PRIMER_WT_TM_LT=1.0 +PRIMER_WT_TM_GT=1.0 +PRIMER_WT_SIZE_LT=1.0 +PRIMER_WT_SIZE_GT=1.0 +PRIMER_WT_GC_PERCENT_LT=0.0 +PRIMER_WT_GC_PERCENT_GT=0.0 +PRIMER_WT_SELF_ANY_TH=0.0 +PRIMER_WT_SELF_END_TH=0.0 +PRIMER_WT_HAIRPIN_TH=0.0 +PRIMER_WT_NUM_NS=0.0 +PRIMER_WT_LIBRARY_MISPRIMING=0.0 +PRIMER_WT_SEQ_QUAL=0.0 +PRIMER_WT_END_QUAL=0.0 +PRIMER_WT_POS_PENALTY=0.0 +PRIMER_WT_END_STABILITY=0.0 +PRIMER_WT_TEMPLATE_MISPRIMING_TH=0.0 +PRIMER_PAIR_WT_PRODUCT_SIZE_LT=0.0 +PRIMER_PAIR_WT_PRODUCT_SIZE_GT=0.0 +PRIMER_PAIR_WT_PRODUCT_TM_LT=0.0 +PRIMER_PAIR_WT_PRODUCT_TM_GT=0.0 +PRIMER_PAIR_WT_DIFF_TM=0.0 +PRIMER_PAIR_WT_COMPL_ANY_TH=0.0 +PRIMER_PAIR_WT_COMPL_END_TH=0.0 +PRIMER_PAIR_WT_LIBRARY_MISPRIMING=0.0 +PRIMER_PAIR_WT_PR_PENALTY=1.0 +PRIMER_PAIR_WT_IO_PENALTY=0.0 +PRIMER_PAIR_WT_TEMPLATE_MISPRIMING=0.0 + +PRIMER_INTERNAL_WT_SIZE_LT=1.0 +PRIMER_INTERNAL_WT_END_QUAL=0.0 +PRIMER_INTERNAL_MAX_SELF_END=12.00 +PRIMER_QUALITY_RANGE_MIN=0 +PRIMER_PAIR_MAX_COMPL_END=3.00 +PRIMER_PRODUCT_MAX_TM=1000000.0 +PRIMER_INTERNAL_MAX_SIZE=27 +PRIMER_INTERNAL_WT_SELF_ANY=0.0 +PRIMER_INTERNAL_MAX_POLY_X=5 +PRIMER_INTERNAL_WT_SIZE_GT=1.0 +PRIMER_SEQUENCING_ACCURACY=20 +PRIMER_INTERNAL_WT_TM_GT=1.0 +PRIMER_INTERNAL_WT_LIBRARY_MISHYB=0.0 +PRIMER_INTERNAL_MAX_GC=80.0 +PRIMER_PAIR_WT_COMPL_ANY=0.0 +PRIMER_PICK_INTERNAL_OLIGO=0 +PRIMER_MAX_SELF_END=3.00 +PRIMER_QUALITY_RANGE_MAX=100 +PRIMER_INTERNAL_DNTP_CONC=0.0 +PRIMER_INTERNAL_MIN_SIZE=18 +PRIMER_INTERNAL_MIN_QUALITY=0 +PRIMER_SEQUENCING_INTERVAL=250 +PRIMER_INTERNAL_SALT_DIVALENT=1.5 +PRIMER_MAX_SELF_ANY=8.00 +PRIMER_INTERNAL_WT_SEQ_QUAL=0.0 +PRIMER_PAIR_WT_COMPL_END=0.0 +PRIMER_INTERNAL_OPT_TM=60.0 +PRIMER_SEQUENCING_SPACING=500 +PRIMER_INTERNAL_MAX_SELF_ANY=12.00 +PRIMER_MIN_END_QUALITY=0 +PRIMER_INTERNAL_MIN_TM=57.0 +PRIMER_PAIR_MAX_COMPL_ANY=8.00 +PRIMER_SEQUENCING_LEAD=50 +PRIMER_PICK_LEFT_PRIMER=1 +PRIMER_INTERNAL_OPT_SIZE=20 +PRIMER_WT_TEMPLATE_MISPRIMING=0.0 +PRIMER_MAX_END_GC=5 +PRIMER_MIN_QUALITY=0 +PRIMER_INTERNAL_MAX_LIBRARY_MISHYB=12.00 +PRIMER_INTERNAL_WT_GC_PERCENT_GT=0.0 +PRIMER_INTERNAL_MAX_NS_ACCEPTED=0 +PRIMER_WT_SELF_ANY=0.0 +PRIMER_MAX_TEMPLATE_MISPRIMING=12.00 +PRIMER_INTERNAL_WT_NUM_NS=0.0 +PRIMER_INTERNAL_WT_SELF_END=0.0 +PRIMER_PRODUCT_OPT_SIZE=0 +PRIMER_PRODUCT_OPT_TM=0.0 +PRIMER_PAIR_MAX_TEMPLATE_MISPRIMING=24.00 +PRIMER_INSIDE_PENALTY=-1.0 +PRIMER_INTERNAL_MIN_GC=20.0 +PRIMER_PRODUCT_MIN_TM=-1000000.0 +PRIMER_INTERNAL_SALT_MONOVALENT=50.0 +PRIMER_WT_SELF_END=0.0 +PRIMER_INTERNAL_DNA_CONC=50.0 +PRIMER_PICK_RIGHT_PRIMER=1 +PRIMER_INTERNAL_MAX_TM=63.0 +PRIMER_INTERNAL_WT_GC_PERCENT_LT=0.0 +PRIMER_INTERNAL_WT_TM_LT=1.0 += diff -Nru primer3-2.3.7/settings_files/primer3web_v4_0_0_default_settings.txt primer3-2.4.0/settings_files/primer3web_v4_0_0_default_settings.txt --- primer3-2.3.7/settings_files/primer3web_v4_0_0_default_settings.txt 1970-01-01 00:00:00.000000000 +0000 +++ primer3-2.4.0/settings_files/primer3web_v4_0_0_default_settings.txt 2017-11-03 16:29:54.000000000 +0000 @@ -0,0 +1,145 @@ +Primer3 File - http://primer3.org +P3_FILE_TYPE=settings + +PRIMER_FIRST_BASE_INDEX=1 +PRIMER_TASK=generic +P3_FILE_ID=Settings for PCR amplification followed by Sanger sequencing on both strands using PCR primers +PRIMER_MIN_THREE_PRIME_DISTANCE=3 +PRIMER_EXPLAIN_FLAG=1 + +# Put something reasonable for PRIMER_MISPRIMING_LIBRARY depending +# on the species you are designing primers for. +PRIMER_MISPRIMING_LIBRARY= +PRIMER_MAX_LIBRARY_MISPRIMING=12.00 +PRIMER_PAIR_MAX_LIBRARY_MISPRIMING=20.00 + +PRIMER_PRODUCT_SIZE_RANGE=150-250 100-300 301-400 401-500 501-600 601-700 701-850 851-1000 +PRIMER_NUM_RETURN=5 +PRIMER_MAX_END_STABILITY=9.0 +# +PRIMER_MAX_SELF_ANY_TH=45.00 +PRIMER_MAX_SELF_END_TH=35.00 +PRIMER_PAIR_MAX_COMPL_ANY_TH=45.00 +PRIMER_PAIR_MAX_COMPL_END_TH=35.00 + +PRIMER_MAX_HAIRPIN_TH=24.00 +PRIMER_MAX_TEMPLATE_MISPRIMING_TH=40.00 +PRIMER_PAIR_MAX_TEMPLATE_MISPRIMING_TH=70.00 +PRIMER_MIN_SIZE=18 +PRIMER_OPT_SIZE=20 +PRIMER_MAX_SIZE=23 +PRIMER_MIN_TM=57.0 +PRIMER_OPT_TM=59.0 +PRIMER_MAX_TM=62.0 +PRIMER_PAIR_MAX_DIFF_TM=5.0 +# PRIMER_TM_FORMULA=1 means use the SantaLucia parameters (Proc Natl Acad Sci 95:1460-65) +PRIMER_TM_FORMULA=1 +PRIMER_SALT_MONOVALENT=50.0 +# PRIMER_SALT_CORRECTIONS=1 means use the salt correction in SantaLucia et al 1998 +PRIMER_SALT_CORRECTIONS=1 +# Millimolar conc of MgCl+2 +PRIMER_SALT_DIVALENT=1.5 +# Millimolar conc of dNTPs +PRIMER_DNTP_CONC=0.6 +PRIMER_DNA_CONC=50.0 +PRIMER_THERMODYNAMIC_OLIGO_ALIGNMENT=1 +PRIMER_THERMODYNAMIC_TEMPLATE_ALIGNMENT=0 +PRIMER_LOWERCASE_MASKING=0 +# +PRIMER_MIN_GC=30.0 +PRIMER_MAX_GC=70.0 +PRIMER_MAX_NS_ACCEPTED=0 +PRIMER_MAX_POLY_X=4 +PRIMER_OUTSIDE_PENALTY=0 +PRIMER_GC_CLAMP=0 +PRIMER_LIBERAL_BASE=1 +PRIMER_LIB_AMBIGUITY_CODES_CONSENSUS=0 +PRIMER_PICK_ANYWAY=1 + +PRIMER_WT_TM_LT=1.0 +PRIMER_WT_TM_GT=1.0 +PRIMER_WT_SIZE_LT=1.0 +PRIMER_WT_SIZE_GT=1.0 +PRIMER_WT_GC_PERCENT_LT=0.0 +PRIMER_WT_GC_PERCENT_GT=0.0 +PRIMER_WT_SELF_ANY_TH=0.0 +PRIMER_WT_SELF_END_TH=0.0 +PRIMER_WT_HAIRPIN_TH=0.0 +PRIMER_WT_NUM_NS=0.0 +PRIMER_WT_LIBRARY_MISPRIMING=0.0 +PRIMER_WT_SEQ_QUAL=0.0 +PRIMER_WT_END_QUAL=0.0 +PRIMER_WT_POS_PENALTY=0.0 +PRIMER_WT_END_STABILITY=0.0 +PRIMER_WT_TEMPLATE_MISPRIMING_TH=0.0 +PRIMER_PAIR_WT_PRODUCT_SIZE_LT=0.0 +PRIMER_PAIR_WT_PRODUCT_SIZE_GT=0.0 +PRIMER_PAIR_WT_PRODUCT_TM_LT=0.0 +PRIMER_PAIR_WT_PRODUCT_TM_GT=0.0 +PRIMER_PAIR_WT_DIFF_TM=0.0 +PRIMER_PAIR_WT_COMPL_ANY_TH=0.0 +PRIMER_PAIR_WT_COMPL_END_TH=0.0 +PRIMER_PAIR_WT_LIBRARY_MISPRIMING=0.0 +PRIMER_PAIR_WT_PR_PENALTY=1.0 +PRIMER_PAIR_WT_IO_PENALTY=0.0 +PRIMER_PAIR_WT_TEMPLATE_MISPRIMING=0.0 + +PRIMER_INTERNAL_WT_SIZE_LT=1.0 +PRIMER_INTERNAL_WT_END_QUAL=0.0 +PRIMER_INTERNAL_MAX_SELF_END=12.00 +PRIMER_QUALITY_RANGE_MIN=0 +PRIMER_PAIR_MAX_COMPL_END=3.00 +PRIMER_PRODUCT_MAX_TM=1000000.0 +PRIMER_INTERNAL_MAX_SIZE=27 +PRIMER_INTERNAL_WT_SELF_ANY=0.0 +PRIMER_INTERNAL_MAX_POLY_X=5 +PRIMER_INTERNAL_WT_SIZE_GT=1.0 +PRIMER_SEQUENCING_ACCURACY=20 +PRIMER_INTERNAL_WT_TM_GT=1.0 +PRIMER_INTERNAL_WT_LIBRARY_MISHYB=0.0 +PRIMER_INTERNAL_MAX_GC=80.0 +PRIMER_PAIR_WT_COMPL_ANY=0.0 +PRIMER_PICK_INTERNAL_OLIGO=0 +PRIMER_MAX_SELF_END=3.00 +PRIMER_QUALITY_RANGE_MAX=100 +PRIMER_INTERNAL_DNTP_CONC=0.0 +PRIMER_INTERNAL_MIN_SIZE=18 +PRIMER_INTERNAL_MIN_QUALITY=0 +PRIMER_SEQUENCING_INTERVAL=250 +PRIMER_INTERNAL_SALT_DIVALENT=1.5 +PRIMER_MAX_SELF_ANY=8.00 +PRIMER_INTERNAL_WT_SEQ_QUAL=0.0 +PRIMER_PAIR_WT_COMPL_END=0.0 +PRIMER_INTERNAL_OPT_TM=60.0 +PRIMER_SEQUENCING_SPACING=500 +PRIMER_INTERNAL_MAX_SELF_ANY=12.00 +PRIMER_MIN_END_QUALITY=0 +PRIMER_INTERNAL_MIN_TM=57.0 +PRIMER_PAIR_MAX_COMPL_ANY=8.00 +PRIMER_SEQUENCING_LEAD=50 +PRIMER_PICK_LEFT_PRIMER=1 +PRIMER_INTERNAL_OPT_SIZE=20 +PRIMER_WT_TEMPLATE_MISPRIMING=0.0 +PRIMER_MAX_END_GC=5 +PRIMER_MIN_QUALITY=0 +PRIMER_INTERNAL_MAX_LIBRARY_MISHYB=12.00 +PRIMER_INTERNAL_WT_GC_PERCENT_GT=0.0 +PRIMER_INTERNAL_MAX_NS_ACCEPTED=0 +PRIMER_WT_SELF_ANY=0.0 +PRIMER_MAX_TEMPLATE_MISPRIMING=12.00 +PRIMER_INTERNAL_WT_NUM_NS=0.0 +PRIMER_INTERNAL_WT_SELF_END=0.0 +PRIMER_PRODUCT_OPT_SIZE=0 +PRIMER_PRODUCT_OPT_TM=0.0 +PRIMER_PAIR_MAX_TEMPLATE_MISPRIMING=24.00 +PRIMER_INSIDE_PENALTY=-1.0 +PRIMER_INTERNAL_MIN_GC=20.0 +PRIMER_PRODUCT_MIN_TM=-1000000.0 +PRIMER_INTERNAL_SALT_MONOVALENT=50.0 +PRIMER_WT_SELF_END=0.0 +PRIMER_INTERNAL_DNA_CONC=50.0 +PRIMER_PICK_RIGHT_PRIMER=1 +PRIMER_INTERNAL_MAX_TM=63.0 +PRIMER_INTERNAL_WT_GC_PERCENT_LT=0.0 +PRIMER_INTERNAL_WT_TM_LT=1.0 += diff -Nru primer3-2.3.7/src/gpl-2.0.txt primer3-2.4.0/src/gpl-2.0.txt --- primer3-2.3.7/src/gpl-2.0.txt 2016-02-17 10:11:38.000000000 +0000 +++ primer3-2.4.0/src/gpl-2.0.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,339 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program 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 program 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 this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. diff -Nru primer3-2.3.7/src/libprimer3.c primer3-2.4.0/src/libprimer3.c --- primer3-2.3.7/src/libprimer3.c 2016-02-17 10:11:38.000000000 +0000 +++ primer3-2.4.0/src/libprimer3.c 2017-11-03 16:29:54.000000000 +0000 @@ -61,6 +61,7 @@ #include "thal.h" #include "oligotm.h" #include "libprimer3.h" +#include "masker.h" /* #define's */ @@ -390,7 +391,8 @@ const seq_args *, oligo_type, oligo_stats *, - const dpal_arg_holder *); + const dpal_arg_holder *, + pr_append_str *); static void oligo_template_mispriming(primer_rec *, const p3_global_settings *, @@ -461,8 +463,7 @@ /* Global static variables. */ static const char *primer3_copyright_char_star = "\n" -"Copyright (c) 1996,1997,1998,1999,2000,2001,2004,2006,2007,2008\n" -" 2009,2010,2011,2012\n" +"Copyright (c) 1996-2017\n" "Whitehead Institute for Biomedical Research, Steve Rozen\n" "(http://purl.com/STEVEROZEN/), Andreas Untergasser and Helen Skaletsky\n" "All rights reserved.\n" @@ -562,6 +563,9 @@ if (NULL != a->o_args.must_match_three_prime) { free(a->o_args.must_match_three_prime); } + if (NULL != a->mp.list_prefix) { + free(a->mp.list_prefix); + } destroy_seq_lib(a->p_args.repeat_lib); destroy_seq_lib(a->o_args.repeat_lib); free(a); @@ -758,7 +762,20 @@ a->min_5_prime_overlap_of_junction = 7; a->min_3_prime_overlap_of_junction = 4; - + + a->mask_template = 0; + a->masking_parameters_changed = 0; + a->mp.mdir = both_separately; + a->mp.failure_rate = 0.1; + a->mp.nucl_masked_in_5p_direction = 1; + a->mp.nucl_masked_in_3p_direction = 0; + a->mp.print_sequence = 0; + a->mp.do_soft_masking = 1; + a->mp.nlists = DEFAULT_NLISTS; + a->mp.list_prefix = (char *) pr_safe_malloc (strlen (DEFAULT_LIST_FILE_PREFIX) + 1); + strcpy (a->mp.list_prefix, DEFAULT_LIST_FILE_PREFIX); + a->mp.fp = NULL; + a->mp.formula_intercept = DEFAULT_INTERCEPT; } /* Add a pair of integers to an array of intervals */ @@ -803,18 +820,18 @@ /* ============================================================ */ int -interval_array_t2_count(const interval_array_t2 *array) + interval_array_t2_count(const interval_array_t2 *array) { return array->count; } - + const int * -interval_array_t2_get_pair(const interval_array_t2 *array, int i) + interval_array_t2_get_pair(const interval_array_t2 *array, int i) { - if (i > array->count) abort(); - if (i < 0) abort(); - return array->pairs[i]; -} + if (i > array->count) abort(); + if (i < 0) abort(); + return array->pairs[i]; +} /* ============================================================ */ /* BEGIN functions for p3retval */ @@ -1094,7 +1111,10 @@ /* edited by T. Koressaar for lowercase masking */ free(sa->trimmed_orig_seq); - + + free(sa->trimmed_masked_seq_r); + free(sa->trimmed_masked_seq); + free(sa->upcased_seq); free(sa->upcased_seq_r); free(sa->sequence_name); @@ -1784,7 +1804,7 @@ if (h->repeat_sim.score == NULL) { oligo_repeat_library_mispriming(h, pa, sa, OT_INTL, &retval->intl.expl, - dpal_arg_to_use); + dpal_arg_to_use, &retval->glob_err); if (!OK_OR_MUST_USE(h)) continue; } @@ -2982,6 +3002,7 @@ const char *revc_oligo_seq; const args_for_one_oligo_or_primer *po_args; + oligo_pair op = {0}; /* Initialize slots in h */ initialize_op(h); @@ -3036,13 +3057,21 @@ if (!pa->pick_anyway) return; } - /* edited by T. Koressaar for lowercase masking */ + /* edited by T. Koressaar and M. Lepamets for lowercase masking */ if(pa->lowercase_masking == 1) { + char *sequence_check = sa->trimmed_orig_seq; + if (pa->mask_template == 1) { + if (l == OT_LEFT) sequence_check = sa->trimmed_masked_seq; + else if (l == OT_RIGHT) sequence_check = sa->trimmed_masked_seq_r; + } if (is_lowercase_masked(three_prime_pos, - sa->trimmed_orig_seq, + sequence_check, h, stats)) { if (!must_use) return; } + } else if(pa->lowercase_masking == 0 && pa->mask_template == 1){ + pr_append_new_chunk(&retval->warnings, "Use PRIMER_LOWERCASE_MASKING=1 when using PRIMER_MASK_TEMPLATE=1."); + return; } /* end T. Koressar's changes */ @@ -3362,7 +3391,7 @@ || (pa->thermodynamic_oligo_alignment==1 && po_args->weights.repeat_sim)) { oligo_repeat_library_mispriming(h, pa, sa, l, stats, - dpal_arg_to_use); + dpal_arg_to_use, &retval->glob_err); if (pa->thermodynamic_template_alignment==0 && OK_OR_MUST_USE(h)) { oligo_template_mispriming(h, pa, sa, l, stats, dpal_arg_to_use->local_end, @@ -3388,7 +3417,7 @@ if (three_conditions || po_args->weights.repeat_sim) { oligo_repeat_library_mispriming(h, pa, sa, l, stats, - dpal_arg_to_use); + dpal_arg_to_use, &retval->glob_err); } @@ -3447,7 +3476,15 @@ break; } } - + /* Calculate failure rate */ + /* Added by M. Lepamets */ + h->failure_rate = 0.0; + if (pa->mask_template && h->length >= pa->mp.window_size) { + op.fwd = string_to_word (oligo_seq, h->length, pa->mp.window_size); + op.rev = op.fwd; /* not used in this calculation */ + calculate_scores (&op, &pa->mp, pa->mp.window_size); + h->failure_rate = op.score_fwd; + } /* FIX ME FIXME Steve, is this really needed? */ op_set_completely_written(h); @@ -3608,6 +3645,11 @@ sum += pa->p_args.weights.length_lt * (pa->p_args.opt_size - h->length); if (pa->p_args.weights.length_gt && h->length > pa->p_args.opt_size) sum += pa->p_args.weights.length_gt * (h->length - pa->p_args.opt_size); + + /* edited by M. Lepamets */ + if (pa->p_args.weights.failure_rate) { + sum += pa->p_args.weights.failure_rate * h->failure_rate; + } /* BEGIN: secondary structures */ if (pa->thermodynamic_oligo_alignment==0) { @@ -4106,7 +4148,7 @@ if (retval->fwd.oligo[m].repeat_sim.score == NULL) { /* We have not yet checked the oligo against the repeat library. */ oligo_repeat_library_mispriming(&retval->fwd.oligo[m], pa, sa, OT_LEFT, - &retval->fwd.expl,dpal_arg_to_use); + &retval->fwd.expl,dpal_arg_to_use, &retval->glob_err); if (OK_OR_MUST_USE(&retval->fwd.oligo[m])) { oligo_template_mispriming(&retval->fwd.oligo[m], pa, sa, OT_LEFT, &retval->fwd.expl, @@ -4121,7 +4163,7 @@ if (retval->rev.oligo[n].repeat_sim.score == NULL) { oligo_repeat_library_mispriming(&retval->rev.oligo[n], pa, sa, OT_RIGHT, - &retval->rev.expl, dpal_arg_to_use); + &retval->rev.expl, dpal_arg_to_use, &retval->glob_err); if (OK_OR_MUST_USE(&retval->rev.oligo[n])) { oligo_template_mispriming(&retval->rev.oligo[n], pa, sa, OT_RIGHT, &retval->rev.expl, @@ -4858,7 +4900,8 @@ const seq_args *sa, oligo_type l, oligo_stats *ostats, - const dpal_arg_holder *dpal_arg_to_use) + const dpal_arg_holder *dpal_arg_to_use, + pr_append_str *error) { char s[MAX_PRIMER_LENGTH+1], /* Will contain the oligo sequence. */ @@ -4920,10 +4963,11 @@ ? dpal_arg_to_use->local_end_ambig : dpal_arg_to_use->local)); - if (w > SHRT_MAX || w < SHRT_MIN) { - abort(); /* TO DO, propagate error */ /* This check is necessary for the next 9 lines */ + pr_append_new_chunk( error, + "Out of range error occured calculating match to repeat library"); + return; } h->repeat_sim.score[i] = w; if(w > max){ @@ -5580,7 +5624,7 @@ const char * libprimer3_release(void) { - return "libprimer3 release 2.3.7"; + return "libprimer3 release 2.4.0"; } const char * @@ -5810,8 +5854,8 @@ pr_append_new_chunk(nonfatal_err, "Task pick_discriminative_primers requires exactly one SEQUENCE_TARGET"); } - sa->force_left_end = sa->tar2.pairs[0][0]; - sa->force_right_end = sa->tar2.pairs[0][0] + sa->tar2.pairs[0][1] - 1; + sa->force_left_end = sa->tar2.pairs[0][0] - 1; + sa->force_right_end = sa->tar2.pairs[0][0] + sa->tar2.pairs[0][1]; } /* If no included region is specified, @@ -5856,7 +5900,35 @@ /* edited by T. Koressaar for lowercase masking */ sa->trimmed_orig_seq = (char *) pr_safe_malloc(sa->incl_l + 1); _pr_substr(sa->sequence, sa->incl_s, sa->incl_l, sa->trimmed_orig_seq); - + + /* Masks original trimmed sequence */ + /* edited by M. Lepamets */ + if (pa->mask_template && (pa->pick_left_primer == 1 && pa->pick_right_primer == 1)) { + input_sequence *input_seq; + output_sequence *output_seq; + + input_seq = create_input_sequence_from_string (sa->trimmed_orig_seq, nonfatal_err); + output_seq = create_output_sequence ((unsigned long long) sa->incl_l, pa->mp.mdir, nonfatal_err); + + read_and_mask_sequence (input_seq, output_seq, &pa->mp, nonfatal_err, 0); + if (output_seq->sequence) { + if (pa->mp.mdir == fwd) { + sa->trimmed_masked_seq = (char *) pr_safe_malloc(sa->incl_l + 1); + strcpy (sa->trimmed_masked_seq, output_seq->sequence); + } else if (pa->mp.mdir == rev) { + sa->trimmed_masked_seq_r = (char *) pr_safe_malloc(sa->incl_l + 1); + strcpy (sa->trimmed_masked_seq_r, output_seq->sequence); + } + } else { + sa->trimmed_masked_seq = (char *) pr_safe_malloc(sa->incl_l + 1); + strcpy (sa->trimmed_masked_seq, output_seq->sequence_fwd); + sa->trimmed_masked_seq_r = (char *) pr_safe_malloc(sa->incl_l + 1); + strcpy (sa->trimmed_masked_seq_r, output_seq->sequence_rev); + } + delete_input_sequence (input_seq); + delete_output_sequence (output_seq); + } + /* Copies the whole sequence into upcased_seq */ sa->upcased_seq = (char *) pr_safe_malloc(strlen(sa->sequence) + 1); strcpy(sa->upcased_seq, sa->sequence); @@ -8657,6 +8729,11 @@ printf(" min_right_three_prime_distance %i\n", p->min_right_three_prime_distance) ; printf(" min_5_prime_overlap_of_junction %i\n", p->min_5_prime_overlap_of_junction); printf(" min_3_prime_overlap_of_junction %i\n", p->min_3_prime_overlap_of_junction); + printf(" mask_template %i\n", p->mask_template); + printf(" failure_rate %f\n", p->mp.failure_rate); + printf(" nucl_masked_in_5p_direction %i\n", p->mp.nucl_masked_in_5p_direction); + printf(" nucl_masked_in_3p_direction %i\n", p->mp.nucl_masked_in_3p_direction); + printf(" list_prefix %s\n", p->mp.list_prefix); printf(" dump %i\n", p->dump); printf(" begin pr_pair_weights\n") ; @@ -8701,6 +8778,7 @@ printf("num_ns %f\n", p->p_args.weights.num_ns) ; printf("template_mispriming %f\n", p->p_args.weights.template_mispriming) ; printf("template_mispriming_th %f\n", p->p_args.weights.template_mispriming_th) ; + printf("failure_rate %f\n", p->p_args.weights.failure_rate) ; printf("end oligo_weights\n") ; printf("opt_tm %f\n", p->p_args.opt_tm) ; @@ -8814,6 +8892,8 @@ printf("*sequence_file %s\n", s->sequence_file) ; printf("*trimmed_seq %s\n", s->trimmed_seq) ; printf("*trimmed_orig_seq %s\n", s->trimmed_orig_seq) ; + printf("*trimmed_masked_seq %s\n", s->trimmed_masked_seq) ; + printf("*trimmed_masked_seq_r %s\n", s->trimmed_masked_seq_r) ; printf("*upcased_seq %s\n", s->upcased_seq) ; printf("*upcased_seq_r %s\n", s->upcased_seq_r) ; printf("*left_input %s\n", s->left_input) ; diff -Nru primer3-2.3.7/src/libprimer3.h primer3-2.4.0/src/libprimer3.h --- primer3-2.3.7/src/libprimer3.h 2016-02-17 10:11:38.000000000 +0000 +++ primer3-2.4.0/src/libprimer3.h 2017-11-03 16:29:54.000000000 +0000 @@ -46,6 +46,7 @@ #include /* DBL_MIN */ #include "oligotm.h" +#include "masker.h" #ifdef __cplusplus extern "C" { @@ -143,6 +144,7 @@ double temp_lt; double template_mispriming; double template_mispriming_th; + double failure_rate; } oligo_weights; @@ -493,7 +495,15 @@ overlap an overlap junction. */ int min_3_prime_overlap_of_junction; - + + int mask_template; + int masking_parameters_changed; + /* Turn on masking of the trimmed_orig_seq (added by M. Lepamets)*/ + + masker_parameters mp; + /* + a struct containing all masking parameters + */ int dump; /* dump fields for global settings and seq args if dump == 1 */ } p3_global_settings; @@ -588,6 +598,8 @@ char overlaps_overlap_position; char template_mispriming_ok; /* Non-0 if the oligo was checked for this already and it is ok. */ + + double failure_rate; /* Primer failure rate due to non-specific priming */ } primer_rec; @@ -665,8 +677,7 @@ int count; /* total number of pairs */ } interval_array_t4; -int -interval_array_t2_count(const interval_array_t2 *array); +int interval_array_t2_count(const interval_array_t2 *array); const int * interval_array_t2_get_pair(const interval_array_t2 *array, int i); @@ -794,6 +805,11 @@ /* Element add by T. Koressaar support lowercase masking: */ char *trimmed_orig_seq; /* Trimmed version of the original, mixed-case sequence. */ + + /* Added by M. Lepamets */ + char *trimmed_masked_seq; /* Masked version of the trimmed seq */ + char *trimmed_masked_seq_r; /* Masked version of the other strand + of the trimmed seq */ char *upcased_seq; /* Upper case version of sequence (_not_ trimmed). */ diff -Nru primer3-2.3.7/src/LICENSE primer3-2.4.0/src/LICENSE --- primer3-2.3.7/src/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ primer3-2.4.0/src/LICENSE 2017-11-03 16:29:54.000000000 +0000 @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program 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 program 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 this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff -Nru primer3-2.3.7/src/Makefile primer3-2.4.0/src/Makefile --- primer3-2.3.7/src/Makefile 2016-02-17 10:11:38.000000000 +0000 +++ primer3-2.4.0/src/Makefile 2017-11-03 16:29:54.000000000 +0000 @@ -43,7 +43,7 @@ # 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 -# from https://sourceforge.net/projects/primer3/ +# from https://github.com/primer3-org/primer3 # ====================================================================== # For VALGRIND -- see end of this makefile for testing primer3_core @@ -75,12 +75,14 @@ NTTHAL_EXE = ntthal.exe OLIGOTM_EXE = oligotm.exe LONG_SEQ_EXE = long_seq_tm_test.exe + MASKER_EXE = primer3_masker.exe else PRIMER_EXE = primer3_core NTDPAL_EXE = ntdpal NTTHAL_EXE = ntthal OLIGOTM_EXE = oligotm LONG_SEQ_EXE = long_seq_tm_test + MASKER_EXE = primer3_masker endif LIBOLIGOTM = liboligotm.a LIBOLIGOTM_DYN = liboligotm.so.1.2.0 @@ -90,21 +92,24 @@ LIBTHAL_DYN = libthal.a.so.1.0.0 LIBPRIMER3 = libprimer3.a LIBPRIMER3_DYN = libprimer3.so.1.0.0 -LIBRARIES = $(LIBPRIMER3) $(LIBDPAL) $(LIBTHAL) $(LIBOLIGOTM) -DYNLIBS = $(LIBPRIMER3_DYN) $(LIBDPAL_DYN) $(LIBTHAL_DYN) $(LIBOLIGOTM_DYN) +LIBMASKER = libmasker.a +LIBMASKER_DYN = libmasker.a.so.1.0.0 +LIBRARIES = $(LIBPRIMER3) $(LIBDPAL) $(LIBTHAL) $(LIBOLIGOTM) $(LIBMASKER) +DYNLIBS = $(LIBPRIMER3_DYN) $(LIBDPAL_DYN) $(LIBTHAL_DYN) $(LIBOLIGOTM_DYN) $(LIBMASKER_DYN) RANLIB = ranlib PRIMER_OBJECTS1=primer3_boulder_main.o\ format_output.o\ read_boulder.o\ - print_boulder.o + print_boulder.o\ + masker.o PRIMER_OBJECTS=$(PRIMER_OBJECTS1) $(LIBRARIES) PRIMER_DYN_OBJECTS=$(PRIMER_OBJECTS1) $(DYNLIBS) # These are files generated by running ./primer3_core < ../example example_files=example.for example.rev example.int -EXES=$(PRIMER_EXE) $(NTDPAL_EXE) $(NTTHAL_EXE) $(OLIGOTM_EXE) $(LONG_SEQ_EXE) +EXES=$(PRIMER_EXE) $(NTDPAL_EXE) $(NTTHAL_EXE) $(OLIGOTM_EXE) $(LONG_SEQ_EXE) $(MASKER_EXE) all: $(EXES) $(LIBRARIES) @@ -150,6 +155,13 @@ $(LIBPRIMER3_DYN): libprimer3.o p3_seq_lib.o $(CC) -shared -W1,-soname,liprimer3.so.1 -o $(LIBPRIMER3_DYN) libprimer3.o p3_seq_lib.o +$(LIBMASKER): masker.o + $(AR) rv $@ masker.o + $(RANLIB) $@ + +$(LIBMASKER_DYN): masker.o + $(CC) -shared -W1,-soname,libmasker.so.1 -o $(LIBMASKER_DYN) masker.o + $(PRIMER_EXE): $(PRIMER_OBJECTS) $(CPP) $(LDFLAGS) -o $@ $(PRIMER_OBJECTS) $(LIBOPTS) $(LDLIBS) @@ -168,6 +180,9 @@ $(LONG_SEQ_EXE): long_seq_tm_test_main.c oligotm.o $(CPP) $(CFLAGS) -o $@ long_seq_tm_test_main.c oligotm.o $(LIBOPTS) $(LDLIBS) +$(MASKER_EXE): masker_main.c $(LIBRARIES) + $(CPP) $(CFLAGS) -o $@ masker_main.c $(LIBRARIES) $(LIBOPTS) $(LDLIBS) + read_boulder.o: read_boulder.c read_boulder.h libprimer3.h dpal.h thal.h p3_seq_lib.h $(CPP) -c $(CFLAGS) $(P_DEFINES) -o $@ read_boulder.c @@ -207,6 +222,9 @@ primer3_boulder_main.o: primer3_boulder_main.c libprimer3.h dpal.h thal.h oligotm.h format_output.h print_boulder.h read_boulder.h $(CPP) -c $(CFLAGS) $(P_DEFINES) primer3_boulder_main.c +masker.o: masker.c masker.h libprimer3.h + $(CPP) -c $(CFLAGS) $(P_DEFINES) masker.c + primer_test: test test: $(PRIMER_EXE) $(NTDPAL_EXE) $(NTTHAL_EXE) diff -Nru primer3-2.3.7/src/Makefile.OSX primer3-2.4.0/src/Makefile.OSX --- primer3-2.3.7/src/Makefile.OSX 2016-02-17 10:11:38.000000000 +0000 +++ primer3-2.4.0/src/Makefile.OSX 1970-01-01 00:00:00.000000000 +0000 @@ -1,273 +0,0 @@ -# ====================================================================== -# (c) Copyright 1996,1997,1998,1999,2000,2001,2004,2006,2007,2008,2009 -# Whitehead Institute for Biomedical Research, Steve Rozen, -# Andreas Untergasser and Helen Skaletsky -# All rights reserved. -# -# This file is part of primer3, the libprimer3 library, the oligotm -# library and the dpal library. -# -# Primer3 and the libraries above are free software; you can -# redistribute them and/or modify them 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 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 this file (file gpl-2.0.txt in the source distribution); if -# not, write to the Free Software Foundation, Inc., 51 Franklin St, -# Fifth Floor, Boston, MA 02110-1301 USA -# -# 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 -# from https://sourceforge.net/projects/primer3/ -# ====================================================================== - -# For VALGRIND -- see end of this makefile for testing primer3_core -# with valgrind, a leak and memory access checker. -TESTOPTS= -WINMAKE=mingw32-make -DEVELOPER=`xcode-select -print-path` - -# this is clumsy, but deals with the moving compilers on OSX - -ifndef SDKROOT - SDKROOT=$(DEVELOPER)/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk -endif - -ifneq (exists, $(shell [ -d $(SDKROOT) ] && echo exists)) - SDKROOT=$(DEVELOPER)/SDKs/MacOSX10.7.sdk -endif - -ifndef MACOSX_DEPLOYMENT_TARGET - MACOSX_DEPLOYMENT_TARGET=10.6 -endif - -ifndef ARCHS - ARCHS=i386 x86_64 -endif - -LDLIBS = -lm -CC = gcc -CPP = g++ -LIBTOOL = libtool -O_OPTS = -O2 -CC_OPTS = -g -Wall -D__USE_FIXED_PROTOTYPES__ -isysroot $(SDKROOT) -mmacosx-version-min=$(MACOSX_DEPLOYMENT_TARGET) $(foreach ARCH,$(ARCHS),-arch $(ARCH)) -P_DEFINES = - -CFLAGS = $(CC_OPTS) $(O_OPTS) -LDFLAGS = -g $(foreach ARCH,$(ARCHS),-arch $(ARCH)) - -# ====================================================================== -# If you have trouble with library skew when moving primer3 executables -# between systems, you might want to set LIBOPTS to -static -LIBOPTS = - -ifeq ($(TESTOPTS),--windows) - PRIMER_EXE = primer3_core.exe - NTDPAL_EXE = ntdpal.exe - NTTHAL_EXE = ntthal.exe - OLIGOTM_EXE = oligotm.exe - LONG_SEQ_EXE = long_seq_tm_test.exe -else - PRIMER_EXE = primer3_core - NTDPAL_EXE = ntdpal - NTTHAL_EXE = ntthal - OLIGOTM_EXE = oligotm - LONG_SEQ_EXE = long_seq_tm_test -endif -LIBOLIGOTM = liboligotm.a -LIBOLIGOTM_DYN = liboligotm.so.1.2.0 -LIBDPAL = libdpal.a -LIBDPAL_DYN = libdpal.a.so.1.0.0 -LIBTHAL = libthal.a -LIBTHAL_DYN = libthal.a.so.1.0.0 -LIBPRIMER3 = libprimer3.a -LIBPRIMER3_DYN = libprimer3.so.1.0.0 -LIBRARIES = $(LIBPRIMER3) $(LIBDPAL) $(LIBTHAL) $(LIBOLIGOTM) -DYNLIBS = $(LIBPRIMER3_DYN) $(LIBDPAL_DYN) $(LIBTHAL_DYN) $(LIBOLIGOTM_DYN) - -PRIMER_OBJECTS1=primer3_boulder_main.o\ - format_output.o\ - read_boulder.o\ - print_boulder.o - -PRIMER_OBJECTS=$(PRIMER_OBJECTS1) $(LIBRARIES) -PRIMER_DYN_OBJECTS=$(PRIMER_OBJECTS1) $(DYNLIBS) -# These are files generated by running ./primer3_core < ../example -example_files=example.for example.rev example.int - -EXES=$(PRIMER_EXE) $(NTDPAL_EXE) $(NTTHAL_EXE) $(OLIGOTM_EXE) $(LONG_SEQ_EXE) - -all: $(EXES) $(LIBRARIES) - -clean_src: -ifeq ($(TESTOPTS),--windows) - del /Q /F *.o $(EXES) *~ $(LIBRARIES) $(example_files) core ..\*~ -else - -rm -f *.o $(EXES) *~ $(LIBRARIES) $(DYNLIBS) $(example_files) core ../*~ -endif - -clean: clean_src -ifeq ($(TESTOPTS),--windows) - cd ..\test & $(WINMAKE) clean TESTOPTS=$(TESTOPTS) -else - cd ../test/; make clean -endif - -$(LIBOLIGOTM): oligotm.o - $(LIBTOOL) -static -o $@ oligotm.o - -$(LIBOLIGOTM_LIB): oligotm.o - $(CC) -shared -W1,-soname,liboligotm.so.1 -o $(LIBOLIGOTM_DYN) oligotm.o - -$(LIBDPAL): dpal_primer.o - $(LIBTOOL) -static -o $@ dpal_primer.o - -$(LIBDPAL_DYN): dpal_primer.o - $(CC) -shared -W1,-soname,libdpal.so.1 -o $(LIBDPAL_DYN_LIB) dpal_primer.o - -$(LIBTHAL): thal_primer.o - $(LIBTOOL) -static -o $@ thal_primer.o - -$(LIBTHAL_DYN): thal_primer.o - $(CC) -shared -W1,-soname,libthal.so.1 -o $(LIBTHAL_DYN_LIB) thal_primer.o - -$(LIBPRIMER3): libprimer3.o p3_seq_lib.o - $(LIBTOOL) -static -o $@ libprimer3.o p3_seq_lib.o - -$(LIBPRIMER3_DYN): libprimer3.o p3_seq_lib.o - $(CC) -shared -W1,-soname,liprimer3.so.1 -o $(LIBPRIMER3_DYN) libprimer3.o p3_seq_lib.o - -$(PRIMER_EXE): $(PRIMER_OBJECTS) - $(CPP) $(LDFLAGS) -o $@ $(PRIMER_OBJECTS) $(LIBOPTS) $(LDLIBS) - -libprimer3.o: libprimer3.c libprimer3.h p3_seq_lib.h dpal.h thal.h oligotm.h - $(CPP) -c $(CFLAGS) -Wno-deprecated $(P_DEFINES) -o $@ libprimer3.c - -$(NTDPAL_EXE): ntdpal_main.o dpal.o - $(CPP) $(LDFLAGS) -o $@ ntdpal_main.o dpal.o - -$(NTTHAL_EXE): thal_main.o thal.o - $(CPP) $(LDFLAGS) -o $@ thal_main.o thal.o $(LDLIBS) - -$(OLIGOTM_EXE): oligotm_main.c oligotm.h $(LIBOLIGOTM) - $(CPP) $(CFLAGS) -o $@ oligotm_main.c $(LIBOLIGOTM) $(LIBOPTS) $(LDLIBS) - -$(LONG_SEQ_EXE): long_seq_tm_test_main.c oligotm.o - $(CPP) $(CFLAGS) -o $@ long_seq_tm_test_main.c oligotm.o $(LIBOPTS) $(LDLIBS) - -read_boulder.o: read_boulder.c read_boulder.h libprimer3.h dpal.h thal.h p3_seq_lib.h - $(CPP) -c $(CFLAGS) $(P_DEFINES) -o $@ read_boulder.c - -print_boulder.o: print_boulder.c print_boulder.h libprimer3.h p3_seq_lib.h - $(CPP) -c $(CFLAGS) $(P_DEFINES) -o $@ print_boulder.c - -dpal.o: dpal.c dpal.h - $(CPP) -c $(CFLAGS) -o $@ dpal.c - -# We use '-ffloat-store' on windows to prevent undesirable -# precision which may lead to differences in floating point results. -thal.o: thal.c thal.h - $(CPP) -c $(CFLAGS) -ffloat-store -o $@ thal.c - -p3_seq_lib.o: p3_seq_lib.c p3_seq_lib.h libprimer3.h - $(CPP) -c $(CFLAGS) -o $@ p3_seq_lib.c - -dpal_primer.o: dpal.c dpal.h - $(CPP) -c $(CFLAGS) $(P_DEFINES) -o $@ dpal.c - -thal_primer.o: thal.c thal.h - $(CPP) -c $(CFLAGS) -ffloat-store $(P_DEFINES) -o $@ thal.c - -format_output.o: format_output.c format_output.h libprimer3.h dpal.h thal.h p3_seq_lib.h - $(CPP) -c $(CFLAGS) $(P_DEFINES) -o $@ format_output.c - -ntdpal_main.o: ntdpal_main.c dpal.h - $(CPP) -c $(CC_OPTS) -o $@ ntdpal_main.c - -thal_main.o: thal_main.c thal.h - $(CPP) -c $(CFLAGS) -o $@ thal_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_boulder_main.o: primer3_boulder_main.c libprimer3.h dpal.h thal.h oligotm.h format_output.h print_boulder.h read_boulder.h - $(CPP) -c $(CFLAGS) $(P_DEFINES) primer3_boulder_main.c - -primer_test: test - -test: $(PRIMER_EXE) $(NTDPAL_EXE) $(NTTHAL_EXE) -ifeq ($(TESTOPTS),--windows) - cd ..\test & $(WINMAKE) TESTOPTS=$(TESTOPTS) -else - cd ../test; make test -endif - -# ====================================================================== -# -# VALGRIND INSTRUCTIONS. -# -# These instructions work for linux, and run the 'memcheck' -# functionality of valgrind. Tests will be _much_ slower -# when running with valgrind checks. -# -# If necessary, get and install valgrind (should come with most -# Linux's, but you need valgrind >= 3.2.3) -# -# In the src directory for primer3: -# -# $ make clean -# -# Re-complile without optimization and run the normal tests, does -# _not_ valgrind them: -# -# $ make O_OPTS=-O0 test # The value of O_OPTS is Minus Oh Zero -# -# Run valgrind on a small example: -# -# $ valgrind --leak-check=yes --show-reachable=yes --log-file-exactly=p3vg ./primer3_core < ../example -# -# Check output in file p3vg -# -# Note: Valgrind is at /usr/local/bin/valgrind at WI -# -# OK, now for the real tests: -# -# $ cd ../test -# -# Check valgrind path in p3test.pl, ntdpal_test.pl, and oligotm_test.pl -# and correct if necessary. This code works under valgrind 3.2.3. -# -# $ make TESTOPTS=--valgrind # Remember, you have to be in test/ -# -# When the --valgrind flag is set, the perl test scripts grep for and -# display errors and leaks, but you need to ***look at the output** to -# see these and figure out which test caused the problem, so you can -# debug it. -# -# ====================================================================== diff -Nru primer3-2.3.7/src/masker.c primer3-2.4.0/src/masker.c --- primer3-2.3.7/src/masker.c 1970-01-01 00:00:00.000000000 +0000 +++ primer3-2.4.0/src/masker.c 2017-11-03 16:29:54.000000000 +0000 @@ -0,0 +1,995 @@ +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "masker.h" +#include "libprimer3.h" + +unsigned int glistmaker_code_match = 'G' << 24 | 'T' << 16 | '4' << 8 | 'C'; + +/*================================================================================== + * + * Input wrapper functions: + * + *==================================================================================*/ + +input_sequence * +create_input_sequence_from_file_name (const char *input_file_name, pr_append_str *parse_err) +{ + input_sequence *input_seq = (input_sequence *) malloc (sizeof(input_sequence)); + memset (input_seq, 0, sizeof(input_sequence)); + if (!input_file_name) input_seq->sequence_file = stdin; + else input_seq->sequence_file = fopen(input_file_name, "r"); + if (!input_seq->sequence_file) { + pr_append_new_chunk_external (parse_err, "Input file not found: "); + pr_append_external (parse_err, input_file_name); + return NULL; + } + return input_seq; +} + +input_sequence * +create_input_sequence_from_string (char *input_string, pr_append_str *parse_err) +{ + input_sequence *input_seq = (input_sequence *) malloc (sizeof(input_sequence)); + if (!input_seq) { + pr_append_new_chunk_external (parse_err, "Memory allocation for input sequence failed!"); + return input_seq; + } + memset (input_seq, 0, sizeof(input_sequence)); + input_seq->sequence_string = input_string; + input_seq->input_size = strlen(input_string); + input_seq->current_pos = 0; + return input_seq; +} + +int +get_next_char_from_input (input_sequence *input_seq, unsigned long long *current_pos) +{ + int c = 0; + if (input_seq->sequence_file) { + *current_pos = ftell(input_seq->sequence_file); + c = fgetc (input_seq->sequence_file); + } else if (input_seq->sequence_string && input_seq->input_size > 0) { + if (input_seq->current_pos == input_seq->input_size) return -1; + *current_pos = input_seq->current_pos; + c = (int) input_seq->sequence_string[input_seq->current_pos]; + input_seq->current_pos += 1; + } + return c; +} + +char * +get_header_name_from_input (input_sequence *input_seq, unsigned long long header_pos, unsigned long long current_pos, pr_append_str *parse_err) +{ + void *v = NULL; + char *header_name = (char *) malloc (sizeof(char) * (current_pos - header_pos + 2)); + if (!header_name) { + pr_append_new_chunk_external (parse_err, "Memory allocation for header name failed!"); + free(header_name); + return NULL; + } + if (input_seq->sequence_file) { + fseek (input_seq->sequence_file, header_pos, SEEK_SET); + v = fgets (header_name, current_pos - header_pos + 2, input_seq->sequence_file); + } else if (input_seq->sequence_string && input_seq->input_size > 0) { + v = memcpy (header_name, input_seq->sequence_string + header_pos, current_pos - header_pos + 1); + } + if (!v) { + pr_append_new_chunk_external (parse_err, "Reading header name failed!"); + free(header_name); + return NULL; + } + return header_name; +} + +void +delete_input_sequence (input_sequence *input_seq) +{ + if (!input_seq) return; + if (input_seq->sequence_file && input_seq->sequence_file != stdin) { + fclose (input_seq->sequence_file); + } + if (input_seq) free ((void *) input_seq); + return; +} + +/*================================================================================== + * + * Formula parameters functions: + * + *==================================================================================*/ + +formula_parameters * +create_formula_parameters_from_list_file_name (const char *list_file_name, pr_append_str *parse_err) +{ + const char *data; + size_t size; + unsigned long long header_size; + unsigned int magic; + formula_parameters *fp = (formula_parameters *) malloc (sizeof (formula_parameters)); + if (!fp) { + pr_append_new_chunk_external (parse_err, "Memory allocation for formula parameters failed!"); + return fp; + } + memset (fp, 0, sizeof(formula_parameters)); + strcpy(fp->list_file_name, list_file_name); + data = mmap_by_filename (fp->list_file_name, &size); + if (!data) { + pr_append_new_chunk_external (parse_err, "List file not found: "); + pr_append_external (parse_err, fp->list_file_name); + pr_append_external (parse_err, ". Lists can be specified by names or prefixes from the commandline or text file."); + return NULL; + } + memcpy (&magic, data, sizeof(unsigned int)); + if (magic != glistmaker_code_match) { + pr_append_new_chunk_external (parse_err, "Given file is not a list file: "); + pr_append_external (parse_err, fp->list_file_name); + return NULL; + } + + memcpy (&fp->oligo_length, data + 12, sizeof(unsigned int)); + memcpy (&fp->words_in_list, data + 16, sizeof(unsigned int)); + memcpy (&header_size, data + 32, sizeof(unsigned long long)); + if (!fp->words_in_list){ + pr_append_new_chunk_external (parse_err, "List file contains no kmers: "); + pr_append_external (parse_err, fp->list_file_name); + return NULL; + } + fp->word_list = data + header_size; + fp->pointer = data; + fp->size = size; + fp->binary_mask = create_binary_mask (fp->oligo_length); + return fp; +} + +formula_parameters * +create_formula_parameters_from_list_file_prefix (const char *list_name_prefix, const char *kmer_lists_path, unsigned int word_length, pr_append_str *parse_err) +{ + char list_file_name[300]; + formula_parameters *fp; + sprintf(list_file_name, "%s%s_%u.list", kmer_lists_path, list_name_prefix, word_length); + if(0 != access(list_file_name,0)){ + pr_append_new_chunk_external (parse_err, "Cannot find list file"); + return NULL; + } + fp = create_formula_parameters_from_list_file_name (list_file_name, parse_err); + return fp; +} + +int +add_variable_to_formula_parameters (char **list_values, unsigned int nvalues, parameters_builder *pbuilder, pr_append_str *parse_err) +{ + unsigned int i = 0; + char *list_name = NULL; + formula_parameters *fp = NULL; + int add_parameters_to_existing_list = 0; + unsigned int add_position; + + list_name = list_values[0]; + for (i = 0; i < pbuilder->nfp; i++) { + if (!strcmp (list_name, pbuilder->used_lists[i])) { + add_parameters_to_existing_list = 1; + add_position = i; + break; + } + } + + if (!add_parameters_to_existing_list) { + fp = create_formula_parameters_from_list_file_name (list_name, parse_err); + if (!fp) return 1; + if (pbuilder->nfp >= pbuilder->nslots) { + pbuilder->nslots = (pbuilder->nslots + 1) * 2; + pbuilder->used_lists = (char **) realloc (pbuilder->used_lists, pbuilder->nslots * sizeof(char *)); + pbuilder->fp_array = (formula_parameters **) realloc (pbuilder->fp_array, pbuilder->nslots * sizeof(formula_parameters *)); + if (!pbuilder->used_lists || !pbuilder->fp_array) { + pr_append_new_chunk_external (parse_err, "Memory allocation for parameters builder failed!"); + free(pbuilder->used_lists); + free(pbuilder->fp_array); + return 1; + } + } + + pbuilder->used_lists[pbuilder->nfp] = list_name; + pbuilder->fp_array[pbuilder->nfp] = fp; + add_position = pbuilder->nfp; + pbuilder->nfp += 1; + } + + if (fp || add_parameters_to_existing_list) { + int squared = 0; + unsigned int mm = 0; + double coef = DEFAULT_COEF; + char *end = NULL; + if (nvalues > 1) { + coef = (list_values[1][0] == '-') ? strtod (list_values[1] + 1, &end) * (-1.0) : strtod (list_values[1], &end); + if (*end != 0) { + pr_append_new_chunk_external (parse_err, "Invalid coefficient value: "); + pr_append_external (parse_err, list_values[1]); + return 2; + } + } + if (nvalues > 2) { + mm = strtol (list_values[2], &end, 10); + if (*end != 0 || mm > 2) { + pr_append_new_chunk_external (parse_err, "Invalid mismatches value specified: "); + pr_append_external (parse_err, list_values[2]); + pr_append_external (parse_err, ". Must be a positive integer less than 2."); + return 3; + } + } + if (nvalues > 3) { + if (!strcmp(list_values[3], "sq")) squared = 1; + } + switch (mm) { + case 0: + if (squared) pbuilder->fp_array[add_position]->mm0_2 = coef; + else pbuilder->fp_array[add_position]->mm0 = coef; + break; + case 1: + if (squared) pbuilder->fp_array[add_position]->mm1_2 = coef; + else pbuilder->fp_array[add_position]->mm1 = coef; + break; + case 2: + if (squared) pbuilder->fp_array[add_position]->mm2_2 = coef; + else pbuilder->fp_array[add_position]->mm2 = coef; + break; + } + + } + return 0; +} + +formula_parameters ** +create_default_formula_parameters (const char *list_name_prefix, const char *kmer_lists_path, pr_append_str *parse_err) +{ + formula_parameters *fp1 = create_formula_parameters_from_list_file_prefix (list_name_prefix, kmer_lists_path, DEFAULT_WORD_LEN_1, parse_err); + formula_parameters *fp2 = create_formula_parameters_from_list_file_prefix (list_name_prefix, kmer_lists_path, DEFAULT_WORD_LEN_2, parse_err); + if (!fp1 || !fp2) return NULL; + formula_parameters **fp = (formula_parameters **) malloc (2 * sizeof (formula_parameters *)); + if (!fp) { + pr_append_new_chunk_external (parse_err, "Memory allocation for formula parameters failed!"); + return fp; + } + + fp[0] = fp1; + fp[1] = fp2; + + fp1->mm0 = DEFAULT_COEF_1; + fp2->mm0 = DEFAULT_COEF_2; + + return fp; +} + +formula_parameters ** +read_formula_parameters_from_file (const char *lists_file_name, unsigned int *nlist_parameters, parameters_builder *pbuilder, double *intercept, pr_append_str *parse_err) +{ + FILE *lists = fopen (lists_file_name, "r"); + char *line = NULL; + size_t line_length = 0; + int read_chars; + int v; + + if (!lists) { + pr_append_new_chunk_external (parse_err, "File not found: "); + pr_append_external (parse_err, lists_file_name); + return NULL; + } + + while ((read_chars = (int) getline(&line, &line_length, lists)) > 1) { + char **values = NULL; + unsigned int nvalues = 0; + + line[read_chars] = '\0'; + strip_string(line); + values = split_string(line, ' ', &nvalues); + if (nvalues == 1) { + double ic; + double neg = 1.0; + char *end = NULL; + if (values[0][0] == '-') { + values[0] += 1; + neg = -1.0; + } + ic = strtod (values[0], &end); + if (*end == 0) { + *intercept = ic * neg; + continue; + } + } + + v = add_variable_to_formula_parameters (values, nvalues, pbuilder, parse_err); + if (v) { + free(pbuilder->used_lists); + free(pbuilder->fp_array); + return NULL; + } + *nlist_parameters += 1; + } + return pbuilder->fp_array; +} + +void +delete_formula_parameters (formula_parameters **fp, unsigned int nlists) +{ + unsigned int i; + if (!fp) return; + for (i = 0; i < nlists; i++) { + if (fp[i]->pointer) munmap ((void *) fp[i]->pointer, fp[i]->size); + if (fp[i]) free ((void *) fp[i]); + } + if (fp) free ((void *) fp); + return; +} + +/*================================================================================== + * + * Output function: + * + *==================================================================================*/ + + +output_sequence * +create_output_sequence (unsigned long long seq_len, masking_direction mdir, pr_append_str *parse_err) +{ + output_sequence *output_seq = (output_sequence *) malloc (sizeof (output_sequence)); + memset (output_seq, 0, sizeof (output_sequence)); + if (!output_seq) { + pr_append_new_chunk_external (parse_err, "Memory allocation for output sequence failed!"); + return output_seq; + } + if (mdir == both_separately) { + output_seq->sequence_fwd = (char *) malloc (seq_len + 1); + memset (output_seq->sequence_fwd, 0, seq_len + 1); + output_seq->sequence_rev = (char *) malloc (seq_len + 1); + memset (output_seq->sequence_rev, 0, seq_len + 1); + } else { + output_seq->sequence = (char *) malloc (seq_len + 1); + memset (output_seq->sequence, 0, seq_len + 1); + } + if (!output_seq->sequence_fwd && !output_seq->sequence_rev && !output_seq->sequence) { + pr_append_new_chunk_external (parse_err, "Memory allocation for output sequence failed!"); + return NULL; + } + output_seq->pos = 0; + return output_seq; +} + +void +delete_output_sequence (output_sequence *output_seq) +{ + if (!output_seq) return; + if (output_seq->sequence) free ((void *) output_seq->sequence); + if (output_seq->sequence_fwd) free ((void *) output_seq->sequence_fwd); + if (output_seq->sequence_rev) free ((void *) output_seq->sequence_rev); + if (output_seq) free ((void* ) output_seq); + return; +} + +void +write_header_to_output (output_sequence *output_seq, char *header_name, const masker_parameters *mp, pr_append_str *parse_err) +{ + void *v = NULL; + if (mp->print_sequence) + fprintf (stdout, "%s", header_name); + else if (output_seq) { + if (mp->mdir == both_separately) { + v = memcpy (output_seq->sequence_fwd + output_seq->pos, header_name, strlen(header_name)); + if (v) v = memcpy (output_seq->sequence_rev + output_seq->pos, header_name, strlen(header_name)); + } else { + v = memcpy (output_seq->sequence + output_seq->pos, header_name, strlen(header_name)); + } + if (!v) { + pr_append_new_chunk_external (parse_err, "Writing header to output failed!"); + return; + } + output_seq->pos += strlen(header_name); + } + return; +} + +void +write_char_to_output (output_sequence *output_seq, char c, char c_other, const masker_parameters *mp, pr_append_str *parse_err) +{ + if (mp->print_sequence) { + fprintf (stdout, "%c", c); + } else if (output_seq) { + if (mp->mdir == both_separately) { + output_seq->sequence_fwd[output_seq->pos] = c; + output_seq->sequence_rev[output_seq->pos] = c_other; + } else { + output_seq->sequence[output_seq->pos] = c; + } + output_seq->pos += 1; + } + return; +} + + + +/*================================================================================== + * + * Masking buffer functions: + * + *==================================================================================*/ + +masking_buffer * +create_masking_buffer (unsigned int word_length, pr_append_str *parse_err) +{ + masking_buffer *mbuffer = (masking_buffer *) malloc (sizeof(masking_buffer)); + if (!mbuffer) { + pr_append_new_chunk_external (parse_err, "Memory allocation for masking buffer failed!"); + return mbuffer; + } + initialize_masking_buffer (mbuffer, word_length); + return mbuffer; +} + +void +initialize_masking_buffer (masking_buffer *mbuffer, unsigned int word_length) +{ + memset (mbuffer, 0, sizeof (masking_buffer)); + mbuffer->ei = MAX_BUFFER_SIZE - word_length + 1; + return; +} + +void +delete_masking_buffer (masking_buffer *mbuffer) +{ + if (mbuffer) { + free ((void *) mbuffer); + } + return; +} + +void +add_char_to_buffer (char c, masking_buffer *mbuffer, int char_type) +{ + mbuffer->buffer[mbuffer->wi] = c; + mbuffer->mask_positions_fwd[mbuffer->wi] = 0; + mbuffer->mask_positions_rev[mbuffer->wi] = 0; + mbuffer->non_nucleotide_positions[mbuffer->wi] = 0; + + if (char_type != WHITESPACE) { + if (mbuffer->mi > 0) { + mbuffer->mask_positions_fwd[mbuffer->wi] = 1; + mbuffer->mi -= 1; + } else if (char_type == MASKED_CHAR) { + mbuffer->mask_positions_rev[mbuffer->wi] = 1; + mbuffer->mask_positions_fwd[mbuffer->wi] = 1; + } + while (mbuffer->non_nucleotide_positions[mbuffer->ei] && !(mbuffer->mask_positions_fwd[mbuffer->ei])) { + mbuffer->ei = TAKE_STEP_FORWARD(mbuffer->ei); + } + /* when it finds the first non-whitespace character it increases the ei one more time */ + mbuffer->ei = TAKE_STEP_FORWARD(mbuffer->ei); + } + if (char_type == WHITESPACE || char_type == MASKED_CHAR) { + mbuffer->non_nucleotide_positions[mbuffer->wi] = 1; + } + + mbuffer->wi = TAKE_STEP_FORWARD(mbuffer->wi); + return; +} + +/* next character is not nucleotide, or if nucleotide then already masked */ +#define COND0(i) (mbuffer->non_nucleotide_positions[i] || \ + (mp->do_soft_masking && mbuffer->buffer[i] >= 'a')) + +/* output contains only one sequence and the next character is masked or + * output contains two sequences and the next character is masked on the forward strand */ +#define COND1(i) ((mp->mdir != both_separately && (mbuffer->mask_positions_fwd[i] || \ + mbuffer->mask_positions_rev[i])) || (mp->mdir == both_separately && mbuffer->mask_positions_fwd[i])) + +/* output contains two sequences and the next character is masked on the reverse strand */ +#define COND2(i) (mp->mdir == both_separately && mbuffer->mask_positions_rev[i]) + +void +empty_buffer (output_sequence *output_seq, const masker_parameters *mp, masking_buffer *mbuffer, int flush_all, pr_append_str *parse_err) +{ + unsigned int end = mbuffer->ei; + if (flush_all) end = mbuffer->wi; + while (mbuffer->ri != end) { + if (COND0(mbuffer->ri)) { + write_char_to_output (output_seq, mbuffer->buffer[mbuffer->ri], mbuffer->buffer[mbuffer->ri], mp, parse_err); + } else { + if (mp->do_soft_masking) { + write_char_to_output (output_seq, COND1(mbuffer->ri) ? mbuffer->buffer[mbuffer->ri] + 32 : mbuffer->buffer[mbuffer->ri], + COND2(mbuffer->ri) ? mbuffer->buffer[mbuffer->ri] + 32 : mbuffer->buffer[mbuffer->ri], mp, parse_err); + } else { + write_char_to_output (output_seq, COND1(mbuffer->ri) ? mp->masking_char : mbuffer->buffer[mbuffer->ri], + COND2(mbuffer->ri) ? mp->masking_char : mbuffer->buffer[mbuffer->ri], mp, parse_err); + } + } + mbuffer->ri = TAKE_STEP_FORWARD(mbuffer->ri); + } + return; +} + +#undef COND0 +#undef COND1 +#undef COND2 + +/*================================================================================== + * + * K-mer searching functions: + * + *==================================================================================*/ + + +unsigned int +binary_search (formula_parameters *fp, unsigned long long word) +{ + unsigned long long current_word, low, high, mid; + unsigned int freq; + low = 0; + high = fp->words_in_list - 1; + mid = (low + high) / 2; + while (low <= high) { + current_word = *((unsigned long long *) (fp->word_list + mid * (sizeof (unsigned long long) + sizeof (unsigned int)))); + if (current_word < word) { + low = mid + 1; + } else if (current_word > word) { + if (mid == 0) break; + high = mid - 1; + } else { + freq = *((unsigned int *) (fp->word_list + mid * (sizeof (unsigned long long) + sizeof (unsigned int)) + sizeof (unsigned long long))); + return freq; + } + mid = (low + high) / 2; + } + return 0; +} + + +unsigned int +get_frequency_of_canonical_oligo (formula_parameters *fp, unsigned long long word) +{ + unsigned int freq_fwd = 0, freq_rev = 0; + freq_fwd = binary_search (fp, word); + if (!freq_fwd) { + freq_rev = binary_search (fp, get_reverse_complement (word, fp->oligo_length)); + + //fprintf (stderr, "rev %u\n", freq_rev); + if(freq_rev==0){ /*heuristics is used, by default, for speed and memory issues, + kmer lists are generated with kmers freq >1*/ + freq_rev=1; + } + return freq_rev; + } + + //fprintf (stderr, "fwd %u\n", freq_fwd); + if(freq_fwd==0){ /*heuristics is used, by default, for speed and memory issues, + kmer lists are generated with kmers freq >1*/ + freq_fwd=1; + } + return freq_fwd; +} + +void +get_oligo_frequencies (oligo_counts *oc, formula_parameters *fp, unsigned long long word, unsigned int mm, int strand) +{ + unsigned int i, j; + unsigned int count_0mm = 0; + unsigned int count_1mm = 0; + unsigned int count_2mm = 0; + unsigned int mismatch; + + word &= fp->binary_mask; + count_0mm = get_frequency_of_canonical_oligo (fp, word); + + if (mm > 0) { + for (i = 0; i < fp->oligo_length; i++) { + for (mismatch = 1; mismatch < 4; mismatch++) { + unsigned long long mask = mismatch << (2 * i); + count_1mm += get_frequency_of_canonical_oligo (fp, word ^ mask); + if (mm > 1) { + for (j = i + 1; j < fp->oligo_length; j++) { + unsigned long long mask2 = mismatch << (2 * j); + count_2mm += get_frequency_of_canonical_oligo (fp, word ^ mask ^ mask2); + } + } + } + } + + } + count_1mm += count_0mm; + count_2mm += count_1mm; + + if (strand != REV) { + oc->count_mm0_fwd = count_0mm; + oc->count_mm1_fwd = count_1mm; + oc->count_mm2_fwd = count_2mm; + } + if (strand != FWD) { + oc->count_mm0_rev = count_0mm; + oc->count_mm1_rev = count_1mm; + oc->count_mm2_rev = count_2mm; + } + return; +} + + + + +/*================================================================================== + * + * Masking functions: + * + *==================================================================================*/ + +void +calculate_scores (oligo_pair *h, const masker_parameters *mp, unsigned int word_length) +{ + formula_parameters **fp_array = mp->fp; // fp[0] on pointer!! + unsigned int nlists = mp->nlists; + unsigned int i; + + for (i = 0; i < nlists; i++) { + oligo_counts oc = {0}; + formula_parameters *fp = fp_array[i]; + unsigned int mm = (fp->mm2 || fp->mm2_2) ? 2 : ((fp->mm1 || fp->mm1_2) ? 1 : 0); + + + if ((mp->mdir == both_on_same || mp->mdir == both_separately || mp->abs_cutoff) && word_length == fp->oligo_length) { + double score = 0.0; + unsigned int abs_score = 0; + + if (mp->mdir == rev) get_oligo_frequencies (&oc, fp, h->rev, mm, BOTH); + else get_oligo_frequencies (&oc, fp, h->fwd, mm, BOTH); + + if (oc.count_mm0_fwd || oc.count_mm0_rev) { + unsigned int count = oc.count_mm0_fwd ? oc.count_mm0_fwd : oc.count_mm0_rev; + score += fp->mm0 * log(oc.count_mm0_fwd) + fp->mm0_2 * log(oc.count_mm0_fwd) * log(oc.count_mm0_fwd); + abs_score = count; + } + if (oc.count_mm1_fwd) { + score += fp->mm1 * log(oc.count_mm1_fwd) + fp->mm1_2 * log(oc.count_mm1_fwd) * log(oc.count_mm1_fwd); + abs_score = oc.count_mm1_fwd; + } + if (oc.count_mm2_fwd) { + score += fp->mm2 * log(oc.count_mm2_fwd) + fp->mm2_2 * log(oc.count_mm2_fwd) * log(oc.count_mm2_fwd); + abs_score = oc.count_mm2_fwd; + } + if (mp->abs_cutoff) { + h->abs_score = abs_score; + } else { + h->score_fwd += score; + h->score_rev += score; + } + } else { + if (mp->mdir != rev) { + get_oligo_frequencies (&oc, fp, h->fwd, mm, FWD); + + //fprintf (stderr, "oc.count.fwd %u\n", oc.count_mm0_fwd); + + if (oc.count_mm0_fwd) h->score_fwd += fp->mm0 * log(oc.count_mm0_fwd) + fp->mm0_2 * log(oc.count_mm0_fwd) * log(oc.count_mm0_fwd); + if (oc.count_mm1_fwd) h->score_fwd += fp->mm1 * log(oc.count_mm1_fwd) + fp->mm1_2 * log(oc.count_mm1_fwd) * log(oc.count_mm1_fwd); + if (oc.count_mm2_fwd) h->score_fwd += fp->mm2 * log(oc.count_mm2_fwd) + fp->mm2_2 * log(oc.count_mm2_fwd) * log(oc.count_mm2_fwd); + + //fprintf (stderr, "1: sõnad: %s %s, skoorid %f %f, abs_skoor %u\n", word_to_string(h->fwd, word_length), word_to_string(h->rev, word_length), h->score_fwd, h->score_rev, h->abs_score); + } + if (mp->mdir != fwd) { + get_oligo_frequencies (&oc, fp, h->rev, mm, REV); + if (oc.count_mm0_rev) h->score_rev += fp->mm0 * log(oc.count_mm0_rev) + fp->mm0_2 * log(oc.count_mm0_rev) * log(oc.count_mm0_rev); + if (oc.count_mm1_rev) h->score_rev += fp->mm1 * log(oc.count_mm1_rev) + fp->mm1_2 * log(oc.count_mm1_rev) * log(oc.count_mm1_rev); + if (oc.count_mm2_rev) h->score_rev += fp->mm2 * log(oc.count_mm2_rev) + fp->mm2_2 * log(oc.count_mm2_rev) * log(oc.count_mm2_rev); + } + } + } + if (h->score_fwd) h->score_fwd = exp(h->score_fwd + mp->formula_intercept) / (1 + exp(h->score_fwd + mp->formula_intercept)); + if (h->score_rev) h->score_rev = exp(h->score_rev + mp->formula_intercept) / (1 + exp(h->score_rev + mp->formula_intercept)); + + //fprintf (stderr, "2: sõnad: %s %s, skoorid %f %f, abs_skoor %u\n", word_to_string(h->fwd, word_length), word_to_string(h->rev, word_length), h->score_fwd, h->score_rev, h->abs_score); + + return; +} + +void +mask_oligo_region (oligo_pair *h, const masker_parameters *mp, masking_buffer *mbuffer, unsigned int word_length, int debug) +{ + calculate_scores (h, mp, word_length); + + if (debug > 1) { + fprintf (stderr, "score-fwd: %f score-rev: %f\n", h->score_fwd, h->score_rev); + } + + if (mp->mdir != rev && ((mp->failure_rate && h->score_fwd > mp->failure_rate) || + (mp->abs_cutoff && h->abs_score >= mp->abs_cutoff))) { + int masked = 0, i = TAKE_STEP_BACK(mbuffer->wi); + while (masked < mp->nucl_masked_in_5p_direction) { + if (!mbuffer->non_nucleotide_positions[i] && !mbuffer->mask_positions_fwd[i]) { + mbuffer->mask_positions_fwd[i] = 1; + masked += 1; + } else if (mbuffer->mask_positions_fwd[i]) { + masked += 1; + } + i = TAKE_STEP_BACK(i); + } + mbuffer->mi = mp->nucl_masked_in_3p_direction; + } + + if (mp->mdir != fwd && ((mp->failure_rate && h->score_rev > mp->failure_rate) || + (mp->abs_cutoff && h->abs_score >= mp->abs_cutoff))) { + int masked = 0, i = TAKE_STEP_BACK(mbuffer->ei); + while (masked < mp->nucl_masked_in_5p_direction + mp->nucl_masked_in_3p_direction) { + if (!mbuffer->non_nucleotide_positions[i] && !mbuffer->mask_positions_rev[i]) { + mbuffer->mask_positions_rev[i] = 1; + masked += 1; + } else if (mbuffer->mask_positions_rev[i]) { + masked += 1; + } + i = TAKE_STEP_FORWARD(i); + } + + } + return; +} + +void +read_and_mask_sequence (input_sequence *input_seq, output_sequence *output_seq, const masker_parameters *mp, + pr_append_str *parse_err, int debug) +{ + int is_header = 0, init_round = 1; + unsigned long long word_fwd = 0, word_rev = 0, nucl_value; + unsigned int current_length = 0; + unsigned int word_length = 0; + unsigned long long binary_mask = 0; + masking_buffer *mbuffer; + unsigned long long header_pos = 0, current_pos = 0; + unsigned int i; + + /* size of window is the length of the longest k-mers that we use */ + for (i = 0; i < mp->nlists; i++) { + if (mp->fp[i]->oligo_length > word_length) { + binary_mask = mp->fp[i]->binary_mask; + word_length = mp->fp[i]->oligo_length; + } + } + + /* buffer for masking*/ + mbuffer = create_masking_buffer (word_length + mp->nucl_masked_in_3p_direction, parse_err); + + while (1) { + oligo_pair h = {0}; + int c = get_next_char_from_input (input_seq, ¤t_pos); + /* EOF or end of string */ + if (c < 0) break; + + if (debug > 1) { + fprintf (stderr, "pos: %llu, input: %c\n", current_pos, c); + } + + /* In case it is a FASTA file we need to consider + * the headers separately */ + if (c == '>') { + header_pos = current_pos; + word_fwd = word_rev = 0; + current_length = 0; + is_header = 1; + } + /* continue until the end of header */ + if (is_header) { + if (c == 10 || c == 13) { + char *header_name = get_header_name_from_input (input_seq, header_pos, current_pos, parse_err); + empty_buffer (output_seq, mp, mbuffer, FLUSH_ALL, parse_err); + write_header_to_output (output_seq, header_name, mp, parse_err); + initialize_masking_buffer (mbuffer, word_length + mp->nucl_masked_in_3p_direction); + init_round = 1; + is_header = 0; + free(header_name); + } + } else { + if (!init_round && mbuffer->wi == mbuffer->ri) { + empty_buffer (output_seq, mp, mbuffer, KEEP_UNCERTAIN_REGION, parse_err); + } + init_round = 0; + + if (!strchr(ALPHABET, c) && c > ' ') { + add_char_to_buffer (c, mbuffer, MASKED_CHAR); + word_fwd = word_rev = 0; + current_length = 0; + continue; + } else if (c <= ' ') { + add_char_to_buffer (c, mbuffer, WHITESPACE); + continue; + } else { + add_char_to_buffer (c, mbuffer, NUCLEOTIDE); + } + + /* add next nucleotide to the word */ + nucl_value = get_nucl_value (c); + if (mp->mdir != rev) { + word_fwd <<= 2; + word_fwd |= nucl_value; + } + if (mp->mdir != fwd) { + word_rev >>= 2; + word_rev |= ((~nucl_value & 3) << ((word_length - 1) * 2)); + } + current_length += 1; + + if (current_length > word_length) { + word_fwd &= binary_mask; + word_rev &= binary_mask; + current_length = word_length; + } + if (current_length == word_length) { + h.fwd = word_fwd; + h.rev = word_rev; + + if (debug > 1) { + fprintf (stderr, "%llu %llu\n", h.fwd, h.rev); + } + mask_oligo_region (&h, mp, mbuffer, word_length, debug); + } + } + } + + empty_buffer (output_seq, mp, mbuffer, FLUSH_ALL, parse_err); + delete_masking_buffer (mbuffer); + return; +} + +/*================================================================================== + * + * Helping functions: + * + *==================================================================================*/ + +const char * +mmap_by_filename (const char *filename, size_t *size) +{ + struct stat st; + int status, handle; + const char *data; + + status = stat (filename, &st); + if (status < 0) { + return NULL; + } + + handle = open (filename, O_RDONLY); + if (handle < 0) { + return NULL; + } + + data = (const char *) mmap (NULL, st.st_size, PROT_READ, MAP_PRIVATE, handle, 0); + if (data == (const char *) -1) { + return NULL; + } else { + *size = (size_t)st.st_size; + } + + close (handle); + return data; +} + +unsigned long long +create_binary_mask (unsigned int word_length) +{ + unsigned int i; + unsigned long long mask = 0L; + + for (i = 0; i < 2 * word_length; i++) { + mask = (mask << 1) | 1; + } + return mask; +} + + +unsigned long long +get_nucl_value (char nucl) +{ + static unsigned long long bit1 = 1 << 2; + static unsigned long long bit2 = 3 << 1; + if (nucl & bit1) { + return ((nucl >> 4) | 2) & 3; + } + return (nucl & bit2) >> 1; +} + +unsigned long long +get_reverse_complement (unsigned long long word, unsigned int word_length) +{ + unsigned int i; + unsigned long long mask, v, revcompl = 0L; + + word = ~word; + mask = 3; + for (i = 0; i < word_length; i++) { + v = word & mask; + revcompl <<= 2; + revcompl |= v; + word >>= 2; + } + return revcompl; +} + +unsigned long long +string_to_word (const char *s, unsigned int string_length, unsigned int word_length) +{ + unsigned int i; + unsigned long long word = 0L; + + for (i = string_length - word_length; i < string_length; i++) { + word <<= 2; + word |= get_nucl_value (s[i]); + } + return word; +} + +char * +word_to_string (unsigned long long word, unsigned int wordlength) +{ + char *s = (char *) malloc (wordlength + 1); + unsigned int i, temp; + + for (i = 0; i < wordlength; i++) { + temp = word & 3; + s[wordlength - i - 1] = ALPHABET[temp]; + word >>= 2; + } + s[wordlength] = 0; + return s; +} + +char ** +split_string (char string[], char c, unsigned int *nchunks) +{ + char **string_chunks = (char **) malloc (MAX_SPLITS * sizeof(char *)); + char *p; + char tmp[100]; + unsigned int i = 0, l; + + while ((p = strchr (string, c))) { + /* length of substring to copy */ + l = (int) (p - string); + + /* add substring to the output */ + if (l > 0) { + memcpy (tmp, string, l); + tmp[l] = '\0'; + string_chunks[i] = (char *) malloc ((l + 1) * sizeof(char)); + strcpy (string_chunks[i], tmp); + i += 1; + *nchunks += 1; + } + string = p + 1; + } + /* length of the last substring */ + l = strlen(string); + + if (l > 0) { + + memcpy (tmp, string, l); + tmp[l] = '\0'; + /* add last substring to output */ + string_chunks[i] = (char *) malloc ((l + 1) * sizeof(char)); + strcpy (string_chunks[i], tmp); + *nchunks += 1; + } + + return string_chunks; +} + + +void +strip_string (char string[]) +{ + size_t l = strlen(string); + if (string[l - 1] == '\n') string[l - 1] = '\0'; + return; + +} + + diff -Nru primer3-2.3.7/src/masker.h primer3-2.4.0/src/masker.h --- primer3-2.3.7/src/masker.h 1970-01-01 00:00:00.000000000 +0000 +++ primer3-2.4.0/src/masker.h 2017-11-03 16:29:54.000000000 +0000 @@ -0,0 +1,325 @@ +#ifndef MASKER_H +#define MASKER_H + + +#include +#include +#include + +/* ALPHABET defines which characters are considered as nucleotides */ +#define ALPHABET "ACGTUacgtu" + +#define FWD 1 +#define REV 2 +#define BOTH 3 + +#define MAX_BUFFER_SIZE 5000 +#define MAX_SPLITS 10 + +#define NUCLEOTIDE 0 +#define WHITESPACE 1 +#define MASKED_CHAR 2 + +#define FLUSH_ALL 1 +#define KEEP_UNCERTAIN_REGION 0 + +#define DEFAULT_COEF 1.0 + +/* default formula parameter coefficients */ +#define DEFAULT_NLISTS 2 +#define DEFAULT_NLIST_PARAMETERS 2 +#define DEFAULT_WORD_LEN_1 11 +#define DEFAULT_WORD_LEN_2 16 +#define DEFAULT_COEF_1 0.1772 +#define DEFAULT_COEF_2 0.239 +#define DEFAULT_INTERCEPT -4.336 + +/* default masking parameter values */ +#define PRINT_SEQUENCE 1 /* used only for commandline tool */ +#define DEFAULT_FAILURE_RATE 0.1 +#define DEFAULT_ABS_CUTOFF 0 +#define DEFAULT_MASK_CHAR 'N' +#define DEFAULT_MASKING_DIRECTION both_on_same /* used only for commandline tool */ +#define DEFAULT_M5P 1 +#define DEFAULT_M3P 0 +#define DEFAULT_LIST_FILE_PREFIX (char *)"homo_sapiens" + +/* macros for moving forward and backward in masking buffer */ +#define TAKE_STEP_BACK(i) \ + (i == 0) ? (MAX_BUFFER_SIZE - 1) : (i - 1) + +#define TAKE_STEP_FORWARD(i) \ + (i == MAX_BUFFER_SIZE - 1) ? 0 : (i + 1) + +struct pr_append_str; + +/* + * masking_direction: One can mask the forward, reverse or both strands. + * both_on_same outputs one sequence that contains masked nucleotides according to both strands. + * both_separately outputs two masked sequences separately. + */ +typedef enum masking_direction { + both_on_same = 0, + both_separately = 1, + fwd = 2, + rev = 3 +} masking_direction; + +/* + * input_sequence: A wrapper for input sequence. Input can be either a stream or a + * string variable + */ +typedef struct input_sequence { + FILE *sequence_file; + const char *sequence_string; + size_t input_size; + size_t current_pos; +} input_sequence; + +/* + * output_sequence: A wrapper for output sequence in case the output is given in a + * string variable + */ +typedef struct output_sequence { + char *sequence; + unsigned int pos; + + /* These will be used instead of char *sequence + * in case of both_separately masking direction */ + char *sequence_fwd; + char *sequence_rev; +} output_sequence; + +/* + * formula_parameters: All parameters concerning one input k-mer list + */ +typedef struct formula_parameters { + /* If the list is created with GenomeTester4, + * 210 char should be enough to contain the full list name */ + char list_file_name[210]; + unsigned int oligo_length; + + /* binary mask is used for cutting the k-mer into the size of oligo_length */ + unsigned long long binary_mask; + + /* number of unique k-mers in the given k-mer list */ + unsigned long long words_in_list; + + /* pointer to k-mer list */ + const char *word_list; + const char *pointer; + size_t size; + + /* coefficients for all possible masking formula variables (and their squares) + * concerning this k-mer list. + * If certain variables are not used, their coefficiest are equal to 0 */ + double mm0; + double mm1; + double mm2; + double mm0_2; + double mm1_2; + double mm2_2; +} formula_parameters; + +/* + * parameters_builder: Helping structure for reading the formula parameters + */ +typedef struct parameters_builder { + formula_parameters **fp_array; + double intercept; + char **used_lists; + unsigned int nslots; + unsigned int nfp; +} parameters_builder; + +/* + * masker_parameters: Masker parameters contain all the user specified + * (otherwise default) parameter values + */ +typedef struct masker_parameters { + /* strand to mask */ + masking_direction mdir; + + /* primer failure rate cutoff used in primer design, + * potential locations in a sequence for primers with PCR + * failure rate over the given cutoff are masked + *(see function calculate_scores() from masker.c) */ + double failure_rate; + + /* absolute value cutoff, this can be used for masking all the k-mers in a sequence + * that have the frequency over abs_cutoff in a k-mer list */ + unsigned int abs_cutoff; + + /* number of nucleotides masked in 5' and 3' direction with respect + * to the 3' end of a primer */ + int nucl_masked_in_5p_direction; + int nucl_masked_in_3p_direction; + + /* If masker is used as a separate application then always print_sequence=1, + * i.e the output is sent to stdout. + * If print_sequence=0 the output is written in a string variable and can be forwarded + * to the next function */ + int print_sequence; + + /* if do_soft_masking=1, masked nucleotides and converted to lower-case, else + * masked nucleotide are converted to masking_char ('N' by default) */ + int do_soft_masking; + char masking_char; + + /* size of the masking window */ + int window_size; + + /* number of k-mer lists used in the masking formula */ + unsigned int nlists; + /* k-mer lists and all their parameters which are used in the masking formula */ + char *list_prefix; + formula_parameters **fp; + double formula_intercept; +} masker_parameters; + +/* + * masking_buffer: A round buffer for storing all the characters of the input sequence + * as well as the masking and output information + */ +typedef struct masking_buffer { + /* the main array containing the characters that are read + * from the sequence input */ + char buffer[MAX_BUFFER_SIZE]; + + /* indicates the positions in the buffer that do not contain a + * nucleotide character */ + int non_nucleotide_positions[MAX_BUFFER_SIZE]; + + /* indicates the nucleotide positions in the buffer that + * will be masked in he output */ + int mask_positions_fwd[MAX_BUFFER_SIZE]; + int mask_positions_rev[MAX_BUFFER_SIZE]; + + /* indices for reading from the buffer and + writing to the buffer */ + unsigned int ri; + unsigned int wi; + + /* index of the 5' end of the k-mer last entered plus the + * number of nucleotides masked in 3' direction. This index is used + * to determine the first positions which can still be altered and therefore cannot be + * flushed out of the buffer yet */ + unsigned int ei; + + /* mi indicates the number of nucleotides that are + * yet to be masked in 3' direction */ + unsigned int mi; +} masking_buffer; + +/* + * oligo_pair: contains k-mer pairs and their calculated scores + */ +typedef struct oligo_pair { + /* fwd and rev k-mers */ + unsigned long long fwd; + unsigned long long rev; + + /* a k-mer score is a failure rate of such a primer that + *contains a given k-mer in its 3' end */ + double score_fwd; + double score_rev; + + /* abs_score is a number of given k-mers in a k-mer list */ + unsigned int abs_score; +} oligo_pair; + +/* + * oligo_counts: contains all k-mer frequencies (for both forward and reverse strand) + * retrieved from the k-mer lists + */ +typedef struct oligo_counts { + unsigned int oligo_length; + unsigned int count_mm0_fwd; + unsigned int count_mm1_fwd; + unsigned int count_mm2_fwd; + unsigned int count_mm0_rev; + unsigned int count_mm1_rev; + unsigned int count_mm2_rev; +} oligo_counts; + +/* + * + */ +input_sequence *create_input_sequence_from_file_name (const char *input_file_name, pr_append_str *parse_err); +input_sequence *create_input_sequence_from_string (char *input_string, pr_append_str *parse_err); +void delete_input_sequence (input_sequence *input_seq); + +int get_next_char_from_input (input_sequence *input_seq, unsigned long long *current_pos); +char *get_header_name_from_input (input_sequence *input_seq, unsigned long long header_pos, unsigned long long current_pos, pr_append_str *parse_err); + +/* + * + */ +formula_parameters *create_formula_parameters_from_list_file_name (const char *list_file_name, pr_append_str *parse_err); +formula_parameters *create_formula_parameters_from_list_file_prefix (const char *list_name_prefix, const char *kmer_lists_path, unsigned int word_length, pr_append_str *parse_err); +formula_parameters **create_default_formula_parameters (const char *list_name_prefix, const char *kmer_lists_path, pr_append_str *parse_err); +formula_parameters **read_formula_parameters_from_file (const char *lists_file_name, unsigned int *nlist_parameters, parameters_builder *pbuilder, double *intercept, pr_append_str *parse_err); +int add_variable_to_formula_parameters (char **list_values, unsigned int nvalues, parameters_builder *pbuilder, pr_append_str *parse_err); +void delete_formula_parameters (formula_parameters **fp, unsigned int nlists); + +/* + * + */ +output_sequence *create_output_sequence (unsigned long long seq_len, masking_direction mdir, pr_append_str *parse_err); +void delete_output_sequence (output_sequence *output_seq); + +void write_header_to_output (output_sequence *output_seq, char *header_name, const masker_parameters *mp, pr_append_str *parse_err); +void write_char_to_output (output_sequence *output_seq, char c, char c_other, const masker_parameters *mp, pr_append_str *parse_err); + +/* + * + */ +masking_buffer *create_masking_buffer (unsigned int word_length); +void initialize_masking_buffer (masking_buffer *mbuffer, unsigned int word_length); +void delete_masking_buffer (masking_buffer *mbuffer); +void add_char_to_buffer (char c, masking_buffer *mbuffer, int char_type); +void empty_buffer (output_sequence *output_seq, const masker_parameters *mp, masking_buffer *mbuffer, int flush_all, pr_append_str *parse_err); + +/* + * + */ +void get_oligo_frequencies (oligo_counts *oc, formula_parameters *fp, unsigned long long word, unsigned int mm, int strand); + +/* + * + */ +void calculate_scores (oligo_pair *h, const masker_parameters *mp, unsigned int word_length); +void mask_oligo_region (oligo_pair *h, const masker_parameters *mp, masking_buffer *mbuffer, unsigned int word_length, int debug); +void read_and_mask_sequence (input_sequence *input_seq, output_sequence *output_seq, const masker_parameters *mp, pr_append_str *parse_err, int debug); + + +const char *mmap_by_filename (const char *filename, size_t *size); +unsigned long long get_reverse_complement (unsigned long long word, unsigned int word_length); +/* + * + */ +unsigned long long create_binary_mask (unsigned int word_length); + +/* + * converts nucleotide character into a 2-bit integer as follows: + * 'A' -> 0; 'C' -> 1; 'G' -> 2; 'T'/'U' -> 3 + */ +unsigned long long get_nucl_value (char nucl); + +unsigned long long string_to_word (const char *s, unsigned int string_length, unsigned int word_length); +char *word_to_string (unsigned long long word, unsigned int wordlength); + +void strip_string (char string[]); +char **split_string (char string[], char c, unsigned int *nchunks); + + +#endif + + + + + + + + + diff -Nru primer3-2.3.7/src/masker_main.c primer3-2.4.0/src/masker_main.c --- primer3-2.3.7/src/masker_main.c 1970-01-01 00:00:00.000000000 +0000 +++ primer3-2.4.0/src/masker_main.c 2017-11-03 16:29:54.000000000 +0000 @@ -0,0 +1,416 @@ +/* + Copyright (c) 1996,1997,1998,1999,2000,2001,2004,2006,2007,2008,2009 + Whitehead Institute for Biomedical Research, Steve Rozen + (http://purl.com/STEVEROZEN/), and Helen Skaletsky + All rights reserved. + + This file is part of primer3 software suite. + + This software suite is 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 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 this software (file gpl-2.0.txt in the source + distribution); if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + 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 A 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. +*/ + +#include +#include +#include + +#include "masker.h" +#include "libprimer3.h" + +/* maximum number of variables allowed in the probability formula */ +#define MAX_VARIABLES 100 + +/* flags for choosing between hard and soft masking */ +#define HARD_MASKING 0 +#define SOFT_MASKING 1 + + +static void print_help (int exit_value); +void print_parameters (masker_parameters *mp); + +const char *pr_programme_name = "primer3_masker"; + +int +main (int argc, const char *argv[]) +{ + unsigned int idx; + char *end; + int debug = 0; + + /* sequence file name specified by the user, otherwise STDIN will be used */ + const char *sequence_file_name = NULL; + const char *lists_file_name = NULL; + const char *kmer_lists_path = NULL; + + /* data structure for all k-mer lists used for masking */ + unsigned int nlists = 0; + unsigned int nlist_parameters = 0; + unsigned int npos = 0; + unsigned int list_pos[MAX_VARIABLES], list_components[MAX_VARIABLES]; + + masker_parameters mp = {}; + parameters_builder pbuilder = {}; + input_sequence *input_seq = NULL; + + pr_append_str parse_err; + pr_append_str warnings; + + init_pr_append_str (&parse_err); + init_pr_append_str (&warnings); + + /* fill mp with default parameters */ + mp.mdir = DEFAULT_MASKING_DIRECTION; + mp.failure_rate = DEFAULT_FAILURE_RATE; + mp.abs_cutoff = DEFAULT_ABS_CUTOFF; + mp.nucl_masked_in_5p_direction = DEFAULT_M5P; + mp.nucl_masked_in_3p_direction = DEFAULT_M3P; + mp.print_sequence = PRINT_SEQUENCE; + mp.do_soft_masking = HARD_MASKING; + mp.masking_char = DEFAULT_MASK_CHAR; + mp.list_prefix = DEFAULT_LIST_FILE_PREFIX; + kmer_lists_path = "../kmer_lists/"; + if(argc < 2){ + print_help (0); + } + + /* parsing and checking the commandline arguments */ + for (idx = 1; (int)idx < argc; idx++) { + + if (!strcmp (argv[idx], "-h") || !strcmp (argv[idx], "--help") || !strcmp (argv[idx], "-?") || (argc < 2)) { + print_help (0); + + } else if ((int)idx == argc - 1 && argv[idx][0] != '-') { + sequence_file_name = argv[idx]; + FILE *file = fopen(sequence_file_name, "r"); + if (file){ + fclose(file); + } else { + print_help(1); + } + + } else if (!strcmp (argv[idx], "-lf") || !strcmp (argv[idx], "--lists_file")) { + /* lists specified from the file */ + if (!argv[idx + 1] || argv[idx + 1][0] == '-') { + pr_append_new_chunk_external (&warnings, "No lists file specified."); + idx += 1; + print_help(1); + } + lists_file_name = argv[idx + 1]; + idx += 1; + + } else if (!strcmp (argv[idx], "-l") || !strcmp (argv[idx], "--list")) { + /* lists specified from the commandline */ + if (nlist_parameters == MAX_VARIABLES) { + pr_append_new_chunk_external (&parse_err, "Maximum number of list variables reached."); + print_help(1); + } + + if (!argv[idx + 1]) { + pr_append_new_chunk_external (&warnings, "No list name specified with -l parameter!."); + print_help(1); + } + + /* get the positions of list files */ + list_pos[nlist_parameters] = idx; + while (argv[idx + 1]) { + if (argv[idx + 1][0] == '-') { + if (!argv[idx + 1][1]) break; + strtod (argv[idx + 1] + 1, &end); + if (*end != 0) break; + } else if (idx + 1 != list_pos[nlist_parameters] + 1 && idx + 1 != list_pos[nlist_parameters] + 4) { + strtod (argv[idx + 1], &end); + if (*end != 0) break; + } else if (idx + 1 == list_pos[nlist_parameters] + 4 && strcmp (argv[idx + 1], "sq")) { + break; + } + idx += 1; + } + list_components[nlist_parameters] = idx - list_pos[nlist_parameters]; + nlist_parameters += 1; + npos += 1; + + } else if (!strcmp (argv[idx], "-lp") || !strcmp (argv[idx], "--list_prefix")) { + /* lists specified by the prefix */ + if (!argv[idx + 1] || argv[idx + 1][0] == '-') { + pr_append_new_chunk_external (&warnings, "No list prefix specified! Using the default value."); + idx += 1; + print_help(1); + } + mp.list_prefix = (char *)argv[idx + 1]; + idx += 1; + } else if (!strcmp (argv[idx], "-lh") || !strcmp (argv[idx], "--kmer_lists_path")) { + /* kmer lists path */ + if (!argv[idx + 1] || argv[idx + 1][0] == '-') { + pr_append_new_chunk_external (&warnings, "No list prefix specified! Using the default value."); + idx += 1; + print_help(1); + } + kmer_lists_path = (char *)argv[idx + 1]; + idx += 1; + } else if (!strcmp (argv[idx], "-p") || !strcmp (argv[idx], "--probability_cutoff")) { + if (!argv[idx + 1]) { + pr_append_new_chunk_external (&warnings, "No cutoff value specified! Using the default value."); + idx += 1; + continue; + } + mp.failure_rate = strtod (argv[idx + 1], &end); + mp.abs_cutoff = 0; + if (*end != 0 || mp.failure_rate < 0 || mp.failure_rate > 1) { + pr_append_new_chunk_external (&parse_err, "Invalid cutoff value: "); + pr_append_external (&parse_err, argv[idx + 1]); + /*free(parse_err.data);*/ + break; + } + idx += 1; + + } else if (!strcmp (argv[idx], "-a") || !strcmp (argv[idx], "--absolute_value_cutoff")) { + if (!argv[idx + 1]) { + pr_append_new_chunk_external (&warnings, "No absolute cutoff value specified! Using the default value."); + idx += 1; + break; + } + mp.abs_cutoff = strtod (argv[idx + 1], &end); + mp.failure_rate = 0.0; + if (*end != 0 || mp.abs_cutoff < 0) { + pr_append_new_chunk_external (&parse_err, "Invalid absolute cutoff value: "); + pr_append_external (&parse_err, argv[idx + 1]); + break; + } + idx += 1; + + } else if (!strcmp (argv[idx], "-m5") || !strcmp (argv[idx], "--mask_5p")) { + if (!argv[idx + 1]) { + pr_append_new_chunk_external (&warnings, "Number of nucleotides masked in 5' direction not specified! Using the default value."); + idx += 1; + continue; + } + mp.nucl_masked_in_5p_direction = strtod (argv[idx + 1], &end); + if (*end != 0) { + pr_append_new_chunk_external (&parse_err, "Invalid number of nucleotides masked in 5' direction: "); + pr_append_external (&parse_err, argv[idx + 1]); + print_help(1); + } + idx += 1; + + } else if (!strcmp (argv[idx], "-m3") || !strcmp (argv[idx], "--mask_3p")) { + if (!argv[idx + 1]) { + pr_append_new_chunk_external (&warnings, "Number of nucleotides masked in 3' direction not specified! Using the default value."); + idx += 1; + continue; + } + mp.nucl_masked_in_3p_direction = strtod (argv[idx + 1], &end); + if (*end != 0) { + pr_append_new_chunk_external (&parse_err, "Invalid number of nucleotides masked in 3' direction: "); + pr_append_external (&parse_err, argv[idx + 1]); + print_help(1); + } + idx += 1; + + } else if (!strcmp (argv[idx], "-c") || !strcmp (argv[idx], "--masking_char")) { + if (!argv[idx + 1 || argv[idx + 1][0] == '-']) { + pr_append_new_chunk_external (&warnings, "Character for masking not specified! Using the default value."); + idx += 1; + continue; + } + mp.masking_char = argv[idx + 1][0]; + if (strlen(argv[idx + 1]) > 1 || mp.masking_char < 33 || mp.masking_char > 126) { + pr_append_new_chunk_external (&parse_err, "Invalid character for masking: "); + pr_append_external (&parse_err, argv[idx + 1]); + print_help(1); + } + idx += 1; + + } else if (!strcmp (argv[idx], "-d") || !strcmp (argv[idx], "--masking_direction")) { + if (!argv[idx + 1] || argv[idx + 1][0] == '-') { + pr_append_new_chunk_external (&warnings, "Masking direction not specified! Masking both strands by default."); + } else if (!strcmp (argv[idx + 1], "both")) { + mp.mdir = both_on_same; + } else if (!strcmp (argv[idx + 1], "fwd")) { + mp.mdir = fwd; + } else if (!strcmp (argv[idx + 1], "rev")) { + mp.mdir = rev; + } else { + pr_append_new_chunk_external (&warnings, "Unknown masking direction: "); + pr_append_external (&warnings, argv[idx + 1]); + pr_append_external (&warnings, ". Masking both strands by default."); + } + idx += 1; + + } else if (!strcmp (argv[idx], "-s") || !strcmp (argv[idx], "--soft_mask")) { + mp.do_soft_masking = SOFT_MASKING; + + } else if (!strcmp (argv[idx], "-D")) { + debug += 1; + + } else { + pr_append_new_chunk_external (&parse_err, "Unknown parameter: "); + pr_append_external (&parse_err, argv[idx]); + print_help(1); + } + } + /*FILE *file = fopen(sequence_file_name, "r"); + if (file){ + fclose(file); + } else { + print_help(1); + } + */ + input_seq = create_input_sequence_from_file_name (sequence_file_name, &parse_err); + + if (parse_err.data != NULL) { + fprintf(stderr, "%s -> parsing commandline: ERROR: %s\n", pr_programme_name, parse_err.data); + exit(-1); + } + if (warnings.data != NULL) { + fprintf(stderr, "%s -> parsing commandline: WARNING: %s\n", pr_programme_name, warnings.data); + } + + if (lists_file_name) { + /* if lists are given in a text file */ + mp.fp = read_formula_parameters_from_file (lists_file_name, &nlist_parameters, &pbuilder, &mp.formula_intercept, &parse_err); + nlists = pbuilder.nfp; + } + + if (npos != 0) { + /* if lists are given by commandline arguments (can be added to the ones given in a file) */ + pbuilder.fp_array = mp.fp; + + for (idx = 0; idx < npos; idx++) { + unsigned int pos = list_pos[idx] + 1; + char *values[4]; + unsigned int nvalues = list_components[idx]; + char *end; + memcpy (&values, &argv[pos], nvalues * sizeof(*argv)); + + if (nvalues == 1) { + double ic; + double neg = 1.0; + if (values[0][0] == '-') { + values[0] += 1; + neg = -1.0; + } + ic = strtod (values[0], &end); + if (*end == 0) { + mp.formula_intercept = ic * neg; + continue; + } + } + add_variable_to_formula_parameters (values, nvalues, &pbuilder, &parse_err); + } + nlists = pbuilder.nfp; + mp.fp = pbuilder.fp_array; + + } else if (nlists == 0 && !lists_file_name) { + /* if there are no lists specified use the default formula */ + mp.fp = create_default_formula_parameters (mp.list_prefix, kmer_lists_path, &parse_err); + mp.formula_intercept = DEFAULT_INTERCEPT; + nlists = DEFAULT_NLISTS; + nlist_parameters = DEFAULT_NLIST_PARAMETERS; + } + + mp.nlists = nlists; + + if (mp.abs_cutoff > 0 && nlist_parameters != 1) { + fprintf (stderr, "Error: Absolute value cutoff works with one list and one k-mer frequency parameter only. Currently you are using %u lists and %u parameters.\n", nlists, nlist_parameters); + print_help(1); + } + + if (parse_err.data != NULL) { + fprintf(stderr, "%s -> building formula: ERROR: %s\n", pr_programme_name, parse_err.data); + delete_input_sequence (input_seq); + exit(-1); + } + + if (debug > 0) print_parameters (&mp); + + read_and_mask_sequence (input_seq, NULL, &mp, &parse_err, debug); + + if (parse_err.data != NULL) { + fprintf(stderr, "%s -> masking sequence: ERROR: %s\n", pr_programme_name, parse_err.data); + delete_input_sequence (input_seq); + delete_formula_parameters (mp.fp, nlists); + exit(-1); + } + + destroy_pr_append_str_data (&warnings); + destroy_pr_append_str_data (&parse_err); + delete_input_sequence (input_seq); + delete_formula_parameters (mp.fp, nlists); + free(pbuilder.used_lists); + + if (debug > 0) fprintf (stderr, "Done!\n"); + return 0; +} + +void +print_parameters (masker_parameters *mp) +{ + unsigned int i; + fprintf (stderr, "Current masker parameters:\n"); + fprintf (stderr, " masking_direction = %s\n", mp->mdir == both_on_same ? "both" : (mp->mdir == fwd ? "fwd" : "rev")); + fprintf (stderr, " failure_rate = %f\n", mp->failure_rate); + fprintf (stderr, " abs_cutoff = %u\n", mp->abs_cutoff); + fprintf (stderr, " m5p = %u\n", mp->nucl_masked_in_5p_direction); + fprintf (stderr, " m3p = %u\n", mp->nucl_masked_in_3p_direction); + fprintf (stderr, " print_sequence = %d\n", mp->print_sequence); + fprintf (stderr, " do_soft_masking = %d\n", mp->do_soft_masking); + fprintf (stderr, " masking_char = %c\n", mp->masking_char); + fprintf (stderr, " nlists = %u\n", mp->nlists); + fprintf (stderr, " intercept = %f\n", mp->formula_intercept); + for (i = 0; i < mp->nlists; i++) { + fprintf (stderr, " LIST: %u\n", i); + formula_parameters *fp = mp->fp[i]; + if (!fp) continue; + fprintf (stderr, " name = %s\n", fp->list_file_name); + fprintf (stderr, " oligo_length = %u\n", fp->oligo_length); + fprintf (stderr, " words_in_list = %llu\n", fp->words_in_list); + fprintf (stderr, " mm0 %f mm1 %f mm2 %f mm0_2 %f mm1_2 %f mm2_2 %f\n", fp->mm0, fp->mm1, fp->mm2, fp->mm0_2, fp->mm1_2, fp->mm2_2); + } + return; + +} + +static void +print_help (int exit_value) +{ + fprintf (stdout, "Usage: ./primer3_masker [OPTIONS] \n"); + fprintf (stdout, "Options:\n"); + fprintf (stdout, " -h, --help - print this usage screen and exit\n"); + fprintf (stdout, " -l, --list - define a k-mer list as model variable (-l [coefficient mismatches sq]\n"); + fprintf (stdout, " -lf, --lists_file - define a model with a file\n"); + fprintf (stdout, " -lp, --list_prefix - prefix of the k-mer lists to use with default model (default: homo_sapiens)\n"); + fprintf (stdout, " -lh, --kmer_lists_path - path to the kmer list files\n"); + fprintf (stdout, " -p, --probability_cutoff - masking cutoff [0, 1] (default: >=0.1)\n"); + fprintf (stdout, " -a, --absolute_value_cutoff - k-mer count cutoff\n"); + fprintf (stdout, " -m5, --mask_5p - nucleotides to mask in 5' direction\n"); + fprintf (stdout, " -m3, --mask_3p - nucleotides to mask in 3' direction\n"); + fprintf (stdout, " -c, --masking_char - character used for masking (default: N)\n"); + fprintf (stdout, " -s, --soft_mask - use soft masking\n"); + fprintf (stdout, " -d, --masking_direction - a strand to mask (fwd, rev, both) (default: both)\n"); + exit (exit_value); +} diff -Nru primer3-2.3.7/src/primer3_boulder_main.c primer3-2.4.0/src/primer3_boulder_main.c --- primer3-2.3.7/src/primer3_boulder_main.c 2016-02-17 10:11:38.000000000 +0000 +++ primer3-2.4.0/src/primer3_boulder_main.c 2017-11-03 16:29:54.000000000 +0000 @@ -59,6 +59,7 @@ static void print_usage(); static void sig_handler(int); static void read_thermodynamic_parameters(); +static void validate_kmer_lists_path(); /* Other global variables. */ static const char *pr_release; @@ -263,8 +264,10 @@ if ((global_pa->thermodynamic_oligo_alignment == 1) || (global_pa->thermodynamic_template_alignment == 1)) read_thermodynamic_parameters(); - } - + /* Check if masking template flag was given */ + if (global_pa->mask_template == 1) + validate_kmer_lists_path(); + } /* We also need to print out errors here because the loop erases all errors at start. If there are fatal errors, write the proper message and exit */ @@ -325,7 +328,9 @@ &read_boulder_record_res)) { break; /* There were no more boulder records */ } - + if(global_pa->mask_template){ + global_pa->lowercase_masking=global_pa->mask_template; + } /* Check if any thermodynamical alignment flag was given and the path to the parameter files changed - we need to reread them */ if (((global_pa->thermodynamic_oligo_alignment == 1) || @@ -333,6 +338,10 @@ && (thermodynamic_path_changed == 1)) read_thermodynamic_parameters(); + /* Check if template masking flag was given */ + if (global_pa->mask_template == 1) + validate_kmer_lists_path(); + /* Check that we found the thermodynamic parameters in case any thermodynamic flag was set to 1. */ if (((global_pa->thermodynamic_oligo_alignment == 1) || (global_pa->thermodynamic_template_alignment == 1)) @@ -341,7 +350,25 @@ printf("PRIMER_ERROR=thermodynamic approach chosen, but path to thermodynamic parameters not specified\n=\n"); exit(-1); } - + /* Check that we found the kmer lists in case masking flag was set to 1. */ + if (global_pa->mask_template == 1 && kmer_lists_path == NULL){ + printf("PRIMER_ERROR=masking template chosen, but path to kmer lists not specified\n=\n"); + exit(-1); + } + /* Set up some masking parameters */ + /* edited by M. Lepamets */ + if (global_pa->mask_template == 1) { + global_pa->mp.window_size = DEFAULT_WORD_LEN_2; + + if (global_pa->pick_right_primer == 0) global_pa->mp.mdir = fwd; + else if (global_pa->pick_left_primer == 0) global_pa->mp.mdir = rev; + /* Check if masking parameters (k-mer list usage) have changed */ + if (global_pa->masking_parameters_changed == 1) { + delete_formula_parameters (global_pa->mp.fp, global_pa->mp.nlists); + global_pa->mp.fp = create_default_formula_parameters (global_pa->mp.list_prefix, kmer_lists_path, &fatal_parse_err); + global_pa->masking_parameters_changed = 0; + } + } input_found = 1; if ((global_pa->primer_task == generic) && (global_pa->pick_internal_oligo == 1)){ @@ -464,6 +491,12 @@ if ((global_pa->thermodynamic_oligo_alignment == 1) || (global_pa->thermodynamic_template_alignment == 1)) destroy_thal_structures(); + + if(global_pa->mask_template == 1){ + delete_formula_parameters (global_pa->mp.fp, global_pa->mp.nlists); + /* free(global_pa->mp.list_prefix); */ + } + p3_destroy_global_settings(global_pa); global_pa = NULL; destroy_seq_args(sarg); @@ -472,6 +505,7 @@ destroy_pr_append_str_data(&warnings); destroy_dpal_thal_arg_holder(); free(thermodynamic_params_path); + free(kmer_lists_path); /* If it could not read input, then complain and die */ if (0 == input_found) { print_usage(); @@ -533,6 +567,44 @@ thermodynamic_path_changed = 0; } +static void validate_kmer_lists_path(){ + if (kmer_lists_path == NULL) { + +#ifdef OS_WIN + /* in windows check for ..\\kmer_lists */ + struct stat st; + if ((stat("..\\kmer_lists", &st) == 0) && S_ISDIR(st.st_mode)) { + kmer_lists_path = + (char*) malloc(strlen("..\\kmer_lists\\") * sizeof(char) + 1); + if (NULL == kmer_lists_path) exit (-2); /* Out of memory */ + strcpy(kmer_lists_path, "..\\kmer_lists\\"); + } else { + /* no default directory found */ + return; + } +#else + /* in linux, check for ../kmer_lists and /opt/kmer_lists */ + struct stat st; + if ((stat("../kmer_lists", &st) == 0) && S_ISDIR(st.st_mode)) { + kmer_lists_path = + (char*) malloc(strlen("../kmer_lists/") * sizeof(char) + 1); + if (NULL == kmer_lists_path) exit (-2); /* Out of memory */ + strcpy(kmer_lists_path, "../kmer_lists/"); + } else if ((stat("/opt/kmer_lists", &st) == 0) && S_ISDIR(st.st_mode)) { + kmer_lists_path = + (char*) malloc(strlen("/opt/kmer_lists/") * sizeof(char) + 1); + if (NULL == kmer_lists_path) exit (-2); /* Out of memory */ + strcpy(kmer_lists_path, "/opt/kmer_lists/"); + } else { + /* no default directory found */ + return; + } +#endif + + } + +} + /* Print out copyright and a short usage message*/ static void print_usage() @@ -540,14 +612,14 @@ fprintf(stderr, "%s", primer3_copyright()); fprintf(stderr, "\n\nUSAGE: %s %s %s %s %s %s %s %s %s %s\n", pr_program_name, - "[-format_output]", - "[-default_version=1|-default_version=2]", - "[-io_version=4]", - "[-p3_settings_file=]", - "[-echo_settings_file]", - "[-strict_tags]", - "[-output=]", - "[-error=]", + "[--format_output]", + "[--default_version=1|--default_version=2]", + "[--io_version=4]", + "[--p3_settings_file=]", + "[--echo_settings_file]", + "[--strict_tags]", + "[--output=]", + "[--error=]", "[input_file]"); fprintf(stderr, "This is primer3 (%s)\n", pr_release); fprintf(stderr, "Input can also be provided on standard input.\n"); diff -Nru primer3-2.3.7/src/primer3_manual.htm primer3-2.4.0/src/primer3_manual.htm --- primer3-2.3.7/src/primer3_manual.htm 1970-01-01 00:00:00.000000000 +0000 +++ primer3-2.4.0/src/primer3_manual.htm 2017-11-03 16:29:54.000000000 +0000 @@ -0,0 +1,3508 @@ + + + + + Primer3 Release 2.4.0 Manual + + + +
+

PRIMER3 RELEASE 2.4.0 MANUAL

+

CONTENTS

+1. COPYRIGHT AND LICENSE
+2. INTRODUCTION
+3. CITING PRIMER3
+4. FAIR USE OF PRIMER3
+5. CHANGES FROM VERSION 2.2.3
+6. INSTALLATION INSTRUCTIONS - UNIX/LINUX
+7. INSTALLATION INSTRUCTIONS - Mac OSX
+8. INSTALLATION INSTRUCTIONS - WINDOWS
+9. SYSTEM REQUIREMENTS
+10. INVOKING primer3_core
+11. COMMAND LINE ARGUMENTS
+12. INPUT AND OUTPUT CONVENTIONS
+13. AN EXAMPLE
+14. HOW TO MIGRATE TAGS TO IO VERSION 4
+15. "SEQUENCE" INPUT TAGS
+16. "GLOBAL" INPUT TAGS
+17. "PROGRAM" INPUT TAGS
+18. HOW PRIMER3 CALCULATES THE PENALTY VALUE
+19. PRIMER3 SETTINGS FILE FORMAT
+20. OUTPUT TAGS
+21. EXAMPLE OUTPUT
+22. ADVICE FOR PICKING PRIMERS
+23. CAUTIONS
+24. WHAT TO DO IF PRIMER3 CANNOT FIND ANY PRIMERS?
+25. DIFFERENCES FROM EARLIER VERSIONS
+26. EXIT STATUS CODES
+27. PRIMER3 WWW INTERFACES
+28. ACKNOWLEDGMENTS
+

+

1. COPYRIGHT AND LICENSE

+
Copyright (c) 1996,1997,1998,1999,2000,2001,2004,2006,2007,2008,2009,2010
+              2011,2012,2013,2016,2017
+Whitehead Institute for Biomedical Research, Steve Rozen
+(http://purl.com/STEVEROZEN/), Helen Skaletsky, Triinu Koressaar,
+Maido Remm and Andreas Untergasser. All rights reserved.
+    This file is part of the Primer3 suite and libraries.
+    The Primer3 suite and libraries are free software;
+    you can redistribute them and/or modify them 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 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 this software (file gpl-2.0.txt in the source
+    distribution); if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+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.
+
+

2. 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 (template) sequence, and
+
+o possibilities for ectopic priming (amplifying the wrong sequence)
+
+o many 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.
+

3. CITING PRIMER3

+

We request but do not require that use of this software be cited in +publications as
+
+* Untergasser A, Cutcutache I, Koressaar T, Ye J, Faircloth BC, Remm M and Rozen SG.
+Primer3--new capabilities and interfaces.
+Nucleic Acids Res. 2012 Aug 1;40(15):e115.
+
+The paper is available at +http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3424584/
+
+and
+
+* Koressaar T and Remm M.
+Enhancements and modifications of primer design program Primer3.
+Bioinformatics 2007;23(10):1289-91.
+
+The papers is available at
+https://www.ncbi.nlm.nih.gov/pubmed/17379693
+
+Source code available at https://github.com/primer3-org/primer3.

+

4. FAIR USE OF PRIMER3

+

+The development of Primer3 is promoted by a small group of +enthusiastic scientists mainly in their free time.They do not gain +any financial profit with Primer3.
+
+There are two groups of Primer3 users: end users, who run +Primer3 to pick their primers and programmers, who use Primer3 +in their scripts or software packages. We encourage both to use +Primer3. +
+
+If you are an end user, we request but do not +require that use of this software be cited in publications +as listed above under CITING PRIMER3. +
+
+If you are a programmer, you will see that Primer3 is now +distributed under the GNU General Public License, version 2 or +(at your option) any later version of the License (GPL2). +As we understand it, if you include parts of the Primer3 source +code in your source code or link to Primer3 binary libraries in +your executable, you have to release your software also under +GPL2. If you only call Primer3 from your software and interpret +its output, you can use any license you want for your software. +If you modify Primer3 and then release your modified software, +you have to release your modifications in source code under +GPL2 as well. +
+
+We chose GPL2 because we wanted Primer3 to evolve and for the +improvements to find their way back into the main distribution. +If you are programming a new web interface which runs Primer3, +please include in the about page of the tool the sentence +"<your software name> uses Primer3 version ...". +Please consider releasing your software under GPL2 as well, +especially if you do not want to maintain it in the future. +
+
+There is no need to ask us for permission to include Primer3 +in your tools. +

5. CHANGES FROM VERSION 2.2.3

+

+1. The tag PRIMER_THERMODYNAMIC_ALIGNMENT was replaced by two new tags: +

+ - PRIMER_THERMODYNAMIC_OLIGO_ALIGNMENT which governs hairpin +and oligo-oligo interactions. Therefore, whenever it is set to 1 +(the default) thermodynamic alignments will be used for oligo-oligo +interactions and hairpins. +

+ - PRIMER_THERMODYNAMIC_TEMPLATE_ALIGNMENT which governs the +oligo-template interactions and, when set to 1 (default is 0), will +cause Primer3 to use the thermodynamic alignment against templates. +

+The reason for this change is to provide the option of using the +old alignment for oligo-template interactions when the thermodynamic +alignment is too slow or the template is too long (there is a hard +limit THAL_MAX_SEQ=10k on the length of sequences involved in +thermodynamic alignments). +

+2. We changed the following default values:
+
+2.1. Changing default oligo temperature calculations +

+PRIMER_TM_FORMULA=1 (was 0)
+PRIMER_SALT_CORRECTIONS=1 (was 0)
+
+2.2. Making thermodynamic secondary structure calculations for oligos the default:
+
+PRIMER_THERMODYNAMIC_OLIGO_ALIGNMENT=1 (was 0)
+
+2.3. The following need reasonable values to support the changes in 2.1 +and 2.2 above:
+
+PRIMER_SALT_DIVALENT=1.5 (was 0.0)
+PRIMER_DNTP_CONC=0.6 (was 0.0)
+
+2.4. To make old defaults easily accessible, we added a command line +argument, --default_version=1, which directs primer3_core to use the +old defaults. --default_version=2 directs primer3_core to use the new +defaults. The default is --default_version=2.
+
+2.5. IMPORTANT: because PRIMER_THERMODYNAMIC_OLIGO_ALIGNMENT=1, +PRIMER_THERMODYNAMIC_PARAMETERS_PATH must point to the right location. +This tag specifies the path to the directory that contains all the +parameter files used by the thermodynamic approach. In Linux, there +are two *default* locations that are tested if this tag is not +defined: ./primer3_config/ and /opt/primer3_config/. For Windows, +there is only one default location: .\primer3_config\. If the the +parameter files are not in one these locations, be sure to set +PRIMER_THERMODYNAMIC_PARAMETERS_PATH.
+
+2.6. Changed default for
+
+PRIMER_LIB_AMBIGUITY_CODES_CONSENSUS=0 (was 1)
+
+(0 is almost always the the behavior one wants.)
+
+2.7. To get the behavior of -default_version=1 when -default_version=2 +set the following:
+
+PRIMER_TM_FORMULA=0
+PRIMER_SALT_CORRECTIONS=0
+PRIMER_THERMODYNAMIC_OLIGO_ALIGNMENT=0
+PRIMER_THERMODYNAMIC_TEMPLATE_ALIGNMENT=0
+PRIMER_SALT_DIVALENT=0.0
+PRIMER_DNTP_CONC=0.0
+PRIMER_LIB_AMBIGUITY_CODES_CONSENSUS=1
+
+2.8. To get the behavior of -default_version=2 when -default_version=1 +set the following:
+
+PRIMER_TM_FORMULA=1
+PRIMER_SALT_CORRECTIONS=1
+PRIMER_THERMODYNAMIC_OLIGO_ALIGNMENT=1
+PRIMER_THERMODYNAMIC_TEMPLATE_ALIGNMENT=0
+PRIMER_SALT_DIVALENT=1.5
+PRIMER_DNTP_CONC=0.6
+PRIMER_LIB_AMBIGUITY_CODES_CONSENSUS=0
+
+3. We changed the NULL value for SEQUENCE_FORCE_{LEFT,RIGHT}_START_END to +-1000000, and made it an error to select PRIMER_FIRST_BASE_INDEX <= +this value. This is to correct an error when +SEQUENCE_FORCE_{LEFT,RIGHT}_START_END was -1 (value previously used to +indicate a NULL) but PRIMER_FIRST_BASE_INDEX was < 0, which caused the +intended NULL value (-1) to be treated as a constraint on primer +location (a constraint that was not possible to satisfy).
+
+4. We changed the PRIMER_TASK called 'pick_detection_primers' to +'generic' while retaining 'pick_detection_primers' as an alias for +backward compatibility.
+
+5. The code now uses 'end' alignments when assessing template mispriming +using thermodynamic alignments. This is consistent with the approach +taken with the previous alignment algorithm and with checking for +mispriming against repeat libraries.
+
+6. We removed PRIMER_PAIR_MAX_HAIRPIN_TH (which was ignored previously).
+
+7. Primer3 now requires the user to set SEQUENCE_TARGET, not +SEQUENCE_INCLUDED_REGION when PRIMER_TASK=pick_discriminative_primers
+
+8. When PRIMER_TASK=pick_discriminative_primers or +PRIMER_TASK=pick_cloning_primers the value of SEQUENCE_INCLUDED_REGION +is no longer changed to the entire input sequence.
+
+9. The handling of divalent cations when PRIMER_SALT_CORRECTIONS=2 +(not the default and not the recommended value) has been updated. The +rationale is that, when divalent cations are present, the formula by +Owczarzy et al., 2004 (used previously by Primer3) can be improved +upon as described in (Ahsen et al., 2010; Owczarzy et al., +2008). Therefore we have updated the melting temperature calculation +to follow the scheme in Figure 9 of (Owczarzy et al., 2008). Please +find references to these papers below in the manual.
+
+10. We modified the error handling of non-memory related errors that +can occur during the thermodynamic alignment. They are no longer +fatal errors.
+
+11. We removed io_version 3, which was only kept for backward compatibility +with very old versions of Primer3.
+
+12. In addition, several error corrections:
+
+12.1. Corrected a short, fixed-size buffer for the file/path names specified +by the command line arguments -output, -error and for the settings +file.
+
+12.2. Two other corrected errors were in p3_set_gs_primer_self_end and +p3_set_gs_primer_internal_oligo_self_end, which erroneously multiplied +their 'val' arguments by 100.
+
+12.3. Primer3 now detects and handles the situation in which user-supplied +primers (SEQUENCE_PRIMER and SEQUENCE_PRIMER_REVCOMP) have the left +primer to the right of the right primer. Also issue a warning if +user-supplied primers occur in more than one location in the template.

+

6. INSTALLATION INSTRUCTIONS - UNIX/LINUX

+

Unzip and untar the distribution. +DO NOT do this on a PC if you are going to +compile and/or test on a different operation system. +Primer3_core will not compile +and various tests will fail if pc +newlines get inserted into the code and test files. Instead, move the +distribution (primer3-<release>.tar.gz) to Unix/Linux, and then
+
+$ unzip primer3-<release>.tar.gz
+$ tar xvf primer3-<release>.tar
+$ cd primer3-<release>/src
+
+If you do not use gcc, then you will probably have +to modify the makefile to +use your (ANSI) C compiler with the compile +and link flags it understands.
+
+$ make all
+
+# You should have created executables primer3_core, ntdpal,
+# olgotm, and long_seq_tm_test
+
+$ make test
+
+# You should not see 'FAILED' during the tests.
+
+If your perl command is not called perl (for example, if it is +called perl5) you will have to modify the +Makefile in the test/ directory.
+
+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.

+

7. INSTALLATION INSTRUCTIONS - Mac OSX

+

How to install this software
+============================
+
+1. Double click on the .tar.gz file to extract the archive.
+
+2. The binary files are located in the 'bin' [for 'binary'] + folder
+
+3. (Optional) To run the tests, cd to the new directory and + then the test folder
+
+4. (Optional) Within this folder run: + a. 'perl -w p3test.pl'
+
+5. (Optional) You should not see 'FAILED' during the tests.
+
+6. (Optional) *NOTE*: 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).
+
+7. Copy the following files to a location of your choice:
+ a. bin/long_seq_tm_test
+ b. bin/ntdpal
+ c. bin/oligotm
+ d. bin/primer3_core
+
+8. (Optional) Make sure this location is within your $PATH + (see below)
+
+
+Where to put the binary files
+=============================
+
+A good place to put these is within ~/bin/ (this means in +your home folder, within a folder named `bin` [for 'binary']).
+
+You can also just drag the 'bin' folder to a location within +your home directory.
+
+You can certainly also copy the files within 'bin' to +/usr/local/bin (if you are an administrator) or another +similar location.
+
+You may need to adjust the permissions on the binaries if +you get fancy.
+
+
+Add the location to your $PATH
+==============================
+
+This is an optional step, but it will allow you to run +Primer3 in any directory on your machine as your user just +by typing its name (primer3_core).
+
+*** You should be very careful when altering your $PATH as +things can go very wrong. See below for an alternate +method. ***
+
+If you added the binaries to /usr/local/bin, then you do +not need to do this.
+
+If you added the binaries to a local directory (let's say +~/bin/), do the following:
+
+ 1. Edit your ~/.bash_profile. You can edit this on + the command line (Terminal) with:
+
+ nano ~/.bash_profile
+
+ 2. Add the following line if it is not present + (replacing '~/bin' if you used another directory):
+
+ PATH=$PATH:~/bin/
+
+ 3. If a PATH line *is* present, ensure you add a colon + to the end of what is there and then the directory, + so if you have something like:
+
+ a) PATH=$PATH:/usr/local/genome/bin:/sw/bin
+
+ make it look like:
+
+ b) PATH=$PATH:/usr/local/genome/bin:/sw/bin:~/bin
+
+ 4. Quit and restart terminal for the changes to take + effect.
+
+If you don't add the location to your $PATH
+===========================================
+
+Assuming you don't want to modify your $PATH, you can still +run the binaries. Let's assume you put the files in +'~/bin/. You may run primer3_core by doing either of the +following:
+
+ 1. ~/bin/primer3_core < yourInputFile
+ 2. /Users/<your username>/bin/primer3_core < yourInputFile
+
+The first option is just a shortcut to the second.

+

8. INSTALLATION INSTRUCTIONS - WINDOWS

+

How to install this software
+============================
+
+1. Unzip the '.zip' file downloaded from SourceForge.net
+2. You will create a primer3-<release> folder in the location + where the file was unzipped
+3. You may copy the files from the 'bin' directory of the + primer3-<release> folder to a location of your choice. + The exact same files are located within the 'src' folder + so that the tests may be run (windows does not allow + relative paths in shortcuts).
+
+Running the tests
+=================
+You must install a perl distribution to run the +windows tests.
+
+We *strongly* recommend you install ActiveState perl +(http://www.activestate.com/products/activeperl/) +as this was used to test our Primer3 builds, and it is +known to work.
+
+1. Click on 'Start > Run...'
+2. Type 'cmd' into the space provided
+3. Hit enter (or select 'OK')
+4. Navigate to the location of the tests:
+
+ A. if you put it in
+ C:/Documents and Settings/YourName/primer3-<release>/test/,
+ you would type
+ 'cd c:/Documents and Settings/YourName/primer3-<release>/test/'
+
+ B. you can also type 'cd ' (don't forget the space + after cd) and drag the primer3-<release> folder onto the + command-line window from windows explorer, this will + fill in the location for you
+
+5. On the command line, run 'mingw32-make TESTOPTS=--windows' in this + directory. You can also run the tests individually, + for example 'perl p3test.pl --windows'.
+6. You should see [OK] for all of the tests.
+
+Running the software
+====================
+
+To run the program, you must do so from the MS-DOS +command-line. The intricacies of the DOS command line are +beyond the scope of this document. Google for more +information, if needed. Here is a quick summary:
+
+1. Click on 'Start > Run...'
+2. Type 'cmd' into the space provided
+3. Hit enter (or select 'OK')
+4. Navigate to the location of the binary:
+
+ A. if you put it in
+ C:/Documents and Settings/YourName/Temp,
+ you would type
+ 'cd c:/Documents and Settings/YourName/Temp'
+
+ B. you can also type 'cd ' (don't forget the space + after cd) and drag the Primer3 folder onto the + command-line window from windows explorer, this will + fill in the location for you
+
+5. Run the example file by typing:
+
+ primer3_core.exe < example
+
+Other files may be run in a similar fashion. If your input +filename is 'MyData.txt' you can run Primer3 using this +file (in the correct format; see README) with:
+
+ primer3_core.exe < MyData.txt
+
+If your file is not in the folder containing +primer3_core.exe, you could run the program from the +primer3_core folder using:
+
+ primer3_core.exe < c:/someOtherFolder/someOtherFolder/MyData.txt
+
+Finally, if you want to run the program without going to +its folder, assuming primer3_core.exe is in c:/Temp, you +could run:
+
+ c:/Temp/primer3_core.exe < c:/someOtherFolder/someOtherFolder/MyData.txt

+

9. SYSTEM REQUIREMENTS

+

Please see https://github.com/primer3-org/primer3 for up-to-date +information. Primer3 should compile on any system using with an +ANSI C compiler like Linux/Unix, MacOS 10 or MS Windows. The +Makefile will probably need to be modified for compilation with +C compilers other than gcc. +

+

10. INVOKING primer3_core

+

By default, the executable program produced by the Makefile is +called primer3_core. This is the C program that does the heavy +lifting of primer picking. There are also two, more user-friendly, +web interfaces (distributed separately).
+
+The command line for Primer3 is:
+
+primer3_core [ --format_output ] [ --default_version=1|--default_version=2 ] [ --io_version=4 ] [ --p3_settings_file=<file_path> ] [ --echo_settings_file ] [ --strict_tags ] [ --output=<file_path> ] [ --error=<file_path> ] [ input_file ]
+
+A complete list of valid command line arguments can be found in +COMMAND LINE ARGUMENTS below.
+
+If no input file is specified, primer3_core will read its input +from stdin.

+

11. COMMAND LINE ARGUMENTS

+

This section presents the list of arguments that may given in +the command line. Any unique abbreviation of the arguments is allowed +(e.g. -ab instead of -about) and each argument can be preceded by +either one or two dashes. In the case of arguments that receive +values, the '=' can be replaced +by a space.

+

--about

+

With this argument Primer3 generates one line of output +indicating the release number and then exits. This allows scripts to +query Primer3 for its version.

+

--default_version=n

+

n=2 is the default, and directs primer3_core +to use the latest default values (the ones documented here). +n=1 directs primer3_core to use defaults from version +2.2.3 and before. +

+

--format_output

+

This argument indicates that primer3_core should generate +user-oriented (rather than program-oriented) output.

+

--strict_tags

+

This argument indicates that primer3_core should generate +a fatal error if there is any tag in the input that +it does not recognize. This tag also applies to the settings file (see +documentation for the --p3_settings_file argument), +if any, but with limitations: lines that do not begin with +PRIMER_ or P3_FILE_ID are always ignored in the settings file.

+

--p3_settings_file=file_path

+

This argument specifies a settings file, +file_path. Primer3 reads the global +("PRIMER_...") parameters from this file first. +Tags appearing in the settings file override +default Primer3 settings. The values set in +the settings files can be also overridden +by tags in the input file. See +Primer3 file documentation for details on the file +format. WARNING: the --strict_tags flag applies only to +tags beginning with the string "PRIMER_"; lines that do +not begin with the string "PRIMER_" are ignored.

+

--echo_settings_file

+

This argument indicates that primer3_core +should print the input tags specified +in the given settings file. If no settings file is +provided or if the --format_output option is given, +this argument will have no effect.

+

--io_version=n

+

This argument is provided for backward compatibility. +--io_version=4 is the only legal value and the default. + + + + --output=file_path + +This argument specifies the file where the output +should be written. If omitted, stdout is used.

+

--error=file_path

+

This argument specifies the file where the error +messages should be written. If omitted, stderr is used.

+

12. INPUT AND OUTPUT CONVENTIONS

+

By default, Primer3 accepts input in Boulder-IO format, a +pre-XML, pre-RDF, text-based input/output format for +program-to-program data interchange. By default, Primer3 also +produces output in the same format.
+
+When run with the --format_output command-line flag, Primer3 +prints a more user-oriented report for each sequence.
+
+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 '='.
+
+

An example of a legal (TAG,VALUE) pair is
+
+SEQUENCE_ID=my_marker
+
+and an example of a Boulder-IO record is
+
+SEQUENCE_ID=test1
+SEQUENCE_TEMPLATE=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:
+
+SEQUENCE_ID=test1
+SEQUENCE_TEMPLATE=GACTGATCGATGCTAGCTACGATCGATCGATGCATGCTAGCTAGCTAGCTGCTAGC
+=
+SEQUENCE_ID=test2
+SEQUENCE_TEMPLATE=CATCATCATCATCGATGCTAGCATCNNACGTACGANCANATGCATCGATCGT
+=
+SEQUENCE_ID=test3
+SEQUENCE_TEMPLATE=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 output tag PRIMER_ERROR +(see below). Primer3 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.
+
+This document lists the 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 Primer3.
+
+Except for tags with the type "interval list" each tag should only +appear ONCE in any given input record. This restriction is not +systematically checked, and if a tag appears more than once, the +new value silently over-writes the previous value. +

+

13. 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 create 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 'example', and then type the +Unix command 'primer3_core < example'.
+
+Let's look at the input record itself: +
+SEQUENCE_ID=example
+SEQUENCE_TEMPLATE=GTAGTCAGTAGACNATGACNACTGACGATGCAGACNACACACACACACACAGCACACAGGTATTAGTGGGCCATTCGATCCCGACCCAAATCGATAGCTACGATGACG
+SEQUENCE_TARGET=37,21
+PRIMER_TASK=generic
+PRIMER_PICK_LEFT_PRIMER=1
+PRIMER_PICK_INTERNAL_OLIGO=1
+PRIMER_PICK_RIGHT_PRIMER=1
+PRIMER_OPT_SIZE=18
+PRIMER_MIN_SIZE=15
+PRIMER_MAX_SIZE=21
+PRIMER_MAX_NS_ACCEPTED=1
+PRIMER_PRODUCT_SIZE_RANGE=75-100
+P3_FILE_FLAG=1
+SEQUENCE_INTERNAL_EXCLUDED_REGION=37,21
+PRIMER_EXPLAIN_FLAG=1
+=
+
+A breakdown of the reasoning behind each of the TAG=VALUE pairs +is below:
+
+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 P3_FILE_FLAG is non-0 +Because it provides the names of the files that contain lists +of oligos that Primer3 considered.
+
+SEQUENCE_TEMPLATE=GTAGTCAGTAGACNATGACNACTGACGATGCAGACNACACACACACACACAGCACACAGGTATTAGTGGGCCATTCGATCCCGACCCAAATCGATAGCTACGATGACG
+
+The SEQUENCE_TEMPLATE provides the sequence +from which Primer3 will design primers. +Note that there is no newline until the sequence terminates completely.
+
+SEQUENCE_TARGET=37,21
+
+There is a simple sequence repeat in this sequence. +The repeat starts +at base 37, and has a length of 21 bases. We instruct Primer3 to +choose primers that flank the repeat site (because +we want to use the PCR product for +determining the length of the repeat, which is likely to be polymorphic). +
+
+PRIMER_TASK=generic
+
+The PRIMER_TASK tells Primer3 which +type of primers to pick. You can select typical primers for PCR +detection, primers for cloning or for sequencing.
+
+PRIMER_PICK_LEFT_PRIMER=1
+PRIMER_PICK_INTERNAL_OLIGO=1
+PRIMER_PICK_RIGHT_PRIMER=1
+
+We would like to pick a left primer, an internal oligo and a +right primer, so we set these flags to 1 (true). In combination +with the PRIMER_TASK this tags control which primers are +picked.
+
+PRIMER_OPT_SIZE=18
+
+Since our sequence length is rather small (only 108 bases long), +we lower the PRIMER_OPT_SIZE from 20 to 18. It is +more likely that Primer3 will succeed if it aims for smaller +primers.
+
+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_MAX_NS_ACCEPTED=1
+
+Since the sequence is short with a +non-negligible amount of unknown bases (N's) in it, we +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.
+
+P3_FILE_FLAG=1
+
+Because we have a short sequence with many Ns and +with a simple sequence repeat that we must amplify, +Primer3 might fail to +pick and primers. Therefore, we want to get the list of primers it +considered, so that we could manually pick primers +ourselves if Primer3 fails to do so. Setting this flag to 1 +asks Primer3 to output the primers it considered to a +forwar primers and reverse primers to output files.
+
+SEQUENCE_INTERNAL_EXCLUDED_REGION=37,21
+
+Normally CA-repeats make poor hybridization probes (because they +not specific enough). Therefore, we exclude the CA repeat (which +is the TARGET) from consideration for the internal 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.
+
+There were many Boulder-IO input tags that were not +specified, +which is legal. For the tags with default +values, those defaults will be used in the analysis. For the +tags with NO default values (for example SEQUENCE_TARGET), the +functionality requested by the those tags will be absent. +Also, please note +that it is not the case that we need to surround a simple sequence +repeat every time we want to pick primers!

+

14. HOW TO MIGRATE TAGS TO IO VERSION 4

+

With Primer3 release 2.0, many Boulder-IO tags were +modified and new tags were introduced. The new Primer3 tags are +designed with the idea in mind that computer scripts and other +programs use primer3_core. The modifications make it easier for +programs to read and write Primer3 input and output.
+
+Furthermore the Primer3 default values and the use of +PRIMER_WT_TEMPLATE_MISPRIMING and PRIMER_PAIR_WT_TEMPLATE_MISPRIMING +have changed in version 2.0. +
+
+There are three classes of input: "Sequence" input tags describe +a particular input sequence to Primer3, and are reset after +every Boulder record (now starting with SEQUENCE_). "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 (now starting with PRIMER_). "Program" +parameters that deal with the behavior of the Primer3 program +itself (now starting with P3_). See below for a list of the +modified tags.
+
+The handling of PRIMER_TASK changed completely. In the past we +used it to tell Primer3 what task to perform. Now the task is +complemented with PRIMER_PICK_RIGHT_PRIMER, +PRIMER_PICK_INTERNAL_OLIGO and PRIMER_PICK_LEFT_PRIMER, which +specify which primers are to be picked.
+
+These Tags are modified:
+
+The "per sequence" tags:

+
+NEW VERSION                       - OLD VERSION
+----------------------------------------------------------------------------------------
+SEQUENCE_ID                       - PRIMER_SEQUENCE_ID
+SEQUENCE_TEMPLATE                 - SEQUENCE
+SEQUENCE_QUALITY                  - PRIMER_SEQUENCE_QUALITY
+SEQUENCE_INCLUDED_REGION          - INCLUDED_REGION
+SEQUENCE_TARGET                   - TARGET
+SEQUENCE_EXCLUDED_REGION          - EXCLUDED_REGION
+SEQUENCE_START_CODON_POSITION     - PRIMER_START_CODON_POSITION
+SEQUENCE_PRIMER                   - PRIMER_LEFT_INPUT
+SEQUENCE_PRIMER_REVCOMP           - PRIMER_RIGHT_INPUT
+SEQUENCE_INTERNAL_OLIGO           - PRIMER_INTERNAL_OLIGO_INPUT
+SEQUENCE_INTERNAL_EXCLUDED_REGION - PRIMER_INTERNAL_OLIGO_EXCLUDED_REGION
+--------------------------------------------------------------------------------
+The "global" tags:
+NEW VERSION                       - OLD VERSION
+PRIMER_TASK                       - PRIMER_TASK (modified use)
+PRIMER_PICK_RIGHT_PRIMER          - --- did not exist
+PRIMER_PICK_INTERNAL_OLIGO        - PRIMER_PICK_INTERNAL_OLIGO (modified use)
+PRIMER_PICK_LEFT_PRIMER           - --- did not exist
+PRIMER_PAIR_WT_TEMPLATE_MISPRIMING- PRIMER_PAIR_WT_TEMPLATE_MISPRIMING (modified use)
+PRIMER_WT_TEMPLATE_MISPRIMING     - PRIMER_WT_TEMPLATE_MISPRIMING (modified use)
+PRIMER_MAX_LIBRARY_MISPRIMING     - PRIMER_MAX_MISPRIMING
+PRIMER_INTERNAL_MAX_LIBRARY_MISHYB- PRIMER_INTERNAL_OLIGO_MAX_MISHYB
+PRIMER_PAIR_MAX_LIBRARY_MISPRIMING- PRIMER_PAIR_MAX_MISPRIMING
+PRIMER_WT_LIBRARY_MISPRIMING      - PRIMER_WT_REP_SIM
+PRIMER_INTERNAL_WT_LIBRARY_MISHYB - PRIMER_INTERNAL_WT_REP_SIM
+PRIMER_PAIR_WT_LIBRARY_MISPRIMING - PRIMER_PAIR_WT_REP_SIM
+PRIMER_MAX_NS_ACCEPTED            - PRIMER_NUM_NS_ACCEPTED
+PRIMER_PAIR_MAX_DIFF_TM           - PRIMER_MAX_DIFF_TM
+PRIMER_SALT_MONOVALENT            - PRIMER_SALT_CONC
+PRIMER_SALT_DIVALENT              - PRIMER_DIVALENT_CONC
+PRIMER_TM_FORMULA                 - PRIMER_TM_SANTALUCIA
+PRIMER_MAX_SELF_ANY               - PRIMER_SELF_ANY
+PRIMER_MAX_SELF_END               - PRIMER_SELF_END
+PRIMER_WT_SELF_ANY                - PRIMER_WT_COMPL_ANY
+PRIMER_WT_SELF_END                - PRIMER_WT_COMPL_END
+PRIMER_PAIR_MAX_COMPL_ANY         - PRIMER_PAIR_ANY
+PRIMER_PAIR_MAX_COMPL_END         - PRIMER_PAIR_END
+P3_FILE_FLAG                      - PRIMER_FILE_FLAG
+P3_COMMENT                        - PRIMER_COMMENT
+PRIMER_INTERNAL_SALT_MONOVALENT   - PRIMER_INTERNAL_OLIGO_SALT_CONC
+PRIMER_INTERNAL_SALT_DIVALENT     - PRIMER_INTERNAL_OLIGO_DIVALENT_CONC
+PRIMER_INTERNAL_WT_SELF_ANY       - PRIMER_IO_WT_COMPL_ANY
+PRIMER_INTERNAL_WT_SELF_END       - PRIMER_IO_WT_COMPL_END
+PRIMER_INTERNAL_MAX_NS_ACCEPTED   - PRIMER_INTERNAL_OLIGO_NUM_NS
+PRIMER_INTERNAL_MAX_SELF_ANY      - PRIMER_INTERNAL_OLIGO_SELF_ANY
+PRIMER_INTERNAL_MAX_SELF_END      - PRIMER_INTERNAL_OLIGO_SELF_END
+The following tags INTERNAL_OLIGO is replaced by INTERNAL:
+PRIMER_INTERNAL_OPT_SIZE          - PRIMER_INTERNAL_OLIGO_OPT_SIZE
+PRIMER_INTERNAL_MIN_SIZE          - PRIMER_INTERNAL_OLIGO_MIN_SIZE
+PRIMER_INTERNAL_MAX_SIZE          - PRIMER_INTERNAL_OLIGO_MAX_SIZE
+PRIMER_INTERNAL_OPT_TM            - PRIMER_INTERNAL_OLIGO_OPT_TM
+PRIMER_INTERNAL_MIN_TM            - PRIMER_INTERNAL_OLIGO_MIN_TM
+PRIMER_INTERNAL_MAX_TM            - PRIMER_INTERNAL_OLIGO_MAX_TM
+PRIMER_INTERNAL_MIN_GC            - PRIMER_INTERNAL_OLIGO_MIN_GC
+PRIMER_INTERNAL_OPT_GC_PERCENT    - PRIMER_INTERNAL_OLIGO_OPT_GC_PERCENT
+PRIMER_INTERNAL_MAX_GC            - PRIMER_INTERNAL_OLIGO_MAX_GC
+PRIMER_INTERNAL_DNTP_CONC         - PRIMER_INTERNAL_OLIGO_DNTP_CONC
+PRIMER_INTERNAL_DNA_CONC          - PRIMER_INTERNAL_OLIGO_DNA_CONC
+PRIMER_INTERNAL_MAX_POLY_X        - PRIMER_INTERNAL_OLIGO_MAX_POLY_X
+PRIMER_INTERNAL_MISHYB_LIBRARY    - PRIMER_INTERNAL_OLIGO_MISHYB_LIBRARY
+PRIMER_INTERNAL_MIN_QUALITY       - PRIMER_INTERNAL_OLIGO_MIN_QUALITY
+The following tags IO is replaced by INTERNAL:
+PRIMER_INTERNAL_WT_TM_GT          - PRIMER_IO_WT_TM_GT
+PRIMER_INTERNAL_WT_TM_LT          - PRIMER_IO_WT_TM_LT
+PRIMER_INTERNAL_WT_SIZE_LT        - PRIMER_IO_WT_SIZE_LT
+PRIMER_INTERNAL_WT_SIZE_GT        - PRIMER_IO_WT_SIZE_GT
+PRIMER_INTERNAL_WT_GC_PERCENT_LT  - PRIMER_IO_WT_GC_PERCENT_LT
+PRIMER_INTERNAL_WT_GC_PERCENT_GT  - PRIMER_IO_WT_GC_PERCENT_GT
+PRIMER_INTERNAL_WT_NUM_NS         - PRIMER_IO_WT_NUM_NS
+PRIMER_INTERNAL_WT_SEQ_QUAL       - PRIMER_IO_WT_SEQ_QUAL
+
+

--------------------------------------------------------------------------------
+OUTPUT TAGS:
+
+There are three big changes on the output:
+- INTERNAL_OLIGO is now replaced by INTERNAL.
+- The first version is numbered 0.
+- The "PRODUCT" tags are renamed
+- The errors are modified
+- Errors caused by a specific primer are given as PRIMER_LEFT_4_PROBLEMS
+
+Now all primer related output follows the rule: +PRIMER_{LEFT,RIGHT,INTERNAL,PAIR}_<j>_<tag_name>. +where <j> is an integer from 0 to n, where n is at most the +value of PRIMER_NUM_RETURN - 1.
+
+This allows easy scripting by using the underscores _ to split +the name. The first part is PRIMER, the second the type of oligo +or pair parameters, the third is always a number, starting at +0 and the rest is used by the tags.
+
+That affects also (shown for output number 4):

+
+NEW VERSION                             - OLD VERSION
+------------------------------------------------------------------------------------------------------
+PRIMER_PAIR_4_PENALTY                   - PRIMER_PAIR_PENALTY_4 (number moved behind PAIR)
+PRIMER_PAIR_4_PRODUCT_SIZE              - PRIMER_PRODUCT_SIZE_4 (grouped with PAIR)
+PRIMER_PAIR_4_PRODUCT_TM                - PRIMER_PRODUCT_TM_4 (grouped with PAIR)
+PRIMER_PAIR_4_PRODUCT_TM_OLIGO_TM_DIFF  - PRIMER_PRODUCT_TM_OLIGO_TM_DIFF_4 (grouped with PAIR)
+PRIMER_INTERNAL_EXPLAIN                 - PRIMER_INTERNAL_OLIGO_EXPLAIN
+PRIMER_LEFT_4_LIBRARY_MISPRIMING                   - PRIMER_LEFT_4_MISPRIMING_SCORE
+PRIMER_INTERNAL_4_LIBRARY_MISHYB                   - PRIMER_INTERNAL_OLIGO_4_MISHYB_SCORE
+PRIMER_RIGHT_4_LIBRARY_MISPRIMING                  - PRIMER_RIGHT_4_MISPRIMING_SCORE
+PRIMER_PAIR_4_LIBRARY_MISPRIMING                   - PRIMER_PAIR_4_MISPRIMING_SCORE
+
+

15. "SEQUENCE" INPUT TAGS

+

"Sequence" input tags start with SEQUENCE_... and describe a +particular input sequence to Primer3. They are reset after every +Boulder record. Errors in "Sequence" input tags invalidate the +current record, but Primer3 will continue to process additional +records.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SEQUENCE_EXCLUDED_REGIONSEQUENCE_INCLUDED_REGIONSEQUENCE_PRIMER_REVCOMP
SEQUENCE_FORCE_LEFT_ENDSEQUENCE_INTERNAL_EXCLUDED_REGIONSEQUENCE_QUALITY
SEQUENCE_FORCE_LEFT_STARTSEQUENCE_INTERNAL_OLIGOSEQUENCE_START_CODON_POSITION
SEQUENCE_FORCE_RIGHT_ENDSEQUENCE_OVERLAP_JUNCTION_LISTSEQUENCE_TARGET
SEQUENCE_FORCE_RIGHT_STARTSEQUENCE_PRIMERSEQUENCE_TEMPLATE
SEQUENCE_IDSEQUENCE_PRIMER_PAIR_OK_REGION_LIST 
+

SEQUENCE_ID (string; default empty)

+

Short description of the sequence. It is used as 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 P3_FILE_FLAG is non-zero.

+

SEQUENCE_TEMPLATE (nucleotide sequence; default empty)

+

The sequence from which to choose primers. The sequence +must be presented 5' -> 3' (i.e, in the normal way). +In general, the bases may be upper or lower case, but +lower case letters are treated +specially if PRIMER_LOWERCASE_MASKING is set. +The entire sequence MUST be all on a single line. +(In other words, the sequence cannot span several lines.) +

+

SEQUENCE_INCLUDED_REGION (interval list; default empty)

+

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.

+

SEQUENCE_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, or an exon for resequencing. 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.

+See also PRIMER_INSIDE_PENALTY, PRIMER_OUTSIDE_PENALTY. +Has a different meaning when PRIMER_TASK=pick_sequencing_primers. +See PRIMER_TASK for more information. +

SEQUENCE_EXCLUDED_REGION (interval list; default empty)

+

Primers and 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.

+

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

+

+This tag allows detailed specification of possible +locations of left and right primers in primer pairs. +

+The associated value must be a semicolon-separated list of

+
+<left_start>,<left_length>,<right_start>,<right_length>
+
+

quadruples. +The left primer must be in the region specified by +<left_start>,<left_length> and +the right primer must be in the region specified by +<right_start>,<right_length>. +<left_start> and <left_length> specify the location of the left primer in terms of the index of +the first base in the region and the length of the region. +<right_start> and <right_length> specify the location of the right primer in analogous fashion. +As seen in the example below, if no integers are specified for a region then the location of the +corresponding primer is not constrained. +

+Example:

+
+SEQUENCE_PRIMER_PAIR_OK_REGION_LIST=100,50,300,50 ; 900,60,, ; ,,930,100
+
+

+
+Specifies that there are three choices: +

+Left primer in the 50 bp region starting at position 100 AND right primer +in the 50 bp region starting at position 300 +

+OR +

+Left primer in the 60 bp region starting at position 900 (and right primer anywhere) +

+OR +

+Right primer in the 100 bp region starting at position 930 (and left +primer anywhere) +

+

SEQUENCE_OVERLAP_JUNCTION_LIST (space separated integers; default empty)

+

If this list is not empty, then +the forward OR the reverse primer must overlap one of +these junction points by at least PRIMER_MIN_3_PRIME_OVERLAP_OF_JUNCTION +nucleotides at the 3' end and at least PRIMER_MIN_5_PRIME_OVERLAP_OF_JUNCTION +nucleotides at the 5' end. +

+In more detail: The junction associated with a given position is the space immediately to the right +of that position in the template sequence on the strand given as input. +

+For example:

+
+
+SEQUENCE_OVERLAP_JUNCTION_LIST=20
+# 1-based indexes
+PRIMER_MIN_3_PRIME_OVERLAP_OF_JUNCTION=4
+template: atcataggccatgcctgagc^gctacgact
+          ok           ...gagc^gcta-3'  (left primer)
+          not ok       ...gagc^gct-3'   (left primer)
+          ok           3'-ctcg^cgat...  (right pimer)
+          not ok        3'-tcg^cgat...  (right primer)
+PRIMER_MIN_5_PRIME_OVERLAP_OF_JUNCTION=5
+         ok           5'-tgagc^gccg...  (left primer)
+         not ok        5'-gagc^gccg...  (left primer)
+         ok           ...tgagc^gctac-5' (right primer)
+         not ok       ...tgagc^gcta-5'  (right primer)
+
+
+

SEQUENCE_INTERNAL_EXCLUDED_REGION (interval list; default empty)

+

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.

+

SEQUENCE_PRIMER (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_TEMPLATE.

+

SEQUENCE_INTERNAL_OLIGO (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_TEMPLATE.

+

SEQUENCE_PRIMER_REVCOMP (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_TEMPLATE.

+

SEQUENCE_START_CODON_POSITION (int; default -2000000)

+

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.

+

SEQUENCE_QUALITY (space separated integers; default empty)

+

A list of space separated integers. There must be exactly +one integer for each base in SEQUENCE_TEMPLATE if this argument is +non-empty. For example, for the sequence ANNTTCA... +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).

+

SEQUENCE_FORCE_LEFT_START (int; default -1000000)

+

Forces the 5' end of the left primer to be at the indicated +position. Primers are also picked if they violate certain +constraints. The default value indicates that the start of the left primer +can be anywhere.

+

SEQUENCE_FORCE_LEFT_END (int; default -1000000)

+

Forces the 3' end of the left primer to be at the indicated +position. Primers are also picked if they violate certain +constraints. The default value indicates that the end of the left primer +can be anywhere.

+

SEQUENCE_FORCE_RIGHT_START (int; default -1000000)

+

Forces the 5' end of the right primer to be at the indicated +position. Primers are also picked if they violate certain +constraints. The default value indicates that the start of the right primer +can be anywhere.

+

SEQUENCE_FORCE_RIGHT_END (int; default -1000000)

+

Forces the 3' end of the right primer to be at the indicated +position. Primers are also picked if they violate certain +constraints. The default value indicates that the end of the right primer +can be anywhere.

+

16. "GLOBAL" INPUT TAGS

+

"Global" input tags start with PRIMER_... and describe the +general parameters that Primer3 should use in its searches. +The values of these tags persist between input Boulder +records until or unless they are explicitly reset. Errors +in "Global" input tags are fatal because they invalidate +the basic conditions under which primers are being picked.
+
+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. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PRIMER_DNA_CONCPRIMER_MASK_FAILURE_RATEPRIMER_PAIR_WT_LIBRARY_MISPRIMING
PRIMER_DNTP_CONCPRIMER_MASK_KMERLIST_PATHPRIMER_PAIR_WT_PRODUCT_SIZE_GT
PRIMER_EXPLAIN_FLAGPRIMER_MASK_KMERLIST_PREFIXPRIMER_PAIR_WT_PRODUCT_SIZE_LT
PRIMER_FIRST_BASE_INDEXPRIMER_MASK_TEMPLATEPRIMER_PAIR_WT_PRODUCT_TM_GT
PRIMER_GC_CLAMPPRIMER_MAX_END_GCPRIMER_PAIR_WT_PRODUCT_TM_LT
PRIMER_INSIDE_PENALTYPRIMER_MAX_END_STABILITYPRIMER_PAIR_WT_PR_PENALTY
PRIMER_INTERNAL_DNA_CONCPRIMER_MAX_GCPRIMER_PAIR_WT_TEMPLATE_MISPRIMING
PRIMER_INTERNAL_DNTP_CONCPRIMER_MAX_HAIRPIN_THPRIMER_PAIR_WT_TEMPLATE_MISPRIMING_TH
PRIMER_INTERNAL_MAX_GCPRIMER_MAX_LIBRARY_MISPRIMINGPRIMER_PICK_ANYWAY
PRIMER_INTERNAL_MAX_HAIRPIN_THPRIMER_MAX_NS_ACCEPTEDPRIMER_PICK_INTERNAL_OLIGO
PRIMER_INTERNAL_MAX_LIBRARY_MISHYBPRIMER_MAX_POLY_XPRIMER_PICK_LEFT_PRIMER
PRIMER_INTERNAL_MAX_NS_ACCEPTEDPRIMER_MAX_SELF_ANYPRIMER_PICK_RIGHT_PRIMER
PRIMER_INTERNAL_MAX_POLY_XPRIMER_MAX_SELF_ANY_THPRIMER_PRODUCT_MAX_TM
PRIMER_INTERNAL_MAX_SELF_ANYPRIMER_MAX_SELF_ENDPRIMER_PRODUCT_MIN_TM
PRIMER_INTERNAL_MAX_SELF_ANY_THPRIMER_MAX_SELF_END_THPRIMER_PRODUCT_OPT_SIZE
PRIMER_INTERNAL_MAX_SELF_ENDPRIMER_MAX_SIZEPRIMER_PRODUCT_OPT_TM
PRIMER_INTERNAL_MAX_SELF_END_THPRIMER_MAX_TEMPLATE_MISPRIMINGPRIMER_PRODUCT_SIZE_RANGE
PRIMER_INTERNAL_MAX_SIZEPRIMER_MAX_TEMPLATE_MISPRIMING_THPRIMER_QUALITY_RANGE_MAX
PRIMER_INTERNAL_MAX_TMPRIMER_MAX_TMPRIMER_QUALITY_RANGE_MIN
PRIMER_INTERNAL_MIN_GCPRIMER_MIN_3_PRIME_OVERLAP_OF_JUNCTIONPRIMER_SALT_CORRECTIONS
PRIMER_INTERNAL_MIN_QUALITYPRIMER_MIN_5_PRIME_OVERLAP_OF_JUNCTIONPRIMER_SALT_DIVALENT
PRIMER_INTERNAL_MIN_SIZEPRIMER_MIN_END_QUALITYPRIMER_SALT_MONOVALENT
PRIMER_INTERNAL_MIN_TMPRIMER_MIN_GCPRIMER_SEQUENCING_ACCURACY
PRIMER_INTERNAL_MISHYB_LIBRARYPRIMER_MIN_LEFT_THREE_PRIME_DISTANCEPRIMER_SEQUENCING_INTERVAL
PRIMER_INTERNAL_MUST_MATCH_FIVE_PRIMEPRIMER_MIN_QUALITYPRIMER_SEQUENCING_LEAD
PRIMER_INTERNAL_MUST_MATCH_THREE_PRIMEPRIMER_MIN_RIGHT_THREE_PRIME_DISTANCEPRIMER_SEQUENCING_SPACING
PRIMER_INTERNAL_OPT_GC_PERCENTPRIMER_MIN_SIZEPRIMER_TASK
PRIMER_INTERNAL_OPT_SIZEPRIMER_MIN_THREE_PRIME_DISTANCEPRIMER_THERMODYNAMIC_OLIGO_ALIGNMENT
PRIMER_INTERNAL_OPT_TMPRIMER_MIN_TMPRIMER_THERMODYNAMIC_PARAMETERS_PATH
PRIMER_INTERNAL_SALT_DIVALENTPRIMER_MISPRIMING_LIBRARYPRIMER_THERMODYNAMIC_TEMPLATE_ALIGNMENT
PRIMER_INTERNAL_SALT_MONOVALENTPRIMER_MUST_MATCH_FIVE_PRIMEPRIMER_TM_FORMULA
PRIMER_INTERNAL_WT_END_QUALPRIMER_MUST_MATCH_THREE_PRIMEPRIMER_WT_END_QUAL
PRIMER_INTERNAL_WT_GC_PERCENT_GTPRIMER_NUM_RETURNPRIMER_WT_END_STABILITY
PRIMER_INTERNAL_WT_GC_PERCENT_LTPRIMER_OPT_GC_PERCENTPRIMER_WT_GC_PERCENT_GT
PRIMER_INTERNAL_WT_HAIRPIN_THPRIMER_OPT_SIZEPRIMER_WT_GC_PERCENT_LT
PRIMER_INTERNAL_WT_LIBRARY_MISHYBPRIMER_OPT_TMPRIMER_WT_HAIRPIN_TH
PRIMER_INTERNAL_WT_NUM_NSPRIMER_OUTSIDE_PENALTYPRIMER_WT_LIBRARY_MISPRIMING
PRIMER_INTERNAL_WT_SELF_ANYPRIMER_PAIR_MAX_COMPL_ANYPRIMER_WT_MASK_FAILURE_RATE
PRIMER_INTERNAL_WT_SELF_ANY_THPRIMER_PAIR_MAX_COMPL_ANY_THPRIMER_WT_NUM_NS
PRIMER_INTERNAL_WT_SELF_ENDPRIMER_PAIR_MAX_COMPL_ENDPRIMER_WT_POS_PENALTY
PRIMER_INTERNAL_WT_SELF_END_THPRIMER_PAIR_MAX_COMPL_END_THPRIMER_WT_SELF_ANY
PRIMER_INTERNAL_WT_SEQ_QUALPRIMER_PAIR_MAX_DIFF_TMPRIMER_WT_SELF_ANY_TH
PRIMER_INTERNAL_WT_SIZE_GTPRIMER_PAIR_MAX_LIBRARY_MISPRIMINGPRIMER_WT_SELF_END
PRIMER_INTERNAL_WT_SIZE_LTPRIMER_PAIR_MAX_TEMPLATE_MISPRIMINGPRIMER_WT_SELF_END_TH
PRIMER_INTERNAL_WT_TM_GTPRIMER_PAIR_MAX_TEMPLATE_MISPRIMING_THPRIMER_WT_SEQ_QUAL
PRIMER_INTERNAL_WT_TM_LTPRIMER_PAIR_WT_COMPL_ANYPRIMER_WT_SIZE_GT
PRIMER_LIBERAL_BASEPRIMER_PAIR_WT_COMPL_ANY_THPRIMER_WT_SIZE_LT
PRIMER_LIB_AMBIGUITY_CODES_CONSENSUSPRIMER_PAIR_WT_COMPL_ENDPRIMER_WT_TEMPLATE_MISPRIMING
PRIMER_LOWERCASE_MASKINGPRIMER_PAIR_WT_COMPL_END_THPRIMER_WT_TEMPLATE_MISPRIMING_TH
PRIMER_MASK_3P_DIRECTIONPRIMER_PAIR_WT_DIFF_TMPRIMER_WT_TM_GT
PRIMER_MASK_5P_DIRECTIONPRIMER_PAIR_WT_IO_PENALTYPRIMER_WT_TM_LT
+

PRIMER_TASK (string; default generic)

+

This tag tells Primer3 what task to perform. +Legal values are:
+
+ generic
+
+ Design a primer pair (the classic Primer3 task) if + the PRIMER_PICK_LEFT_PRIMER=1, and + PRIMER_PICK_RIGHT_PRIMER=1. In addition, pick + an internal hybridization oligo if + PRIMER_PICK_INTERNAL_OLIGO=1. +

+ NOTE: If PRIMER_PICK_LEFT_PRIMER=1, + PRIMER_PICK_RIGHT_PRIMER=0 + and + PRIMER_PICK_INTERNAL_OLIGO=1, + then behaves similarly to + PRIMER_TASK=pick_primer_list. +
+
+ pick_detection_primers
+
+ Deprecated alias for PRIMER_TASK=generic
+
+ check_primers
+
+ Primer3 only checks the primers + provided in SEQUENCE_PRIMER, SEQUENCE_INTERNAL_OLIGO and + SEQUENCE_PRIMER_REVCOMP. It is the only task that does not + require a sequence. However, if SEQUENCE_TEMPLATE is provided, it is used. +
+
+ pick_primer_list
+
+ Pick all primers in SEQUENCE_TEMPLATE (possibly + limited by SEQUENCE_INCLUDED_REGION, + SEQUENCE_EXCLUDED_REGION, + SEQUENCE_PRIMER_PAIR_OK_REGION_LIST, etc.). + Returns the primers sorted by quality starting with the + best primers. If PRIMER_PICK_LEFT_PRIMER and + PRIMER_PICK_RIGHT_PRIMER is selected Primer3 does not to pick + primer pairs but generates independent lists of left primers, right primers, + and, if requested, internal oligos.
+
+ pick_sequencing_primers
+
+ Pick primers suited to sequence a region. SEQUENCE_TARGET can be + used to indicate several targets. The position of each primer is + calculated for optimal sequencing results.
+
+ pick_cloning_primers
+
+ Pick primers suited to clone a gene were the start nucleotide and + the end nucleotide of the PCR fragment must be fixed, for example + to clone an ORF. SEQUENCE_INCLUDED_REGION must be used to + indicate the first and the last nucleotide. Due to these + limitations Primer3 can only vary the length of the primers. Set + PRIMER_PICK_ANYWAY=1 to obtain primers even if they violate + specific constraints.
+
+ pick_discriminative_primers
+
+ Pick primers suited to select primers which bind with their end at + a specific position. This can be used to force the end of a primer + to a polymorphic site, with the goal of discriminating between + sequence variants. SEQUENCE_TARGET must be used to + provide a single target indicating the last nucleotide of the left + (nucleotide before the first nucleotide of the target) and the right + primer (nucleotide following the target). The primers border the + SEQUENCE_TARGET. Due to these limitations + Primer3 can only vary the length of the primers. Set + PRIMER_PICK_ANYWAY=1 to obtain + primers even if they violate specific constraints.
+
+ pick_pcr_primers
+
+ Deprecated shortcut for the following settings:
+ PRIMER_TASK=generic
+ PRIMER_PICK_LEFT_PRIMER=1
+ PRIMER_PICK_INTERNAL_OLIGO=0
+ PRIMER_PICK_RIGHT_PRIMER=1
+
+ WARNING: this task changes the values of PRIMER_PICK_LEFT_PRIMER, + PRIMER_PICK_INTERNAL_OLIGO, and PRIMER_PICK_RIGHT_PRIMER + in a way that is not obvious by looking at the input.
+
+ pick_pcr_primers_and_hyb_probe
+
+ Deprecated shortcut for the following settings:
+ PRIMER_TASK=generic
+ PRIMER_PICK_LEFT_PRIMER=1
+ PRIMER_PICK_INTERNAL_OLIGO=1
+ PRIMER_PICK_RIGHT_PRIMER=1
+
+ WARNING: this task changes the values of PRIMER_PICK_LEFT_PRIMER, + PRIMER_PICK_INTERNAL_OLIGO, and PRIMER_PICK_RIGHT_PRIMER + in a way that is not obvious by looking at the input.
+
+ pick_left_only
+
+ Deprecated shortcut for the following settings:
+ PRIMER_TASK=generic
+ PRIMER_PICK_LEFT_PRIMER=1
+ PRIMER_PICK_INTERNAL_OLIGO=0
+ PRIMER_PICK_RIGHT_PRIMER=0
+
+ WARNING: this task changes the values of PRIMER_PICK_LEFT_PRIMER, + PRIMER_PICK_INTERNAL_OLIGO, and PRIMER_PICK_RIGHT_PRIMER + in a way that is not obvious by looking at the input.
+
+ pick_right_only
+
+ Deprecated shortcut for the following settings:
+ PRIMER_TASK=generic
+ PRIMER_PICK_LEFT_PRIMER=0
+ PRIMER_PICK_INTERNAL_OLIGO=0
+ PRIMER_PICK_RIGHT_PRIMER=1
+
+ WARNING: this task changes the values of PRIMER_PICK_LEFT_PRIMER, + PRIMER_PICK_INTERNAL_OLIGO, and PRIMER_PICK_RIGHT_PRIMER + in a way that is not obvious by looking at the input.
+
+ pick_hyb_probe_only
+
+ Deprecated shortcut for the following settings:
+ PRIMER_TASK=generic
+ PRIMER_PICK_LEFT_PRIMER=0
+ PRIMER_PICK_INTERNAL_OLIGO=1
+ PRIMER_PICK_RIGHT_PRIMER=0
+
+ WARNING: this task changes the values of PRIMER_PICK_LEFT_PRIMER, + PRIMER_PICK_INTERNAL_OLIGO, and PRIMER_PICK_RIGHT_PRIMER + in a way that is not obvious by looking at the input.
+

+

PRIMER_PICK_LEFT_PRIMER (boolean; default 1)

+

If the associated value = 1 (non-0), then Primer3 will attempt to +pick left primers.

+

PRIMER_PICK_INTERNAL_OLIGO (boolean; default 0)

+

If the associated value = 1 (non-0), then Primer3 will attempt to +pick an internal oligo (hybridization probe to detect the PCR +product).

+

PRIMER_PICK_RIGHT_PRIMER (boolean; default 1)

+

If the associated value = 1 (non-0), then Primer3 will attempt to +pick a right primer.

+

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_MIN_3_PRIME_OVERLAP_OF_JUNCTION (int; default 4)

+

The 3' end of the left OR the right primer must +overlap one of the junctions in SEQUENCE_OVERLAP_JUNCTION_LIST by this amount. +See details in SEQUENCE_OVERLAP_JUNCTION_LIST. +

+

PRIMER_MIN_5_PRIME_OVERLAP_OF_JUNCTION (int; default 7)

+

The 5' end of the left OR the right primer must +overlap one of the junctions in SEQUENCE_OVERLAP_JUNCTION_LIST by this amount. +See details in SEQUENCE_OVERLAP_JUNCTION_LIST. +

+

PRIMER_MUST_MATCH_FIVE_PRIME (ambiguous nucleotide sequence; default empty)

+

Discards all primers which do not match this match sequence at the 5' end. +(New in v. 2.3.6, added by A. Untergasser.)
+
+The match sequence must be 5 nucletides long and can contain the following letters:
+

+    N   Any nucleotide
+    A   Adenine
+    G   Guanine
+    C   Cytosine
+    T   Thymine
+    R   Purine (A or G)
+    Y   Pyrimidine (C or T)
+    W   Weak (A or T)
+    S   Strong (G or C)
+    M   Amino (A or C)
+    K   Keto (G or T)
+    B   Not A (G or C or T)
+    H   Not G (A or C or T)
+    D   Not C (A or G or T)
+    V   Not T (A or G or C)
+
+Any primer which will not match the entire match sequence at th 5' end will +be discarded and not evaluated. Setting strict requirements here will result +in low quality primers due to the high numbers of primers discarded at this +step.
+
+Example 1:
+PRIMER_MUST_MATCH_FIVE_PRIME=tgnnn

+Could result in the following matching:
+
+    tgcatgattggatacgtttga
+    |||||
+    tgnnn
+ -> This primer would be used.
+    attcgattctccccggtatc
+      |||
+    tgnnn
+ -> This primer would be discarded.
+


+Example 2:
+PRIMER_MUST_MATCH_FIVE_PRIME=hnnnn

+Could result in the following matching:
+
+    tgcatgattggatacgtttga
+    |||||
+    hnnnn
+ -> This primer would be used.
+    ggctgatgaaggaaagcaag
+     ||||
+    hnnnn
+ -> This primer would be discarded.
+


+This parameter would force all primers selected by Primer3 to not have guanosine +at the 5' end of any primer which could be useful to avoid quenching of +flourochromes. +

+

PRIMER_INTERNAL_MUST_MATCH_FIVE_PRIME (ambiguous nucleotide sequence; default empty)

+

Equivalent parameter of PRIMER_MUST_MATCH_FIVE_PRIME for the internal oligo.

+

PRIMER_MUST_MATCH_THREE_PRIME (ambiguous nucleotide sequence; default empty)

+

Discards all primers which do not match this match sequence at the 3' end. Similar +parameter to PRIMER_MUST_MATCH_FIVE_PRIME, but limits the 3' end. +(New in v. 2.3.6, added by A. Untergasser.)
+
+The match sequence must be 5 nucletides long and can contain the following letters:
+

+    N   Any nucleotide
+    A   Adenine
+    G   Guanine
+    C   Cytosine
+    T   Thymine
+    R   Purine (A or G)
+    Y   Pyrimidine (C or T)
+    W   Weak (A or T)
+    S   Strong (G or C)
+    M   Amino (A or C)
+    K   Keto (G or T)
+    B   Not A (G or C or T)
+    H   Not G (A or C or T)
+    D   Not C (A or G or T)
+    V   Not T (A or G or C)
+
+Any primer which will not match the entire match sequence at th 3' end will +be discarded and not evaluated. Setting strict requirements here will result +in low quality primers due to the high numbers of primers discarded at this +step.
+
+Example 1:
+PRIMER_MUST_MATCH_FIVE_PRIME=nnnga

+Could result in the following matching:
+
+    tgcatgattggatacgtttga
+                    |||||
+                    nnnga
+ -> This primer would be used.
+    attcgattctccccggtatc
+                   |||
+                   nnnga
+ -> This primer would be discarded.
+
+

+

PRIMER_INTERNAL_MUST_MATCH_THREE_PRIME (ambiguous nucleotide sequence; default empty)

+

Equivalent parameter of PRIMER_MUST_MATCH_THREE_PRIME for the internal oligo.

+

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 product-size 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 pairs in subsequent ranges. +Only if there are an insufficient number of primers in the first +range will Primer3 return primers in a subsequent range.
+
+For those with primarily a computational background, +the PCR product size is the size (in base pairs) +of the DNA fragment that would be produced by the +PCR reaction on the given sequence template. This +would, of course, include the primers themselves.

+

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.
+A non-0 value for this parameter will likely increase calculation time, so set this only if +a product size near a specific value is truly important. +

+

PRIMER_PAIR_WT_PRODUCT_SIZE_LT (float; default 0.0)

+

Penalty weight for products shorter than PRIMER_PRODUCT_OPT_SIZE.

+

PRIMER_PAIR_WT_PRODUCT_SIZE_GT (float; default 0.0)

+

Penalty weight for products longer than PRIMER_PRODUCT_OPT_SIZE.

+

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_INTERNAL_MIN_SIZE (int; default 18)

+

Equivalent parameter of PRIMER_MIN_SIZE for the internal oligo.

+

PRIMER_OPT_SIZE (int; default 20)

+

Optimum length (in bases) of a primer. Primer3 will attempt to +pick primers close to this length.

+

PRIMER_INTERNAL_OPT_SIZE (int; default 20)

+

Equivalent parameter of PRIMER_OPT_SIZE for the internal oligo.

+

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_INTERNAL_MAX_SIZE (int; default 27)

+

Equivalent parameter of PRIMER_MAX_SIZE for the internal oligo.

+

PRIMER_WT_SIZE_LT (float; default 1.0)

+

Penalty weight for primers shorter than PRIMER_OPT_SIZE.

+

PRIMER_INTERNAL_WT_SIZE_LT (float; default 1.0)

+

Equivalent parameter of PRIMER_WT_SIZE_LT for the internal oligo.

+

PRIMER_WT_SIZE_GT (float; default 1.0)

+

Penalty weight for primers longer than PRIMER_OPT_SIZE.

+

PRIMER_INTERNAL_WT_SIZE_GT (float; default 1.0)

+

Equivalent parameter of PRIMER_INTERNAL_WT_SIZE_GT for the internal oligo.

+

PRIMER_MIN_GC (float; default 20.0)

+

Minimum allowable percentage of Gs and Cs in any primer.

+

PRIMER_INTERNAL_MIN_GC (float; default 20.0)

+

Equivalent parameter of PRIMER_MIN_GC for the internal oligo.

+

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_INTERNAL_OPT_GC_PERCENT (float; default 50.0)

+

Equivalent parameter of PRIMER_OPT_GC_PERCENT for the internal oligo.

+

PRIMER_MAX_GC (float; default 80.0)

+

Maximum allowable percentage of Gs and Cs in any primer generated +by Primer.

+

PRIMER_INTERNAL_MAX_GC (float; default 80.0)

+

Equivalent parameter of PRIMER_MAX_GC for the internal oligo.

+

PRIMER_WT_GC_PERCENT_LT (float; default 0.0)

+

Penalty weight for primers with GC percent lower than +PRIMER_OPT_GC_PERCENT.

+

PRIMER_INTERNAL_WT_GC_PERCENT_LT (float; default 0.0)

+

Equivalent parameter of PRIMER_WT_GC_PERCENT_LT for the internal oligo.

+

PRIMER_WT_GC_PERCENT_GT (float; default 0.0)

+

Penalty weight for primers with GC percent higher than +PRIMER_OPT_GC_PERCENT.

+

PRIMER_INTERNAL_WT_GC_PERCENT_GT (float; default 0.0)

+

Equivalent parameter of PRIMER_WT_GC_PERCENT_GT for the internal oligo.

+

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_MAX_END_GC (int; default 5)

+

The maximum number of Gs or Cs allowed in the last five 3' +bases of a left or right primer.

+

PRIMER_MIN_TM (float; default 57.0)

+

Minimum acceptable melting temperature (Celsius) for a primer +oligo.

+

PRIMER_INTERNAL_MIN_TM (float; default 57.0)

+

Equivalent parameter of PRIMER_MIN_TM for the internal oligo.

+

PRIMER_OPT_TM (float; default 60.0)

+

Optimum melting temperature (Celsius) for a primer. Primer3 +will try to pick primers with melting temperatures are close to +this temperature. The oligo melting temperature formula used can +be specified by user. Please see PRIMER_TM_FORMULA for more +information.

+

PRIMER_INTERNAL_OPT_TM (float; default 60.0)

+

Equivalent parameter of PRIMER_OPT_TM for the internal oligo.

+

PRIMER_MAX_TM (float; default 63.0)

+

Maximum acceptable melting temperature (Celsius) for a primer +oligo.

+

PRIMER_INTERNAL_MAX_TM (float; default 63.0)

+

Equivalent parameter of PRIMER_MAX_TM for the internal oligo.

+

PRIMER_PAIR_MAX_DIFF_TM (float; default 100.0)

+

Maximum acceptable (unsigned) difference between the melting +temperatures of the left and right primers.

+

PRIMER_WT_TM_LT (float; default 1.0)

+

Penalty weight for primers with Tm lower than PRIMER_OPT_TM.

+

PRIMER_INTERNAL_WT_TM_LT (float; default 1.0)

+

Equivalent parameter of PRIMER_WT_TM_LT for the internal oligo.

+

PRIMER_WT_TM_GT (float; default 1.0)

+

Penalty weight for primers with Tm over PRIMER_OPT_TM.

+

PRIMER_INTERNAL_WT_TM_GT (float; default 1.0)

+

Equivalent parameter of PRIMER_WT_TM_GT for the internal oligo.

+

PRIMER_PAIR_WT_DIFF_TM (float; default 0.0)

+

Penalty weight for the TM difference between the left primer and +the right primer.

+

PRIMER_PRODUCT_MIN_TM (float; default -1000000.0)

+

The minimum allowed melting temperature of the amplicon. Please +see the documentation on PRIMER_PRODUCT_MAX_TM for details.

+

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_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_PAIR_WT_PRODUCT_TM_LT (float; default 0.0)

+

Penalty weight for products with a Tm lower than +PRIMER_PRODUCT_OPT_TM.

+

PRIMER_PAIR_WT_PRODUCT_TM_GT (float; default 0.0)

+

Penalty weight for products with a Tm higher than +PRIMER_PRODUCT_OPT_TM.

+

PRIMER_TM_FORMULA (int; default 1)

+

Specifies details of melting temperature calculation. (New in +v. 1.1.0, added by Maido Remm and Triinu Koressaar.)
+
+A value of 0 directs Primer3 to a backward compatible calculation +(in other words, the only calculation available 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://dx.doi.org/10.1093/nar/18.21.6409].
+
+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].
+
+Use tag PRIMER_SALT_CORRECTIONS, to specify the salt correction +method for melting temperature calculation.
+
+Example of calculating the melting temperature of an oligo if +PRIMER_TM_FORMULA=1 and PRIMER_SALT_CORRECTIONS=1 +recommended values):
+
+primer=CGTGACGTGACGGACT
+
+Using default salt and DNA concentrations we have

+
+Tm = deltaH/(deltaS + R*ln(C/4))
+
+

where R is the gas constant (1.987 cal/K mol) and C is the DNA +concentration.

+
+deltaH(predicted) =
+  = dH(CG) + dH(GT) + dH(TG) + .. + dH(CT) +
+     + dH(init.w.term.GC) + dH(init.w.term.AT) =
+  = -10.6 + (-8.4) + (-8.5) + .. + (-7.8) + 0.1 + 2.3  =
+  = -128.8 kcal/mol
+
+

where 'init.w.term GC' and 'init.w.term AT' are two +initiation parameters for duplex formation: 'initiation with +terminal GC' and 'initiation with terminal AT'

+
+deltaS(predicted) =
+  = dS(CG) + dS(GT) + dS(TG) + .. + dS(CT) +
+    + dS(init.w.term.GC) + dS(init.w.term.AT) =
+  = -27.2 + (-22.4) + (-22.7) + .. + (-21.0) + (-2.8) + 4.1 =
+  = -345.2 cal/k*mol
+deltaS(salt corrected) =
+  = deltaS(predicted) + 0.368*15(NN pairs)*ln(0.05M monovalent cations) =
+  = -361.736
+Tm = -128.800/(-361.736+1.987*ln((5*10^(-8))/4)) =
+   = 323.704 K
+Tm(C) = 323.704 - 273.15 = 50.554 C
+
+

PRIMER_SALT_MONOVALENT (float; default 50.0)

+

The millimolar (mM) concentration of monovalent salt cations (usually KCl) in the PCR. +Primer3 uses this argument to calculate oligo and primer melting +temperatures. +Use tag PRIMER_SALT_DIVALENT and +PRIMER_INTERNAL_SALT_DIVALENT to specify the concentrations +of divalent cations (in which case you also should also set tag PRIMER_DNTP_CONC to +a reasonable value). +

+

PRIMER_INTERNAL_SALT_MONOVALENT (float; default 50.0)

+

Equivalent parameter of PRIMER_SALT_MONOVALENT for the internal oligo.

+

PRIMER_SALT_DIVALENT (float; default 1.5)

+

The millimolar concentration of divalent salt cations (usually MgCl^(2+)) in +the PCR. (New in v. 1.1.0, added by Maido Remm and Triinu Koressaar)
+
+Primer3 converts concentration of divalent cations to concentration +of monovalent cations using formula suggested 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 Comparison to Alternative Empirical +Formulas", Clinical Chemistry 47:1956-61 http://www.clinchem.org/cgi/content/full/47/11/1956].

+
+[Monovalent cations] = [Monovalent cations] + 120*(([divalent cations] - [dNTP])^0.5)
+
+

In addition, +if the specified concentration of dNTPs (PRIMER_DNTP_CONC) +is larger than the concentration of divalent cations (PRIMER_SALT_DIVALENT) +then the effect of the divalent cations is not considered. The +concentration of dNTPs is considered in the formula above +because of some magnesium is bound by the dNTP. +The adjusted concentration of monovalent cations is used in the +calculation of oligo/primer +melting temperature, PCR product melting temperature, +the stability of oligo dimers and +secondary structures (when PRIMER_THERMODYNAMIC_OLIGO_ALIGNMENT is 1), +and the stability of ectopic annealing of oligos to template +(when PRIMER_THERMODYNAMIC_TEMPLATE_ALIGNMENT is 1). +If PRIMER_SALT_DIVALENT > 0.0, be sure to +set tag PRIMER_DNTP_CONC to specify the concentration of dNTPs. +

+

PRIMER_INTERNAL_SALT_DIVALENT (float; default 0.0)

+

Equivalent parameter of PRIMER_SALT_DIVALENT for the internal oligo.

+

PRIMER_DNTP_CONC (float; default 0.6)

+

The millimolar concentration of the sum of all +deoxyribonucleotide triphosphates. A reaction mix containing +0.2 mM ATP, 0.2 mM CTP, 0.2 mM GTP and 0.2 mM TTP would have a +PRIMER_DNTP_CONC=0.8. +This argument is considered for oligo and +primer melting temperatures, for +PCR product melting temperature, or for secondary +structure calculations only if +PRIMER_SALT_DIVALENT is > 0.0. +See PRIMER_SALT_DIVALENT.

+

PRIMER_INTERNAL_DNTP_CONC (float; default 0.0)

+

Parameter for internal oligos analogous to PRIMER_DNTP_CONC.

+

PRIMER_SALT_CORRECTIONS (int; default 1)

+

Specifies the salt correction formula for the melting temperature +calculation. (New in v. 1.1.0, added by Maido Remm and Triinu +Koressaar)
+
+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 older versions of Primer3. +
+
+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 2 directs Primer3 to use the salt correction formula +in the paper [Owczarzy, R., Moreira, B.G., You, Y., Behlke, M.A., and +Walder, J.A. (2008). Predicting stability of DNA duplexes in solutions +containing magnesium and monovalent cations. Biochemistry 47, 5336-5353 +http://dx.doi.org/10.1021/bi702363u] following recommendations in the paper +[Ahsen, v.N., Wittwer, C.T., and Schütz, E. (2010). Monovalent and divalent +salt correction algorithms for Tm prediction-recommendations for Primer3 +usage. Brief Bioinform 12, 514 http://dx.doi.org/10.1093/bib/bbq081]. +
+
+For all values of PRIMER_SALT_CORRECTIONS, +Primer3 also considers the values of the +tags PRIMER_SALT_DIVALENT, +PRIMER_INTERNAL_SALT_DIVALENT, +PRIMER_DNTP_CONC, and +PRIMER_INTERNAL_DNTP_CONC. +

+

PRIMER_DNA_CONC (float; default 50.0)

+

+

+A value to use as nanomolar (nM) concentration of each annealing oligo +over the course the PCR. +Primer3 uses this argument to esimate oligo melting +temperatures. This parameter corresponds to 'c' in equation (ii) +of the paper [SantaLucia (1998) A unified view of polymer, dumbbell, +and oligonucleotide DNA nearest-neighbor thermodynamics. +Proc Natl Acad Sci 95:1460-1465 +http://www.pnas.org/content/95/4/1460.full.pdf+html], +where a suitable value (for a lower initial concentration of template) +is "empirically determined".
+
+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 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.
+
+The value of this parameter is less than the actual +concentration of oligos in the initial reaction mix 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_INTERNAL_DNA_CONC (float; default 50.0)

+

Equivalent parameter of PRIMER_DNA_CONC for the internal oligo.

+

PRIMER_THERMODYNAMIC_OLIGO_ALIGNMENT (boolean; default 1)

+

If the associated value = 1, then Primer3 will use +thermodynamic models to calculate the +the propensity of oligos to form hairpins and dimers. +

+

PRIMER_THERMODYNAMIC_TEMPLATE_ALIGNMENT (boolean; default 0)

+

If the associated value = 1, then Primer3 will use +thermodynamic models to calculate the +the propensity of oligos to anneal to undesired sites in the template sequence. +

+

PRIMER_THERMODYNAMIC_PARAMETERS_PATH (string; default ./primer3_config)

+

This tag specifies the path to the directory that contains all the +parameter files used by the thermodynamic approach. In Linux, there are two +default locations that are tested if this tag is not defined: +./primer3_config/ and /opt/primer3_config/. +For Windows, there is only one default location: .\primer3_config\.

+

PRIMER_MAX_SELF_ANY (decimal, 9999.99; default 8.00)

+

PRIMER_MAX_SELF_ANY describes the tendency of a primer to bind to +itself (interfering with target sequence binding). It will score +ANY binding occurring within the entire primer sequence.
+It is the maximum allowable local alignment score when testing +a single primer for (local) self-complementarity. 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_MAX_SELF_ANY_TH (decimal, 9999,99; default 47.00)

+

The same as PRIMER_MAX_SELF_ANY but all calculations are based on + thermodynamical approach. The melting temperature of the most stable + structure is calculated. To calculate secondary structures nearest-neighbor + parameters for perfect matches, single internal mismatches, terminal + mismatches, dangling ends have been used. Also parameters for +increments for length dependence of +bulge and internal loops have been used. This parameter is calculated only +if PRIMER_THERMODYNAMIC_OLIGO_ALIGNMENT=1. The default value is 10 degrees +lower than the default value of PRIMER_MIN_TM. For example, the alignment +width length 15nt

+
+  5' ATTAGATAGAGCATC 3'
+  3' TAATCTATCTCGTAG 5'
+
+is allowed (and yields a melting temperature of 32.1493 +width by default Primer3 parameters), but the alignment +
+     T        C
+  5'  GCGGCCGC GCGC 3'
+  3'  CGCCGGCG CGCG 5'
+     A        A
+
+

is not considered (Tm=57.0997 and the length of oligo is 14nt). +Thermodynamical parameters and methods for finding +the most stable structure are described in following papers:

+
  • [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] +
  • +[SantaLucia JR and Hicks D (2004) "The thermodynamics of DNA structural +motifs", Annu Rev Biophys Biomol Struct 33:415-40 +http://dx.doi.org/10.1146/annurev.biophys.32.110601.141800] +
  • +[Bommarito S, Peyret N and SantaLucia J Jr (2000) "Thermodynamic parameters +for DNA sequences with dangling ends", Nucleic Acids Res 28(9):1929-34 +http://dx.doi.org/10.1093/nar/28.9.1929] +
  • +[Peyret N, Seneviratne PA, Allawi HT, SantaLucia J Jr. (1999) +"Nearest-neighbor thermodynamics and NMR of DNA sequences with internal A.A, +C.C, G.G, and T.T mismatches", Biochemistry 38(12):3468-77 +http://dx.doi.org/10.1021/bi9825091] +
  • +[Allawi HT and SantaLucia J Jr. (1998) "Nearest-Neighbor Thermodynamics of +Internal A·C Mismatches in DNA: Sequence Dependence and pH Effects", +Biochemistry 37(26):9435-44 +http://dx.doi.org/10.1021/bi9803729 +
  • +[Allawi HT and SantaLucia J Jr. (1998) "Thermodynamics of internal C.T +mismatches in DNA." Nucleic Acids Res 26(11):2694-701http://dx.doi.org/10.1093/nar/26.11.2694] +
  • +[Allawi HT and SantaLucia J Jr. (1998) "Nearest neighbor thermodynamic +parameters for internal G.A mismatches in DNA." Biochemistry 37(8):2170-9 +http://dx.doi.org/10.1021/bi9724873] +
  • +[Allawi HT and SantaLucia J Jr. (1997) "Thermodynamics and NMR of internal +G.T mismatches in DNA." Biochemistry 36(34):10581-94 +http://dx.doi.org/10.1021/bi962590c] +
  • +[SantaLucia J Jr and Peyret N. (2001) "Method and system for predicting +nucleic acid hybridization thermodynamics and computer-readable storage +medium for use therein" World Intellectual Property Organization, WO 01/94611 +http://www.wipo.int/pctdb/en/wo.jsp?wo=2001094611] +
+


+Predicting secondary structures can improve primer design by eliminating +sequences with high possibility to form alternative secondary structures. +

+

PRIMER_INTERNAL_MAX_SELF_ANY (decimal, 9999.99; default 12.00)

+

Equivalent parameter of PRIMER_MAX_SELF_ANY for the internal oligo.

+

PRIMER_INTERNAL_MAX_SELF_ANY_TH (decimal, 9999.99; default 47.00)

+

Equivalent parameter of PRIMER_MAX_SELF_ANY_TH for the internal oligo.

+

PRIMER_PAIR_MAX_COMPL_ANY (decimal, 9999.99; default 8.00)

+

PRIMER_PAIR_MAX_COMPL_ANY describes the tendency of the left primer +to bind to the right primer. It is the maximum allowable local alignment score when testing for +complementarity between left and right primers. It is similar to PRIMER_MAX_SELF_ANY.

+

PRIMER_PAIR_MAX_COMPL_ANY_TH (decimal, 9999.99; default 47.00)

+

PRIMER_PAIR_MAX_COMPL_ANY_TH describes the tendency of the left primer + to bind to the right primer. It is similar to PRIMER_MAX_SELF_ANY_TH.

+

PRIMER_WT_SELF_ANY (float; default 0.0)

+

Penalty weight for the individual primer self binding value as in +PRIMER_MAX_SELF_ANY.

+

PRIMER_WT_SELF_ANY_TH (float; default 0.0)

+

Penalty weight for the individual primer self binding value as in + PRIMER_MAX_SELF_ANY_TH.

+

PRIMER_INTERNAL_WT_SELF_ANY (float; default 0.0)

+

Equivalent parameter of PRIMER_WT_SELF_ANY for the internal oligo.

+

PRIMER_INTERNAL_WT_SELF_ANY_TH (float; default 0.0)

+

Equivalent parameter of PRIMER_WT_SELF_ANY_TH for the internal oligo.

+

PRIMER_PAIR_WT_COMPL_ANY (float; default 0.0)

+

Penalty weight for the binding value of the primer pair as in +PRIMER_MAX_SELF_ANY.

+

PRIMER_PAIR_WT_COMPL_ANY_TH (float; default 0.0)

+

Penalty weight for the binding value of the primer pair as in PRIMER_MAX_SELF_ANY_TH.

+

PRIMER_MAX_SELF_END (decimal, 9999.99; default 3.00)

+

+PRIMER_MAX_SELF_END tries to bind the 3'-END to a identical primer +and scores the best binding it can find. This is critical for +primer quality because it allows primers use itself as a target +and amplify a short piece (forming a primer-dimer). These primers +are then unable to bind and amplify the target sequence.
+PRIMER_MAX_SELF_END is the maximum allowable 3'-anchored global +alignment score when testing a single primer for +self-complementarity. 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, Primer3 +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 (PRIMER_MAX_SELF_ANY) because the score of a local +alignment will always be at least as great as the score of a +global alignment.

+

PRIMER_MAX_SELF_END_TH (decimal 9999.99; default 47.00)

+

Same as PRIMER_MAX_SELF_END but is based on +thermodynamical approach - the stability of structure is analyzed. The value +of tag is expressed as melting temperature. See +PRIMER_MAX_SELF_ANY_TH for details.

+

PRIMER_INTERNAL_MAX_SELF_END (decimal 9999.99; default 12.00)

+

PRIMER_INTERNAL_MAX_SELF_END is meaningless when applied +to internal oligos used for hybridization-based detection, since +primer-dimer will not occur. We recommend that +PRIMER_INTERNAL_MAX_SELF_END be set at least as high as +PRIMER_INTERNAL_MAX_SELF_ANY.

+

PRIMER_INTERNAL_MAX_SELF_END_TH (decimal 9999.99; default 47.00)

+

Same as PRIMER_INTERNAL_MAX_SELF_END but for +calculating the score (melting temperature of structure) thermodynamical +approach is used.

+

PRIMER_PAIR_MAX_COMPL_END (decimal, 9999.99; default 3.00)

+

PRIMER_PAIR_MAX_COMPL_END tries to bind the 3'-END of the left primer +to the right primer and scores the best binding it can find. +It is similar to PRIMER_MAX_SELF_END.

+

PRIMER_PAIR_MAX_COMPL_END_TH (decimal, 9999.99; default 47.00)

+

Same as PRIMER_PAIR_MAX_COMPL_END but for calculating the +score (melting temperature of structure) thermodynamical approach is used.

+

PRIMER_WT_SELF_END (float; default 0.0)

+

Penalty weight for the individual primer self binding value as in +PRIMER_MAX_SELF_END.

+

PRIMER_WT_SELF_END_TH (float; default 0.0)

+

Penalty weight for the individual primer self binding +value as in PRIMER_MAX_SELF_END_TH

+

PRIMER_INTERNAL_WT_SELF_END (float; default 0.0)

+

Equivalent parameter of PRIMER_WT_SELF_END for the internal oligo.

+

PRIMER_INTERNAL_WT_SELF_END_TH (float; default 0.0)

+

Equivalent parameter of PRIMER_WT_SELF_END_TH for the internal oligo.

+

PRIMER_PAIR_WT_COMPL_END (float; default 0.0)

+

Penalty weight for the binding value of the primer pair as in +PRIMER_MAX_SELF_END.

+

PRIMER_PAIR_WT_COMPL_END_TH (float; default 0.0)

+

Penalty weight for the binding value of the primer pair as in PRIMER_MAX_SELF_END_TH.

+

PRIMER_MAX_HAIRPIN_TH (float; default 47.0)

+

This is the most stable monomer structure of internal oligo +calculated by thermodynamic approach. The hairpin loops, +bulge loops, internal loops, internal single mismatches, dangling ends, +terminal mismatches have been considered. This parameter is calculated only +if PRIMER_THERMODYNAMIC_OLIGO_ALIGNMENT=1. The default value is 10 degrees +lower than the default value of PRIMER_MIN_TM. For example the structure:

+
+      -///------\\\-
+   5' ACGCTGTGCTGCGA 3'
+
+with melting temperature 53.7263 (calculated according to by default values +of Primer3) and +
+      //////----\\\\\\
+   5' CCGCAGTAAGCTGCGG 3'
+
+

+with melting temperature 71.0918 (calculated according to by default values +of Primer3) +For details about papers used for calculating hairpins see PRIMER_MAX_SELF_ANY_TH

+

PRIMER_INTERNAL_MAX_HAIRPIN_TH (float; default 47.0)

+

The most stable monomer structure of internal oligo +calculated by thermodynamic approach. See PRIMER_MAX_HAIRPIN_TH for details.

+

PRIMER_WT_HAIRPIN_TH (float; default 0.0)

+

Penalty weight for the individual primer hairpin structure value as in PRIMER_MAX_HAIRPIN_TH.

+

PRIMER_INTERNAL_WT_HAIRPIN_TH (float; default 0.0)

+

Penalty weight for the most stable +primer hairpin structure value as in PRIMER_INTERNAL_MAX_HAIRPIN_TH.

+

PRIMER_MAX_END_STABILITY (float, 999.9999; default 100.0)

+

The maximum stability for the last five 3' bases of a left or +right primer. Bigger numbers mean more stable 3' ends. The +value is the maximum delta G (kcal/mol) for duplex disruption for +the five 3' bases as calculated using the nearest-neighbor +parameter values specified by the option of PRIMER_TM_FORMULA +
+
+For example if the table of thermodynamic parameters suggested +by SantaLucia 1998, DOI:10.1073/pnas.95.4.1460 is used the deltaG +values for the most stable and for the most labile 5mer duplex +are 6.86 kcal/mol (GCGCG) and 0.86 kcal/mol (TATAT) respectively.
+
+If the table of thermodynamic parameters suggested by +Breslauer et al. 1986, 10.1073/pnas.83.11.3746 is used the deltaG +values for the most stable and for the most labile 5mer are +13.4 kcal/mol (GCGCG) and 4.6 kcal/mol (TATAC) respectively. +

PRIMER_WT_END_STABILITY (float; default 0.0)

+

Penalty factor for the calculated maximum stability for the +last five 3' bases of a left or right primer.

+

PRIMER_MAX_NS_ACCEPTED (int; default 0)

+

Maximum number of unknown bases (N) allowable in any primer.

+

PRIMER_INTERNAL_MAX_NS_ACCEPTED (int; default 0)

+

Equivalent parameter of PRIMER_MAX_NS_ACCEPTED for the internal oligo.

+

PRIMER_WT_NUM_NS (float; default 0.0)

+

Penalty weight for the number of Ns in the primer.

+

PRIMER_INTERNAL_WT_NUM_NS (float; default 0.0)

+

Equivalent parameter of PRIMER_WT_NUM_NS for the internal oligo.

+

PRIMER_MAX_POLY_X (int; default 5)

+

The maximum allowable length of a mononucleotide repeat, +for example AAAAAA.

+

PRIMER_INTERNAL_MAX_POLY_X (int; default 5)

+

Equivalent parameter of PRIMER_MAX_POLY_X for the internal oligo.

+

PRIMER_MIN_LEFT_THREE_PRIME_DISTANCE (int; default -1)

+

When returning multiple primer pairs, +the minimum number of base pairs between the 3' ends of +any two left primers.
+
+Primers with 3' ends at positions e.g. 30 and 31 in the template +sequence have a three-prime distance of 1.
+
+In addition to positive values, the values -1 and 0 +are acceptable and have special interpretations: +
+
+-1 indicates that a given left primer can appear in +multiple primer pairs returned by Primer3. +This is the default behavior. +
+
+0 indicates that a left primer is acceptable if it +was not already used. +In other words, two left primers are allowed to +have the same 3' position provided their 5' positions differ. +
+
+For n > 0: +A left primer is acceptable if:
+
+NOT(3' end of left primer closer than n to the 3' end of a previously +used left primer)

+

PRIMER_MIN_RIGHT_THREE_PRIME_DISTANCE (int; default -1)

+

Analogous to PRIMER_MIN_LEFT_THREE_PRIME_DISTANCE, +but for right primers.

+

PRIMER_MIN_THREE_PRIME_DISTANCE (int; default -1)

+

A "convenience" tag that simultaneously +sets +PRIMER_MIN_LEFT_THREE_PRIME_DISTANCE +and +PRIMER_MIN_RIGHT_THREE_PRIME_DISTANCE +
+
+For example

+
+PRIMER_MIN_THREE_PRIME_DISTANCE=3
+
+is equivalent to +
+PRIMER_MIN_LEFT_THREE_PRIME_DISTANCE=3
+PRIMER_MIN_RIGHT_THREE_PRIME_DISTANCE=3
+
+

+It is an error to specify both +PRIMER_MIN_THREE_PRIME_DISTANCE and either +PRIMER_MIN_LEFT_THREE_PRIME_DISTANCE or +PRIMER_MIN_RIGHT_THREE_PRIME_DISTANCE +in the same input record.

+

PRIMER_PICK_ANYWAY (boolean; default 0)

+

If true use primer provided in SEQUENCE_PRIMER, SEQUENCE_PRIMER_REVCOMP, +or SEQUENCE_INTERNAL_OLIGO even if it violates specific +constraints.

+

PRIMER_LOWERCASE_MASKING (int; default 0)

+

This option allows for intelligent design of primers in sequence in +which masked regions (for example repeat-masked regions) are +lower-cased. (New in v. 1.1.0, added by Maido Remm and Triinu +Koressaar)
+
+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.

+

PRIMER_EXPLAIN_FLAG (boolean; default 0)

+

If this flag is 1 (non-0), produce PRIMER_LEFT_EXPLAIN, +PRIMER_RIGHT_EXPLAIN, PRIMER_INTERNAL_EXPLAIN and/or +PRIMER_PAIR_EXPLAIN output +tags as appropriate. +These output tags are intended to provide information on the number of +oligos and primer pairs that Primer3 examined and counts of +the number discarded for various reasons. If -format_output is +set similar information is produced in the user-oriented output.

+

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_MAX_NS_ACCEPTED to a +1 (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_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_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_LIBRARY_MISPRIMING, except +that an ambiguity code in the template is never treated as a +consensus (see PRIMER_LIB_AMBIGUITY_CODES_CONSENSUS).

+

PRIMER_MAX_TEMPLATE_MISPRIMING_TH (decimal, 9999.99; default -1.00)

+

Similar to PRIMER_MAX_TEMPLATE_MISPRIMING but +assesses alternative binding sites in the template using thermodynamic models +(when PRIMER_THERMODYNAMIC_TEMPLATE_ALIGNMENT=1). +This parameter specifies the maximum allowed +melting temperature of an oligo (primer) +at an "ectopic" site within the template sequence; 47.0 would be +a reasonable choice if PRIMER_MIN_TM is 57.0. +

+

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_LIBRARY_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_PAIR_MAX_TEMPLATE_MISPRIMING_TH (decimal, 9999.99; default -1.00)

+

The maximum allowed summed melting temperatures +of both primers at ectopic sites within the template (with +the two primers in an orientation that would allow PCR +amplification.) +The melting temperatures are calculated +as for PRIMER_MAX_TEMPLATE_MISPRIMING_TH. +

PRIMER_WT_TEMPLATE_MISPRIMING (float; default 0.0)

+

Penalty for a single primer binding to the template sequence.
+
+The use of this Tag is modified from Primer3 version 2.0 on: +The values used with the older versions have to be multiplied +by the factor 100 to have the same effect.

+

PRIMER_WT_TEMPLATE_MISPRIMING_TH (float; default 0.0)

+

Penalty for a single primer binding to the template sequence (thermodynamic approach, when PRIMER_THERMODYNAMIC_TEMPLATE_ALIGNMENT=1).

+

PRIMER_PAIR_WT_TEMPLATE_MISPRIMING (float; default 0.0)

+

Penalty for a primer pair binding to the template sequence.
+
+The use of this Tag is modified from Primer3 version 2.0 on: +The values used with the older versions have to be multiplied +by the factor 100 to have the same effect.

+

PRIMER_PAIR_WT_TEMPLATE_MISPRIMING_TH (float; default 0.0)

+

Penalty for a primer pair binding to the template sequence +(thermodynamic approach, when PRIMER_THERMODYNAMIC_TEMPLATE_ALIGNMENT=1).

+

PRIMER_MISPRIMING_LIBRARY (string; default empty)

+

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_LIBRARY_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_MAX_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. For technical +reasons the length of the sequence must be >= 3. Of course, +sequences of length < 10 or so are probably useless, but +will be accepted without complaint.
+
+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://ftp.ncbi.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_INTERNAL_MISHYB_LIBRARY (string; default empty)

+

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_LIB_AMBIGUITY_CODES_CONSENSUS (boolean; default 0)

+

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_LIBRARY_MISPRIMING (decimal, 9999.99; default 12.00)

+

The maximum allowed weighted similarity with any sequence in +PRIMER_MISPRIMING_LIBRARY.

+

PRIMER_INTERNAL_MAX_LIBRARY_MISHYB (decimal,9999.99; default 12.00)

+

Similar to PRIMER_MAX_LIBRARY_MISPRIMING except that this parameter applies +to the similarity of candidate internal oligos to the library +specified in PRIMER_INTERNAL_MISHYB_LIBRARY.

+

PRIMER_PAIR_MAX_LIBRARY_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_WT_LIBRARY_MISPRIMING (float; default 0.0)

+

Penalty for a single primer binding to any single sequence +in PRIMER_MISPRIMING_LIBRARY.

+

PRIMER_INTERNAL_WT_LIBRARY_MISHYB (float; default 0.0)

+

Equivalent parameter of PRIMER_WT_LIBRARY_MISPRIMING for the internal oligo.

+

PRIMER_PAIR_WT_LIBRARY_MISPRIMING (float; default 0.0)

+

Penalty for a primer pair binding to any single sequence +in PRIMER_MISPRIMING_LIBRARY.

+

PRIMER_MASK_TEMPLATE (boolean; default 0)

+

This feature helps to prevent designing primers to template +regions that are repetitive. Primers with more binding +sites tend to have higher failure rates. The masking is +based on statistical model, which calculates the +probability of failure Pf as follows:
+

Pf= em / (1 + em),
+where m = 0.1772 * K11 + 0.239 * K16 - 4.336
+and K11 and K16 are frequencies of 11-mers and 16-mers +in given genome. The frequencies are stored in +species-specific k-mer list files. Users can build their +own k-mer lists for species of interest. GenomeTester4 +software for making properly formatted k-mer lists can be +downloaded from GitHub: +https://github.com/bioinfo-ut/GenomeTester4.

+

PRIMER_MASK_FAILURE_RATE (float; default 0.1)

+

Cutoff value of accepted failure rate for masking +algorithm. Higher value gives lower stringency, meaning +that fewer nucleotides in target sequence is masked.

+

PRIMER_WT_MASK_FAILURE_RATE (float; default 0.0)

+

Penalty weight for the primer failure rate.

+

PRIMER_MASK_5P_DIRECTION (int; default 1)

+

The number of nucleotides masking algorithm should mask +from 5' direction.

+

PRIMER_MASK_3P_DIRECTION (int; default 0)

+

The number of nucleotides masking algorithm should mask +from 3' direction.

+

PRIMER_MASK_KMERLIST_PATH (string; default ../kmer_lists/)

+

This tag specifies the path to the directory that +contains k-mer list files for masking algorithm. Required +for command-line execution. On web interface the species +is selected from drop-down menu

+

PRIMER_MASK_KMERLIST_PREFIX (string; default homo_sapiens)

+

This tag specifies the species whose k-mer lists are used for +pre-masking.

+

PRIMER_MIN_QUALITY (int; default 0)

+

The minimum sequence quality (as specified by +SEQUENCE_QUALITY) allowed within a primer.

+

PRIMER_INTERNAL_MIN_QUALITY (int; default 0)

+

Equivalent parameter of PRIMER_MIN_QUALITY for the internal oligo.

+

PRIMER_MIN_END_QUALITY (int; default 0)

+

The minimum sequence quality (as specified by +SEQUENCE_QUALITY) allowed within the 5' pentamer of a +primer. Note that there is no PRIMER_INTERNAL_MIN_END_QUALITY.

+

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_WT_SEQ_QUAL (float; default 0.0)

+

Penalty weight for the sequence quality of the primer.

+

PRIMER_INTERNAL_WT_SEQ_QUAL (float; default 0.0)

+

Equivalent parameter of PRIMER_WT_SEQ_QUAL for the internal oligo.

+

PRIMER_PAIR_WT_PR_PENALTY (float; default 1.0)

+

Penalty factor for the sum of the left and the right primer added +to the pair penalty. Setting this value below 1.0 will increase +running time.
+
+As PRIMER_PAIR_WT_PR_PENALTY or the per-primer +penalties it multiplies become lower with respect to various +pair penalties (for example PRIMER_PAIR_WT_PRODUCT_SIZE_LT +PRIMER_PAIR_WT_PRODUCT_SIZE_GT +PRIMER_PAIR_WT_DIFF_TM, etc.) the running time of the +search for primer pairs is likely to grow substantially. The +reason is that the search algorithm must calculate the penalty +for more primer pairs (as opposed to excluding them based on +the penalties of the individual oligos). +

+

PRIMER_PAIR_WT_IO_PENALTY (float; default 0.0)

+

Penalty factor for the internal oligo added to the pair penalty.

+

PRIMER_INSIDE_PENALTY (float; default -1.0)

+

Non-default values are 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)

+

Non-default values are 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_WT_POS_PENALTY (float; default 1.0)

+

Penalty for the primer which do not overlap the target.

+

PRIMER_SEQUENCING_LEAD (int; default 50)

+

Defines the space from the 3'end of the primer to the point +were the trace signals are readable. Value only used if +PRIMER_TASK=pick_sequencing_primers.

+

PRIMER_SEQUENCING_SPACING (int; default 500)

+

Defines the space from the 3'end of the primer to the 3'end of +the next primer on the same strand. Value only used if +PRIMER_TASK=pick_sequencing_primers.

+

PRIMER_SEQUENCING_INTERVAL (int; default 250)

+

Defines the space from the 3'end of the primer to the 3'end of +the next primer on the reverse strand. Value only used if +PRIMER_TASK=pick_sequencing_primers.

+

PRIMER_SEQUENCING_ACCURACY (int; default 20)

+

Defines the space from the calculated position of the 3'end to +both sides in which Primer3Plus picks the best primer. Value only used if +PRIMER_TASK=pick_sequencing_primers.

+

PRIMER_WT_END_QUAL (float; default 0.0)

+

+

PRIMER_INTERNAL_WT_END_QUAL (float; default 0.0)

+

+

17. "PROGRAM" INPUT TAGS

+

"Program" input tags start with P3_... describe the +parameters that deal with the behavior of the Primer3 program +itself.)

+

P3_FILE_ID (string; default empty)

+

+This tag is only valid in Primer3 setting files. It should be used to +identify the purpose of the settings files it appears in. +It is always printed out on the output of Primer3. +See also also the command line flag -echo_settings_file, +which causes the entire settings file to be echoed in primer3_core's +output. +

+

P3_FILE_FLAG (boolean; default 0)

+

If the associated value = 1 (non-0), then Primer3 creates +one or more output +files for each input SEQUENCE_TEMPLATE. 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 SEQUENCE_ID tag (which +must be supplied). If internal oligos are requested, Primer3 + produces a file <sequence_id>.int, which lists all +acceptable internal oligos. Obviously, <sequence_id> needs +to be a string that will work as a file name. +
+
+See also the pick_primer_list +argument to PRIMER_TASK, which offers similar functionality on stdout. +

+

P3_COMMENT (string; default empty)

+

The value of this tag is ignored. It can be used to annotate input.

+

18. HOW PRIMER3 CALCULATES THE PENALTY VALUE

+

+In essense, the penalty values define what is the best primer +pair. +The calculation of penalty values +takes into consideration penalty weights, which allow +one to fine-tune the selection of primers to specific needs.
+
+This section will explain the selection process of primers by +Primer3. In general the selection is a multi step process:
+
+In the first step, Primer3 evaluates every primer that +can be picked in the region of interest, possibly subject to +constraints due to target regions, product size ranges, and +so forth, that might preclude the use of primers in the +eventually selected primer pairs. In this pass the hard +limits are tested like PRIMER_MAX_GC or PRIMER_MIN_TM. Primers +with a GC lower than PRIMER_MAX_GC or a Tm higher than +PRIMER_MIN_TM are memorized, the primers which fail in one of +these tests are excluded. Primer3 can be forced to use primers +failing to pass this test by setting PRIMER_PICK_ANYWAY to one +(only available for primers provided by the user).
+
+In the second step, Primer3 calculates a penalty for each +primer. This penalty is the only score by which Primer3 +evaluates the primers It is also provided as output +PRIMER_LEFT_4_PENALTY, PRIMER_INTERNAL_4_PENALTY and +PRIMER_RIGHT_4_PENALTY (shown for the primer set 4). For each +primer, it is calculated like that:

+

Left Primers:

+
+PRIMER_LEFT_4_PENALTY =
+   If PRIMER_LEFT_4_TM > PRIMER_OPT_TM then this is added (+):
+       + PRIMER_WT_TM_GT * ( PRIMER_LEFT_4_TM - PRIMER_OPT_TM )
+   If PRIMER_LEFT_4_TM < PRIMER_OPT_TM then this is added (+):
+       + PRIMER_WT_TM_LT * ( PRIMER_OPT_TM - PRIMER_LEFT_4_TM )
+   If PRIMER_LEFT_4_GC_PERCENT > PRIMER_OPT_GC_PERCENT then
+       this is added (+):
+       + PRIMER_WT_GC_PERCENT_GT *
+            ( PRIMER_LEFT_4_GC_PERCENT - PRIMER_OPT_GC_PERCENT )
+   If PRIMER_LEFT_4_GC_PERCENT < PRIMER_OPT_GC_PERCENT then
+       this is added (+):
+       + PRIMER_WT_GC_PERCENT_LT *
+            ( PRIMER_OPT_GC_PERCENT - PRIMER_LEFT_4_GC_PERCENT )
+   If masking is used (PRIMER_MASK_TEMPLATE=1), then this is added (+):
+       + PRIMER_WT_MASK_FAILURE_RATE * PRIMER_LEFT_4_MASK_FAILURE_RATE
+   The following section uses <primer length> as part of
+   the term which is given as output in
+   PRIMER_LEFT_4=position,<primer length>
+   If <primer length> > PRIMER_OPT_SIZE then
+       this is added (+):
+       + PRIMER_WT_SIZE_GT *
+            ( <primer length> - PRIMER_OPT_SIZE )
+   If <primer length> < PRIMER_OPT_SIZE then
+       this is added (+):
+       + PRIMER_WT_SIZE_LT *
+            ( PRIMER_OPT_SIZE - <primer length> )
+   If the primer does not overlap a target then
+       this is added (+):
+       + PRIMER_WT_POS_PENALTY * PRIMER_LEFT_4_POSITION_PENALTY
+   These are allways added (+) to the penalty
+   (if the thermodynamic approach is used then the part in italic
+      is substituted with text below this calculation):
+    + PRIMER_WT_SELF_ANY * PRIMER_LEFT_4_SELF_ANY
+       + PRIMER_WT_SELF_END * PRIMER_LEFT_4_SELF_END
+       + PRIMER_WT_TEMPLATE_MISPRIMING *
+            PRIMER_LEFT_4_TEMPLATE_MISPRIMING
+       + PRIMER_WT_END_STABILITY * PRIMER_LEFT_4_END_STABILITY
+       + PRIMER_WT_NUM_NS * <numbers of N in the selected primer>
+       + PRIMER_WT_LIBRARY_MISPRIMING * PRIMER_LEFT_4_LIBRARY_MISPRIMING
+       + PRIMER_WT_SEQ_QUAL *
+            ( PRIMER_QUALITY_RANGE_MAX -
+              PRIMER_LEFT_4_MIN_SEQ_QUALITY )
+      If the thermodynamic approach is used then the part of italic in
+          the above calculation is replaced by this:
+ 
+     If ((PRIMER_LEFT_4_TM - 5) ≤ PRIMER_LEFT_4_SELF_ANY_TH) then is added (+):
+      + PRIMER_WT_SELF_ANY_TH *
+                  (PRIMER_LEFT_4_SELF_ANY_TH - (PRIMER_LEFT_4_TM - 5 - 1))
+    else if ((PRIMER_LEFT_4_TM - 5) > PRIMER_LEFT_4_SELF_ANY_TH) then is added (+):
+      + PRIMER_WT_SELF_ANY_TH *
+            (1/(PRIMER_LEFT_4_TM - 5 + 1 - PRIMER_LEFT_4_SELF_ANY_TH));
+    If ((PRIMER_LEFT_4_TM - 5) ≤ PRIMER_LEFT_4_SELF_END_TH) then is added (+):
+     + PRIMER_WT_SELF_END_TH *
+               (PRIMER_LEFT_4_SELF_END_TH - (PRIMER_LEFT_4_TM - 5 - 1))
+    else if ((PRIMER_LEFT_4_TM - 5) > PRIMER_LEFT_4_SELF_END_TH) then is added (+):
+     + PRIMER_WT_SELF_END_TH *
+       (1/(PRIMER_LEFT_4_TM - 5 + 1 - PRIMER_LEFT_4_SELF_ANY_TH));
+    If ((PRIMER_LEFT_4_TM - 5) ≤ PRIMER_LEFT_4_TEMPLATE_MISPRIMING_TH) then is added (+):
+     + PRIMER_WT_TEMPLATE_MISPRIMING_TH *
+       (PRIMER_LEFT_4_TEMPLATE_MISPRIMING_TH - (PRIMER_LEFT_4_TM - 5 - 1))
+    else if ((PRIMER_LEFT_4_TM - 5) > PRIMER_LEFT_4_TEMPLATE_MISPRIMING_TH) then is added (+):
+     + PRIMER_WT_TEMPLATE_MISPRIMING_TH *
+      (1/(PRIMER_LEFT_4_TM - 5 + 1 - PRIMER_LEFT_4_TEMPLATE_MISPRIMING_TH));
+    If ((PRIMER_LEFT_4_TM - 5) ≤ PRIMER_LEFT_4_HAIRPIN_TH) then is added (+):
+      + PRIMER_WT_HAIRPIN_TH *
+             (PRIMER_LEFT_4_HAIRPIN_TH - (PRIMER_LEFT_4_TM - 5 - 1))
+    else if ((PRIMER_LEFT_4_TM - 5) > PRIMER_LEFT_4_HAIRPIN_TH) then is added (+):
+      + PRIMER_WT_HAIRPIN_TH *
+            (1/(PRIMER_LEFT_4_TM - 5 + 1 - PRIMER_LEFT_4_HAIRPIN_TH));
+ 
+
+

Right Primers (identical to Left Primers):

+
+PRIMER_RIGHT_4_PENALTY =
+   If PRIMER_RIGHT_4_TM > PRIMER_OPT_TM then
+       this is added (+):
+       + PRIMER_WT_TM_GT * ( PRIMER_RIGHT_4_TM - PRIMER_OPT_TM )
+   If PRIMER_RIGHT_4_TM < PRIMER_OPT_TM then
+       this is added (+):
+       + PRIMER_WT_TM_LT * ( PRIMER_OPT_TM - PRIMER_RIGHT_4_TM )
+   If PRIMER_RIGHT_4_GC_PERCENT > PRIMER_OPT_GC_PERCENT then
+       this is added (+):
+       + PRIMER_WT_GC_PERCENT_GT *
+            ( PRIMER_RIGHT_4_GC_PERCENT - PRIMER_OPT_GC_PERCENT )
+   If PRIMER_RIGHT_4_GC_PERCENT < PRIMER_OPT_GC_PERCENT then
+       this is added (+):
+       + PRIMER_WT_GC_PERCENT_LT *
+            ( PRIMER_OPT_GC_PERCENT - PRIMER_RIGHT_4_GC_PERCENT )
+   If masking is used (PRIMER_MASK_TEMPLATE=1), then this is added (+):
+       + PRIMER_WT_MASK_FAILURE_RATE * PRIMER_RIGHT_4_MASK_FAILURE_RATE
+   The following section uses <primer length> as part of
+   the term which is given as output in
+   PRIMER_RIGHT_4=position,<primer length>
+   If <primer length> > PRIMER_OPT_SIZE then
+       this is added (+):
+       + PRIMER_WT_SIZE_GT *
+            ( <primer length> - PRIMER_OPT_SIZE )
+   If <primer length> < PRIMER_OPT_SIZE then
+       this is added (+):
+       + PRIMER_WT_SIZE_LT *
+            ( PRIMER_OPT_SIZE - <primer length> )
+   If the primer does not overlap a target then
+       this is added (+):
+       + PRIMER_WT_POS_PENALTY * PRIMER_RIGHT_4_POSITION_PENALTY
+   These are allways added (+) to the penalty
+   (if the thermodynamic approach is used then the part in italic
+      is substituted with text below this calculation):
+    + PRIMER_WT_SELF_ANY * PRIMER_RIGHT_4_SELF_ANY
+       + PRIMER_WT_SELF_END * PRIMER_RIGHT_4_SELF_END
+       + PRIMER_WT_TEMPLATE_MISPRIMING *
+            PRIMER_RIGHT_4_TEMPLATE_MISPRIMING
+       + PRIMER_WT_END_STABILITY * PRIMER_RIGHT_4_END_STABILITY
+       + PRIMER_WT_NUM_NS * <numbers of N in the selected primer>
+       + PRIMER_WT_LIBRARY_MISPRIMING * PRIMER_RIGHT_4_LIBRARY_MISPRIMING
+       + PRIMER_WT_SEQ_QUAL *
+            ( PRIMER_QUALITY_RANGE_MAX -
+              PRIMER_RIGHT_4_MIN_SEQ_QUALITY )
+     If the thermodynamic approach is used then the part of italic in
+         the above calculation is replaced by this:
+
+    If ((PRIMER_RIGHT_4_TM - 5) ≤ PRIMER_RIGHT_4_SELF_ANY_TH) then is added (+):
+      + PRIMER_WT_SELF_ANY_TH *
+                  (PRIMER_RIGHT_4_SELF_ANY_TH - (PRIMER_RIGHT_4_TM - 5 - 1))
+    else if ((PRIMER_RIGHT_4_TM - 5) > PRIMER_RIGHT_4_SELF_ANY_TH) then is added (+):
+      + PRIMER_WT_SELF_ANY_TH *
+            (1/(PRIMER_RIGHT_4_TM - 5 + 1 - PRIMER_RIGHT_4_SELF_ANY_TH));
+    If ((PRIMER_RIGHT_4_TM - 5) ≤ PRIMER_RIGHT_4_SELF_END_TH) then is added (+):
+     + PRIMER_WT_SELF_END_TH *
+               (PRIMER_RIGHT_4_SELF_END_TH - (PRIMER_RIGHT_4_TM - 5 - 1))
+    else if ((PRIMER_RIGHT_4_TM - 5) > PRIMER_RIGHT_4_SELF_END_TH) then is added (+):
+     + PRIMER_WT_SELF_END_TH *
+               (1/(PRIMER_RIGHT_4_TM - 5 + 1 - PRIMER_RIGHT_4_SELF_ANY_TH));
+    If ((PRIMER_RIGHT_4_TM - 5) ≤ PRIMER_RIGHT_4_TEMPLATE_MISPRIMING_TH) then is added (+):
+      + PRIMER_WT_TEMPLATE_MISPRIMING_TH *
+       (PRIMER_RIGHT_4_TEMPLATE_MISPRIMING_TH - (PRIMER_RIGHT_4_TM - 5 - 1))
+    else if ((PRIMER_RIGHT_4_TM - 5) > PRIMER_RIGHT_4_TEMPLATE_MISPRIMING_TH) then is added (+):
+      + PRIMER_WT_TEMPLATE_MISPRIMING_TH *
+      (1/(PRIMER_RIGHT_4_TM - 5 + 1 - PRIMER_RIGHT_4_TEMPLATE_MISPRIMING_TH));
+    If ((PRIMER_RIGHT_4_TM - 5) ≤ PRIMER_RIGHT_4_HAIRPIN_TH) then is added (+):
+      + PRIMER_WT_HAIRPIN_TH *
+             (PRIMER_RIGHT_4_HAIRPIN_TH - (PRIMER_RIGHT_4_TM - 5 - 1))
+    else if ((PRIMER_RIGHT_4_TM - 5) > PRIMER_RIGHT_4_HAIRPIN_TH) then is added (+):
+      + PRIMER_WT_HAIRPIN_TH *
+            (1/(PRIMER_RIGHT_4_TM - 5 + 1 - PRIMER_RIGHT_4_HAIRPIN_TH));
+
+
+

Internal Oligos:

+
+PRIMER_INTERNAL_4_PENALTY =
+   If PRIMER_INTERNAL_4_TM > PRIMER_INTERNAL_OPT_TM then
+       this is added (+):
+       + PRIMER_INTERNAL_WT_TM_GT *
+            ( PRIMER_INTERNAL_4_TM - PRIMER_INTERNAL_OPT_TM )
+   If PRIMER_INTERNAL_4_TM < PRIMER_INTERNAL_OPT_TM then
+       this is added (+):
+       + PRIMER_INTERNAL_WT_TM_LT *
+            ( PRIMER_INTERNAL_OPT_TM - PRIMER_INTERNAL_4_TM )
+   If PRIMER_INTERNAL_4_GC_PERCENT > PRIMER_INTERNAL_OPT_GC_PERCENT
+       then this is added (+):
+       + PRIMER_INTERNAL_WT_GC_PERCENT_GT *
+            ( PRIMER_INTERNAL_4_GC_PERCENT -
+              PRIMER_INTERNAL_OPT_GC_PERCENT )
+   If PRIMER_INTERNAL_4_GC_PERCENT < PRIMER_INTERNAL_OPT_GC_PERCENT
+       then this is added (+):
+       + PRIMER_INTERNAL_WT_GC_PERCENT_LT *
+            ( PRIMER_INTERNAL_OPT_GC_PERCENT -
+              PRIMER_INTERNAL_4_GC_PERCENT )
+   The following section uses <primer length> as part of
+   the term which is given as output in
+   PRIMER_INTERNAL_4=position,<primer length>
+   If <primer length> > PRIMER_INTERNAL_OPT_SIZE then
+       this is added (+):
+       + PRIMER_INTERNAL_WT_SIZE_GT *
+            ( <primer length> - PRIMER_INTERNAL_OPT_SIZE )
+   If <primer length> < PRIMER_INTERNAL_OPT_SIZE then
+       this is added (+):
+       + PRIMER_INTERNAL_WT_SIZE_LT *
+            ( PRIMER_INTERNAL_OPT_SIZE - <primer length> )
+   These are always added (+) to the penalty:
+   (if the thermodynamic approach is used then the part in italic
+      is substituted with text below this calculation):
+  + PRIMER_INTERNAL_WT_SELF_ANY * PRIMER_INTERNAL_4_SELF_ANY
+     + PRIMER_INTERNAL_WT_SELF_END * PRIMER_INTERNAL_4_SELF_END
+     + PRIMER_INTERNAL_WT_NUM_NS *
+          <numbers of N in the selected primer>
+     + PRIMER_INTERNAL_WT_LIBRARY_MISHYB *
+          PRIMER_INTERNAL_4_LIBRARY_MISHYB
+     + PRIMER_INTERNAL_WT_SEQ_QUAL *
+          ( PRIMER_QUALITY_RANGE_MAX -
+            PRIMER_INTERNAL_4_MIN_SEQ_QUALITY )
+   If the thermodynamic approach is used then the part of italic in
+   the above calculation is replaced by this:
+
+   If ((PRIMER_INTERNAL_4_TM - 5) ≤ PRIMER_INTERNAL_4_SELF_ANY_TH) then is added (+):
+    + PRIMER_INTERNAL_WT_SELF_ANY_TH *
+        (PRIMER_INTERNAL_4_SELF_ANY_TH - (PRIMER_INTERNAL_4_TM - 5 - 1))
+    else if ((PRIMER_INTERNAL_4_TM - 5) > PRIMER_INTERNAL_4_SELF_ANY_TH) then is added (+):
+    + PRIMER_INTERNAL_WT_SELF_ANY_TH *
+        (1/(PRIMER_INTERNAL_4_TM - 5 + 1 - PRIMER_INTERNAL_4_SELF_ANY_TH));
+    If ((PRIMER_INTERNAL_4_TM - 5) ≤ PRIMER_INTERNAL_4_SELF_END_TH) then is added (+):
+     + PRIMER_INTERNAL_WT_SELF_END_TH *
+         (PRIMER_INTERNAL_4_SELF_END_TH - (PRIMER_INTERNAL_4_TM - 5 - 1))
+    else if ((PRIMER_INTERNAL_4_TM - 5) > PRIMER_INTERNAL_4_SELF_END_TH) then is added (+):
+      + PRIMER_INTERNAL_WT_SELF_END_TH *
+          (1/(PRIMER_INTERNAL_4_TM - 5 + 1 - PRIMER_INTERNAL_4_SELF_ANY_TH));
+    If ((PRIMER_INTERNAL_4_TM - 5) ≤ PRIMER_INTERNAL_4_HAIRPIN_TH) then is added (+):
+      + PRIMER_INTERNAL_WT_HAIRPIN_TH *
+        (PRIMER_INTERNAL_4_HAIRPIN_TH - (PRIMER_INTERNAL_4_TM - 5 - 1))
+    else if ((PRIMER_INTERNAL_4_TM - 5) > PRIMER_INTERNAL_4_HAIRPIN_TH) then is added (+):
+      + PRIMER_INTERNAL_WT_HAIRPIN_TH *
+        (1/(PRIMER_INTERNAL_4_TM - 5 + 1 - PRIMER_INTERNAL_4_HAIRPIN_TH));
+
+
+

+The primers are then sorted by penalty and Primer3 tries to pick +the primers with the lowest penalty. For the PRIMER_TASK +pick_primer_list or pick_sequencing_primers the selection ends at +this point. If primer pairs have to be selected, a +PRIMER_PAIR_4_PENALTY is calculated: +

+PRIMER_PAIR_4_PENALTY =
+   To the pair penalty are at first the single primer penalties
+   added (+):
+       + PRIMER_PAIR_WT_PR_PENALTY *
+            ( PRIMER_LEFT_4_PENALTY + PRIMER_RIGHT_4_PENALTY )
+   If internal oligo is picked then this is added (+):
+       + PRIMER_PAIR_WT_IO_PENALTY * PRIMER_INTERNAL_4_PENALTY
+   If PRIMER_PAIR_4_PRODUCT_TM > PRIMER_PRODUCT_OPT_TM then
+       this is added (+):
+       + PRIMER_PAIR_WT_PRODUCT_TM_GT *
+            ( PRIMER_PAIR_4_PRODUCT_TM - PRIMER_PRODUCT_OPT_TM )
+   If PRIMER_PAIR_4_PRODUCT_TM < PRIMER_PRODUCT_OPT_TM then
+       this is added (+):
+       + PRIMER_PAIR_WT_PRODUCT_TM_LT *
+            ( PRIMER_PRODUCT_OPT_TM - PRIMER_PAIR_4_PRODUCT_TM )
+   If PRIMER_PAIR_4_PRODUCT_SIZE > PRIMER_PRODUCT_OPT_SIZE then
+       this is added (+):
+       + PRIMER_PAIR_WT_PRODUCT_SIZE_GT *
+            ( PRIMER_PAIR_4_PRODUCT_SIZE - PRIMER_PRODUCT_OPT_SIZE )
+   If PRIMER_PAIR_4_PRODUCT_SIZE < PRIMER_PRODUCT_OPT_SIZE then
+       this is added (+):
+       + PRIMER_PAIR_WT_PRODUCT_SIZE_LT *
+            ( PRIMER_PRODUCT_OPT_SIZE - PRIMER_PAIR_4_PRODUCT_SIZE )
+   These are allways added (+) to the penalty:
+   (if the thermodynamic approach is used then the part in italic
+       is substituted with text below this calculation):
+     + PRIMER_PAIR_WT_DIFF_TM *
+          <difference in Tm between the left and the right primer>
+  + PRIMER_PAIR_WT_COMPL_ANY * PRIMER_PAIR_4_COMPL_ANY
+     + PRIMER_PAIR_WT_COMPL_END * PRIMER_PAIR_4_COMPL_END
+     + PRIMER_PAIR_WT_LIBRARY_MISPRIMING * PRIMER_PAIR_4_LIBRARY_MISPRIMING
+     + PRIMER_PAIR_WT_TEMPLATE_MISPRIMING *
+          PRIMER_PAIR_4_TEMPLATE_MISPRIMING
+     If the thermodynamic approach is used then the part of italic in
+     the above calculation is replaced by this:
+
+   If ((min(PRIMER_LEFT_4_TM,PRIMER_RIGHT_4_TM) - 5) ≤ PRIMER_PAIR_4_COMPL_ANY_TH) then is added (+):
+   + PRIMER_PAIR_WT_COMPL_ANY_TH *
+       (PRIMER_PAIR_4_COMPL_ANY_TH - (min(PRIMER_LEFT_4_TM,PRIMER_RIGHT_4_TM) - 5 - 1))
+  else if ((min(PRIMER_LEFT_4_TM,PRIMER_RIGHT_4_TM) - 5) > PRIMER_PAIR_4_COMPL_ANY_TH) then is added (+):
+   + PRIMER_PAIR_WT_COMPL_ANY_TH *
+      (1/(min(PRIMER_LEFT_4_TM,PRIMER_RIGHT_4_TM - 5 + 1 - PRIMER_PAIR_4_COMPL_ANY_TH));
+   If ((min(PRIMER_LEFT_4_TM,PRIMER_RIGHT_4_TM - 5) ≤ PRIMER_PAIR_4_COMPL_END_TH) then is added (+):
+   + PRIMER_PAIR_WT_COMPL_END_TH *
+       (PRIMER_PAIR_4_COMPL_END_TH - (min(PRIMER_LEFT_4_TM,PRIMER_RIGHT_4_TM) - 5 - 1))
+  else if ((min(PRIMER_LEFT_4_TM,PRIMER_RIGHT_4_TM - 5) > PRIMER_PAIR_4_COMPL_END_TH) then is added (+):
+    + PRIMER_PAIR_WT_COMPL_END_TH *
+         (1/(min(PRIMER_LEFT_4_TM,PRIMER_RIGHT_4_TM - 5 + 1 - PRIMER_PAIR_4_COMPL_ANY_TH));
+  If ((min(PRIMER_LEFT_4_TM,PRIMER_RIGHT_4_TM - 5) ≤ PRIMER_PAIR_4_TEMPLATE_MISPRIMING_TH) then is added (+):
+   + PRIMER_PAIR_WT_TEMPLATE_MISPRIMING_TH *
+    (PRIMER_PAIR_4_TEMPLATE_MISPRIMING_TH - (min(PRIMER_LEFT_4_TM,PRIMER_RIGHT_4_TM - 5 - 1))
+  else if ((min(PRIMER_LEFT_4_TM,PRIMER_RIGHT_4_TM - 5) > PRIMER_PAIR_4_TEMPLATE_MISPRIMING_TH) then is added (+):
+   + PRIMER_PAIR_WT_TEMPLATE_MISPRIMING_TH *
+     (1/(min(PRIMER_LEFT_4_TM,PRIMER_RIGHT_4_TM - 5 + 1 - PRIMER_PAIR_4_TEMPLATE_MISPRIMING_TH));
+
+
+

Primer3 tries to select pairs with the lowest penalty which +still fulfill all necessary requirements like non-redundancy or +product size limits.

+

19. PRIMER3 SETTINGS FILE FORMAT

+

Primer3 can read global settings from a text file at program +start up. This allows the user to save and exchange settings +tailored to special applications.
+
+Such a Primer3 settings file is a text file. The first three +lines of the file have to be as described below followed by tags +as they would be provided at standard input:

+
+Primer3 File - http://primer3.org
+P3_FILE_TYPE=settings
+P3_FILE_ID=Description of the settings
+SEQUENCE_TEMPLATE=ATG...
+...
+...
+...
+=
+
+

+In the first line "Primer3 File - http://primer3.org" +without tailing space. In the second line "P3_FILE_TYPE=settings". +Valid values for P3_FILE_TYPE are all_parameters, sequence and +settings. Up to now, only settings is supported. The third line +has to be empty. It is strongly advised to describe the settings +using the P3_FILE_ID tag. It will print the description of the +settings on the output. From the fourth line on regular +Boulder-IO can be used as it is used in regular input. It also +has to be terminated with a single "=". There can be only one +input per file.

+

20. OUTPUT TAGS

+

For each Boulder-IO record passed into Primer3 via stdin, exactly +one Boulder-IO record comes out of Primer3 on stdout. +If a settings file is provided and the option to echo the settings file is given +on the command line, then the contents of the settings file will also be +part of the output. Two additional tags are used to indicate where the +records of the settings file begin and end: P3_SETTINGS_FILE_USED specifies +the path to the settings file that was provided, P3_SETTINGS_FILE_END +does not have any value and it just indicates the end of the settings records.
+
+The 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.
+
+Tags are of the form PRIMER_{LEFT,RIGHT,INTERNAL,PAIR}_<j>_<tag_name> +where <j> is an integer from 0 to n, where n is at most the +value of PRIMER_NUM_RETURN. In the documentation the output +number 4 is shown as for example: PRIMER_LEFT_4_TM.
+
+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-correctable errors detected in the input +(separated by semicolons). This tag is absent if there are no +errors.

+

PRIMER_WARNING=s (*)

+

s lists warnings generated by Primer3` (separated by semicolons); +this tag is absent if there are no warnings.

+

PRIMER_LEFT_NUM_RETURNED=i

+

PRIMER_RIGHT_NUM_RETURNED=i

+

PRIMER_INTERNAL_NUM_RETURNED=i

+

PRIMER_PAIR_NUM_RETURNED=i

+

i is the number of primers +or primer pairs returned on standard output. +These tags are always generated under +IO version 4 if there are no internal errors and +if PRIMER_ERROR is not present.
+
+If primer pairs were requested, +PRIMER_LEFT_NUM_RETURNED and +PRIMER_RIGHT_NUM_RETURNED will be equal to the +number of pairs returned, even if the +actual number of distinct left or right primers +was lower than the number of pairs. If primer +pairs with internal oligos were requested, +PRIMER_INTERNAL_NUM_RETURNED will also be set +to the number of pairs returned.
+
+If only left or right primers or hybridization +(internal) oligos were requested, PRIMER_PAIR_NUM_RETURNED +will be 0 and only the relevant tag +will have a non-zero value. +For example, if only left primers were requested, +PRIMER_RIGHT_NUM_RETURNED, PRIMER_INTERNAL_NUM_RETURNED and +PRIMER_PAIR_NUM_RETURNED will be 0.
+
+Some tasks, such as pick_sequencing_primers or +pick_primer_list, return left and right primers +that are not parts of primer pairs. In this case +PRIMER_PAIR_NUM_RETURNED will be 0. +

+

PRIMER_LEFT_4_PROBLEMS=s (*)

+

PRIMER_INTERNAL_4_PROBLEMS=s (*)

+

PRIMER_RIGHT_4_PROBLEMS=s (*)

+

s lists the problems (constraint violations) associated +with the corresponding primer oligo.

+

PRIMER_LEFT_EXPLAIN=s (*)

+

PRIMER_INTERNAL_EXPLAIN=s (*)

+

PRIMER_RIGHT_EXPLAIN=s (*)

+

s is a (more or less) self-documenting string containing +statistics on the possibilities 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. +In some cases the ok count may be higher than the actual number +of ok oligos. This is because a primer can be considered as part of +pair before all of the primer's characteristics have been +computed and checked. If a primer is never in a legal +pair or never in a pair with a fully evaluated penalty, then +this may occur. This +situation never results in a primer pair that contains +an illegal primer. +

+

PRIMER_PAIR_EXPLAIN=s (*)

+

s is a self-documenting string containing statistics on picking a +primer pair (plus internal oligo if requested). For example

+
+PRIMER_PAIR_EXPLAIN=considered 81, unacceptable product size 49, no internal oligo 32, ok 0
+
+The purpose of this string is to provide information +in the case that not enough primer pairs are returned. This +information can be used, for example, to decide +which constraints to relax. In some cases the +information in this string can also give insight into +the causes of long running time. +The counts in the string are only approximate, +because of several reasons: +
    +
  • When there are multiple PRIMER_PRODUCT_SIZE_RANGEs, +a primer pair may not be ok in one size range but ok +in another. Approximately, the counts for each statistic +are summed over all product size ranges. +
  • +
  • When PRIMER_MIN_THREE_PRIME_DISTANCE +is > -1, the number of ok primer pairs +reported may be larger than the actual +number. The discrepancy is due to a primer +in the pair that would overlap a primer in a +'better' (lower penalty) pair. (The search +algorithm does not record state +that would allow it to detect +when a pair that was formerly ok becomes +not ok as the result of +another primer being inserted +into the output list before it is.) +
  • +
  • In some instances, +Primer3 will examine a primer pair before it +discovers that one of the individual +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_EXPLAIN has 'ok 0'. +
  • +
+

PRIMER_LEFT_4=i,n

+

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_INTERNAL_4=i,n

+

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_RIGHT_4=i,n

+

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_LEFT_4_SEQUENCE=s

+

PRIMER_INTERNAL_4_SEQUENCE=s

+

PRIMER_RIGHT_4_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_TEMPLATE (which must be presented 5' -> 3'). The +sequence of the right primer is presented 5' -> 3' on the +opposite strand from the input SEQUENCE_TEMPLATE.

+

PRIMER_PAIR_4_PRODUCT_SIZE=x

+

x is the product size of the PCR product.

+

PRIMER_LEFT_4_PENALTY=f

+

PRIMER_INTERNAL_4_PENALTY=f

+

PRIMER_RIGHT_4_PENALTY=f

+

The contribution of this individual primer or oligo to the +objective function.

+

PRIMER_PAIR_4_PENALTY=f

+

The value of the objective function for this pair (lower is better).

+

PRIMER_LEFT_4_TM=f

+

PRIMER_INTERNAL_4_TM=f

+

PRIMER_RIGHT_4_TM=f

+

The melting TM for the selected oligo.

+

PRIMER_PAIR_4_PRODUCT_TM=f

+

f is the melting temperature of the product. Calculated using +equation (iii) from 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://dx.doi.org/10.1093/nar/18.21.6409]. +Printed only if a non-default value of PRIMER_PRODUCT_MAX_TM or +PRIMER_PRODUCT_MIN_TM is specified.

+

PRIMER_PAIR_4_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_PRODUCT_MAX_TM or PRIMER_PRODUCT_MIN_TM is +specified.

+

PRIMER_PAIR_4_T_OPT_A=f

+

f is T sub a super OPT from equation (i) in [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://dx.doi.org/10.1093/nar/18.21.6409]. +Printed only if PRIMER_PRODUCT_MAX_TM or PRIMER_PRODUCT_MIN_TM is +specified.

+

PRIMER_LEFT_4_GC_PERCENT=f

+

PRIMER_INTERNAL_4_GC_PERCENT=f

+

PRIMER_RIGHT_4_GC_PERCENT=f

+

The percent GC for the selected oligo (denominator is the number +of non-ambiguous bases).

+

PRIMER_LEFT_4_SELF_ANY=f

+

PRIMER_INTERNAL_4_SELF_ANY=f

+

PRIMER_RIGHT_4_SELF_ANY=f

+

The calculated value for the tendency of a primer to bind to +itself (interfering with target sequence binding). It will score +ANY binding occurring within the entire primer sequence. For +details see PRIMER_MAX_SELF_ANY.
+The self-complementarity measures for the selected oligo.

+

PRIMER_LEFT_4_SELF_ANY_TH=f

+

PRIMER_INTERNAL_4_SELF_ANY_TH=f

+

PRIMER_RIGHT_4_SELF_ANY_TH=f

+

The calculated value for the tendency of a primer to bind to +itself (interfering with target sequence binding). It will calculate the +melting temperature for ANY binding occurring within the entire primer +sequence. For details see PRIMER_MAX_SELF_ANY_TH. +The self-complementarity measures for the selected oligo.

+

PRIMER_RIGHT_4_HAIRPIN_TH=f

+

The calculated value of melting temperature of hairpin structure of primer. + For details see PRIMER_MAX_HAIRPIN_TH

+

PRIMER_PAIR_4_COMPL_ANY=f

+

The calculated value for the tendency of a primer pair to bind to +each other (interfering with target sequence binding). It will +score ANY binding occurring within the entire primer sequence. +For details see PRIMER_MAX_SELF_ANY.
+The inter-pair complementarity measures over the complete primer +for selected left and right primer.

+

PRIMER_PAIR_4_COMPL_ANY_TH=f

+

The calculated value for the tendency of a primer pair to +bind to each other (interfering with target sequence binding). It will +calculate the melting temperature of ANY binding occurring within the entire +primer sequence. For details see PRIMER_MAX_SELF_ANY_TH. +The inter-pair complementarity measures over the complete primer for +selected left and right primer.

+

PRIMER_LEFT_4_SELF_END=f

+

PRIMER_INTERNAL_4_SELF_END=f

+

PRIMER_RIGHT_4_SELF_END=f

+

The calculated value for the tendency of the 3'-END to bind to a +identical primer. This is critical for primer quality because it +allows primers use itself as a target and amplify a short piece +(forming a primer-dimer). These primer are then unable to bind +and amplify the target sequence. For details see PRIMER_MAX_SELF_END.
+The self-complementarity measures for the ends of selected oligo.

+

PRIMER_LEFT_4_SELF_END_TH=f

+

PRIMER_INTERNAL_4_SELF_END_TH=f

+

PRIMER_RIGHT_4_SELF_END_TH=f

+

The calculated value for the tendency of the 3'-END to bind +to a identical primer. This is critical for primer quality because it allows +primers use itself as a target and amplify a short piece (forming a +primer-dimer). These primer are then unable to bind and amplify the target +sequence. For details see PRIMER_MAX_SELF_END_TH. +The self-complementarity measures for the ends of selected oligo.

+

PRIMER_LEFT_4_HAIRPIN_TH=f

+

The calculated value of melting temperature of hairpin +structure of primer. For details see PRIMER_MAX_HAIRPIN_TH

+

PRIMER_INTERNAL_4_HAIRPIN_TH=f

+

The calculated value of melting temperature of hairpin +structure of primer. For details see PRIMER_MAX_HAIRPIN_TH +

+

PRIMER_PAIR_4_COMPL_END=f

+

The calculated value for the tendency of the 3'-ENDs of a primer pair to bind to +each other. This is critical for primer quality because it +allows primers use itself as a target and amplify a short piece +(forming a primer-dimer). These primer are then unable to bind +and amplify the target sequence. For details see +PRIMER_MAX_SELF_END.
+The inter-pair complementarity measures for the ends of selected +left and right primer.

+

PRIMER_PAIR_4_COMPL_END_TH=f

+

The calculated value for the tendency of the 3'-ENDs of a +primer pair to bind to each other. This is critical for primer quality +because it allows primers use itself as a target and amplify a short piece +(forming a primer-dimer). These primer are then unable to bind and amplify +the target sequence. For details see PRIMER_MAX_SELF_END_TH. +The inter-pair complementarity measures for the ends of selected left and +right primer.

+

PRIMER_LEFT_4_END_STABILITY=f

+

PRIMER_RIGHT_4_END_STABILITY=f

+

f is the delta G of disruption of the five 3' bases of the +primer.

+

PRIMER_LEFT_4_TEMPLATE_MISPRIMING=f

+

PRIMER_RIGHT_4_TEMPLATE_MISPRIMING=f

+

PRIMER_PAIR_4_TEMPLATE_MISPRIMING=f

+

Analogous to PRIMER_{LEFT,RIGHT,PAIR}_LIBRARY_MISPRIMING, 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_LEFT_4_TEMPLATE_MISPRIMING_TH=f

+

PRIMER_RIGHT_4_TEMPLATE_MISPRIMING_TH=f

+

PRIMER_PAIR_4_TEMPLATE_MISPRIMING_TH=f

+

These output tags apply to mispriming within the template sequence and the calculation +method is based on thermodynamical approach. This often arises, for example, +in genes with repeated exons.

+

PRIMER_LEFT_4_LIBRARY_MISPRIMING=f, s

+

PRIMER_RIGHT_4_LIBRARY_MISPRIMING=f, s

+

PRIMER_PAIR_4_LIBRARY_MISPRIMING=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_MAX_LIBRARY_MISPRIMING is the maximum sum of +mispriming scores in any single library sequence (perhaps a +more reasonable estimator of the likelihood of mispriming).

+

PRIMER_INTERNAL_4_LIBRARY_MISHYB=f, s

+

f is the maximum mishybridization score for the right primer +against any sequence in the given +PRIMER_INTERNAL_MISHYB_LIBRARY; s is the id of +corresponding library sequence.

+

PRIMER_LEFT_4_MIN_SEQ_QUALITY=i

+

PRIMER_INTERNAL_4_MIN_SEQ_QUALITY=i

+

PRIMER_RIGHT_4_MIN_SEQ_QUALITY=i

+

i is the minimum _sequence_ quality within the primer +or oligo (not to be confused with the PRIMER_PAIR_4_PENALTY +output tag, which is really the value of the objective +function.)

+

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 SEQUENCE_START_CODON_POSITION with a +non-default value is supplied.

+

PRIMER_LEFT_4_POSITION_PENALTY=i

+

PRIMER_RIGHT_4_POSITION_PENALTY=i

+

i is the penalty of the primer by its +position.

+

21. EXAMPLE OUTPUT

+

You should run it yourself. Use the file 'example' +that came with this distribution +directory as input.

+

22. ADVICE FOR PICKING PRIMERS

+

We suggest consulting: Wojciech Rychlik (1993) "Selection of +Primers for Polymerase Chain Reaction" in BA White, Ed., "Methods +in Molecular Biology, Vol. 15: PCR Protocols: Current Methods and +Applications", pp 31-40, Humana Press, Totowa NJ.

+

23. 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://ftp.ncbi.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 SEQUENCE_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) +that output this information.

+

24. WHAT TO DO IF PRIMER3 CANNOT FIND ANY 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.

+

25. DIFFERENCES FROM EARLIER VERSIONS

+

The section HOW TO MIGRATE TAGS TO +IO VERSION 4 describes th modified tags in detail. +See also the file release_notes.txt in this directory. +

+

26. 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.

+

27. PRIMER3 WWW INTERFACES

+

There are two web interfaces available :
+The Bioinformatics workgroup at University of Tartu provides a basic +web-based interface to Primer3 named Primer3Web at +http://primer3.ut.ee/
+
+A Primer3Plus web services is at +http://primer3plus.com
+
+
+Web interface code is available +on GitHub: https://github.com/primer3-org.

+

28. ACKNOWLEDGMENTS

+

Initial 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), +but ongoing development and maintenance are not currently funded. +
+
+Primer3 was originally written by Helen J. Skaletsky (Howard Hughes +Medical Institute, Whitehead Institute) and Steve Rozen (Duke-NUS +Graduate Medical School Singapore, formerly at Whitehead Institute) +based on the design of earlier versions, notably Primer 0.5 +(Steve Lincoln, Mark Daly, and Eric S. Lander). +The original web interface was designed by Richard Resnick. Lincoln +Stein designed the Boulder-IO format in the days before XML and RDF, and +championed the idea of making Primer3 a software component, which +has been key to its wide utility.
+
+In addition, among others, Ernst Molitor, Carl Foeller, and James Bonfield +contributed to the early +design of Primer3. Brant Faircloth has helped with +ensuring that Primer3 runs on Windows and MacOS and with the +Primer3 web site. +Triinu Koressaar and Maido Remm modernized the melting +temperature calculations in 2008. +Triinu Koressaar added secondary structure, +primer-dimer, and template mispriming based on a thermodynamic +model in 2.2.0. +Ioana Cutcutache is responsible for most of the +remaining improvements +in 2.2.0, including performance enhancements, modern +command line arguments, and new input tags to +control primer location (with the "overlap junction" +tags initially implemented by Andreas Untergasser). +Jian Ye patiently provided new requirements.
+
+Harm Nijveen and Andreas Untergasser developed the webinterface +Primer3Plus in 2006-2009. Currently Primer3Plus is maintained by +Andreas Untergasser. +
+
+Primer3 is an open software development project hosted +on GitHub: https://github.com/primer3-org and +on SourceForge: http://sourceforge.net/projects/primer3/. +

+
+ + diff -Nru primer3-2.3.7/src/read_boulder.c primer3-2.4.0/src/read_boulder.c --- primer3-2.3.7/src/read_boulder.c 2016-02-17 10:11:38.000000000 +0000 +++ primer3-2.4.0/src/read_boulder.c 2017-11-03 16:29:54.000000000 +0000 @@ -42,6 +42,7 @@ #include /* memset, strlen, strcmp, ... */ #include #include "read_boulder.h" +#include "masker.h" #define INIT_BUF_SIZE 1024 #define INIT_LIB_SIZE 500 @@ -50,6 +51,8 @@ char *thermodynamic_params_path = NULL; int thermodynamic_path_changed = 1; +char *kmer_lists_path = NULL; + /* Static functions. */ static void *_rb_safe_malloc(size_t x); static void out_of_memory_error(); @@ -502,9 +505,9 @@ } if (COMPARE("P3_COMMENT")) continue; COMPARE_FLOAT("PRIMER_MAX_END_STABILITY", pa->max_end_stability); - COMPARE_INT("PRIMER_LOWERCASE_MASKING", - pa->lowercase_masking); + pa->lowercase_masking); + /* added by T. Koressaar */ COMPARE_INT("PRIMER_THERMODYNAMIC_OLIGO_ALIGNMENT", pa->thermodynamic_oligo_alignment); COMPARE_INT("PRIMER_THERMODYNAMIC_TEMPLATE_ALIGNMENT", pa->thermodynamic_template_alignment); @@ -522,6 +525,13 @@ thermodynamic_path_changed = 1; } continue; + } + if (COMPARE("PRIMER_MASK_KMERLIST_PATH")) { + if (kmer_lists_path == NULL) { + kmer_lists_path = (char*) _rb_safe_malloc(datum_len + 1); + strcpy(kmer_lists_path, datum); + } + continue; } /* added by A. Untergasser */ OVERWRITE_COMPARE_AND_MALLOC("PRIMER_MUST_MATCH_FIVE_PRIME", pa->p_args.must_match_five_prime); @@ -552,6 +562,8 @@ pa->p_args.weights.template_mispriming); COMPARE_FLOAT("PRIMER_WT_TEMPLATE_MISPRIMING_TH", pa->p_args.weights.template_mispriming_th); + COMPARE_FLOAT("PRIMER_WT_MASK_FAILURE_RATE", + pa->p_args.weights.failure_rate); COMPARE_FLOAT("PRIMER_INTERNAL_WT_TM_GT", pa->o_args.weights.temp_gt); COMPARE_FLOAT("PRIMER_INTERNAL_WT_TM_LT", pa->o_args.weights.temp_lt); COMPARE_FLOAT("PRIMER_INTERNAL_WT_GC_PERCENT_GT", pa->o_args.weights.gc_content_gt); @@ -597,6 +609,29 @@ pa->pr_pair_weights.template_mispriming); COMPARE_FLOAT("PRIMER_PAIR_WT_TEMPLATE_MISPRIMING_TH", pa->pr_pair_weights.template_mispriming_th); + if (COMPARE("PRIMER_MASK_TEMPLATE")) { + parse_int("PRIMER_MASK_TEMPLATE", datum, &pa->mask_template, parse_err); + pa->lowercase_masking = pa->mask_template; + pa->masking_parameters_changed = pa->mask_template; + continue; + } + COMPARE_FLOAT("PRIMER_MASK_FAILURE_RATE", pa->mp.failure_rate); + COMPARE_INT("PRIMER_MASK_5P_DIRECTION", pa->mp.nucl_masked_in_5p_direction); + COMPARE_INT("PRIMER_MASK_3P_DIRECTION", pa->mp.nucl_masked_in_3p_direction); + if (COMPARE("PRIMER_MASK_KMERLIST_PREFIX")) { + if(pa->mp.list_prefix == NULL){ + pa->mp.list_prefix = (char*) _rb_safe_malloc(datum_len + 1); + strcpy(pa->mp.list_prefix, datum); + pa->masking_parameters_changed = 1; + } else if (strcmp(pa->mp.list_prefix, datum)){ + free(pa->mp.list_prefix); + pa->mp.list_prefix = (char*) _rb_safe_malloc(datum_len + 1); + strcpy(pa->mp.list_prefix, datum); + pa->masking_parameters_changed = 1; + } + continue; + } + } /* End of reading the tags in the right place */ @@ -794,10 +829,10 @@ file_name); return ret_par; } - if (strcmp(line1, - "Primer3 File - http://primer3.sourceforge.net")) { + if ((strcmp(line1,"Primer3 File - http://primer3.org") != 0) && + (strcmp(line1,"Primer3 File - http://primer3.sourceforge.net") != 0)) { pr_append2(fatal_err, - "First line must be \"Primer3 File - http://primer3.sourceforge.net\" in ", + "First line must be \"Primer3 File - http://primer3.org\" in ", file_name); return ret_par; } @@ -854,7 +889,9 @@ pa, sa, fatal_err, nonfatal_err, warnings, read_boulder_record_res); - + if(pa->mask_template){ + pa->lowercase_masking=pa->mask_template; + } if (echo_output) printf("P3_SETTINGS_FILE_END=\n"); if (file) fclose(file); diff -Nru primer3-2.3.7/src/read_boulder.h primer3-2.4.0/src/read_boulder.h --- primer3-2.3.7/src/read_boulder.h 2016-02-17 10:11:38.000000000 +0000 +++ primer3-2.4.0/src/read_boulder.h 2017-11-03 16:29:54.000000000 +0000 @@ -52,6 +52,7 @@ extern char *thermodynamic_params_path; /* path to thermodynamic parameter files */ extern int thermodynamic_path_changed;/* if this is set to 1, we need to re-read the thermodynamic parameters from new path */ +extern char *kmer_lists_path; /* path to kmer lists files */ /* * Read data from file_input until a "=" line occurs. Assign diff -Nru primer3-2.3.7/src/release_notes.txt primer3-2.4.0/src/release_notes.txt --- primer3-2.3.7/src/release_notes.txt 2016-02-17 10:11:38.000000000 +0000 +++ primer3-2.4.0/src/release_notes.txt 2017-11-03 16:29:54.000000000 +0000 @@ -1,3 +1,57 @@ +release 2.4.0 2017-11-03 =============================================== +This release adds a new feature to primer3_core and related C code. + +PCR PRIMER DESIGN TEMPLATE MASKING BEFORE PRIMER DESIGN. This feature +helps to prevent designing primers to template regions that are repetitive. +Primers with more binding sites tend to have higher failure rates. The +masking is based on statistical model (see Documentation for details). + +NEW INPUT TAGS AND DEFAULT VALUES: +PRIMER_MASK_TEMPLATE=0 +PRIMER_FAILURE_RATE=0.1 +PRIMER_MASK_5P_DIRECTION=1 +PRIMER_MASK_3P_DIRECTION=1 +PRIMER_MASKING_LIST_PREFIX=homo_sapiens +PRIMER_WT_FAILURE_RATE=0.0 +PRIMER_KMER_LISTS_PATH=../kmer_lists/ + +See the documentation for details. The tag PRIMER_MASK_TEMPLATE directs +primer3_core to premask template sequence for primer design. + +NEW EXECUTABLE: primer3_masker + +masker masks repetitive regions in INPUTFILE (given as fasta and/or multiple +fasta format) based on statistical approach. + +IMPORTANT: because PRIMER_MASK_TEMPLATE=1, +PRIMER_KMER_LISTS_PATH must point to the right location. +This tag specifies the path to the directory that contains kmer list files +used by the template masking approach. The default location: ../kmer_lists/ If the +list files are not in that location, be sure to set +PRIMER_KMER_LISTS_PATH + +By default, directory ../kmer_lists/ contains example kmers. Software for +making kmers can be downloaded http://bioinfo.ut.ee/FastGT/index.php?r=site/index +Premade list files can be downloaded from: http://primer3.ut.ee/lists.htm + +In 2016: +Major correction: +1. The long primer3_core comand line options with single hyphen (-myargs) + are depreciated. Use double hyphens (--myargs) instead. + +2. The PRIMER_TASK pick_discriminative_primers was modified. Now the primer + border the provided SEQUENCE_TARGET and do not overlap by one basepair. + +Minor fixes: +1. The test scripts were updated to use the default valgrind path and to + use the --type comand line arguments instead of -type. + +2. In thal.c the function finite() was replaced by the c99 isfinite(). + +3. In libprimer3 all abort() functions were removed and error handling + implemented. + + release 2.3.7 2016-02-18 =============================================== Major correction: diff -Nru primer3-2.3.7/src/thal.c primer3-2.4.0/src/thal.c --- primer3-2.3.7/src/thal.c 2016-02-17 10:11:38.000000000 +0000 +++ primer3-2.4.0/src/thal.c 2017-11-03 16:29:54.000000000 +0000 @@ -101,7 +101,7 @@ #ifdef INTEGER # define isFinite(x) (x < _INFINITY / 2) #else -# define isFinite(x) finite(x) +# define isFinite(x) isfinite(x) #endif #define isPositive(x) ((x) > 0 ? (1) : (0)) @@ -129,9 +129,9 @@ const double TEMP_KELVIN = 310.15; const int MAX_LOOP = 30; /* the maximum size of loop that can be calculated; for larger loops formula must be implemented */ const int MIN_LOOP = 0; -static const char BASES[5] = {'A', 'C', 'G', 'T', 'N'}; /* bases to be considered - N is every symbol that is not A, G, C,$ - */ -static const char BASE_PAIRS[4][4] = {"A-T", "C-G", "G-C", "T-A" }; /* allowed basepairs */ +//static const char BASES[5] = {'A', 'C', 'G', 'T', 'N'}; /* bases to be considered - N is every symbol that is not A, G, C,$ +// */ +//static const char BASE_PAIRS[4][4] = {"A-T", "C-G", "G-C", "T-A" }; /* allowed basepairs */ /* matrix for allowed; bp 0 - no bp, watson crick bp - 1 */ static const int BPI[5][5] = { {0, 0, 0, 1, 0}, /* A, C, G, T, N; */ @@ -2617,7 +2617,7 @@ break; } done = 0; - if (i > 1 && j > 1 && equal(EntropyDPT(i,j), Ss(i - 1, j - 1, 1) + EntropyDPT(i - 1, j - 1))) { + if (i > 1 && j > 1 && equal(EntropyDPT(i,j), Ss(i - 1, j - 1, 1) + EntropyDPT(i - 1, j - 1)) && equal(EnthalpyDPT(i,j), Hs(i - 1, j - 1, 1) + EnthalpyDPT(i - 1, j - 1))) { i = i - 1; j = j - 1; ps1[i - 1] = j; @@ -2843,7 +2843,7 @@ return a == b; #endif - if (!finite(a) || !finite(b)) + if (!isfinite(a) || !isfinite(b)) return 0; return fabs(a - b) < 1e-5; diff -Nru primer3-2.3.7/test/cmdline_test.pl primer3-2.4.0/test/cmdline_test.pl --- primer3-2.3.7/test/cmdline_test.pl 2016-02-17 10:11:36.000000000 +0000 +++ primer3-2.4.0/test/cmdline_test.pl 2017-11-03 16:29:54.000000000 +0000 @@ -114,10 +114,14 @@ exit -1; } - my $valgrind_exe = "/usr/local/bin/valgrind"; + my $valgrind_exe = "/usr/bin/valgrind"; my $log_file_arg_for_valgrind = "--log-file-exactly"; if ($do_valgrind) { - if (!-x $valgrind_exe) { + if (!-x $valgrind_exe) { + print "Cannot find $valgrind_exe; will try `/usr/local/bin/valgrind`\n"; + $valgrind_exe = "/usr/local/bin/valgrind"; + } + if (!-x $valgrind_exe) { warn "Cannot find $valgrind_exe; will try `which valgrind`\n"; $valgrind_exe= `which valgrind`; chomp($valgrind_exe); @@ -162,19 +166,19 @@ # Test 1 : check '-output' and 'input_file' $valgrind_prefix = $do_valgrind ? sprintf $valgrind_format, 'cmd_test1' : ''; - $cmd = "$valgrind_prefix$exe -default_version=1 --strict -o cmd_test1.tmp $input"; + $cmd = "$valgrind_prefix$exe --default_version=1 --strict --output=cmd_test1.tmp $input"; $exit_stat = runtest(1, $cmd, $output, 0); # Test 2 : check '> output' and '< input_file' $valgrind_prefix = $do_valgrind ? sprintf $valgrind_format, 'cmd_test2' : ''; - $cmd = "$valgrind_prefix$exe -default_version=1 -st > cmd_test2.tmp < $input"; + $cmd = "$valgrind_prefix$exe --default_version=1 --st > cmd_test2.tmp < $input"; $exit_stat = runtest(2, $cmd, $output, 0); # Test 3 : check incorrect flag and '-error_file' $valgrind_prefix = $do_valgrind ? sprintf $valgrind_format, 'cmd_test3' : ''; - $cmd = "$valgrind_prefix$exe -flag -err=cmd_test3.tmp < $input"; + $cmd = "$valgrind_prefix$exe --flag --err=cmd_test3.tmp < $input"; $exit_stat = runtest(3, $cmd, 'cmd_test3_output', 255); # Test 4 : check nonexistent input file and '2> error_file' @@ -186,7 +190,7 @@ # Test 5 : check that io_version=3 fails $valgrind_prefix = $do_valgrind ? sprintf $valgrind_format, 'cmd_test5' : ''; - $cmd = "$valgrind_prefix$exe -io_version=3 2> cmd_test5.tmp"; + $cmd = "$valgrind_prefix$exe --io_version=3 2> cmd_test5.tmp"; $exit_stat = runtest(5, $cmd, 'cmd_test5_output', 255); # ================================================== @@ -224,7 +228,7 @@ my ($i, $cmd, $output, $exit) = @_; print "Test $i... "; - + $r = _nowarn_system($cmd); if ($winFlag) { $r = $r >> 8; diff -Nru primer3-2.3.7/test/cmd_test3_output primer3-2.4.0/test/cmd_test3_output --- primer3-2.3.7/test/cmd_test3_output 2016-02-17 10:11:37.000000000 +0000 +++ primer3-2.4.0/test/cmd_test3_output 2017-11-03 16:29:54.000000000 +0000 @@ -1,6 +1,5 @@ -Copyright (c) 1996,1997,1998,1999,2000,2001,2004,2006,2007,2008 - 2009,2010,2011,2012 +Copyright (c) 1996-2017 Whitehead Institute for Biomedical Research, Steve Rozen (http://purl.com/STEVEROZEN/), Andreas Untergasser and Helen Skaletsky All rights reserved. @@ -37,7 +36,7 @@ -USAGE: ../src/primer3_core [-format_output] [-default_version=1|-default_version=2] [-io_version=4] [-p3_settings_file=] [-echo_settings_file] [-strict_tags] [-output=] [-error=] [input_file] +USAGE: ../src/primer3_core [--format_output] [--default_version=1|--default_version=2] [--io_version=4] [--p3_settings_file=] [--echo_settings_file] [--strict_tags] [--output=] [--error=] [input_file] This is primer3 (libprimer3 release 2.3.5) Input can also be provided on standard input. For example: diff -Nru primer3-2.3.7/test/cmd_test5_output primer3-2.4.0/test/cmd_test5_output --- primer3-2.3.7/test/cmd_test5_output 2016-02-17 10:11:36.000000000 +0000 +++ primer3-2.4.0/test/cmd_test5_output 2017-11-03 16:29:54.000000000 +0000 @@ -1,6 +1,5 @@ -Copyright (c) 1996,1997,1998,1999,2000,2001,2004,2006,2007,2008 - 2009,2010,2011,2012 +Copyright (c) 1996-2017 Whitehead Institute for Biomedical Research, Steve Rozen (http://purl.com/STEVEROZEN/), Andreas Untergasser and Helen Skaletsky All rights reserved. @@ -37,7 +36,7 @@ -USAGE: ../src/primer3_core [-format_output] [-default_version=1|-default_version=2] [-io_version=4] [-p3_settings_file=] [-echo_settings_file] [-strict_tags] [-output=] [-error=] [input_file] +USAGE: ../src/primer3_core [--format_output] [--default_version=1|--default_version=2] [--io_version=4] [--p3_settings_file=] [--echo_settings_file] [--strict_tags] [--output=] [--error=] [input_file] This is primer3 (libprimer3 release 2.3.5) Input can also be provided on standard input. For example: diff -Nru primer3-2.3.7/test/dpal_test.pl primer3-2.4.0/test/dpal_test.pl --- primer3-2.3.7/test/dpal_test.pl 2016-02-17 10:11:35.000000000 +0000 +++ primer3-2.4.0/test/dpal_test.pl 2017-11-03 16:29:54.000000000 +0000 @@ -53,7 +53,7 @@ our %signo; -our $valgrind_exe = "/usr/local/bin/valgrind"; +our $valgrind_exe = "/usr/bin/valgrind"; our $valgrind_format; our $winFlag; our $exe = '../src/ntdpal'; @@ -113,12 +113,18 @@ exit -1; } - if ((!-x $valgrind_exe) && ($do_valgrind)) { - warn "Cannot find $valgrind_exe; will try `which valgrind`\n"; - $valgrind_exe= `which valgrind`; - chomp($valgrind_exe); - if (!$valgrind_exe || ! -x $valgrind_exe) { - die "Cannot execute $valgrind_exe"; + if ($do_valgrind) { + if (!-x $valgrind_exe) { + print "Cannot find $valgrind_exe; will try `/usr/local/bin/valgrind`\n"; + $valgrind_exe = "/usr/local/bin/valgrind"; + } + if (!-x $valgrind_exe) { + warn "Cannot find $valgrind_exe; will try `which valgrind`\n"; + $valgrind_exe= `which valgrind`; + chomp($valgrind_exe); + if (!$valgrind_exe || ! -x $valgrind_exe) { + die "Cannot execute $valgrind_exe"; + } } } diff -Nru primer3-2.3.7/test/Makefile primer3-2.4.0/test/Makefile --- primer3-2.3.7/test/Makefile 2016-02-17 10:11:36.000000000 +0000 +++ primer3-2.4.0/test/Makefile 2017-11-03 16:29:54.000000000 +0000 @@ -44,7 +44,7 @@ TESTOPTS = -test: makeexes testcmdline testtm testdpal testthal testcore +test: makeexes testcmdline testtm testdpal testthal testmasker testcore echo; echo; echo "Testing completed. You must check the test output for the string FAILED"; echo; echo; testcmdline: @@ -75,6 +75,13 @@ echo; echo; echo 'TESTING THERMODYNAMIC ALIGNMENT CALCS'; echo; perl thal_test.pl $(TESTOPTS); endif +testmasker: +ifeq ($(TESTOPTS),--windows) + echo 'TESTING MASKER' & perl masker_test.pl $(TESTOPTS) +else + echo; echo; echo 'TESTING MASKER'; echo; perl masker_test.pl $(TESTOPTS); +endif + testtm: ifeq ($(TESTOPTS),--windows) perl oligotm_test.pl $(TESTOPTS) @@ -123,9 +130,11 @@ -rm -f oligotm.*.valg # valgrind output from oligotm_test.pl --valgrind -rm -f ntdpal.*.valg # valgrind output from dpal_test.pl --valgrind -rm -f ntthal.*.valg # valgrind output from thal_test.pl --valgrind + -rm -f masker.*.valg # valgrind output from thal_test.pl --valgrind -rm -f oligotm.*.valg.* # valgrind output from oligotm_test.pl --valgrind -rm -f ntdpal.*.valg.* # valgrind output from dpal_test.pl --valgrind -rm -f ntthal.*.valg.* # valgrind output from thal_test.pl --valgrind + -rm -f masker.*.valg.* # valgrind output from masker_test.pl --valgrind -rm -f *.vg */*.vg # valgrind output from p3test{,z}.pl --valgrind -rm -f *.vg.core.* # core files from crashed valgrind test -rm -f ./core # in case we crashed and left a core file diff -Nru primer3-2.3.7/test/masker.fna primer3-2.4.0/test/masker.fna --- primer3-2.3.7/test/masker.fna 1970-01-01 00:00:00.000000000 +0000 +++ primer3-2.4.0/test/masker.fna 2017-11-03 16:29:54.000000000 +0000 @@ -0,0 +1,47 @@ +>AB769665.1 Eimeria zuernii genes for 18S rRNA, internal transcribed spacer 1, 5.8S rRNA, internal transcribed spacer 2 and 28S rRNA, partial and complete sequence, isolate: 4-1 +AGTAGTCATTATGCTTGTCTCAAAGATTAAGCCATGCATGTCTAAGTATAAGCTTTTATACGGTGAAACT +GCGAATGGCTCATTAAAACAGTTATAGTTTATTTGATGGTCTCTTCTTACATGGATAACCATGGTAATTC +TATGGCTAATACATGCGCAAATGCCTCCTTCTCTGGAGGGGCTGTGTTTATTAGATACAAAACCAACCCA +CTTTTGTGGAGTCCTGGTGATTCATAGTAACCAAACGGATCGCATTTGGCTTCGGCCCGCGATGGATCTT +TCAAGTTTCTGACCTATCAGCTTTCGACGGTAGGGTATTGGCCTACCGTGGCAGTGACGGGTAACGGGGA +ATTAGGGTTCGATTCCGGAGAGGGAGCCTGAGAAACGGCTACCACATCTAAGGAAGGCAGCAGGCGCGCA +AATTACCCAATGAAAACAGTTTCGAGGTAGTGACGAGAAATAACAATACAGGGCATTTTATGCTCTGTAA +TTGGAATGATGGGAATGTAAAACCCTTCCAGAGTAACAATTGGAGGGCAAGTCTGGTGCCAGCAGCCGCG +GTAATTCCAGCTCCAATAGTGTATATTAGAGTTGTTGCAGTTAAAAAGCTCGTAGTTGGATTTCTGCTGT +GGTCATCCGGTACCGCCCGTATGGGTGCGCACCTGGTTTGGCTCCGGCTTTCTTCCTGTAGCCGTCCGCG +CTTAATTGCGTGTACTGTGTTACGGAACTTTTACTTTGAGAAAAATAGAGTGTTTCAAGCAGGCTTGTCG +CCCTGAATACTTCAGCATGGAATAATAGGATAGGACCTTGGTTCTATTTTGTTGGTTTCTAGGACCAAGG +TAATGATTAATAGGGACAGTTGGGGGCATTCGTATTTAACTGTCAGAGGTGAAATTCTTAGATTTGTTAA +AGACGAACTACTGCGAAAGCATTTGCCAAGGATGTTTTCATTAATCAAGAACGACAGTAGGGGGTTTGAA +GACGATTAGATACCGTCGTAATCTCTACCATAAACTATGCCGACTAGAGATAGGGAAATGCCTACCTTGG +CTTCTCCTGCACCTCATGAGAAATCAAAGTCTCTGGGTTCTGGGGGGAGTATGGTCGCAAGGCTGAAACT +TAAAGGAATTGACGGAAGGGCACCACCAGGCGTGGAGCCTGCGGCTTAATTTGACTCAACACGGGGAAAC +TCACCAGGTCCAGACATGGGAAGGATTGACAGATTGATAGCTCTTTCTTGATTCTATGGGTGGTGGTGCA +TGGCCGTTCTTAGTTGGTGGAGTGATCTGTCTGGTTAATTTCGATAACGAACGAGACCTTAGCCTGCTAA +ATAGGATCGGGAACTACGGTTCTCGTATCACTTCTTAGAGGGACTTTGCGTGTCTAACGCAAGGAAGTTT +GAGGCAATAACAGGTCTGTGATGCCCTTAGATGTTCTGGGCTGCACGCGCGCTACACTGATGCATGCAAC +GAGTTCTTGACCTTGGCCGGAAGGTCTAGGTAATCTTTTGAGTGTGCATCGTGATGGGGATAGATTATTG +CAATTATTAATCTTCAACGAGGAATGCCTAGTAGGCGTAAGTCAGCAGCTTGCGCCGATTACGTCCCTGC +CCTTTGTACACACCGCCCGTCGCTGCAACCGATCGGAGGGTCCTGTGAACTCAATGGACTGACCAACTCC +CTTCGGGGGTTGGTCGGAAAGTTGCGTAAATAGAGCCCTCTAAAGGATGCAAAAGTCGTAACACGGTTTC +CGTAGGTGAACCTGCGGAAGGATCATTCACACATTCAAAATAGTTTTGGAATGCTTCTGGGTAACATGTT +TCTACCCACTACATCCAACCTCCTGATAGTTGGTTGGCCTGTTGTGGATAGTTACTGTTGTGTTTGTTCC +CTTATGGCATTTCCAAGACTGTGGTCTTATAAAAAACCTCACCACAAAACCCTGTAAACTATTGATTCTT +TCAGTTCCGGTTTTTTTTTTATTTAAAAAAAAAAACTGGCCCCACAACGTCTTCTTTCCTGTTAAATATT +TTTTGTTTATGTTTGCAATAATCTGCGTTATGGGTGATGATGACATATTTTAAGGTTTTTTCCTTTGCGG +TTTTTTGGCCGCAAAGGATATATTTATTACCTTAAATTGTTGTCCTCCTCCTTATCGCGGTTATTTCTTT +CATTAAAGTAGAAAAACTTTCAGCAATGATGTCTGCTCGTGCATCGATGAAGACGCAGCGAAATGCGATA +CGCATTGTGAATTGCAGATTTCAGTGAACCATCAGATTTCCGAACGCATATGGCGCTGTGGGGACTTCCC +CGCAGCACGTCTGTTTCAGTGTCTTTTAAACTACACTTCAAATACACCGCCACGTTTTATAAAGAAAAAA +GTGTAACGGCAGTTTTGATACTCTTGCTTGTGTCAATGAATTGTCGCTTGCATGTATTTTTTTTTTTAAA +CGCTTTGCGGTATTTTTTGGGTGTCGATATCTGTGATGGTGTCGTCTCCTTAAATTTGTTGAATTCTACA +TGTTTCATGCCTTCTCTTCTGGCACTGTGTGTTAGAAGTGAAGGTATTGTTGTTGTTGTATGAATGGCTT +TTAATAATACAAACCCATATCCTTTCTTCTCCTGAAAGAGATAAGGTGGATGGATTATAAATATATTCTC +CTTATGTATATCTCATATTTTGGGAGTTTGGTGAAGAGCTGTGATGGCGTTGTGTATGGATTAAGCATTA +TTCTTTGGTTGGTGATGATGAAAAGACAGACACTTCTGTCACACCGTCGTCGCCCGCTAGATGATAATGC +TTTTCTCCTATCATATAAGCCACAAGCAAAGATACCATTATATAAAGGAATGAGTATGTTTTATTTAGCC +ATAAAAAAGAAATACAACAACAAGTCAGAATAATATAGCAACGCAATCAAAAGAGAAGAGCGTATTATTA +TAACGATTGTTATATATTATTTATTGCTCTCTCATATATCTATCTAGACCTGAAATCAGTCGAGGATACC +CGCTGAATTTAAGCATATTATTAAGCGGAGGAAAAGAAAATAACTATGATTCCCTCAGTAACGGCGAGTG +AAGAGGGAGGTGCTCAAAGTGAAAATCGTGGTACCTCTTATGGTACCGCGAGTTGTAGCCTCTAGAGGCG +T diff -Nru primer3-2.3.7/test/masker_input primer3-2.4.0/test/masker_input --- primer3-2.3.7/test/masker_input 1970-01-01 00:00:00.000000000 +0000 +++ primer3-2.4.0/test/masker_input 2017-11-03 16:29:54.000000000 +0000 @@ -0,0 +1,22 @@ +../test/masker.fna +-l ../kmer_lists/homo_sapiens_11.list ../test/masker.fna +-lp ../kmer_lists/homo_sapiens ../test/masker.fna +-p 0 ../test/masker.fna +-p 1 ../test/masker.fna +-p 1.1 ../test/masker.fna +-p 100 ../test/masker.fna +-a 5 -l ../kmer_lists/homo_sapiens_11.list ../test/masker.fna +-a 0 -l ../kmer_lists/homo_sapiens_11.list ../test/masker.fna +-m3 10 -l ../kmer_lists/homo_sapiens_16.list ../test/masker.fna +-m3 1 -l ../kmer_lists/homo_sapiens_16.list ../test/masker.fna +-m3 1000 -l ../kmer_lists/homo_sapiens_16.list ../test/masker.fna +-m5 10 -l ../kmer_lists/homo_sapiens_16.list ../test/masker.fna +-m5 0 -l ../kmer_lists/homo_sapiens_16.list ../test/masker.fna +-m5 1000 -l ../kmer_lists/homo_sapiens_16.list ../test/masker.fna +-c A -l ../kmer_lists/homo_sapiens_16.list ../test/masker.fna +-c AA -l ../kmer_lists/homo_sapiens_16.list ../test/masker.fna +-c T -l ../kmer_lists/homo_sapiens_16.list ../test/masker.fna +-c \* -l ../kmer_lists/homo_sapiens_16.list ../test/masker.fna +-c \- -l ../kmer_lists/homo_sapiens_16.list ../test/masker.fna +-c \. -l ../kmer_lists/homo_sapiens_16.list ../test/masker.fna +-c \, -l ../kmer_lists/homo_sapiens_16.list ../test/masker.fna \ No newline at end of file diff -Nru primer3-2.3.7/test/masker_output primer3-2.4.0/test/masker_output --- primer3-2.3.7/test/masker_output 1970-01-01 00:00:00.000000000 +0000 +++ primer3-2.4.0/test/masker_output 2017-11-03 16:29:54.000000000 +0000 @@ -0,0 +1,907 @@ +>AB769665.1 Eimeria zuernii genes for 18S rRNA, internal transcribed spacer 1, 5.8S rRNA, internal transcribed spacer 2 and 28S rRNA, partial and complete sequence, isolate: 4-1 +AGTAGTCATTATGCTTGTCTCAAAGATTAAGCCATGCATGTCTAAGTATAAGCTTTTATACGGTGAAACT +GCGAATGGCTCATTAAAACAGTTATAGTTTATTTGATGGTCTCTTCTTACATGGATAACCATGGTAATTC +TATGGCTAATACATGCGCAAATGCCTCCTTCTCTGGAGGGGCTGTGTTTATTAGATACAAAACCAACCCA +CTTTTGTGGAGTCCTGGTGATTCATAGTAACCAAACGGATCGCATTTGGCTTCGGCCCGCGATGGATCTT +TCAAGTTTCTGACCTATCAGCTTTCGACGGTAGGGTATTGGCCTACCGTGGCAGTGACGGGTAACGGGGA +ATTAGGGTTCGATTCCGGAGAGGGAGCCTGAGAAACGGCTACCACATCTAAGGAAGGCAGCAGGCGCGCA +AATTACCCAATGAAAACAGTTTCGAGGTAGTGACGAGAAATAACAATACAGGGCATTTTATGCTCTGTAA +TTGGAATGATGGGAATGTAAAACCCTTCCAGAGTAACAATTGGAGGGCAAGTCTGGTGCCAGCAGCCGCG +GTAATTCCAGCTCCAATAGTGTATATTAGAGTTGTTGCAGTTAAAAAGCTCGTAGTTGGATTTCTGCTGT +GGTCATCCGGTACCGCCCGTATGGGTGCGCACCTGGTTTGGCTCCGGCTTTCTTCCTGTAGCCGTCCGCG +CTTAATTGCGTGTACTGTGTTACGGAACTTTTACTTTGAGAAAAATAGAGTGTTTCAAGCAGGCTTGTCG +CCCTGAATACTTCAGCATGGAATAATAGGATAGGACCTTGGTTCTATTTTGTTGGTTTCTAGGACCAAGG +TAATGATTAATAGGGACAGTTGGGGGCATTCGTATTTAACTGTCAGAGGTGAAATTCTTAGATTTGTTAA +AGACGAACTACTGCGAAAGCATTTGCCAAGGATGTTTTCATTAATCAAGAACGACAGTAGGGGGTTTGAA +GACGATTAGATACCGTCGTAATCTCTACCATAAACTATGCCGACTAGAGATAGGGAAATGCCTACCTTGG +CTTCTCCTGCACCTCATGAGAAATCAAAGTCTCTGGGTTCTGGGGGGAGTATGGTCGCAAGGCTGAAACT +TAAAGGAATTGACGGAAGGGCACCACCAGGCGTGGAGCCTGCGGCTTAATTTGACTCAACACGGGGAAAC +TCACCAGGTCCAGACATGGGAAGGATTGACAGATTGATAGCTCTTTCTTGATTCTATGGGTGGTGGTGCA +TGGCCGTTCTTAGTTGGTGGAGTGATCTGTCTGGTTAATTTCGATAACGAACGAGACCTTAGCCTGCTAA +ATAGGATCGGGAACTACGGTTCTCGTATCACTTCTTAGAGGGACTTTGCGTGTCTAACGCAAGGAAGTTT +GAGGCAATAACAGGTCTGTGATGCCCTTAGATGTTCTGGGCTGCACGCGCGCTACACTGATGCATGCAAC +GAGTTCTTGACCTTGGCCGGAAGGTCTAGGTAATCTTTTGAGTGTGCATCGTGATGGGGATAGATTATTG +CAATTATTAATCTTCAACGAGGAATGCCTAGTAGGCGTAAGTCAGCAGCTTGCGCCGATTACGTCCCTGC +CCTTTGTACACACCGCCCGTCGCTGCAACCGATCGGAGGGTCCTGTGAACTCAATGGACTGACCAACTCC +CTTCGGGGGTTGGTCGGAAAGTTGCGTAAATAGAGCCCTCTAAAGGATGCAAAAGTCGTAACACGGTTTC +CGTAGGTGAACCTGCGGAAGGATCATTCACACATTCAAAATAGTTTTGGAATGCTTCTGGGTAACATGTT +TCTACCCACTACATCCAACCTCCTGATAGTTGGTTGGCCTGTTGTGGATAGTTACTGTTGTGTTTGTTCC +CTTATGGCATTTCCAAGACTGTGGTCTTATAAAAAACCTCACCACAAAACCCTGTAAACTATTGATTCTT +TCAGTTCCGGTTTTTTTTTTATTTAAAAAAAAAAACTGGCCCCACAACGTCTTCTTTCCTGTTAAATATT +TTTTGTTTATGTTTGCAATAATCTGCGTTATGGGTGATGATGACATATTTTAAGGTTTTTTCCTTTGCGG +TTTTTTGGCCGCAAAGGATATATTTATTACCTTAAATTGTTGTCCTCCTCCTTATCGCGGTTATTTCTTT +CATTAAAGTAGAAAAACTTTCAGCAATGATGTCTGCTCGTGCATCGATGAAGACGCAGCGAAATGCGATA +CGCATTGTGAATTGCAGATTTCAGTGAACCATCAGATTTCCGAACGCATATGGCGCTGTGGGGACTTCCC +CGCAGCACGTCTGTTTCAGTGTCTTTTAAACTACACTTCAAATACACCGCCACGTTTTATAAAGAAAAAA +GTGTAACGGCAGTTTTGATACTCTTGCTTGTGTCAATGAATTGTCGCTTGCATGTATTTTTTTTTTTAAA +CGCTTTGCGGTATTTTTTGGGTGTCGATATCTGTGATGGTGTCGTCTCCTTAAATTTGTTGAATTCTACA +TGTTTCATGCCTTCTCTTCTGGCACTGTGTGTTAGAAGTGAAGGTATTGTTGTTGTTGTATGAATGGCTT +TTAATAATACAAACCCATATCCTTTCTTCTCCTGAAAGAGATAAGGTGGATGGATTATAAATATATTCTC +CTTATGTATATCTCATATTTTGGGAGTTTGGTGAAGAGCTGTGATGGCGTTGTGTATGGATTAAGCATTA +TTCTTTGGTTGGTGATGATGAAAAGACAGACACTTCTGTCACACCGTCGTCGCCCGCTAGATGATAATGC +TTTTCTCCTATCATATAAGCCACAAGCAAAGATACCATTATATAAAGGAATGAGTATGTTTTATTTAGCC +ATAAAAAAGAAATACAACAACAAGTCAGAATAATATAGCAACGCAATCAAAAGAGAAGAGCGTATTATTA +TAACGATTGTTATATATTATTTATTGCTCTCTCATATATCTATCTAGACCTGAAATCAGTCGAGGATACC +CGCTGAATTTAAGCATATTATTAAGCGGAGGAAAAGAAAATAACTATGATTCCCTCAGTAACGGCGAGTG +AAGAGGGAGGTGCTCAAAGTGAAAATCGTGGTACCTCTTATGGTACCGCGAGTTGTAGCCTCTAGAGGCG +T +>AB769665.1 Eimeria zuernii genes for 18S rRNA, internal transcribed spacer 1, 5.8S rRNA, internal transcribed spacer 2 and 28S rRNA, partial and complete sequence, isolate: 4-1 +NNNNNNNATNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTTNNNNNNNGTGAANNN +GNGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNGNNNNNNNNNGNNNNNNNNNGGNTCNNNNTTGGCTNNNNCCCGCNNNNNNNNNN +NNNNNNNNNNNNNNNNNCNNCNNNNGACGNTNNNGNATTNGNNNANCNNGGCAGTGANNGGTAACGNNNN +ATTAGNNNNNGATTCNNGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNAGGTAGTGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNCN +NNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNANNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNTNNGGTACCGCCCGTANNNNTNCNCNNNNNNNTNGNNNNCNNNNNNNNTCNNNNNNNNGTCCGCG +CTTAATTGCNNNNNCTGTGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNGNNNGNANNNNNANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTNNN +NNNNNAACTACTGCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNANNNNANNNGGNNNGAN +NNCGNTTAGATACCGTCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGAGTNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNGANNNNNACNNNNNNNNNTNNNNCCTNNNGNNNNNNNNNANNNNNNNNNNNNNNNN +TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNGNNCNNNNNNNNNGNNNNNNNNNNNNNNGNNNNNNNNGANAACGAACNNNNNCNNNNNNNNNNNN +NNNNGATNGGGAACTACGGTTCTCNNNNNNNNNNNNNNNNNNNNNTNGNGNGTCTAACNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNANGCGCNNNNNNNNNNNNNNNNNNNN +NNNNNNNNGNNNNNNNNNNGAAGGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNGGNATGCCNNGTNGGCNNNNNNCAGCNNNNNNCGCCGATTACNNNNNNNN +NNNNNNNNNNNNNNGCCCGNCGCTGCAACNGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNANNNN +NNNNNGGGGTTGGTCGGNAAGTTNCNNNNNTAGNGNNNNNNNNNNNNNNNNNNNNNNGTNACACGGNNTN +CGNNGGNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNTTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +TTNTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGCATCGATNAAGACGCAGNGAAATGCGATA +CNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGNNNNNNGAACGCATATGGCNNNNNGGGGNNNNNNC +CGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNCTTTGNNNNNNNNTTNNNNNNNNNNNNNNNNTGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTNNGNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGTCGTCGCCCNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNANNNNNNNNNNNNTTATTA +TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGANGATACC +CNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGNNACGGCNNNNN +NNNNNNNNNNNNNNNNNNGNNNNNNNNNNGNTNCCTNNNANGNTACNGCGAGNNNNNNNNTCNNNNNNNN +T +>AB769665.1 Eimeria zuernii genes for 18S rRNA, internal transcribed spacer 1, 5.8S rRNA, internal transcribed spacer 2 and 28S rRNA, partial and complete sequence, isolate: 4-1 +AGTAGTCATTATGCTTGTCTCAAAGATTAAGCCATGCATGTCTAAGTATAAGCTTTTATACGGTGAAACT +GCGAATGGCTCATTAAAACAGTTATAGTTTATTTGATGGTCTCTTCTTACATGGATAACCATGGTAATTC +TATGGCTAATACATGCGCAAATGCCTCCTTCTCTGGAGGGGCTGTGTTTATTAGATACAAAACCAACCCA +CTTTTGTGGAGTCCTGGTGATTCATAGTAACCAAACGGATCGCATTTGGCTTCGGCCCGCGATGGATCTT +TCAAGTTTCTGACCTATCAGCTTTCGACGGTAGGGTATTGGCCTACCGTGGCAGTGACGGGTAACGGGGA +ATTAGGGTTCGATTCCGGAGAGGGAGCCTGAGAAACGGCTACCACATCTAAGGAAGGCAGCAGGCGCGCA +AATTACCCAATGAAAACAGTTTCGAGGTAGTGACGAGAAATAACAATACAGGGCATTTTATGCTCTGTAA +TTGGAATGATGGGAATGTAAAACCCTTCCAGAGTAACAATTGGAGGGCAAGTCTGGTGCCAGCAGCCGCG +GTAATTCCAGCTCCAATAGTGTATATTAGAGTTGTTGCAGTTAAAAAGCTCGTAGTTGGATTTCTGCTGT +GGTCATCCGGTACCGCCCGTATGGGTGCGCACCTGGTTTGGCTCCGGCTTTCTTCCTGTAGCCGTCCGCG +CTTAATTGCGTGTACTGTGTTACGGAACTTTTACTTTGAGAAAAATAGAGTGTTTCAAGCAGGCTTGTCG +CCCTGAATACTTCAGCATGGAATAATAGGATAGGACCTTGGTTCTATTTTGTTGGTTTCTAGGACCAAGG +TAATGATTAATAGGGACAGTTGGGGGCATTCGTATTTAACTGTCAGAGGTGAAATTCTTAGATTTGTTAA +AGACGAACTACTGCGAAAGCATTTGCCAAGGATGTTTTCATTAATCAAGAACGACAGTAGGGGGTTTGAA +GACGATTAGATACCGTCGTAATCTCTACCATAAACTATGCCGACTAGAGATAGGGAAATGCCTACCTTGG +CTTCTCCTGCACCTCATGAGAAATCAAAGTCTCTGGGTTCTGGGGGGAGTATGGTCGCAAGGCTGAAACT +TAAAGGAATTGACGGAAGGGCACCACCAGGCGTGGAGCCTGCGGCTTAATTTGACTCAACACGGGGAAAC +TCACCAGGTCCAGACATGGGAAGGATTGACAGATTGATAGCTCTTTCTTGATTCTATGGGTGGTGGTGCA +TGGCCGTTCTTAGTTGGTGGAGTGATCTGTCTGGTTAATTTCGATAACGAACGAGACCTTAGCCTGCTAA +ATAGGATCGGGAACTACGGTTCTCGTATCACTTCTTAGAGGGACTTTGCGTGTCTAACGCAAGGAAGTTT +GAGGCAATAACAGGTCTGTGATGCCCTTAGATGTTCTGGGCTGCACGCGCGCTACACTGATGCATGCAAC +GAGTTCTTGACCTTGGCCGGAAGGTCTAGGTAATCTTTTGAGTGTGCATCGTGATGGGGATAGATTATTG +CAATTATTAATCTTCAACGAGGAATGCCTAGTAGGCGTAAGTCAGCAGCTTGCGCCGATTACGTCCCTGC +CCTTTGTACACACCGCCCGTCGCTGCAACCGATCGGAGGGTCCTGTGAACTCAATGGACTGACCAACTCC +CTTCGGGGGTTGGTCGGAAAGTTGCGTAAATAGAGCCCTCTAAAGGATGCAAAAGTCGTAACACGGTTTC +CGTAGGTGAACCTGCGGAAGGATCATTCACACATTCAAAATAGTTTTGGAATGCTTCTGGGTAACATGTT +TCTACCCACTACATCCAACCTCCTGATAGTTGGTTGGCCTGTTGTGGATAGTTACTGTTGTGTTTGTTCC +CTTATGGCATTTCCAAGACTGTGGTCTTATAAAAAACCTCACCACAAAACCCTGTAAACTATTGATTCTT +TCAGTTCCGGTTTTTTTTTTATTTAAAAAAAAAAACTGGCCCCACAACGTCTTCTTTCCTGTTAAATATT +TTTTGTTTATGTTTGCAATAATCTGCGTTATGGGTGATGATGACATATTTTAAGGTTTTTTCCTTTGCGG +TTTTTTGGCCGCAAAGGATATATTTATTACCTTAAATTGTTGTCCTCCTCCTTATCGCGGTTATTTCTTT +CATTAAAGTAGAAAAACTTTCAGCAATGATGTCTGCTCGTGCATCGATGAAGACGCAGCGAAATGCGATA +CGCATTGTGAATTGCAGATTTCAGTGAACCATCAGATTTCCGAACGCATATGGCGCTGTGGGGACTTCCC +CGCAGCACGTCTGTTTCAGTGTCTTTTAAACTACACTTCAAATACACCGCCACGTTTTATAAAGAAAAAA +GTGTAACGGCAGTTTTGATACTCTTGCTTGTGTCAATGAATTGTCGCTTGCATGTATTTTTTTTTTTAAA +CGCTTTGCGGTATTTTTTGGGTGTCGATATCTGTGATGGTGTCGTCTCCTTAAATTTGTTGAATTCTACA +TGTTTCATGCCTTCTCTTCTGGCACTGTGTGTTAGAAGTGAAGGTATTGTTGTTGTTGTATGAATGGCTT +TTAATAATACAAACCCATATCCTTTCTTCTCCTGAAAGAGATAAGGTGGATGGATTATAAATATATTCTC +CTTATGTATATCTCATATTTTGGGAGTTTGGTGAAGAGCTGTGATGGCGTTGTGTATGGATTAAGCATTA +TTCTTTGGTTGGTGATGATGAAAAGACAGACACTTCTGTCACACCGTCGTCGCCCGCTAGATGATAATGC +TTTTCTCCTATCATATAAGCCACAAGCAAAGATACCATTATATAAAGGAATGAGTATGTTTTATTTAGCC +ATAAAAAAGAAATACAACAACAAGTCAGAATAATATAGCAACGCAATCAAAAGAGAAGAGCGTATTATTA +TAACGATTGTTATATATTATTTATTGCTCTCTCATATATCTATCTAGACCTGAAATCAGTCGAGGATACC +CGCTGAATTTAAGCATATTATTAAGCGGAGGAAAAGAAAATAACTATGATTCCCTCAGTAACGGCGAGTG +AAGAGGGAGGTGCTCAAAGTGAAAATCGTGGTACCTCTTATGGTACCGCGAGTTGTAGCCTCTAGAGGCG +T +>AB769665.1 Eimeria zuernii genes for 18S rRNA, internal transcribed spacer 1, 5.8S rRNA, internal transcribed spacer 2 and 28S rRNA, partial and complete sequence, isolate: 4-1 +AGTAGTCATTATGCTTGTCTCAAAGATTAAGCCATGCATGTCTAAGTATAAGCTTTTATACGGTGAAACT +GCGAATGGCTCATTAAAACAGTTATAGTTTATTTGATGGTCTCTTCTTACATGGATAACCATGGTAATTC +TATGGCTAATACATGCGCAAATGCCTCCTTCTCTGGAGGGGCTGTGTTTATTAGATACAAAACCAACCCA +CTTTTGTGGAGTCCTGGTGATTCATAGTAACCAAACGGATCGCATTTGGCTTCGGCCCGCGATGGATCTT +TCAAGTTTCTGACCTATCAGCTTTCGACGGTAGGGTATTGGCCTACCGTGGCAGTGACGGGTAACGGGGA +ATTAGGGTTCGATTCCGGAGAGGGAGCCTGAGAAACGGCTACCACATCTAAGGAAGGCAGCAGGCGCGCA +AATTACCCAATGAAAACAGTTTCGAGGTAGTGACGAGAAATAACAATACAGGGCATTTTATGCTCTGTAA +TTGGAATGATGGGAATGTAAAACCCTTCCAGAGTAACAATTGGAGGGCAAGTCTGGTGCCAGCAGCCGCG +GTAATTCCAGCTCCAATAGTGTATATTAGAGTTGTTGCAGTTAAAAAGCTCGTAGTTGGATTTCTGCTGT +GGTCATCCGGTACCGCCCGTATGGGTGCGCACCTGGTTTGGCTCCGGCTTTCTTCCTGTAGCCGTCCGCG +CTTAATTGCGTGTACTGTGTTACGGAACTTTTACTTTGAGAAAAATAGAGTGTTTCAAGCAGGCTTGTCG +CCCTGAATACTTCAGCATGGAATAATAGGATAGGACCTTGGTTCTATTTTGTTGGTTTCTAGGACCAAGG +TAATGATTAATAGGGACAGTTGGGGGCATTCGTATTTAACTGTCAGAGGTGAAATTCTTAGATTTGTTAA +AGACGAACTACTGCGAAAGCATTTGCCAAGGATGTTTTCATTAATCAAGAACGACAGTAGGGGGTTTGAA +GACGATTAGATACCGTCGTAATCTCTACCATAAACTATGCCGACTAGAGATAGGGAAATGCCTACCTTGG +CTTCTCCTGCACCTCATGAGAAATCAAAGTCTCTGGGTTCTGGGGGGAGTATGGTCGCAAGGCTGAAACT +TAAAGGAATTGACGGAAGGGCACCACCAGGCGTGGAGCCTGCGGCTTAATTTGACTCAACACGGGGAAAC +TCACCAGGTCCAGACATGGGAAGGATTGACAGATTGATAGCTCTTTCTTGATTCTATGGGTGGTGGTGCA +TGGCCGTTCTTAGTTGGTGGAGTGATCTGTCTGGTTAATTTCGATAACGAACGAGACCTTAGCCTGCTAA +ATAGGATCGGGAACTACGGTTCTCGTATCACTTCTTAGAGGGACTTTGCGTGTCTAACGCAAGGAAGTTT +GAGGCAATAACAGGTCTGTGATGCCCTTAGATGTTCTGGGCTGCACGCGCGCTACACTGATGCATGCAAC +GAGTTCTTGACCTTGGCCGGAAGGTCTAGGTAATCTTTTGAGTGTGCATCGTGATGGGGATAGATTATTG +CAATTATTAATCTTCAACGAGGAATGCCTAGTAGGCGTAAGTCAGCAGCTTGCGCCGATTACGTCCCTGC +CCTTTGTACACACCGCCCGTCGCTGCAACCGATCGGAGGGTCCTGTGAACTCAATGGACTGACCAACTCC +CTTCGGGGGTTGGTCGGAAAGTTGCGTAAATAGAGCCCTCTAAAGGATGCAAAAGTCGTAACACGGTTTC +CGTAGGTGAACCTGCGGAAGGATCATTCACACATTCAAAATAGTTTTGGAATGCTTCTGGGTAACATGTT +TCTACCCACTACATCCAACCTCCTGATAGTTGGTTGGCCTGTTGTGGATAGTTACTGTTGTGTTTGTTCC +CTTATGGCATTTCCAAGACTGTGGTCTTATAAAAAACCTCACCACAAAACCCTGTAAACTATTGATTCTT +TCAGTTCCGGTTTTTTTTTTATTTAAAAAAAAAAACTGGCCCCACAACGTCTTCTTTCCTGTTAAATATT +TTTTGTTTATGTTTGCAATAATCTGCGTTATGGGTGATGATGACATATTTTAAGGTTTTTTCCTTTGCGG +TTTTTTGGCCGCAAAGGATATATTTATTACCTTAAATTGTTGTCCTCCTCCTTATCGCGGTTATTTCTTT +CATTAAAGTAGAAAAACTTTCAGCAATGATGTCTGCTCGTGCATCGATGAAGACGCAGCGAAATGCGATA +CGCATTGTGAATTGCAGATTTCAGTGAACCATCAGATTTCCGAACGCATATGGCGCTGTGGGGACTTCCC +CGCAGCACGTCTGTTTCAGTGTCTTTTAAACTACACTTCAAATACACCGCCACGTTTTATAAAGAAAAAA +GTGTAACGGCAGTTTTGATACTCTTGCTTGTGTCAATGAATTGTCGCTTGCATGTATTTTTTTTTTTAAA +CGCTTTGCGGTATTTTTTGGGTGTCGATATCTGTGATGGTGTCGTCTCCTTAAATTTGTTGAATTCTACA +TGTTTCATGCCTTCTCTTCTGGCACTGTGTGTTAGAAGTGAAGGTATTGTTGTTGTTGTATGAATGGCTT +TTAATAATACAAACCCATATCCTTTCTTCTCCTGAAAGAGATAAGGTGGATGGATTATAAATATATTCTC +CTTATGTATATCTCATATTTTGGGAGTTTGGTGAAGAGCTGTGATGGCGTTGTGTATGGATTAAGCATTA +TTCTTTGGTTGGTGATGATGAAAAGACAGACACTTCTGTCACACCGTCGTCGCCCGCTAGATGATAATGC +TTTTCTCCTATCATATAAGCCACAAGCAAAGATACCATTATATAAAGGAATGAGTATGTTTTATTTAGCC +ATAAAAAAGAAATACAACAACAAGTCAGAATAATATAGCAACGCAATCAAAAGAGAAGAGCGTATTATTA +TAACGATTGTTATATATTATTTATTGCTCTCTCATATATCTATCTAGACCTGAAATCAGTCGAGGATACC +CGCTGAATTTAAGCATATTATTAAGCGGAGGAAAAGAAAATAACTATGATTCCCTCAGTAACGGCGAGTG +AAGAGGGAGGTGCTCAAAGTGAAAATCGTGGTACCTCTTATGGTACCGCGAGTTGTAGCCTCTAGAGGCG +T +>AB769665.1 Eimeria zuernii genes for 18S rRNA, internal transcribed spacer 1, 5.8S rRNA, internal transcribed spacer 2 and 28S rRNA, partial and complete sequence, isolate: 4-1 +AGTAGTCATTATGCTTGTCTCAAAGATTAAGCCATGCATGTCTAAGTATAAGCTTTTATACGGTGAAACT +GCGAATGGCTCATTAAAACAGTTATAGTTTATTTGATGGTCTCTTCTTACATGGATAACCATGGTAATTC +TATGGCTAATACATGCGCAAATGCCTCCTTCTCTGGAGGGGCTGTGTTTATTAGATACAAAACCAACCCA +CTTTTGTGGAGTCCTGGTGATTCATAGTAACCAAACGGATCGCATTTGGCTTCGGCCCGCGATGGATCTT +TCAAGTTTCTGACCTATCAGCTTTCGACGGTAGGGTATTGGCCTACCGTGGCAGTGACGGGTAACGGGGA +ATTAGGGTTCGATTCCGGAGAGGGAGCCTGAGAAACGGCTACCACATCTAAGGAAGGCAGCAGGCGCGCA +AATTACCCAATGAAAACAGTTTCGAGGTAGTGACGAGAAATAACAATACAGGGCATTTTATGCTCTGTAA +TTGGAATGATGGGAATGTAAAACCCTTCCAGAGTAACAATTGGAGGGCAAGTCTGGTGCCAGCAGCCGCG +GTAATTCCAGCTCCAATAGTGTATATTAGAGTTGTTGCAGTTAAAAAGCTCGTAGTTGGATTTCTGCTGT +GGTCATCCGGTACCGCCCGTATGGGTGCGCACCTGGTTTGGCTCCGGCTTTCTTCCTGTAGCCGTCCGCG +CTTAATTGCGTGTACTGTGTTACGGAACTTTTACTTTGAGAAAAATAGAGTGTTTCAAGCAGGCTTGTCG +CCCTGAATACTTCAGCATGGAATAATAGGATAGGACCTTGGTTCTATTTTGTTGGTTTCTAGGACCAAGG +TAATGATTAATAGGGACAGTTGGGGGCATTCGTATTTAACTGTCAGAGGTGAAATTCTTAGATTTGTTAA +AGACGAACTACTGCGAAAGCATTTGCCAAGGATGTTTTCATTAATCAAGAACGACAGTAGGGGGTTTGAA +GACGATTAGATACCGTCGTAATCTCTACCATAAACTATGCCGACTAGAGATAGGGAAATGCCTACCTTGG +CTTCTCCTGCACCTCATGAGAAATCAAAGTCTCTGGGTTCTGGGGGGAGTATGGTCGCAAGGCTGAAACT +TAAAGGAATTGACGGAAGGGCACCACCAGGCGTGGAGCCTGCGGCTTAATTTGACTCAACACGGGGAAAC +TCACCAGGTCCAGACATGGGAAGGATTGACAGATTGATAGCTCTTTCTTGATTCTATGGGTGGTGGTGCA +TGGCCGTTCTTAGTTGGTGGAGTGATCTGTCTGGTTAATTTCGATAACGAACGAGACCTTAGCCTGCTAA +ATAGGATCGGGAACTACGGTTCTCGTATCACTTCTTAGAGGGACTTTGCGTGTCTAACGCAAGGAAGTTT +GAGGCAATAACAGGTCTGTGATGCCCTTAGATGTTCTGGGCTGCACGCGCGCTACACTGATGCATGCAAC +GAGTTCTTGACCTTGGCCGGAAGGTCTAGGTAATCTTTTGAGTGTGCATCGTGATGGGGATAGATTATTG +CAATTATTAATCTTCAACGAGGAATGCCTAGTAGGCGTAAGTCAGCAGCTTGCGCCGATTACGTCCCTGC +CCTTTGTACACACCGCCCGTCGCTGCAACCGATCGGAGGGTCCTGTGAACTCAATGGACTGACCAACTCC +CTTCGGGGGTTGGTCGGAAAGTTGCGTAAATAGAGCCCTCTAAAGGATGCAAAAGTCGTAACACGGTTTC +CGTAGGTGAACCTGCGGAAGGATCATTCACACATTCAAAATAGTTTTGGAATGCTTCTGGGTAACATGTT +TCTACCCACTACATCCAACCTCCTGATAGTTGGTTGGCCTGTTGTGGATAGTTACTGTTGTGTTTGTTCC +CTTATGGCATTTCCAAGACTGTGGTCTTATAAAAAACCTCACCACAAAACCCTGTAAACTATTGATTCTT +TCAGTTCCGGTTTTTTTTTTATTTAAAAAAAAAAACTGGCCCCACAACGTCTTCTTTCCTGTTAAATATT +TTTTGTTTATGTTTGCAATAATCTGCGTTATGGGTGATGATGACATATTTTAAGGTTTTTTCCTTTGCGG +TTTTTTGGCCGCAAAGGATATATTTATTACCTTAAATTGTTGTCCTCCTCCTTATCGCGGTTATTTCTTT +CATTAAAGTAGAAAAACTTTCAGCAATGATGTCTGCTCGTGCATCGATGAAGACGCAGCGAAATGCGATA +CGCATTGTGAATTGCAGATTTCAGTGAACCATCAGATTTCCGAACGCATATGGCGCTGTGGGGACTTCCC +CGCAGCACGTCTGTTTCAGTGTCTTTTAAACTACACTTCAAATACACCGCCACGTTTTATAAAGAAAAAA +GTGTAACGGCAGTTTTGATACTCTTGCTTGTGTCAATGAATTGTCGCTTGCATGTATTTTTTTTTTTAAA +CGCTTTGCGGTATTTTTTGGGTGTCGATATCTGTGATGGTGTCGTCTCCTTAAATTTGTTGAATTCTACA +TGTTTCATGCCTTCTCTTCTGGCACTGTGTGTTAGAAGTGAAGGTATTGTTGTTGTTGTATGAATGGCTT +TTAATAATACAAACCCATATCCTTTCTTCTCCTGAAAGAGATAAGGTGGATGGATTATAAATATATTCTC +CTTATGTATATCTCATATTTTGGGAGTTTGGTGAAGAGCTGTGATGGCGTTGTGTATGGATTAAGCATTA +TTCTTTGGTTGGTGATGATGAAAAGACAGACACTTCTGTCACACCGTCGTCGCCCGCTAGATGATAATGC +TTTTCTCCTATCATATAAGCCACAAGCAAAGATACCATTATATAAAGGAATGAGTATGTTTTATTTAGCC +ATAAAAAAGAAATACAACAACAAGTCAGAATAATATAGCAACGCAATCAAAAGAGAAGAGCGTATTATTA +TAACGATTGTTATATATTATTTATTGCTCTCTCATATATCTATCTAGACCTGAAATCAGTCGAGGATACC +CGCTGAATTTAAGCATATTATTAAGCGGAGGAAAAGAAAATAACTATGATTCCCTCAGTAACGGCGAGTG +AAGAGGGAGGTGCTCAAAGTGAAAATCGTGGTACCTCTTATGGTACCGCGAGTTGTAGCCTCTAGAGGCG +T +>AB769665.1 Eimeria zuernii genes for 18S rRNA, internal transcribed spacer 1, 5.8S rRNA, internal transcribed spacer 2 and 28S rRNA, partial and complete sequence, isolate: 4-1 +NGTANNNATNNNNNNNNNNNNNNNNNNNNNNNNNNGNNNNNNNNNGNNNNNGCTTTNNNNNGGTGAANNN +GCGAATNGNNNNNNNANANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNGNANTNC +NNNGNNTAATACNTGNGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNCN +CNNTNNNNGNGNNCNGGTGNNNNNNNGTANNNNNNNGGATCNNATTTGGCTNNGGCCCGCGANGGNNNNN +NCNANNNNNNNANNNNNCANCTNNNGACGNTAGNGNATTNGCCNANCNTGGCAGTGANGGGTAACGGGNA +ATTAGGNTNCGATTCCNGAGANNNNNNCTGANNNNNGGCTNCCNNNNCNNNNNNNNNCNNCNNNNGNGNN +NANTNNNNNNNNNANNNNNNNNNNAGGTAGTGANNNNNNNNNACNNNNNNNNNNNNNNNNNGNNNNNNNN +NTGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNANNNNNNNNNANNNNNGNNNCCANNNGNNGCG +NNNNNNCNAGNNNNNNNNNNNNNNNNNNNNNNNNTNNNNNNNNAANNNNNNGNANNNNNNNNNNNNNNNN +NNNNNTCCGGTACCGCCCGTATGNNTGCGCANNNNGNTTGNNNNCNNNNNNNNTCNNNNNNNNGTCCGCG +CTTAATTGCNTGTACTGTGNTACGGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNTCG +NNNNNNANNNNNNNNNNNNNNNNNANNNNANNGNACNNNNNNNNNNNNNNNNNNNNNNNNNNNANCNAGN +NNNTNATTANNNNNGACAGNNGNNGGCATNNGNANNTNANNGNNNNNNNNNNNNNNNNNNNNNNNNTNNN +NNNNGAACTACTGCNNNNNNNNTTNNNNNNNNNNNNNNCNNNNNNNNAGNNNGACAGTAGGGGGTTTGAA +GACGATTAGATACCGTCNTANNCNCNNNNNNNANCNNTNNCGACNNNNGNNNGNNNNNTNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTNNNNNGGGAGTATGGTCGNNAGGNNNNNNNN +NNNNNNNNNNNNNGGAANNNNACCACCNNNNNTGGAGCCTGNGGCNNNANTTGACNNNANACNNNNNAAC +TCNNNNNGNCNNNANNNGNGNNNNNNNNNNAGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNGNTCTNNGNNNNNGNNNNNNNCNNNNNNGNNANNNNNGATAACGAACGAGACCNTNGNCTGCTNA +NTNGGATCGGGAACTACGGTTCTCNNNTCNCTNCNNNGNNGGNCTTTGNGTGTCTAACNNNNNNANGNNN +NNNNCNANNNNNNNTCNNTNNNNNCCNTANNNGNTNNGGNCTGNANGCGCNNNNNNCNGNNNNNNNCNAN +GANNNNTTGACCNNNNCCNGAAGGTCTANNNNNNNNNNNNNNNNNNNNNNNNNNTGGNGNNNNNTNNNNN +NNNNNNNNNNNNNNNNNNNAGGAATGCCNAGTAGGCGTAANNCAGCAGCTNNCGCCGATTACNNNNNNGC +CNNNNNNNCACNNCGCCCGNCGCTGCAACNGANNNNNNGGTCNNNNNNANTNNNTNNNCNGNNNAACNCC +CTNNGGGGGTTGGTCGGAAAGTTGCGTNNATAGAGCNNNCTNNNNNNNGCANNNNNNGTNACACGGTTTN +CGTAGGTGAACCTGCGNNAGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNT +NNNNNNNNNTACANCNNNCNTCNTGNTNNNNGNNTNNNNNNTNNTNNNNANTNNNNNNNNNGNNNNNNNN +CNNNNGNNNNNNNNNANNNNNNNNNNNTNNNNNNNNNNNNNNNNNNNNNCCNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCANCNNNNNCNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNANCNNNGTTANGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +TTTTTTNGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGNNNNNNNNCTNCNNANNGCNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNGTGCATCGATGAAGACGCAGCGAAATGCGATA +CNNNTNNNNNNNNNNNNNNNNNNGNNNNNNNNCAGANNNNCGAACGCATATGGCGCNNTGGGGACTNNCC +CGCAGCACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCGCCACNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNTTNNNNNNNNNNNNNTNNNNNNNNNGANNTNNNGCNNNNNNNNNNNNNNNNNNNNNNN +NGCTTTGCNNNANTNTTTNNNTNTNGNNNNNNGTGANNNNNNCNTNNNNNNNNNNNNNNNNNNNNNNNNN +TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGNNNNNNNNGTNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNCNNNNNNNNNTNNNNNNNNNNNNNNNNNNNNNNGGNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGNNNTNNNNTGNNGTNNTGTNTGGANNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNGTCGTCGCCCGNTNGNNGNNNNNNN +NNTNNNNNNNNNNNNTNNNNNNNNNGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNANNNNNNNNNCGNNNNNNNNAGNNNNNNNNNNNTTATTA +TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTNNNNNNNNNNGAANTNNNNNGAGGATACC +CGNTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCCTNNGNNACGGCNNNNN +NNNNNNNNNNNNNNNNNAGTGAANNNNNTGGTACCTCNTATGGTACCGCGAGNTGTNNNCTCNAGANNNG +T +>AB769665.1 Eimeria zuernii genes for 18S rRNA, internal transcribed spacer 1, 5.8S rRNA, internal transcribed spacer 2 and 28S rRNA, partial and complete sequence, isolate: 4-1 +AGTAGTCATTATGCTTGTCTCAAAGATTAAGCCATGCATGTCTAAGTATAAGCTTTTATACGGTGAAACT +GCGAATGGCTCATTAAAACAGTTATAGTTTATTTGATGGTCTCTTCTTACATGGATAACCATGGTAATTC +TATGGCTAATACATGCGCAAATGCCTCCTTCTCTGGAGGGGCTGTGTTTATTAGATACAAAACCAACCCA +CTTTTGTGGAGTCCTGGTGATTCATAGTAACCAAACGGATCGCATTTGGCTTCGGCCCGCGATGGATCTT +TCAAGTTTCTGACCTATCAGCTTTCGACGGTAGGGTATTGGCCTACCGTGGCAGTGACGGGTAACGGGGA +ATTAGGGTTCGATTCCGGAGAGGGAGCCTGAGAAACGGCTACCACATCTAAGGAAGGCAGCAGGCGCGCA +AATTACCCAATGAAAACAGTTTCGAGGTAGTGACGAGAAATAACAATACAGGGCATTTTATGCTCTGTAA +TTGGAATGATGGGAATGTAAAACCCTTCCAGAGTAACAATTGGAGGGCAAGTCTGGTGCCAGCAGCCGCG +GTAATTCCAGCTCCAATAGTGTATATTAGAGTTGTTGCAGTTAAAAAGCTCGTAGTTGGATTTCTGCTGT +GGTCATCCGGTACCGCCCGTATGGGTGCGCACCTGGTTTGGCTCCGGCTTTCTTCCTGTAGCCGTCCGCG +CTTAATTGCGTGTACTGTGTTACGGAACTTTTACTTTGAGAAAAATAGAGTGTTTCAAGCAGGCTTGTCG +CCCTGAATACTTCAGCATGGAATAATAGGATAGGACCTTGGTTCTATTTTGTTGGTTTCTAGGACCAAGG +TAATGATTAATAGGGACAGTTGGGGGCATTCGTATTTAACTGTCAGAGGTGAAATTCTTAGATTTGTTAA +AGACGAACTACTGCGAAAGCATTTGCCAAGGATGTTTTCATTAATCAAGAACGACAGTAGGGGGTTTGAA +GACGATTAGATACCGTCGTAATCTCTACCATAAACTATGCCGACTAGAGATAGGGAAATGCCTACCTTGG +CTTCTCCTGCACCTCATGAGAAATCAAAGTCTCTGGGTTCTGGGGGGAGTATGGTCGCAAGGCTGAAACT +TAAAGGAATTGACGGAAGGGCACCACCAGGCGTGGAGCCTGCGGCTTAATTTGACTCAACACGGGGAAAC +TCACCAGGTCCAGACATGGGAAGGATTGACAGATTGATAGCTCTTTCTTGATTCTATGGGTGGTGGTGCA +TGGCCGTTCTTAGTTGGTGGAGTGATCTGTCTGGTTAATTTCGATAACGAACGAGACCTTAGCCTGCTAA +ATAGGATCGGGAACTACGGTTCTCGTATCACTTCTTAGAGGGACTTTGCGTGTCTAACGCAAGGAAGTTT +GAGGCAATAACAGGTCTGTGATGCCCTTAGATGTTCTGGGCTGCACGCGCGCTACACTGATGCATGCAAC +GAGTTCTTGACCTTGGCCGGAAGGTCTAGGTAATCTTTTGAGTGTGCATCGTGATGGGGATAGATTATTG +CAATTATTAATCTTCAACGAGGAATGCCTAGTAGGCGTAAGTCAGCAGCTTGCGCCGATTACGTCCCTGC +CCTTTGTACACACCGCCCGTCGCTGCAACCGATCGGAGGGTCCTGTGAACTCAATGGACTGACCAACTCC +CTTCGGGGGTTGGTCGGAAAGTTGCGTAAATAGAGCCCTCTAAAGGATGCAAAAGTCGTAACACGGTTTC +CGTAGGTGAACCTGCGGAAGGATCATTCACACATTCAAAATAGTTTTGGAATGCTTCTGGGTAACATGTT +TCTACCCACTACATCCAACCTCCTGATAGTTGGTTGGCCTGTTGTGGATAGTTACTGTTGTGTTTGTTCC +CTTATGGCATTTCCAAGACTGTGGTCTTATAAAAAACCTCACCACAAAACCCTGTAAACTATTGATTCTT +TCAGTTCCGGTTTTTTTTTTATTTAAAAAAAAAAACTGGCCCCACAACGTCTTCTTTCCTGTTAAATATT +TTTTGTTTATGTTTGCAATAATCTGCGTTATGGGTGATGATGACATATTTTAAGGTTTTTTCCTTTGCGG +TTTTTTGGCCGCAAAGGATATATTTATTACCTTAAATTGTTGTCCTCCTCCTTATCGCGGTTATTTCTTT +CATTAAAGTAGAAAAACTTTCAGCAATGATGTCTGCTCGTGCATCGATGAAGACGCAGCGAAATGCGATA +CGCATTGTGAATTGCAGATTTCAGTGAACCATCAGATTTCCGAACGCATATGGCGCTGTGGGGACTTCCC +CGCAGCACGTCTGTTTCAGTGTCTTTTAAACTACACTTCAAATACACCGCCACGTTTTATAAAGAAAAAA +GTGTAACGGCAGTTTTGATACTCTTGCTTGTGTCAATGAATTGTCGCTTGCATGTATTTTTTTTTTTAAA +CGCTTTGCGGTATTTTTTGGGTGTCGATATCTGTGATGGTGTCGTCTCCTTAAATTTGTTGAATTCTACA +TGTTTCATGCCTTCTCTTCTGGCACTGTGTGTTAGAAGTGAAGGTATTGTTGTTGTTGTATGAATGGCTT +TTAATAATACAAACCCATATCCTTTCTTCTCCTGAAAGAGATAAGGTGGATGGATTATAAATATATTCTC +CTTATGTATATCTCATATTTTGGGAGTTTGGTGAAGAGCTGTGATGGCGTTGTGTATGGATTAAGCATTA +TTCTTTGGTTGGTGATGATGAAAAGACAGACACTTCTGTCACACCGTCGTCGCCCGCTAGATGATAATGC +TTTTCTCCTATCATATAAGCCACAAGCAAAGATACCATTATATAAAGGAATGAGTATGTTTTATTTAGCC +ATAAAAAAGAAATACAACAACAAGTCAGAATAATATAGCAACGCAATCAAAAGAGAAGAGCGTATTATTA +TAACGATTGTTATATATTATTTATTGCTCTCTCATATATCTATCTAGACCTGAAATCAGTCGAGGATACC +CGCTGAATTTAAGCATATTATTAAGCGGAGGAAAAGAAAATAACTATGATTCCCTCAGTAACGGCGAGTG +AAGAGGGAGGTGCTCAAAGTGAAAATCGTGGTACCTCTTATGGTACCGCGAGTTGTAGCCTCTAGAGGCG +T +>AB769665.1 Eimeria zuernii genes for 18S rRNA, internal transcribed spacer 1, 5.8S rRNA, internal transcribed spacer 2 and 28S rRNA, partial and complete sequence, isolate: 4-1 +AGTAGTCATTATGCTTGTCTCAAAGATTAAGCCATGCATGTCTAAGTATAAGCTTTTATACGGTGAAACT +GCGAATGGCTCATTAAAACAGTTATAGTTTATTTGATGGTCTCTTCTTACATGGATAACCATGGTAATTC +TATGGCTNNNNNNNNNNNAAATGCCTCCTTCTNNNNNNNNNNNGTGTTTATTAGATACAAAACCAACCCA +CTTTTGTGGAGTCCTGGTGATTCATAGTAACCAAACGGATCGCATTTGGCTTCGGCCCGCGATGGATCTT +TCAAGTTTCTGACCTATCAGCTTTCGACGGTAGGGTATTGGCCTACCGTGGCAGTGACGGGTAACGGGGA +ATTAGGGTTCGATTCCGGAGAGGGAGCCTGAGAAACGGCTACCACATCTAAGGAAGGCAGCAGGCGCGCA +AATTACCCAATGAAAACAGTTTCGAGGTAGTGACGAGAAATAACAATACAGGGCATTTTATGCTCTNNNN +NNNNNNNGATGGGAATGTAAANNNNNNNNNNNGTAACAATTGGAGGGCAAGTCTGGTGCCAGCAGCCGCG +GTAATTCCAGCTCCAATAGTGTATATTAGAGTTGTTGCAGTTAAAAAGCTCGTAGTTGGATTTCTGCTGT +GGTCATCCGGTACCGCCCGTATGGGTGCGCACCTGGTTTGGCTCCGGCTTTCTTCCTGTAGCCGTCCGCG +CTTAATTGCGTGTACTGTGTTACGGAACTTTTACTTTGAGAAAAATAGAGTGTTTCAAGCAGGCTTGTCG +CCCTGAATACTTCAGCATGGAATAATAGGATAGGACCTTGGTTCTATTTTGTTGGTTTCTAGGACCAAGG +TAATGATTAATAGGGACAGTTGGGGGCATTCGTATTTAACTGTCAGAGGTGAAATTCTTAGATTTGTTAA +AGACGAACTACTGCGAAAGCATTTGCCAAGGATGTTTTCATTAATCAAGAACGACAGTAGGGGGTTTGAA +GACGATTAGATACCGTCGTAATCTCTACCATAAACTATGCCGACTAGAGATAGGGAAATGCCTACCTTGG +CTTCTCCTGCACCTCATGAGAAATCAAAGTCTCTGGGTTCTGGGGGGAGTATGGTCGCAAGGCTGAAACT +TAAAGGAATTGACGGAAGGGCACCACCAGGCGTGGAGCCTGCGGCTTAATTTGACTCAACACGGGGAAAC +TCACCAGGTCCAGACATGGGAAGGATTGACAGATTGATAGCTCTTNNNNNNNNNNNTGGGTGGTGGTGCA +NNNNNNNNNNNAGTTGGTGGAGTGATCTGTCTGGTTAATTTCGATAACGAACGAGACCTTAGCCTGCTAA +ATAGGATCGGGAACTACGGTTCTCGTATCACTTCTTAGAGGGACTTTGCGTGTCTAACGCAAGGAAGTTT +GAGGCAATAACAGGTCTGTGATGCCCTTAGATGTTCTGGGCTGCACGCGCGCTACACTGATGCATGCAAC +GAGTTCTTGACCTTGGCCGGAAGGTCTAGGTAATCTTTTGAGTGTGCATCGTGATGGGGATAGATTATTG +CAATTATTAATCTTCAACGAGGAATGCCTAGTAGGCGTAAGTCAGCAGCTTGCGCCGATTACGTCCCTGC +CCTTTGTACACACCGCCCGTCGCTGCAACCGATCGGAGGGTCCTGTGAACTCAATGGACTGACCAACTCC +CTTCGGGGGTTGGTCGGAAAGTTGCGTAAATAGAGCCCTCTAAAGGATGCAAAAGTCGTAACACGGTTNN +NNNNNNNNNACCTGCGGAAGGATNNNNNNNNNNNTCAAAATAGTTTTGGAATGCTTCTGGGTAACATGTT +TCTACCCACTACATCCAACCTCCTGATAGTTGGTTGGCCTGTTGTGGATAGTTACTGTTGTGTTTGTTCC +CTTATGGCATTTCCAAGACTGTGGTCTTATAAAAAACCTCACCACAAAACCCTGTAAACTATTGATTCTT +TCAGTTNNNNNNNNNNNNNNNTTTAAAAAAANNNNNNNNNNNNNNNACGTCTTCTTTCCTGTTAAATATT +TTTTGTTTATGTTTGCAATAATCTGCGTTATGGGTGATGATGACATATTTTAAGGTTTTTTCCTTTGCGG +TTTTTTGGCCGCAAAGGATATATTTATTACCTTAAATTGTTGTCCTCCTCCTTATCGCGGTTATTTCTTT +CATTAAAGTAGAAAAACTTTCAGCAATGATGTCTGCTCGTGCATCGATGAAGACGCAGCGAAATGCGATA +CGCATTGTGAATTGCAGATTTCAGTGAACCATCAGATTTCCGAACGCATATGGCGCTGTGGGGACTTCCC +CGCAGCACGTCTGTTTCAGTGTCTTTTAAACTACACTTCAAATACNNNNNNNNNNNTTATAAAGAAAAAA +NNNNNNNNNNNGTTTTGATACTCTTGCTTGTGTCAATGAATNNNNNNNNNNNNNNATTTTTTTTTTNNNN +NNNNNNNNNNTATTTTTTGGGTGTCGATATCTGTGATGGTGTCGTCTCCTTAAATTTGTTGAATTCTACA +TGTTTCATGCCTTCTCTTCTGGCACTGTGTGTTAGAAGTGAAGGTATTGTTGTTGTTGTATGAATGGCTT +TTAATAATACAAACCCATATCCTTTCTTCTCCTGAAAGAGATAAGGTGGATGGATTATAAATATATTCTC +CTTATGTATATCTCATATTTTGGGAGTTTGGTGAAGAGCTGTGATGGCGTTGTGTATGGATTAAGCATTA +TTCTTTGGTTGGTGATGATGAAAAGACAGACACTTCTGTCACACCGTCGTCGCCCGCTAGATGATAATGC +TTTTCTCCTATCATATAAGCCACAAGCAAAGATACCATTATATAAAGGAATNNNNNNNNNNNNNNNNGCC +ATAAAANNNNNNNNNNNNNNNNAGTCAGAATAATATAGCAACGCAATCAAAAGAGAAGAGCGTATTATTA +TAACGATTGTTATATATTATTTATTGCTCTCTCATATATCTATCTAGACCTGAAATCAGTCGAGGATACC +CGCTGAATTTAAGCATATTATTAAGCGGAGGAAAAGAAAATAACTATGATTCCCTCAGTAACGGCGAGTG +AAGAGGGAGGTGCTCAAAGTGAAAATCGTGGTACCTCTTATGGTACCGCGAGTTGTAGCCTCTAGAGGCG +T +>AB769665.1 Eimeria zuernii genes for 18S rRNA, internal transcribed spacer 1, 5.8S rRNA, internal transcribed spacer 2 and 28S rRNA, partial and complete sequence, isolate: 4-1 +AGTAGTCATTATGCTTGTCTCAAAGATTAAGCCATGCATGTCTAAGTATAAGCTTTTATACGGTGAAACT +GCGAATGGCTCATTAAAACAGTTATAGTTTATTTGATGGTCTCTTCTTACATGGATAACCATGGTAATTC +TATGGCTAATACATGCNNAAATGCCTCCTTCTNNGGAGGGGCTGTGTTTATTAGATACAAAACCAACCCA +CTTTTGTGGAGTCCTGGTGATTCATAGTAACCAAACGGATCGCATTTGGCTTCGGCCCGCGATGGATCTT +TCAAGTTTCTGACCTATCAGCTTTCGACGGTAGGGTATTGGCCTACCGTGGCAGTGACGGGTAACGGGGA +ATTAGGGTTCGATTCCGGAGAGGGAGCCTGAGAAACGGCTACCACATCTAAGGAAGGCAGCAGGCGCGCA +AATTACCCAATGAAAACAGTTTCGAGGTAGTGACGAGAAATAACAATACAGGGCATTTTATGCTCTGTAA +TTGGANNGATGGGAATGTAAANNCCTTCCAGAGTAACAATTGGAGGGCAAGTCTGGTGCCAGCAGCCGCG +GTAATTCCAGCTCCAATAGTGTATATTAGAGTTGTTGCAGTTAAAAAGCTCGTAGTTGGATTTCTGCTGT +GGTCATCCGGTACCGCCCGTATGGGTGCGCACCTGGTTTGGCTCCGGCTTTCTTCCTGTAGCCGTCCGCG +CTTAATTGCGTGTACTGTGTTACGGAACTTTTACTTTGAGAAAAATAGAGTGTTTCAAGCAGGCTTGTCG +CCCTGAATACTTCAGCATGGAATAATAGGATAGGACCTTGGTTCTATTTTGTTGGTTTCTAGGACCAAGG +TAATGATTAATAGGGACAGTTGGGGGCATTCGTATTTAACTGTCAGAGGTGAAATTCTTAGATTTGTTAA +AGACGAACTACTGCGAAAGCATTTGCCAAGGATGTTTTCATTAATCAAGAACGACAGTAGGGGGTTTGAA +GACGATTAGATACCGTCGTAATCTCTACCATAAACTATGCCGACTAGAGATAGGGAAATGCCTACCTTGG +CTTCTCCTGCACCTCATGAGAAATCAAAGTCTCTGGGTTCTGGGGGGAGTATGGTCGCAAGGCTGAAACT +TAAAGGAATTGACGGAAGGGCACCACCAGGCGTGGAGCCTGCGGCTTAATTTGACTCAACACGGGGAAAC +TCACCAGGTCCAGACATGGGAAGGATTGACAGATTGATAGCTCTTTCTTGATTCNNTGGGTGGTGGTGCA +NNGCCGTTCTTAGTTGGTGGAGTGATCTGTCTGGTTAATTTCGATAACGAACGAGACCTTAGCCTGCTAA +ATAGGATCGGGAACTACGGTTCTCGTATCACTTCTTAGAGGGACTTTGCGTGTCTAACGCAAGGAAGTTT +GAGGCAATAACAGGTCTGTGATGCCCTTAGATGTTCTGGGCTGCACGCGCGCTACACTGATGCATGCAAC +GAGTTCTTGACCTTGGCCGGAAGGTCTAGGTAATCTTTTGAGTGTGCATCGTGATGGGGATAGATTATTG +CAATTATTAATCTTCAACGAGGAATGCCTAGTAGGCGTAAGTCAGCAGCTTGCGCCGATTACGTCCCTGC +CCTTTGTACACACCGCCCGTCGCTGCAACCGATCGGAGGGTCCTGTGAACTCAATGGACTGACCAACTCC +CTTCGGGGGTTGGTCGGAAAGTTGCGTAAATAGAGCCCTCTAAAGGATGCAAAAGTCGTAACACGGTTTC +CGTAGGTNNACCTGCGGAAGGATNNTTCACACATTCAAAATAGTTTTGGAATGCTTCTGGGTAACATGTT +TCTACCCACTACATCCAACCTCCTGATAGTTGGTTGGCCTGTTGTGGATAGTTACTGTTGTGTTTGTTCC +CTTATGGCATTTCCAAGACTGTGGTCTTATAAAAAACCTCACCACAAAACCCTGTAAACTATTGATTCTT +TCAGTTCCGGTTTTTNNNNNNTTTAAAAAAANNNNNNGGCCCCACAACGTCTTCTTTCCTGTTAAATATT +TTTTGTTTATGTTTGCAATAATCTGCGTTATGGGTGATGATGACATATTTTAAGGTTTTTTCCTTTGCGG +TTTTTTGGCCGCAAAGGATATATTTATTACCTTAAATTGTTGTCCTCCTCCTTATCGCGGTTATTTCTTT +CATTAAAGTAGAAAAACTTTCAGCAATGATGTCTGCTCGTGCATCGATGAAGACGCAGCGAAATGCGATA +CGCATTGTGAATTGCAGATTTCAGTGAACCATCAGATTTCCGAACGCATATGGCGCTGTGGGGACTTCCC +CGCAGCACGTCTGTTTCAGTGTCTTTTAAACTACACTTCAAATACACCGCCACGNNTTATAAAGAAAAAA +NNGTAACGGCAGTTTTGATACTCTTGCTTGTGTCAATGAATTGTCGCTTGNNNNNATTTTTTTTTTNNNN +NGCTTTGCGGTATTTTTTGGGTGTCGATATCTGTGATGGTGTCGTCTCCTTAAATTTGTTGAATTCTACA +TGTTTCATGCCTTCTCTTCTGGCACTGTGTGTTAGAAGTGAAGGTATTGTTGTTGTTGTATGAATGGCTT +TTAATAATACAAACCCATATCCTTTCTTCTCCTGAAAGAGATAAGGTGGATGGATTATAAATATATTCTC +CTTATGTATATCTCATATTTTGGGAGTTTGGTGAAGAGCTGTGATGGCGTTGTGTATGGATTAAGCATTA +TTCTTTGGTTGGTGATGATGAAAAGACAGACACTTCTGTCACACCGTCGTCGCCCGCTAGATGATAATGC +TTTTCTCCTATCATATAAGCCACAAGCAAAGATACCATTATATAAAGGAATGAGTATGTTNNNNNNNGCC +ATAAAANNNNNNNACAACAACAAGTCAGAATAATATAGCAACGCAATCAAAAGAGAAGAGCGTATTATTA +TAACGATTGTTATATATTATTTATTGCTCTCTCATATATCTATCTAGACCTGAAATCAGTCGAGGATACC +CGCTGAATTTAAGCATATTATTAAGCGGAGGAAAAGAAAATAACTATGATTCCCTCAGTAACGGCGAGTG +AAGAGGGAGGTGCTCAAAGTGAAAATCGTGGTACCTCTTATGGTACCGCGAGTTGTAGCCTCTAGAGGCG +T +>AB769665.1 Eimeria zuernii genes for 18S rRNA, internal transcribed spacer 1, 5.8S rRNA, internal transcribed spacer 2 and 28S rRNA, partial and complete sequence, isolate: 4-1 +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +N +>AB769665.1 Eimeria zuernii genes for 18S rRNA, internal transcribed spacer 1, 5.8S rRNA, internal transcribed spacer 2 and 28S rRNA, partial and complete sequence, isolate: 4-1 +AGTAGTCATTATGCTTGTCTCAAAGATTAAGCCATGCATGTCTAAGTATAAGCTTTTATACGGTGAAACT +GCGAATGGCTCATTAAAACAGTTATAGTTTATTTGATGGTCTCTTCTTACATGGATAACCATGGTAATTC +TATGGCTAATACATGCGNNNNNNNNNNNNNNNNTGGAGGGGCTGTGTTTATTAGATACAAAACCAACCCA +CTTTTGTGGAGTCCTGGTGATTCATAGTAACCAAACGGATCGCATTTGGCTTCGGCCCGCGATGGATCTT +TCAAGTTTCTGACCTATCAGCTTTCGACGGTAGGGTATTGGCCTACCGTGGCAGTGACGGGTAACGGGGA +ATTAGGGTTCGATTCCGGAGAGGGAGCCTGAGAAACGGCTACCACATCTAAGGAAGGCAGCAGGCGCGCA +AATTACCCAATGAAAACAGTTTCGAGGTAGTGACGAGAAATAACAATACAGGGCATTTTATGCTCTGTAA +TTGGAANNNNNNNNNNNNNNNNCCCTTCCAGAGTAACAATTGGAGGGCAAGTCTGGTGCCAGCAGCCGCG +GTAATTCCAGCTCCAATAGTGTATATTAGAGTTGTTGCAGTTAAAAAGCTCGTAGTTGGATTTCTGCTGT +GGTCATCCGGTACCGCCCGTATGGGTGCGCACCTGGTTTGGCTCCGGCTTTCTTCCTGTAGCCGTCCGCG +CTTAATTGCGTGTACTGTGTTACGGAACTTTTACTTTGAGAAAAATAGAGTGTTTCAAGCAGGCTTGTCG +CCCTGAATACTTCAGCATGGAATAATAGGATAGGACCTTGGTTCTATTTTGTTGGTTTCTAGGACCAAGG +TAATGATTAATAGGGACAGTTGGGGGCATTCGTATTTAACTGTCAGAGGTGAAATTCTTAGATTTGTTAA +AGACGAACTACTGCGAAAGCATTTGCCAAGGATGTTTTCATTAATCAAGAACGACAGTAGGGGGTTTGAA +GACGATTAGATACCGTCGTAATCTCTACCATAAACTATGCCGACTAGAGATAGGGAAATGCCTACCTTGG +CTTCTCCTGCACCTCATGAGAAATCAAAGTCTCTGGGTTCTGGGGGGAGTATGGTCGCAAGGCTGAAACT +TAAAGGAATTGACGGAAGGGCACCACCAGGCGTGGAGCCTGCGGCTTAATTTGACTCAACACGGGGAAAC +TCACCAGGTCCAGACATGGGAAGGATTGACAGATTGATAGCTCTTTCTTGATTCTNNNNNNNNNNNNNNN +NGGCCGTTCTTAGTTGGTGGAGTGATCTGTCTGGTTAATTTCGATAACGAACGAGACCTTAGCCTGCTAA +ATAGGATCGGGAACTACGGTTCTCGTATCACTTCTTAGAGGGACTTTGCGTGTCTAACGCAAGGAAGTTT +GAGGCAATAACAGGTCTGTGATGCCCTTAGATGTTCTGGGCTGCACGCGCGCTACACTGATGCATGCAAC +GAGTTCTTGACCTTGGCCGGAAGGTCTAGGTAATCTTTTGAGTGTGCATCGTGATGGGGATAGATTATTG +CAATTATTAATCTTCAACGAGGAATGCCTAGTAGGCGTAAGTCAGCAGCTTGCGCCGATTACGTCCCTGC +CCTTTGTACACACCGCCCGTCGCTGCAACCGATCGGAGGGTCCTGTGAACTCAATGGACTGACCAACTCC +CTTCGGGGGTTGGTCGGAAAGTTGCGTAAATAGAGCCCTCTAAAGGATGCAAAAGTCGTAACACGGTTTC +CGTAGGTGNNNNNNNNNNNNNNNNATTCACACATTCAAAATAGTTTTGGAATGCTTCTGGGTAACATGTT +TCTACCCACTACATCCAACCTCCTGATAGTTGGTTGGCCTGTTGTGGATAGTTACTGTTGTGTTTGTTCC +CTTATGGCATTTCCAAGACTGTGGTCTTATAAAAAACCTCACCACAAAACCCTGTAAACTATTGATTCTT +TCAGTTCCGGTTTTTTNNNNNNNNNNNNNNNNNNNNTGGCCCCACAACGTCTTCTTTCCTGTTAAATATT +TTTTGTTTATGTTTGCAATAATCTGCGTTATGGGTGATGATGACATATTTTAAGGTTTTTTCCTTTGCGG +TTTTTTGGCCGCAAAGGATATATTTATTACCTTAAATTGTTGTCCTCCTCCTTATCGCGGTTATTTCTTT +CATTAAAGTAGAAAAACTTTCAGCAATGATGTCTGCTCGTGCATCGATGAAGACGCAGCGAAATGCGATA +CGCATTGTGAATTGCAGATTTCAGTGAACCATCAGATTTCCGAACGCATATGGCGCTGTGGGGACTTCCC +CGCAGCACGTCTGTTTCAGTGTCTTTTAAACTACACTTCAAATACACCGCCACGTNNNNNNNNNNNNNNN +NTGTAACGGCAGTTTTGATACTCTTGCTTGTGTCAATGAATTGTCGCTTGCNNNNNNNNNNNNNNNNNNN +CGCTTTGCGGTATTTTTTGGGTGTCGATATCTGTGATGGTGTCGTCTCCTTAAATTTGTTGAATTCTACA +TGTTTCATGCCTTCTCTTCTGGCACTGTGTGTTAGAAGTGAAGGTATTGTTGTTGTTGTATGAATGGCTT +TTAATAATACAAACCCATATCCTTTCTTCTCCTGAAAGAGATAAGGTGGATGGATTATAAATATATTCTC +CTTATGTATATCTCATATTTTGGGAGTTTGGTGAAGAGCTGTGATGGCGTTGTGTATGGATTAAGCATTA +TTCTTTGGTTGGTGATGATGAAAAGACAGACACTTCTGTCACACCGTCGTCGCCCGCTAGATGATAATGC +TTTTCTCCTATCATATAAGCCACAAGCAAAGATACCATTATATAAAGGAATGAGTATGTTTNNNNNNNNN +NNNNNNNNNNNNTACAACAACAAGTCAGAATAATATAGCAACGCAATCAAAAGAGAAGAGCGTATTATTA +TAACGATTGTTATATATTATTTATTGCTCTCTCATATATCTATCTAGACCTGAAATCAGTCGAGGATACC +CGCTGAATTTAAGCATATTATTAAGCGGAGGAAAAGAAAATAACTATGATTCCCTCAGTAACGGCGAGTG +AAGAGGGAGGTGCTCAAAGTGAAAATCGTGGTACCTCTTATGGTACCGCGAGTTGTAGCCTCTAGAGGCG +T +>AB769665.1 Eimeria zuernii genes for 18S rRNA, internal transcribed spacer 1, 5.8S rRNA, internal transcribed spacer 2 and 28S rRNA, partial and complete sequence, isolate: 4-1 +AGTAGTCATTATGCTTGTCTCAAAGATTAAGCCATGCATGTCTAAGTATAAGCTTTTATACGGTGAAACT +GCGAATGGCTCATTAAAACAGTTATAGTTTATTTGATGGTCTCTTCTTACATGGATAACCATGGTAATTC +TATGGCTAATACATGCGCAAATGCCTCCTTCTCTGGAGGGGCTGTGTTTATTAGATACAAAACCAACCCA +CTTTTGTGGAGTCCTGGTGATTCATAGTAACCAAACGGATCGCATTTGGCTTCGGCCCGCGATGGATCTT +TCAAGTTTCTGACCTATCAGCTTTCGACGGTAGGGTATTGGCCTACCGTGGCAGTGACGGGTAACGGGGA +ATTAGGGTTCGATTCCGGAGAGGGAGCCTGAGAAACGGCTACCACATCTAAGGAAGGCAGCAGGCGCGCA +AATTACCCAATGAAAACAGTTTCGAGGTAGTGACGAGAAATAACAATACAGGGCATTTTATGCTCTGTAA +TTGGAATGATGGGAATGTAAAACCCTTCCAGAGTAACAATTGGAGGGCAAGTCTGGTGCCAGCAGCCGCG +GTAATTCCAGCTCCAATAGTGTATATTAGAGTTGTTGCAGTTAAAAAGCTCGTAGTTGGATTTCTGCTGT +GGTCATCCGGTACCGCCCGTATGGGTGCGCACCTGGTTTGGCTCCGGCTTTCTTCCTGTAGCCGTCCGCG +CTTAATTGCGTGTACTGTGTTACGGAACTTTTACTTTGAGAAAAATAGAGTGTTTCAAGCAGGCTTGTCG +CCCTGAATACTTCAGCATGGAATAATAGGATAGGACCTTGGTTCTATTTTGTTGGTTTCTAGGACCAAGG +TAATGATTAATAGGGACAGTTGGGGGCATTCGTATTTAACTGTCAGAGGTGAAATTCTTAGATTTGTTAA +AGACGAACTACTGCGAAAGCATTTGCCAAGGATGTTTTCATTAATCAAGAACGACAGTAGGGGGTTTGAA +GACGATTAGATACCGTCGTAATCTCTACCATAAACTATGCCGACTAGAGATAGGGAAATGCCTACCTTGG +CTTCTCCTGCACCTCATGAGAAATCAAAGTCTCTGGGTTCTGGGGGGAGTATGGTCGCAAGGCTGAAACT +TAAAGGAATTGACGGAAGGGCACCACCAGGCGTGGAGCCTGCGGCTTAATTTGACTCAACACGGGGAAAC +TCACCAGGTCCAGACATGGGAAGGATTGACAGATTGATAGCTCTTTCTTGATTCTATGGGTGGTGGTGCA +TGGCCGTTCTTAGTTGGTGGAGTGATCTGTCTGGTTAATTTCGATAACGAACGAGACCTTAGCCTGCTAA +ATAGGATCGGGAACTACGGTTCTCGTATCACTTCTTAGAGGGACTTTGCGTGTCTAACGCAAGGAAGTTT +GAGGCAATAACAGGTCTGTGATGCCCTTAGATGTTCTGGGCTGCACGCGCGCTACACTGATGCATGCAAC +GAGTTCTTGACCTTGGCCGGAAGGTCTAGGTAATCTTTTGAGTGTGCATCGTGATGGGGATAGATTATTG +CAATTATTAATCTTCAACGAGGAATGCCTAGTAGGCGTAAGTCAGCAGCTTGCGCCGATTACGTCCCTGC +CCTTTGTACACACCGCCCGTCGCTGCAACCGATCGGAGGGTCCTGTGAACTCAATGGACTGACCAACTCC +CTTCGGGGGTTGGTCGGAAAGTTGCGTAAATAGAGCCCTCTAAAGGATGCAAAAGTCGTAACACGGTTTC +CGTAGGTGAACCTGCGGAAGGATCATTCACACATTCAAAATAGTTTTGGAATGCTTCTGGGTAACATGTT +TCTACCCACTACATCCAACCTCCTGATAGTTGGTTGGCCTGTTGTGGATAGTTACTGTTGTGTTTGTTCC +CTTATGGCATTTCCAAGACTGTGGTCTTATAAAAAACCTCACCACAAAACCCTGTAAACTATTGATTCTT +TCAGTTCCGGTTTTTTTTTTATTTAAAAAAAAAAACTGGCCCCACAACGTCTTCTTTCCTGTTAAATATT +TTTTGTTTATGTTTGCAATAATCTGCGTTATGGGTGATGATGACATATTTTAAGGTTTTTTCCTTTGCGG +TTTTTTGGCCGCAAAGGATATATTTATTACCTTAAATTGTTGTCCTCCTCCTTATCGCGGTTATTTCTTT +CATTAAAGTAGAAAAACTTTCAGCAATGATGTCTGCTCGTGCATCGATGAAGACGCAGCGAAATGCGATA +CGCATTGTGAATTGCAGATTTCAGTGAACCATCAGATTTCCGAACGCATATGGCGCTGTGGGGACTTCCC +CGCAGCACGTCTGTTTCAGTGTCTTTTAAACTACACTTCAAATACACCGCCACGTTTTATAAAGAAAAAA +GTGTAACGGCAGTTTTGATACTCTTGCTTGTGTCAATGAATTGTCGCTTGCATGTATTTTTTTTTTTAAA +CGCTTTGCGGTATTTTTTGGGTGTCGATATCTGTGATGGTGTCGTCTCCTTAAATTTGTTGAATTCTACA +TGTTTCATGCCTTCTCTTCTGGCACTGTGTGTTAGAAGTGAAGGTATTGTTGTTGTTGTATGAATGGCTT +TTAATAATACAAACCCATATCCTTTCTTCTCCTGAAAGAGATAAGGTGGATGGATTATAAATATATTCTC +CTTATGTATATCTCATATTTTGGGAGTTTGGTGAAGAGCTGTGATGGCGTTGTGTATGGATTAAGCATTA +TTCTTTGGTTGGTGATGATGAAAAGACAGACACTTCTGTCACACCGTCGTCGCCCGCTAGATGATAATGC +TTTTCTCCTATCATATAAGCCACAAGCAAAGATACCATTATATAAAGGAATGAGTATGTTTTATTTAGCC +ATAAAAAAGAAATACAACAACAAGTCAGAATAATATAGCAACGCAATCAAAAGAGAAGAGCGTATTATTA +TAACGATTGTTATATATTATTTATTGCTCTCTCATATATCTATCTAGACCTGAAATCAGTCGAGGATACC +CGCTGAATTTAAGCATATTATTAAGCGGAGGAAAAGAAAATAACTATGATTCCCTCAGTAACGGCGAGTG +AAGAGGGAGGTGCTCAAAGTGAAAATCGTGGTACCTCTTATGGTACCGCGAGTTGTAGCCTCTAGAGGCG +T +>AB769665.1 Eimeria zuernii genes for 18S rRNA, internal transcribed spacer 1, 5.8S rRNA, internal transcribed spacer 2 and 28S rRNA, partial and complete sequence, isolate: 4-1 +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNTACAACAACAAGTCAGAATAATATAGCAACGCAATCAAAAGAGAAGAGCGTATTATTA +TAACGATTGTTATATATTATTTATTGCTCTCTCATATATCTATCTAGACCTGAAATCAGTCGAGGATACC +CGCTGAATTTAAGCATATTATTAAGCGGAGGAAAAGAAAATAACTATGATTCCCTCAGTAACGGCGAGTG +AAGAGGGAGGTGCTCAAAGTGAAAATCGTGGTACCTCTTATGGTACCGCGAGTTGTAGCCTCTAGAGGCG +T +>AB769665.1 Eimeria zuernii genes for 18S rRNA, internal transcribed spacer 1, 5.8S rRNA, internal transcribed spacer 2 and 28S rRNA, partial and complete sequence, isolate: 4-1 +AGTAGTCATTATGCTTGTCTCAAAGATTAAGCCATGCATGTCTAAGTATAAGCTTTTATACGGTGAAACT +GCGAATGGCTCATTAAAACAGTTATAGTTTATTTGATGGTCTCTTCTTACATGGATAACCATGGTAATTC +TATGGCTAATACATGCGAAAATGCCTCCTTCTATGGAGGGGCTGTGTTTATTAGATACAAAACCAACCCA +CTTTTGTGGAGTCCTGGTGATTCATAGTAACCAAACGGATCGCATTTGGCTTCGGCCCGCGATGGATCTT +TCAAGTTTCTGACCTATCAGCTTTCGACGGTAGGGTATTGGCCTACCGTGGCAGTGACGGGTAACGGGGA +ATTAGGGTTCGATTCCGGAGAGGGAGCCTGAGAAACGGCTACCACATCTAAGGAAGGCAGCAGGCGCGCA +AATTACCCAATGAAAACAGTTTCGAGGTAGTGACGAGAAATAACAATACAGGGCATTTTATGCTCTGTAA +TTGGAAAGATGGGAATGTAAAACCCTTCCAGAGTAACAATTGGAGGGCAAGTCTGGTGCCAGCAGCCGCG +GTAATTCCAGCTCCAATAGTGTATATTAGAGTTGTTGCAGTTAAAAAGCTCGTAGTTGGATTTCTGCTGT +GGTCATCCGGTACCGCCCGTATGGGTGCGCACCTGGTTTGGCTCCGGCTTTCTTCCTGTAGCCGTCCGCG +CTTAATTGCGTGTACTGTGTTACGGAACTTTTACTTTGAGAAAAATAGAGTGTTTCAAGCAGGCTTGTCG +CCCTGAATACTTCAGCATGGAATAATAGGATAGGACCTTGGTTCTATTTTGTTGGTTTCTAGGACCAAGG +TAATGATTAATAGGGACAGTTGGGGGCATTCGTATTTAACTGTCAGAGGTGAAATTCTTAGATTTGTTAA +AGACGAACTACTGCGAAAGCATTTGCCAAGGATGTTTTCATTAATCAAGAACGACAGTAGGGGGTTTGAA +GACGATTAGATACCGTCGTAATCTCTACCATAAACTATGCCGACTAGAGATAGGGAAATGCCTACCTTGG +CTTCTCCTGCACCTCATGAGAAATCAAAGTCTCTGGGTTCTGGGGGGAGTATGGTCGCAAGGCTGAAACT +TAAAGGAATTGACGGAAGGGCACCACCAGGCGTGGAGCCTGCGGCTTAATTTGACTCAACACGGGGAAAC +TCACCAGGTCCAGACATGGGAAGGATTGACAGATTGATAGCTCTTTCTTGATTCTATGGGTGGTGGTGCA +AGGCCGTTCTTAGTTGGTGGAGTGATCTGTCTGGTTAATTTCGATAACGAACGAGACCTTAGCCTGCTAA +ATAGGATCGGGAACTACGGTTCTCGTATCACTTCTTAGAGGGACTTTGCGTGTCTAACGCAAGGAAGTTT +GAGGCAATAACAGGTCTGTGATGCCCTTAGATGTTCTGGGCTGCACGCGCGCTACACTGATGCATGCAAC +GAGTTCTTGACCTTGGCCGGAAGGTCTAGGTAATCTTTTGAGTGTGCATCGTGATGGGGATAGATTATTG +CAATTATTAATCTTCAACGAGGAATGCCTAGTAGGCGTAAGTCAGCAGCTTGCGCCGATTACGTCCCTGC +CCTTTGTACACACCGCCCGTCGCTGCAACCGATCGGAGGGTCCTGTGAACTCAATGGACTGACCAACTCC +CTTCGGGGGTTGGTCGGAAAGTTGCGTAAATAGAGCCCTCTAAAGGATGCAAAAGTCGTAACACGGTTTC +CGTAGGTGAACCTGCGGAAGGATAATTCACACATTCAAAATAGTTTTGGAATGCTTCTGGGTAACATGTT +TCTACCCACTACATCCAACCTCCTGATAGTTGGTTGGCCTGTTGTGGATAGTTACTGTTGTGTTTGTTCC +CTTATGGCATTTCCAAGACTGTGGTCTTATAAAAAACCTCACCACAAAACCCTGTAAACTATTGATTCTT +TCAGTTCCGGTTTTTTAAAAATTTAAAAAAAAAAAATGGCCCCACAACGTCTTCTTTCCTGTTAAATATT +TTTTGTTTATGTTTGCAATAATCTGCGTTATGGGTGATGATGACATATTTTAAGGTTTTTTCCTTTGCGG +TTTTTTGGCCGCAAAGGATATATTTATTACCTTAAATTGTTGTCCTCCTCCTTATCGCGGTTATTTCTTT +CATTAAAGTAGAAAAACTTTCAGCAATGATGTCTGCTCGTGCATCGATGAAGACGCAGCGAAATGCGATA +CGCATTGTGAATTGCAGATTTCAGTGAACCATCAGATTTCCGAACGCATATGGCGCTGTGGGGACTTCCC +CGCAGCACGTCTGTTTCAGTGTCTTTTAAACTACACTTCAAATACACCGCCACGTATTATAAAGAAAAAA +ATGTAACGGCAGTTTTGATACTCTTGCTTGTGTCAATGAATTGTCGCTTGCAAGAATTTTTTTTTTAAAA +CGCTTTGCGGTATTTTTTGGGTGTCGATATCTGTGATGGTGTCGTCTCCTTAAATTTGTTGAATTCTACA +TGTTTCATGCCTTCTCTTCTGGCACTGTGTGTTAGAAGTGAAGGTATTGTTGTTGTTGTATGAATGGCTT +TTAATAATACAAACCCATATCCTTTCTTCTCCTGAAAGAGATAAGGTGGATGGATTATAAATATATTCTC +CTTATGTATATCTCATATTTTGGGAGTTTGGTGAAGAGCTGTGATGGCGTTGTGTATGGATTAAGCATTA +TTCTTTGGTTGGTGATGATGAAAAGACAGACACTTCTGTCACACCGTCGTCGCCCGCTAGATGATAATGC +TTTTCTCCTATCATATAAGCCACAAGCAAAGATACCATTATATAAAGGAATGAGTATGTTTAAAAAAGCC +ATAAAAAAAAAATACAACAACAAGTCAGAATAATATAGCAACGCAATCAAAAGAGAAGAGCGTATTATTA +TAACGATTGTTATATATTATTTATTGCTCTCTCATATATCTATCTAGACCTGAAATCAGTCGAGGATACC +CGCTGAATTTAAGCATATTATTAAGCGGAGGAAAAGAAAATAACTATGATTCCCTCAGTAACGGCGAGTG +AAGAGGGAGGTGCTCAAAGTGAAAATCGTGGTACCTCTTATGGTACCGCGAGTTGTAGCCTCTAGAGGCG +T +Usage: ./primer3_masker [OPTIONS] +Options: + -h, --help - print this usage screen and exit + -l, --list - define a k-mer list as model variable (-l [coefficient mismatches sq] + -lf, --lists_file - define a model with a file + -lp, --list_prefix - prefix of the k-mer lists to use with default model (default: homo_sapiens) + -lh, --kmer_lists_path - path to the kmer list files + -p, --probability_cutoff - masking cutoff [0, 1] (default: >=0.1) + -a, --absolute_value_cutoff - k-mer count cutoff + -m5, --mask_5p - nucleotides to mask in 5' direction + -m3, --mask_3p - nucleotides to mask in 3' direction + -c, --masking_char - character used for masking (default: N) + -s, --soft_mask - use soft masking + -d, --masking_direction - a strand to mask (fwd, rev, both) (default: both) +>AB769665.1 Eimeria zuernii genes for 18S rRNA, internal transcribed spacer 1, 5.8S rRNA, internal transcribed spacer 2 and 28S rRNA, partial and complete sequence, isolate: 4-1 +AGTAGTCATTATGCTTGTCTCAAAGATTAAGCCATGCATGTCTAAGTATAAGCTTTTATACGGTGAAACT +GCGAATGGCTCATTAAAACAGTTATAGTTTATTTGATGGTCTCTTCTTACATGGATAACCATGGTAATTC +TATGGCTAATACATGCGTAAATGCCTCCTTCTTTGGAGGGGCTGTGTTTATTAGATACAAAACCAACCCA +CTTTTGTGGAGTCCTGGTGATTCATAGTAACCAAACGGATCGCATTTGGCTTCGGCCCGCGATGGATCTT +TCAAGTTTCTGACCTATCAGCTTTCGACGGTAGGGTATTGGCCTACCGTGGCAGTGACGGGTAACGGGGA +ATTAGGGTTCGATTCCGGAGAGGGAGCCTGAGAAACGGCTACCACATCTAAGGAAGGCAGCAGGCGCGCA +AATTACCCAATGAAAACAGTTTCGAGGTAGTGACGAGAAATAACAATACAGGGCATTTTATGCTCTGTAA +TTGGAATGATGGGAATGTAAATCCCTTCCAGAGTAACAATTGGAGGGCAAGTCTGGTGCCAGCAGCCGCG +GTAATTCCAGCTCCAATAGTGTATATTAGAGTTGTTGCAGTTAAAAAGCTCGTAGTTGGATTTCTGCTGT +GGTCATCCGGTACCGCCCGTATGGGTGCGCACCTGGTTTGGCTCCGGCTTTCTTCCTGTAGCCGTCCGCG +CTTAATTGCGTGTACTGTGTTACGGAACTTTTACTTTGAGAAAAATAGAGTGTTTCAAGCAGGCTTGTCG +CCCTGAATACTTCAGCATGGAATAATAGGATAGGACCTTGGTTCTATTTTGTTGGTTTCTAGGACCAAGG +TAATGATTAATAGGGACAGTTGGGGGCATTCGTATTTAACTGTCAGAGGTGAAATTCTTAGATTTGTTAA +AGACGAACTACTGCGAAAGCATTTGCCAAGGATGTTTTCATTAATCAAGAACGACAGTAGGGGGTTTGAA +GACGATTAGATACCGTCGTAATCTCTACCATAAACTATGCCGACTAGAGATAGGGAAATGCCTACCTTGG +CTTCTCCTGCACCTCATGAGAAATCAAAGTCTCTGGGTTCTGGGGGGAGTATGGTCGCAAGGCTGAAACT +TAAAGGAATTGACGGAAGGGCACCACCAGGCGTGGAGCCTGCGGCTTAATTTGACTCAACACGGGGAAAC +TCACCAGGTCCAGACATGGGAAGGATTGACAGATTGATAGCTCTTTCTTGATTCTTTGGGTGGTGGTGCA +TGGCCGTTCTTAGTTGGTGGAGTGATCTGTCTGGTTAATTTCGATAACGAACGAGACCTTAGCCTGCTAA +ATAGGATCGGGAACTACGGTTCTCGTATCACTTCTTAGAGGGACTTTGCGTGTCTAACGCAAGGAAGTTT +GAGGCAATAACAGGTCTGTGATGCCCTTAGATGTTCTGGGCTGCACGCGCGCTACACTGATGCATGCAAC +GAGTTCTTGACCTTGGCCGGAAGGTCTAGGTAATCTTTTGAGTGTGCATCGTGATGGGGATAGATTATTG +CAATTATTAATCTTCAACGAGGAATGCCTAGTAGGCGTAAGTCAGCAGCTTGCGCCGATTACGTCCCTGC +CCTTTGTACACACCGCCCGTCGCTGCAACCGATCGGAGGGTCCTGTGAACTCAATGGACTGACCAACTCC +CTTCGGGGGTTGGTCGGAAAGTTGCGTAAATAGAGCCCTCTAAAGGATGCAAAAGTCGTAACACGGTTTC +CGTAGGTGTACCTGCGGAAGGATTATTCACACATTCAAAATAGTTTTGGAATGCTTCTGGGTAACATGTT +TCTACCCACTACATCCAACCTCCTGATAGTTGGTTGGCCTGTTGTGGATAGTTACTGTTGTGTTTGTTCC +CTTATGGCATTTCCAAGACTGTGGTCTTATAAAAAACCTCACCACAAAACCCTGTAAACTATTGATTCTT +TCAGTTCCGGTTTTTTTTTTTTTTAAAAAAATTTTTTGGCCCCACAACGTCTTCTTTCCTGTTAAATATT +TTTTGTTTATGTTTGCAATAATCTGCGTTATGGGTGATGATGACATATTTTAAGGTTTTTTCCTTTGCGG +TTTTTTGGCCGCAAAGGATATATTTATTACCTTAAATTGTTGTCCTCCTCCTTATCGCGGTTATTTCTTT +CATTAAAGTAGAAAAACTTTCAGCAATGATGTCTGCTCGTGCATCGATGAAGACGCAGCGAAATGCGATA +CGCATTGTGAATTGCAGATTTCAGTGAACCATCAGATTTCCGAACGCATATGGCGCTGTGGGGACTTCCC +CGCAGCACGTCTGTTTCAGTGTCTTTTAAACTACACTTCAAATACACCGCCACGTTTTATAAAGAAAAAA +TTGTAACGGCAGTTTTGATACTCTTGCTTGTGTCAATGAATTGTCGCTTGCTTGTATTTTTTTTTTTTAT +CGCTTTGCGGTATTTTTTGGGTGTCGATATCTGTGATGGTGTCGTCTCCTTAAATTTGTTGAATTCTACA +TGTTTCATGCCTTCTCTTCTGGCACTGTGTGTTAGAAGTGAAGGTATTGTTGTTGTTGTATGAATGGCTT +TTAATAATACAAACCCATATCCTTTCTTCTCCTGAAAGAGATAAGGTGGATGGATTATAAATATATTCTC +CTTATGTATATCTCATATTTTGGGAGTTTGGTGAAGAGCTGTGATGGCGTTGTGTATGGATTAAGCATTA +TTCTTTGGTTGGTGATGATGAAAAGACAGACACTTCTGTCACACCGTCGTCGCCCGCTAGATGATAATGC +TTTTCTCCTATCATATAAGCCACAAGCAAAGATACCATTATATAAAGGAATGAGTATGTTTTTTTTTGCC +ATAAAATTTTTTTACAACAACAAGTCAGAATAATATAGCAACGCAATCAAAAGAGAAGAGCGTATTATTA +TAACGATTGTTATATATTATTTATTGCTCTCTCATATATCTATCTAGACCTGAAATCAGTCGAGGATACC +CGCTGAATTTAAGCATATTATTAAGCGGAGGAAAAGAAAATAACTATGATTCCCTCAGTAACGGCGAGTG +AAGAGGGAGGTGCTCAAAGTGAAAATCGTGGTACCTCTTATGGTACCGCGAGTTGTAGCCTCTAGAGGCG +T +>AB769665.1 Eimeria zuernii genes for 18S rRNA, internal transcribed spacer 1, 5.8S rRNA, internal transcribed spacer 2 and 28S rRNA, partial and complete sequence, isolate: 4-1 +AGTAGTCATTATGCTTGTCTCAAAGATTAAGCCATGCATGTCTAAGTATAAGCTTTTATACGGTGAAACT +GCGAATGGCTCATTAAAACAGTTATAGTTTATTTGATGGTCTCTTCTTACATGGATAACCATGGTAATTC +TATGGCTAATACATGCG*AAATGCCTCCTTCT*TGGAGGGGCTGTGTTTATTAGATACAAAACCAACCCA +CTTTTGTGGAGTCCTGGTGATTCATAGTAACCAAACGGATCGCATTTGGCTTCGGCCCGCGATGGATCTT +TCAAGTTTCTGACCTATCAGCTTTCGACGGTAGGGTATTGGCCTACCGTGGCAGTGACGGGTAACGGGGA +ATTAGGGTTCGATTCCGGAGAGGGAGCCTGAGAAACGGCTACCACATCTAAGGAAGGCAGCAGGCGCGCA +AATTACCCAATGAAAACAGTTTCGAGGTAGTGACGAGAAATAACAATACAGGGCATTTTATGCTCTGTAA +TTGGAA*GATGGGAATGTAAA*CCCTTCCAGAGTAACAATTGGAGGGCAAGTCTGGTGCCAGCAGCCGCG +GTAATTCCAGCTCCAATAGTGTATATTAGAGTTGTTGCAGTTAAAAAGCTCGTAGTTGGATTTCTGCTGT +GGTCATCCGGTACCGCCCGTATGGGTGCGCACCTGGTTTGGCTCCGGCTTTCTTCCTGTAGCCGTCCGCG +CTTAATTGCGTGTACTGTGTTACGGAACTTTTACTTTGAGAAAAATAGAGTGTTTCAAGCAGGCTTGTCG +CCCTGAATACTTCAGCATGGAATAATAGGATAGGACCTTGGTTCTATTTTGTTGGTTTCTAGGACCAAGG +TAATGATTAATAGGGACAGTTGGGGGCATTCGTATTTAACTGTCAGAGGTGAAATTCTTAGATTTGTTAA +AGACGAACTACTGCGAAAGCATTTGCCAAGGATGTTTTCATTAATCAAGAACGACAGTAGGGGGTTTGAA +GACGATTAGATACCGTCGTAATCTCTACCATAAACTATGCCGACTAGAGATAGGGAAATGCCTACCTTGG +CTTCTCCTGCACCTCATGAGAAATCAAAGTCTCTGGGTTCTGGGGGGAGTATGGTCGCAAGGCTGAAACT +TAAAGGAATTGACGGAAGGGCACCACCAGGCGTGGAGCCTGCGGCTTAATTTGACTCAACACGGGGAAAC +TCACCAGGTCCAGACATGGGAAGGATTGACAGATTGATAGCTCTTTCTTGATTCT*TGGGTGGTGGTGCA +*GGCCGTTCTTAGTTGGTGGAGTGATCTGTCTGGTTAATTTCGATAACGAACGAGACCTTAGCCTGCTAA +ATAGGATCGGGAACTACGGTTCTCGTATCACTTCTTAGAGGGACTTTGCGTGTCTAACGCAAGGAAGTTT +GAGGCAATAACAGGTCTGTGATGCCCTTAGATGTTCTGGGCTGCACGCGCGCTACACTGATGCATGCAAC +GAGTTCTTGACCTTGGCCGGAAGGTCTAGGTAATCTTTTGAGTGTGCATCGTGATGGGGATAGATTATTG +CAATTATTAATCTTCAACGAGGAATGCCTAGTAGGCGTAAGTCAGCAGCTTGCGCCGATTACGTCCCTGC +CCTTTGTACACACCGCCCGTCGCTGCAACCGATCGGAGGGTCCTGTGAACTCAATGGACTGACCAACTCC +CTTCGGGGGTTGGTCGGAAAGTTGCGTAAATAGAGCCCTCTAAAGGATGCAAAAGTCGTAACACGGTTTC +CGTAGGTG*ACCTGCGGAAGGAT*ATTCACACATTCAAAATAGTTTTGGAATGCTTCTGGGTAACATGTT +TCTACCCACTACATCCAACCTCCTGATAGTTGGTTGGCCTGTTGTGGATAGTTACTGTTGTGTTTGTTCC +CTTATGGCATTTCCAAGACTGTGGTCTTATAAAAAACCTCACCACAAAACCCTGTAAACTATTGATTCTT +TCAGTTCCGGTTTTTT*****TTTAAAAAAA*****TGGCCCCACAACGTCTTCTTTCCTGTTAAATATT +TTTTGTTTATGTTTGCAATAATCTGCGTTATGGGTGATGATGACATATTTTAAGGTTTTTTCCTTTGCGG +TTTTTTGGCCGCAAAGGATATATTTATTACCTTAAATTGTTGTCCTCCTCCTTATCGCGGTTATTTCTTT +CATTAAAGTAGAAAAACTTTCAGCAATGATGTCTGCTCGTGCATCGATGAAGACGCAGCGAAATGCGATA +CGCATTGTGAATTGCAGATTTCAGTGAACCATCAGATTTCCGAACGCATATGGCGCTGTGGGGACTTCCC +CGCAGCACGTCTGTTTCAGTGTCTTTTAAACTACACTTCAAATACACCGCCACGT*TTATAAAGAAAAAA +*TGTAACGGCAGTTTTGATACTCTTGCTTGTGTCAATGAATTGTCGCTTGC**G*ATTTTTTTTTT**A* +CGCTTTGCGGTATTTTTTGGGTGTCGATATCTGTGATGGTGTCGTCTCCTTAAATTTGTTGAATTCTACA +TGTTTCATGCCTTCTCTTCTGGCACTGTGTGTTAGAAGTGAAGGTATTGTTGTTGTTGTATGAATGGCTT +TTAATAATACAAACCCATATCCTTTCTTCTCCTGAAAGAGATAAGGTGGATGGATTATAAATATATTCTC +CTTATGTATATCTCATATTTTGGGAGTTTGGTGAAGAGCTGTGATGGCGTTGTGTATGGATTAAGCATTA +TTCTTTGGTTGGTGATGATGAAAAGACAGACACTTCTGTCACACCGTCGTCGCCCGCTAGATGATAATGC +TTTTCTCCTATCATATAAGCCACAAGCAAAGATACCATTATATAAAGGAATGAGTATGTTT******GCC +ATAAAA******TACAACAACAAGTCAGAATAATATAGCAACGCAATCAAAAGAGAAGAGCGTATTATTA +TAACGATTGTTATATATTATTTATTGCTCTCTCATATATCTATCTAGACCTGAAATCAGTCGAGGATACC +CGCTGAATTTAAGCATATTATTAAGCGGAGGAAAAGAAAATAACTATGATTCCCTCAGTAACGGCGAGTG +AAGAGGGAGGTGCTCAAAGTGAAAATCGTGGTACCTCTTATGGTACCGCGAGTTGTAGCCTCTAGAGGCG +T +>AB769665.1 Eimeria zuernii genes for 18S rRNA, internal transcribed spacer 1, 5.8S rRNA, internal transcribed spacer 2 and 28S rRNA, partial and complete sequence, isolate: 4-1 +AGTAGTCATTATGCTTGTCTCAAAGATTAAGCCATGCATGTCTAAGTATAAGCTTTTATACGGTGAAACT +GCGAATGGCTCATTAAAACAGTTATAGTTTATTTGATGGTCTCTTCTTACATGGATAACCATGGTAATTC +TATGGCTAATACATGCG-AAATGCCTCCTTCT-TGGAGGGGCTGTGTTTATTAGATACAAAACCAACCCA +CTTTTGTGGAGTCCTGGTGATTCATAGTAACCAAACGGATCGCATTTGGCTTCGGCCCGCGATGGATCTT +TCAAGTTTCTGACCTATCAGCTTTCGACGGTAGGGTATTGGCCTACCGTGGCAGTGACGGGTAACGGGGA +ATTAGGGTTCGATTCCGGAGAGGGAGCCTGAGAAACGGCTACCACATCTAAGGAAGGCAGCAGGCGCGCA +AATTACCCAATGAAAACAGTTTCGAGGTAGTGACGAGAAATAACAATACAGGGCATTTTATGCTCTGTAA +TTGGAA-GATGGGAATGTAAA-CCCTTCCAGAGTAACAATTGGAGGGCAAGTCTGGTGCCAGCAGCCGCG +GTAATTCCAGCTCCAATAGTGTATATTAGAGTTGTTGCAGTTAAAAAGCTCGTAGTTGGATTTCTGCTGT +GGTCATCCGGTACCGCCCGTATGGGTGCGCACCTGGTTTGGCTCCGGCTTTCTTCCTGTAGCCGTCCGCG +CTTAATTGCGTGTACTGTGTTACGGAACTTTTACTTTGAGAAAAATAGAGTGTTTCAAGCAGGCTTGTCG +CCCTGAATACTTCAGCATGGAATAATAGGATAGGACCTTGGTTCTATTTTGTTGGTTTCTAGGACCAAGG +TAATGATTAATAGGGACAGTTGGGGGCATTCGTATTTAACTGTCAGAGGTGAAATTCTTAGATTTGTTAA +AGACGAACTACTGCGAAAGCATTTGCCAAGGATGTTTTCATTAATCAAGAACGACAGTAGGGGGTTTGAA +GACGATTAGATACCGTCGTAATCTCTACCATAAACTATGCCGACTAGAGATAGGGAAATGCCTACCTTGG +CTTCTCCTGCACCTCATGAGAAATCAAAGTCTCTGGGTTCTGGGGGGAGTATGGTCGCAAGGCTGAAACT +TAAAGGAATTGACGGAAGGGCACCACCAGGCGTGGAGCCTGCGGCTTAATTTGACTCAACACGGGGAAAC +TCACCAGGTCCAGACATGGGAAGGATTGACAGATTGATAGCTCTTTCTTGATTCT-TGGGTGGTGGTGCA +-GGCCGTTCTTAGTTGGTGGAGTGATCTGTCTGGTTAATTTCGATAACGAACGAGACCTTAGCCTGCTAA +ATAGGATCGGGAACTACGGTTCTCGTATCACTTCTTAGAGGGACTTTGCGTGTCTAACGCAAGGAAGTTT +GAGGCAATAACAGGTCTGTGATGCCCTTAGATGTTCTGGGCTGCACGCGCGCTACACTGATGCATGCAAC +GAGTTCTTGACCTTGGCCGGAAGGTCTAGGTAATCTTTTGAGTGTGCATCGTGATGGGGATAGATTATTG +CAATTATTAATCTTCAACGAGGAATGCCTAGTAGGCGTAAGTCAGCAGCTTGCGCCGATTACGTCCCTGC +CCTTTGTACACACCGCCCGTCGCTGCAACCGATCGGAGGGTCCTGTGAACTCAATGGACTGACCAACTCC +CTTCGGGGGTTGGTCGGAAAGTTGCGTAAATAGAGCCCTCTAAAGGATGCAAAAGTCGTAACACGGTTTC +CGTAGGTG-ACCTGCGGAAGGAT-ATTCACACATTCAAAATAGTTTTGGAATGCTTCTGGGTAACATGTT +TCTACCCACTACATCCAACCTCCTGATAGTTGGTTGGCCTGTTGTGGATAGTTACTGTTGTGTTTGTTCC +CTTATGGCATTTCCAAGACTGTGGTCTTATAAAAAACCTCACCACAAAACCCTGTAAACTATTGATTCTT +TCAGTTCCGGTTTTTT-----TTTAAAAAAA-----TGGCCCCACAACGTCTTCTTTCCTGTTAAATATT +TTTTGTTTATGTTTGCAATAATCTGCGTTATGGGTGATGATGACATATTTTAAGGTTTTTTCCTTTGCGG +TTTTTTGGCCGCAAAGGATATATTTATTACCTTAAATTGTTGTCCTCCTCCTTATCGCGGTTATTTCTTT +CATTAAAGTAGAAAAACTTTCAGCAATGATGTCTGCTCGTGCATCGATGAAGACGCAGCGAAATGCGATA +CGCATTGTGAATTGCAGATTTCAGTGAACCATCAGATTTCCGAACGCATATGGCGCTGTGGGGACTTCCC +CGCAGCACGTCTGTTTCAGTGTCTTTTAAACTACACTTCAAATACACCGCCACGT-TTATAAAGAAAAAA +-TGTAACGGCAGTTTTGATACTCTTGCTTGTGTCAATGAATTGTCGCTTGC--G-ATTTTTTTTTT--A- +CGCTTTGCGGTATTTTTTGGGTGTCGATATCTGTGATGGTGTCGTCTCCTTAAATTTGTTGAATTCTACA +TGTTTCATGCCTTCTCTTCTGGCACTGTGTGTTAGAAGTGAAGGTATTGTTGTTGTTGTATGAATGGCTT +TTAATAATACAAACCCATATCCTTTCTTCTCCTGAAAGAGATAAGGTGGATGGATTATAAATATATTCTC +CTTATGTATATCTCATATTTTGGGAGTTTGGTGAAGAGCTGTGATGGCGTTGTGTATGGATTAAGCATTA +TTCTTTGGTTGGTGATGATGAAAAGACAGACACTTCTGTCACACCGTCGTCGCCCGCTAGATGATAATGC +TTTTCTCCTATCATATAAGCCACAAGCAAAGATACCATTATATAAAGGAATGAGTATGTTT------GCC +ATAAAA------TACAACAACAAGTCAGAATAATATAGCAACGCAATCAAAAGAGAAGAGCGTATTATTA +TAACGATTGTTATATATTATTTATTGCTCTCTCATATATCTATCTAGACCTGAAATCAGTCGAGGATACC +CGCTGAATTTAAGCATATTATTAAGCGGAGGAAAAGAAAATAACTATGATTCCCTCAGTAACGGCGAGTG +AAGAGGGAGGTGCTCAAAGTGAAAATCGTGGTACCTCTTATGGTACCGCGAGTTGTAGCCTCTAGAGGCG +T +>AB769665.1 Eimeria zuernii genes for 18S rRNA, internal transcribed spacer 1, 5.8S rRNA, internal transcribed spacer 2 and 28S rRNA, partial and complete sequence, isolate: 4-1 +AGTAGTCATTATGCTTGTCTCAAAGATTAAGCCATGCATGTCTAAGTATAAGCTTTTATACGGTGAAACT +GCGAATGGCTCATTAAAACAGTTATAGTTTATTTGATGGTCTCTTCTTACATGGATAACCATGGTAATTC +TATGGCTAATACATGCG.AAATGCCTCCTTCT.TGGAGGGGCTGTGTTTATTAGATACAAAACCAACCCA +CTTTTGTGGAGTCCTGGTGATTCATAGTAACCAAACGGATCGCATTTGGCTTCGGCCCGCGATGGATCTT +TCAAGTTTCTGACCTATCAGCTTTCGACGGTAGGGTATTGGCCTACCGTGGCAGTGACGGGTAACGGGGA +ATTAGGGTTCGATTCCGGAGAGGGAGCCTGAGAAACGGCTACCACATCTAAGGAAGGCAGCAGGCGCGCA +AATTACCCAATGAAAACAGTTTCGAGGTAGTGACGAGAAATAACAATACAGGGCATTTTATGCTCTGTAA +TTGGAA.GATGGGAATGTAAA.CCCTTCCAGAGTAACAATTGGAGGGCAAGTCTGGTGCCAGCAGCCGCG +GTAATTCCAGCTCCAATAGTGTATATTAGAGTTGTTGCAGTTAAAAAGCTCGTAGTTGGATTTCTGCTGT +GGTCATCCGGTACCGCCCGTATGGGTGCGCACCTGGTTTGGCTCCGGCTTTCTTCCTGTAGCCGTCCGCG +CTTAATTGCGTGTACTGTGTTACGGAACTTTTACTTTGAGAAAAATAGAGTGTTTCAAGCAGGCTTGTCG +CCCTGAATACTTCAGCATGGAATAATAGGATAGGACCTTGGTTCTATTTTGTTGGTTTCTAGGACCAAGG +TAATGATTAATAGGGACAGTTGGGGGCATTCGTATTTAACTGTCAGAGGTGAAATTCTTAGATTTGTTAA +AGACGAACTACTGCGAAAGCATTTGCCAAGGATGTTTTCATTAATCAAGAACGACAGTAGGGGGTTTGAA +GACGATTAGATACCGTCGTAATCTCTACCATAAACTATGCCGACTAGAGATAGGGAAATGCCTACCTTGG +CTTCTCCTGCACCTCATGAGAAATCAAAGTCTCTGGGTTCTGGGGGGAGTATGGTCGCAAGGCTGAAACT +TAAAGGAATTGACGGAAGGGCACCACCAGGCGTGGAGCCTGCGGCTTAATTTGACTCAACACGGGGAAAC +TCACCAGGTCCAGACATGGGAAGGATTGACAGATTGATAGCTCTTTCTTGATTCT.TGGGTGGTGGTGCA +.GGCCGTTCTTAGTTGGTGGAGTGATCTGTCTGGTTAATTTCGATAACGAACGAGACCTTAGCCTGCTAA +ATAGGATCGGGAACTACGGTTCTCGTATCACTTCTTAGAGGGACTTTGCGTGTCTAACGCAAGGAAGTTT +GAGGCAATAACAGGTCTGTGATGCCCTTAGATGTTCTGGGCTGCACGCGCGCTACACTGATGCATGCAAC +GAGTTCTTGACCTTGGCCGGAAGGTCTAGGTAATCTTTTGAGTGTGCATCGTGATGGGGATAGATTATTG +CAATTATTAATCTTCAACGAGGAATGCCTAGTAGGCGTAAGTCAGCAGCTTGCGCCGATTACGTCCCTGC +CCTTTGTACACACCGCCCGTCGCTGCAACCGATCGGAGGGTCCTGTGAACTCAATGGACTGACCAACTCC +CTTCGGGGGTTGGTCGGAAAGTTGCGTAAATAGAGCCCTCTAAAGGATGCAAAAGTCGTAACACGGTTTC +CGTAGGTG.ACCTGCGGAAGGAT.ATTCACACATTCAAAATAGTTTTGGAATGCTTCTGGGTAACATGTT +TCTACCCACTACATCCAACCTCCTGATAGTTGGTTGGCCTGTTGTGGATAGTTACTGTTGTGTTTGTTCC +CTTATGGCATTTCCAAGACTGTGGTCTTATAAAAAACCTCACCACAAAACCCTGTAAACTATTGATTCTT +TCAGTTCCGGTTTTTT.....TTTAAAAAAA.....TGGCCCCACAACGTCTTCTTTCCTGTTAAATATT +TTTTGTTTATGTTTGCAATAATCTGCGTTATGGGTGATGATGACATATTTTAAGGTTTTTTCCTTTGCGG +TTTTTTGGCCGCAAAGGATATATTTATTACCTTAAATTGTTGTCCTCCTCCTTATCGCGGTTATTTCTTT +CATTAAAGTAGAAAAACTTTCAGCAATGATGTCTGCTCGTGCATCGATGAAGACGCAGCGAAATGCGATA +CGCATTGTGAATTGCAGATTTCAGTGAACCATCAGATTTCCGAACGCATATGGCGCTGTGGGGACTTCCC +CGCAGCACGTCTGTTTCAGTGTCTTTTAAACTACACTTCAAATACACCGCCACGT.TTATAAAGAAAAAA +.TGTAACGGCAGTTTTGATACTCTTGCTTGTGTCAATGAATTGTCGCTTGC..G.ATTTTTTTTTT..A. +CGCTTTGCGGTATTTTTTGGGTGTCGATATCTGTGATGGTGTCGTCTCCTTAAATTTGTTGAATTCTACA +TGTTTCATGCCTTCTCTTCTGGCACTGTGTGTTAGAAGTGAAGGTATTGTTGTTGTTGTATGAATGGCTT +TTAATAATACAAACCCATATCCTTTCTTCTCCTGAAAGAGATAAGGTGGATGGATTATAAATATATTCTC +CTTATGTATATCTCATATTTTGGGAGTTTGGTGAAGAGCTGTGATGGCGTTGTGTATGGATTAAGCATTA +TTCTTTGGTTGGTGATGATGAAAAGACAGACACTTCTGTCACACCGTCGTCGCCCGCTAGATGATAATGC +TTTTCTCCTATCATATAAGCCACAAGCAAAGATACCATTATATAAAGGAATGAGTATGTTT......GCC +ATAAAA......TACAACAACAAGTCAGAATAATATAGCAACGCAATCAAAAGAGAAGAGCGTATTATTA +TAACGATTGTTATATATTATTTATTGCTCTCTCATATATCTATCTAGACCTGAAATCAGTCGAGGATACC +CGCTGAATTTAAGCATATTATTAAGCGGAGGAAAAGAAAATAACTATGATTCCCTCAGTAACGGCGAGTG +AAGAGGGAGGTGCTCAAAGTGAAAATCGTGGTACCTCTTATGGTACCGCGAGTTGTAGCCTCTAGAGGCG +T +>AB769665.1 Eimeria zuernii genes for 18S rRNA, internal transcribed spacer 1, 5.8S rRNA, internal transcribed spacer 2 and 28S rRNA, partial and complete sequence, isolate: 4-1 +AGTAGTCATTATGCTTGTCTCAAAGATTAAGCCATGCATGTCTAAGTATAAGCTTTTATACGGTGAAACT +GCGAATGGCTCATTAAAACAGTTATAGTTTATTTGATGGTCTCTTCTTACATGGATAACCATGGTAATTC +TATGGCTAATACATGCG,AAATGCCTCCTTCT,TGGAGGGGCTGTGTTTATTAGATACAAAACCAACCCA +CTTTTGTGGAGTCCTGGTGATTCATAGTAACCAAACGGATCGCATTTGGCTTCGGCCCGCGATGGATCTT +TCAAGTTTCTGACCTATCAGCTTTCGACGGTAGGGTATTGGCCTACCGTGGCAGTGACGGGTAACGGGGA +ATTAGGGTTCGATTCCGGAGAGGGAGCCTGAGAAACGGCTACCACATCTAAGGAAGGCAGCAGGCGCGCA +AATTACCCAATGAAAACAGTTTCGAGGTAGTGACGAGAAATAACAATACAGGGCATTTTATGCTCTGTAA +TTGGAA,GATGGGAATGTAAA,CCCTTCCAGAGTAACAATTGGAGGGCAAGTCTGGTGCCAGCAGCCGCG +GTAATTCCAGCTCCAATAGTGTATATTAGAGTTGTTGCAGTTAAAAAGCTCGTAGTTGGATTTCTGCTGT +GGTCATCCGGTACCGCCCGTATGGGTGCGCACCTGGTTTGGCTCCGGCTTTCTTCCTGTAGCCGTCCGCG +CTTAATTGCGTGTACTGTGTTACGGAACTTTTACTTTGAGAAAAATAGAGTGTTTCAAGCAGGCTTGTCG +CCCTGAATACTTCAGCATGGAATAATAGGATAGGACCTTGGTTCTATTTTGTTGGTTTCTAGGACCAAGG +TAATGATTAATAGGGACAGTTGGGGGCATTCGTATTTAACTGTCAGAGGTGAAATTCTTAGATTTGTTAA +AGACGAACTACTGCGAAAGCATTTGCCAAGGATGTTTTCATTAATCAAGAACGACAGTAGGGGGTTTGAA +GACGATTAGATACCGTCGTAATCTCTACCATAAACTATGCCGACTAGAGATAGGGAAATGCCTACCTTGG +CTTCTCCTGCACCTCATGAGAAATCAAAGTCTCTGGGTTCTGGGGGGAGTATGGTCGCAAGGCTGAAACT +TAAAGGAATTGACGGAAGGGCACCACCAGGCGTGGAGCCTGCGGCTTAATTTGACTCAACACGGGGAAAC +TCACCAGGTCCAGACATGGGAAGGATTGACAGATTGATAGCTCTTTCTTGATTCT,TGGGTGGTGGTGCA +,GGCCGTTCTTAGTTGGTGGAGTGATCTGTCTGGTTAATTTCGATAACGAACGAGACCTTAGCCTGCTAA +ATAGGATCGGGAACTACGGTTCTCGTATCACTTCTTAGAGGGACTTTGCGTGTCTAACGCAAGGAAGTTT +GAGGCAATAACAGGTCTGTGATGCCCTTAGATGTTCTGGGCTGCACGCGCGCTACACTGATGCATGCAAC +GAGTTCTTGACCTTGGCCGGAAGGTCTAGGTAATCTTTTGAGTGTGCATCGTGATGGGGATAGATTATTG +CAATTATTAATCTTCAACGAGGAATGCCTAGTAGGCGTAAGTCAGCAGCTTGCGCCGATTACGTCCCTGC +CCTTTGTACACACCGCCCGTCGCTGCAACCGATCGGAGGGTCCTGTGAACTCAATGGACTGACCAACTCC +CTTCGGGGGTTGGTCGGAAAGTTGCGTAAATAGAGCCCTCTAAAGGATGCAAAAGTCGTAACACGGTTTC +CGTAGGTG,ACCTGCGGAAGGAT,ATTCACACATTCAAAATAGTTTTGGAATGCTTCTGGGTAACATGTT +TCTACCCACTACATCCAACCTCCTGATAGTTGGTTGGCCTGTTGTGGATAGTTACTGTTGTGTTTGTTCC +CTTATGGCATTTCCAAGACTGTGGTCTTATAAAAAACCTCACCACAAAACCCTGTAAACTATTGATTCTT +TCAGTTCCGGTTTTTT,,,,,TTTAAAAAAA,,,,,TGGCCCCACAACGTCTTCTTTCCTGTTAAATATT +TTTTGTTTATGTTTGCAATAATCTGCGTTATGGGTGATGATGACATATTTTAAGGTTTTTTCCTTTGCGG +TTTTTTGGCCGCAAAGGATATATTTATTACCTTAAATTGTTGTCCTCCTCCTTATCGCGGTTATTTCTTT +CATTAAAGTAGAAAAACTTTCAGCAATGATGTCTGCTCGTGCATCGATGAAGACGCAGCGAAATGCGATA +CGCATTGTGAATTGCAGATTTCAGTGAACCATCAGATTTCCGAACGCATATGGCGCTGTGGGGACTTCCC +CGCAGCACGTCTGTTTCAGTGTCTTTTAAACTACACTTCAAATACACCGCCACGT,TTATAAAGAAAAAA +,TGTAACGGCAGTTTTGATACTCTTGCTTGTGTCAATGAATTGTCGCTTGC,,G,ATTTTTTTTTT,,A, +CGCTTTGCGGTATTTTTTGGGTGTCGATATCTGTGATGGTGTCGTCTCCTTAAATTTGTTGAATTCTACA +TGTTTCATGCCTTCTCTTCTGGCACTGTGTGTTAGAAGTGAAGGTATTGTTGTTGTTGTATGAATGGCTT +TTAATAATACAAACCCATATCCTTTCTTCTCCTGAAAGAGATAAGGTGGATGGATTATAAATATATTCTC +CTTATGTATATCTCATATTTTGGGAGTTTGGTGAAGAGCTGTGATGGCGTTGTGTATGGATTAAGCATTA +TTCTTTGGTTGGTGATGATGAAAAGACAGACACTTCTGTCACACCGTCGTCGCCCGCTAGATGATAATGC +TTTTCTCCTATCATATAAGCCACAAGCAAAGATACCATTATATAAAGGAATGAGTATGTTT,,,,,,GCC +ATAAAA,,,,,,TACAACAACAAGTCAGAATAATATAGCAACGCAATCAAAAGAGAAGAGCGTATTATTA +TAACGATTGTTATATATTATTTATTGCTCTCTCATATATCTATCTAGACCTGAAATCAGTCGAGGATACC +CGCTGAATTTAAGCATATTATTAAGCGGAGGAAAAGAAAATAACTATGATTCCCTCAGTAACGGCGAGTG +AAGAGGGAGGTGCTCAAAGTGAAAATCGTGGTACCTCTTATGGTACCGCGAGTTGTAGCCTCTAGAGGCG +T diff -Nru primer3-2.3.7/test/masker_test.pl primer3-2.4.0/test/masker_test.pl --- primer3-2.3.7/test/masker_test.pl 1970-01-01 00:00:00.000000000 +0000 +++ primer3-2.4.0/test/masker_test.pl 2017-11-03 16:29:54.000000000 +0000 @@ -0,0 +1,270 @@ + +# Usage: perl masker_test.pl [ --valgrind ] +# This is the driver for tests of thal (thal.{c,h}, using in the wrapper +# C program ntthal (coded in ntthal_main.c) + +# ====================================================================== +# (c) Copyright 1996,1997,1998,1999,2000,2001,2004,2006,2007, 2008, 2009 +# Whitehead Institute for Biomedical Research, Steve Rozen, +# Andreas Untergasser and Helen Skaletsky +# All rights reserved. +# +# This file is part of the primer3 suite and the thal library. +# +# The primer3 suite 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 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 this file (file gpl-2.0.txt in the source distribution); if +# not, write to the Free Software Foundation, Inc., 51 Franklin St, +# Fifth Floor, Boston, MA 02110-1301 USA +# +# 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. +# ====================================================================== + +use strict; +use warnings 'all'; +use Getopt::Long; +use Carp; +use POSIX; # For testing wait / system return value, e.g. WIFSIGNALED, WTERMSIG..... +use Config; # To get the number for SIGINT + +our $test_count = 0; +our $exit_status = 0; +our $do_valgrind; + +our %signo; + +our $valgrind_exe = "/usr/bin/valgrind"; +our $valgrind_format; +our $winFlag; +our $exe = '../src/primer3_masker'; + +sub perldiff($$); +sub main(); +# Call system() with warnings turned off; needed for ActiveState / MS Windows. +sub _nowarn_system($); + +main(); + +sub runtest($$$$$) { + my ($desc, $masker_args, $infile, $benchfile, $outfile) = @_; + print $desc, '...'; + open Q, $infile or confess "open $infile: $!"; + my $errfile = "$outfile.err"; + + # Reopen STDOUT to get all masker output in one file + open OLDOUT, ">&STDOUT" or confess "Cannot dup STDOUT: $!"; + open OLDERR, ">&" , \*STDERR or confess "Cannot dup STDERR: $!"; + open STDOUT, '>', $outfile or confess "open STDOUT '>' $outfile: $!"; + open STDERR, '>', $errfile or confess "open STDERR '>' $errfile $!"; + while (my $in = ) { + $test_count++; + my $valgrind_prefix + = $do_valgrind ? sprintf($valgrind_format, $test_count) : ''; + my $cmd = "$valgrind_prefix $exe $masker_args $in"; + my $r = _nowarn_system($cmd); + } + close Q; + open STDOUT, ">&OLDOUT" or confess "Cannot dup OLDOUT: $!"; + open STDERR, ">&OLDERR" or confess "Cannot dup OLDERR: $!"; + close OLDERR; + close OLDOUT; + my $r = perldiff $benchfile, $outfile; + if ($r == 0) { + print "[OK]\n"; + } else { + print "[FAILED]\n"; + $exit_status = -1; + } +} + +sub main() { + my %args; + + # select STDERR; + $| = 1; + + if (!GetOptions(\%args, + 'valgrind', + 'windows', + )) { + print "Usage: $0 [ --valgrind ] [ --windows ]\n"; + exit -1; + } + + $winFlag = defined $args{'windows'}; + $do_valgrind = $args{'valgrind'}; + if ($winFlag && $do_valgrind) { + print "$0: Cannot specify both --valgrind and --windows\n"; + exit -1; + } + + if ($do_valgrind) { + if (!-x $valgrind_exe) { + print "Cannot find $valgrind_exe; will try `/usr/local/bin/valgrind`\n"; + $valgrind_exe = "/usr/local/bin/valgrind"; + } + if (!-x $valgrind_exe) { + warn "Cannot find $valgrind_exe; will try `which valgrind`\n"; + $valgrind_exe= `which valgrind`; + chomp($valgrind_exe); + if (!$valgrind_exe || ! -x $valgrind_exe) { + die "Cannot execute $valgrind_exe"; + } + } + } + + $valgrind_format + = "$valgrind_exe --leak-check=yes " + . " --show-reachable=yes --log-file=masker.%0.4d.valg "; + + if ($winFlag) { + $exe = '..\\src\\masker.exe'; + } + + # Look for the masker executable + die "Cannot execute $exe" unless -x $exe; + + my $valgrind_prefix = $do_valgrind ? sprintf($valgrind_format, $test_count) : ''; + + # ================================================== + # Test using runtest() + runtest('Default implementations', + "", "masker_input", 'masker_output', + 'masker_output.tmp'); + + # ================================================== + # If we were running under valgrind to look for memory-related + # errors (reading uninitialized memory, writing off the end of + # an array, etc) or leaks, then we look through the valgrind + # logs to summarize errors and leaks. + if ($do_valgrind) { + # Assume this is Unix/Linux envrionment, so + # we have grep. + my $r = system "grep ERROR masker.*.*valg* | grep -v 'ERROR SUMMARY: 0 errors'"; + if (!$r) { # !$r because grep returns 0 if something is found, + # and if something is found, we have a problem. + $exit_status = -1; + } + $r = system "grep 'definitely lost' masker.*.*valg* | grep -v '0 bytes'"; + if (!$r) { + $exit_status = -1; + } + $r = system "grep 'possibly lost' masker.*.*valg* | grep -v '0 bytes'"; + if (!$r) { + $exit_status = -1; + } + } + + exit $exit_status; +} + +sub round_numbers($) +{ + my ($line) = @_; + my ($i, $t1, $t2); + my $new = ""; + chomp($line); + my @fields = split("\t", $line); + for $i (0..$#fields) { + if ($fields[$i] =~ /([a-zA-Z0-9]\s*=\s*-*)([0-9.]+)/) { + $t1 = $1; + $t2 = $2; + $t2 = sprintf "%0.*f", 1, $t2; + $fields[$i] = $t1.$t2; + } + } + $new = join("\t", @fields); + return $new; +} + +# Usage: perldiff("filename1", "filename2") +# Return 0 if no differences are found, +# othewise return 1; +sub perldiff($$) { + my ($f1, $f2) = @_; + open F1, $f1 or die "open $f1: $!"; + open F2, $f2 or die "open $f2: $!"; + my @f1 = ; + my @f2 = ; + # If different number of lines, return FAIL. + if (@f1 != @f2) { + print "Different number of lines\n"; + return 1; + } + # check for differences on the lines, themselves + my $linenumber = 0; + my $line_end_diff = 0; + # iterate using lines in file1 + while (@f1) { + $linenumber++; + + # get the lines from each respective file + my $l1 = shift @f1; + my $l2 = shift @f2; + my $l1_orig = $l1; + my $l2_orig = $l2; + + $linenumber++; + # Check for difference between two edited lines (line by line) + # special case for lines with thermodynamical parameters values (round to 1 decimal) + if ($l1 =~ /Eimeria zuernii/) { + my $new_l1 = round_numbers($l1); + my $new_l2 = round_numbers($l2); + if ($new_l1 ne $new_l2) { + print + "Difference found at line $linenumber:\n< $l1_orig\n> $l2_orig\n"; + return 1; + } + } elsif ($l1 ne $l2) { + print + "Difference found at line $linenumber:\n< $l1_orig\n> $l2_orig\n"; + return 1; + } + } + return 0; +} + +sub _nowarn_system($) { + my $cmd = shift; + no warnings 'all'; + my $r = system $cmd; + my $r2 = $?; + if (!$winFlag && WIFEXITED($r2)) { + $r = WEXITSTATUS($r2); + if (defined $signo{'INT'}) { + if ($r == $signo{'INT'}) { + print "\nCommand: $cmd\n"; + print "generated exit value $r\n"; + print "Presumably caused by catching SIGINT\n"; + print "Tests halted\n\n"; + print "\nWARNING: not all tests executed ... [FAILED]\n"; + exit; + } + } + } + if (!$winFlag && WIFSIGNALED($r2)) { + my $r2 = WTERMSIG($r2); + print "Exited with signal $r2\n"; + } + $r; +} diff -Nru primer3-2.3.7/test/oligotm_test.pl primer3-2.4.0/test/oligotm_test.pl --- primer3-2.3.7/test/oligotm_test.pl 2016-02-17 10:11:34.000000000 +0000 +++ primer3-2.4.0/test/oligotm_test.pl 2017-11-03 16:29:54.000000000 +0000 @@ -62,13 +62,19 @@ exit -1; } -my $valgrind_exe = "/usr/local/bin/valgrind"; -if ((!-x $valgrind_exe) && ($do_valgrind)) { - warn "Cannot find $valgrind_exe; will try `which valgrind`\n"; - $valgrind_exe= `which valgrind`; - chomp($valgrind_exe); - if (!$valgrind_exe || ! -x $valgrind_exe) { - die "Cannot execute $valgrind_exe"; +my $valgrind_exe = "/usr/bin/valgrind"; +if ($do_valgrind) { + if (!-x $valgrind_exe) { + print "Cannot find $valgrind_exe; will try `/usr/local/bin/valgrind`\n"; + $valgrind_exe = "/usr/local/bin/valgrind"; + } + if (!-x $valgrind_exe) { + warn "Cannot find $valgrind_exe; will try `which valgrind`\n"; + $valgrind_exe= `which valgrind`; + chomp($valgrind_exe); + if (!$valgrind_exe || ! -x $valgrind_exe) { + die "Cannot execute $valgrind_exe"; + } } } @@ -104,11 +110,11 @@ if($tm){ if(abs($tm-$tmp[6])>EPSILON) { $failure++; - print "$cmd FAILED (expected $tm, got $tmp[6])\n"; + print "$cmd [FAILED] (expected $tm, got $tmp[6])\n"; } } else { $failure++; - print "$cmd FAILED (no output)\n"; + print "$cmd [FAILED] (no output)\n"; } $nr++; } @@ -126,8 +132,8 @@ } if(!$failure){ - print "$nr: OK\n\n\n"; + print "$nr: [OK]\n\n\n"; } else{ - print "\n$nr Tm tests: $failure FAILURES\n\n\n"; + print "\n$nr Tm tests: $failure [FAILURES]\n\n\n"; } diff -Nru primer3-2.3.7/test/p3test.pl primer3-2.4.0/test/p3test.pl --- primer3-2.3.7/test/p3test.pl 2016-02-17 10:11:36.000000000 +0000 +++ primer3-2.4.0/test/p3test.pl 2017-11-03 16:29:54.000000000 +0000 @@ -1,3 +1,4 @@ +#!/usr/bin/perl # Regression test driver for the primer3_core executable. # @@ -66,6 +67,25 @@ # Global variable for Errors my $all_ok; +# Create empty directories if needed +if (!(-d "../test/primer_list_tmp")) { + mkdir "../test/primer_list_tmp"; + print "mkdir: ../test/primer_list_tmp\n"; +} +if (!(-d "../test/primer1_list_tmp")) { + mkdir "../test/primer1_list_tmp"; + print "mkdir: ../test/primer1_list_tmp\n"; +} +if (!(-d "../test/primer1_th_list_tmp")) { + mkdir "../test/primer1_th_list_tmp"; + print "mkdir: ../test/primer1_th_list_tmp\n"; +} +if (!(-d "../test/th-w-other-tasks_list_tmp")) { + mkdir "../test/th-w-other-tasks_list_tmp"; + print "mkdir: ../test/th-w-other-tasks_list_tmp\n"; +} + + main(); sub main() { @@ -74,7 +94,7 @@ # select STDERR; $| = 1; - print "$0 for primer3_core version 2.3.7\n"; + print "$0 for primer3_core version 2.4.0\n"; $all_ok = 1; my $overall_start_time = time(); @@ -116,9 +136,13 @@ exit -1; } - my $valgrind_exe = "/usr/local/bin/valgrind"; + my $valgrind_exe = "/usr/bin/valgrind"; my $log_file_arg_for_valgrind = "--log-file-exactly"; if ($do_valgrind) { + if (!-x $valgrind_exe) { + print "Cannot find $valgrind_exe; will try `/usr/local/bin/valgrind`\n"; + $valgrind_exe = "/usr/local/bin/valgrind"; + } if (!-x $valgrind_exe) { print "Cannot find $valgrind_exe; will try `which valgrind`\n"; $valgrind_exe= `which valgrind`; @@ -254,6 +278,9 @@ 'primer_first_base_index', 'primer_must_match', + 'primer_masker', + 'primer_masker_formatted', + 'test_compl_error', 'test_left_to_right_of_right', 'dv_conc_vs_dntp_conc', @@ -322,6 +349,9 @@ 'primer_obj_fn', 'p3_3_prime_n', + + 'primer_masker', + 'primer_masker_formatted', # Put slow tests last 'primer_mispriming_th', @@ -362,9 +392,9 @@ my $default_version; if ($default_version2{$test}) { - $default_version = '-default_version=2'; + $default_version = '--default_version=2'; } else { - $default_version = '-default_version=1'; + $default_version = '--default_version=1'; } if ($test eq 'primer_lib_amb_codes') { @@ -374,7 +404,7 @@ } print "\nNOTE: this test takes _much_ longer than the others ", - "(10 to 20 minutes or more).\n", + "(5 to 20 minutes or more).\n", "starting $test at ", scalar(localtime), "..."; } my $valgrind_prefix @@ -424,33 +454,33 @@ if ($winFlag) { if ($test eq 'th-w-other-tasks') { - $settings = '-p3_settings ..\\th-w-other-tasks-settings.txt -echo_settings'; + $settings = '--p3_settings ..\\th-w-other-tasks-settings.txt --echo_settings'; } - $tmpCmd = "..\\$exe $default_version -strict_tags $settings ../$input >../$tmp"; + $tmpCmd = "..\\$exe $default_version --strict_tags $settings ../$input >../$tmp"; } else { if ($test eq 'th-w-other-tasks') { - $settings = '-p3_settings ../th-w-other-tasks-settings.txt -echo_settings'; + $settings = '--p3_settings ../th-w-other-tasks-settings.txt --echo_settings'; } - $tmpCmd = "$valgrind_prefix ../$exe $default_version -strict_tags $settings ../$input >../$tmp"; + $tmpCmd = "$valgrind_prefix ../$exe $default_version --strict_tags $settings ../$input >../$tmp"; } $r = _nowarn_system($tmpCmd); # back to main directory if (!chdir "../") { die "chdir \"..\": $!\n" } } elsif ($test =~ /settings$/) { - my $cmd = "$valgrind_prefix$exe $default_version -strict_tags -p3_settings_file=../$test.txt -echo <$input >$tmp"; + my $cmd = "$valgrind_prefix$exe $default_version --strict_tags --p3_settings_file=../settings_files/$test.txt --echo <$input >$tmp"; $r = _nowarn_system($cmd); } elsif ($test =~ /formatted$/) { - my $cmd = "$valgrind_prefix$exe $default_version -strict_tags -format_output <$input >$tmp"; + my $cmd = "$valgrind_prefix$exe $default_version --strict_tags --format_output <$input >$tmp"; $r = _nowarn_system($cmd); } elsif ($test =~ /_load_set/) { - my $cmd = "$valgrind_prefix$exe $default_version -strict_tags -p3_settings_file=$set_files$test.set -echo <$input >$tmp"; + my $cmd = "$valgrind_prefix$exe $default_version --strict_tags --p3_settings_file=$set_files$test.set --echo <$input >$tmp"; $r = _nowarn_system($cmd); } else { - my $cmd = "$valgrind_prefix$exe $default_version -strict_tags <$input >$tmp"; + my $cmd = "$valgrind_prefix$exe $default_version --strict_tags <$input >$tmp"; $r = _nowarn_system($cmd); } @@ -649,17 +679,17 @@ if ($_ =~ /bad_settings\d\.in/) { # For testing the settings files we need the # names of tests and the settings to be parallel - $cmd = "$valgrind_prefix$exe -strict_tags -p3_settings_file $_ primer_global_err/input_for_settings_tests.txt > $root.tmp 2> $root.tmp2"; + $cmd = "$valgrind_prefix$exe --strict_tags --p3_settings_file $_ primer_global_err/input_for_settings_tests.txt > $root.tmp 2> $root.tmp2"; # print STDERR $cmd, "\n"; } else { if ($output_and_err_tested) { - $cmd = "$valgrind_prefix$exe -strict_tags <$_ > $root.tmp 2> $root.tmp2"; + $cmd = "$valgrind_prefix$exe --strict_tags <$_ > $root.tmp 2> $root.tmp2"; } else { # We need to test the -output and -error command line arguments plus # simply taking the file name as an argument (no "<") - $cmd = "$valgrind_prefix$exe -strict_tags $_ -output $root.tmp -error $root.tmp2"; + $cmd = "$valgrind_prefix$exe --strict_tags $_ --output $root.tmp --error $root.tmp2"; $output_and_err_tested = 1; - print "Testing -output and -error flags on\n$cmd\n"; + print "Testing --output and --error flags on\n$cmd\n"; } } diff -Nru primer3-2.3.7/test/primer3_v1_1_4_default_settings_output primer3-2.4.0/test/primer3_v1_1_4_default_settings_output --- primer3-2.3.7/test/primer3_v1_1_4_default_settings_output 2016-02-17 10:11:36.000000000 +0000 +++ primer3-2.4.0/test/primer3_v1_1_4_default_settings_output 2017-11-03 16:29:54.000000000 +0000 @@ -1,4 +1,4 @@ -P3_SETTINGS_FILE_USED=../primer3_v1_1_4_default_settings.txt +P3_SETTINGS_FILE_USED=../settings_files/primer3_v1_1_4_default_settings.txt P3_FILE_TYPE=settings P3_FILE_ID=Default settings of primer3 version 1.1.4 PRIMER_TASK=pick_detection_primers diff -Nru primer3-2.3.7/test/primer3web_v0_4_0_default_settings_output primer3-2.4.0/test/primer3web_v0_4_0_default_settings_output --- primer3-2.3.7/test/primer3web_v0_4_0_default_settings_output 2016-02-17 10:11:35.000000000 +0000 +++ primer3-2.4.0/test/primer3web_v0_4_0_default_settings_output 2017-11-03 16:29:54.000000000 +0000 @@ -1,4 +1,4 @@ -P3_SETTINGS_FILE_USED=../primer3web_v0_4_0_default_settings.txt +P3_SETTINGS_FILE_USED=../settings_files/primer3web_v0_4_0_default_settings.txt P3_FILE_TYPE=settings P3_FILE_ID=Default settings of primer3web version 0.4.0 PRIMER_THERMODYNAMIC_OLIGO_ALIGNMENT=0 diff -Nru primer3-2.3.7/test/primer3web_v3_0_0_default_settings_output primer3-2.4.0/test/primer3web_v3_0_0_default_settings_output --- primer3-2.3.7/test/primer3web_v3_0_0_default_settings_output 2016-02-17 10:11:36.000000000 +0000 +++ primer3-2.4.0/test/primer3web_v3_0_0_default_settings_output 2017-11-03 16:29:54.000000000 +0000 @@ -1,4 +1,4 @@ -P3_SETTINGS_FILE_USED=../primer3web_v3_0_0_default_settings.txt +P3_SETTINGS_FILE_USED=../settings_files/primer3web_v3_0_0_default_settings.txt P3_FILE_TYPE=settings PRIMER_FIRST_BASE_INDEX=1 PRIMER_TASK=generic diff -Nru primer3-2.3.7/test/primer3web_v4_0_0_default_settings_output primer3-2.4.0/test/primer3web_v4_0_0_default_settings_output --- primer3-2.3.7/test/primer3web_v4_0_0_default_settings_output 2016-02-17 10:11:35.000000000 +0000 +++ primer3-2.4.0/test/primer3web_v4_0_0_default_settings_output 2017-11-03 16:29:54.000000000 +0000 @@ -1,4 +1,4 @@ -P3_SETTINGS_FILE_USED=../primer3web_v4_0_0_default_settings.txt +P3_SETTINGS_FILE_USED=../settings_files/primer3web_v4_0_0_default_settings.txt P3_FILE_TYPE=settings PRIMER_FIRST_BASE_INDEX=1 PRIMER_TASK=generic diff -Nru primer3-2.3.7/test/primer_global_err/bad_settings1.out primer3-2.4.0/test/primer_global_err/bad_settings1.out --- primer3-2.3.7/test/primer_global_err/bad_settings1.out 2016-02-17 10:11:37.000000000 +0000 +++ primer3-2.4.0/test/primer_global_err/bad_settings1.out 2017-11-03 16:29:54.000000000 +0000 @@ -1,2 +1,2 @@ -PRIMER_ERROR=First line must be "Primer3 File - http://primer3.sourceforge.net" in ./primer_global_err/bad_settings1.in +PRIMER_ERROR=First line must be "Primer3 File - http://primer3.org" in ./primer_global_err/bad_settings1.in = diff -Nru primer3-2.3.7/test/primer_global_err/bad_settings1.out2 primer3-2.4.0/test/primer_global_err/bad_settings1.out2 --- primer3-2.3.7/test/primer_global_err/bad_settings1.out2 2016-02-17 10:11:37.000000000 +0000 +++ primer3-2.4.0/test/primer_global_err/bad_settings1.out2 2017-11-03 16:29:54.000000000 +0000 @@ -1 +1 @@ -../src/primer3_core: First line must be "Primer3 File - http://primer3.sourceforge.net" in ./primer_global_err/bad_settings1.in +../src/primer3_core: First line must be "Primer3 File - http://primer3.org" in ./primer_global_err/bad_settings1.in diff -Nru primer3-2.3.7/test/primer_global_err/bad_settings2.in primer3-2.4.0/test/primer_global_err/bad_settings2.in --- primer3-2.3.7/test/primer_global_err/bad_settings2.in 2016-02-17 10:11:37.000000000 +0000 +++ primer3-2.4.0/test/primer_global_err/bad_settings2.in 2017-11-03 16:29:54.000000000 +0000 @@ -1,4 +1,4 @@ -Primer3 File - http://primer3.sourceforge.net +Primer3 File - http://primer3.org P3_FILE_TYPE=settings PRIMER_FIRST_BASE_INDEX=1 PRIMER_TASK=pick_pcr_primers diff -Nru primer3-2.3.7/test/primer_global_err/bad_settings3.out primer3-2.4.0/test/primer_global_err/bad_settings3.out --- primer3-2.3.7/test/primer_global_err/bad_settings3.out 2016-02-17 10:11:37.000000000 +0000 +++ primer3-2.4.0/test/primer_global_err/bad_settings3.out 2017-11-03 16:29:54.000000000 +0000 @@ -1,2 +1,2 @@ -PRIMER_ERROR=First line must be "Primer3 File - http://primer3.sourceforge.net" in ./primer_global_err/bad_settings3.in +PRIMER_ERROR=First line must be "Primer3 File - http://primer3.org" in ./primer_global_err/bad_settings3.in = diff -Nru primer3-2.3.7/test/primer_global_err/bad_settings3.out2 primer3-2.4.0/test/primer_global_err/bad_settings3.out2 --- primer3-2.3.7/test/primer_global_err/bad_settings3.out2 2016-02-17 10:11:37.000000000 +0000 +++ primer3-2.4.0/test/primer_global_err/bad_settings3.out2 2017-11-03 16:29:54.000000000 +0000 @@ -1 +1 @@ -../src/primer3_core: First line must be "Primer3 File - http://primer3.sourceforge.net" in ./primer_global_err/bad_settings3.in +../src/primer3_core: First line must be "Primer3 File - http://primer3.org" in ./primer_global_err/bad_settings3.in diff -Nru primer3-2.3.7/test/primer_global_err/bad_settings4.in primer3-2.4.0/test/primer_global_err/bad_settings4.in --- primer3-2.3.7/test/primer_global_err/bad_settings4.in 2016-02-17 10:11:37.000000000 +0000 +++ primer3-2.4.0/test/primer_global_err/bad_settings4.in 2017-11-03 16:29:54.000000000 +0000 @@ -1,4 +1,4 @@ -Primer3 File - http://primer3.sourceforge.net +Primer3 File - http://primer3.org PRIMER_FIRST_BASE_INDEX=1 diff -Nru primer3-2.3.7/test/primer_global_err/empty_1.out2 primer3-2.4.0/test/primer_global_err/empty_1.out2 --- primer3-2.3.7/test/primer_global_err/empty_1.out2 2016-02-17 10:11:37.000000000 +0000 +++ primer3-2.4.0/test/primer_global_err/empty_1.out2 2017-11-03 16:29:54.000000000 +0000 @@ -1,6 +1,5 @@ -Copyright (c) 1996,1997,1998,1999,2000,2001,2004,2006,2007,2008 - 2009,2010,2011,2012 +Copyright (c) 1996-2017 Whitehead Institute for Biomedical Research, Steve Rozen (http://purl.com/STEVEROZEN/), Andreas Untergasser and Helen Skaletsky All rights reserved. @@ -37,7 +36,7 @@ -USAGE: ../src/primer3_core [-format_output] [-default_version=1|-default_version=2] [-io_version=4] [-p3_settings_file=] [-echo_settings_file] [-strict_tags] [-output=] [-error=] [input_file] +USAGE: ../src/primer3_core [--format_output] [--default_version=1|--default_version=2] [--io_version=4] [--p3_settings_file=] [--echo_settings_file] [--strict_tags] [--output=] [--error=] [input_file] This is primer3 (libprimer3 release 2.3.5) Input can also be provided on standard input. For example: diff -Nru primer3-2.3.7/test/primer_high_gc_load_set.set primer3-2.4.0/test/primer_high_gc_load_set.set --- primer3-2.3.7/test/primer_high_gc_load_set.set 2016-02-17 10:11:36.000000000 +0000 +++ primer3-2.4.0/test/primer_high_gc_load_set.set 2017-11-03 16:29:54.000000000 +0000 @@ -1,4 +1,4 @@ -Primer3 File - http://primer3.sourceforge.net +Primer3 File - http://primer3.org P3_FILE_TYPE=settings P3_FILE_ID=Test with higher Tm @@ -7,4 +7,4 @@ PRIMER_MAX_GC=80 PRIMER_WT_GC_PERCENT_GT=1.0 PRIMER_WT_GC_PERCENT_LT=1.0 -= \ No newline at end of file += diff -Nru primer3-2.3.7/test/primer_high_tm_load_set.set primer3-2.4.0/test/primer_high_tm_load_set.set --- primer3-2.3.7/test/primer_high_tm_load_set.set 2016-02-17 10:11:36.000000000 +0000 +++ primer3-2.4.0/test/primer_high_tm_load_set.set 2017-11-03 16:29:54.000000000 +0000 @@ -1,8 +1,8 @@ -Primer3 File - http://primer3.sourceforge.net +Primer3 File - http://primer3.org P3_FILE_TYPE=settings P3_FILE_ID=Test with higher Tm PRIMER_MIN_TM=63 PRIMER_OPT_TM=65 PRIMER_MAX_TM=67 -= \ No newline at end of file += diff -Nru primer3-2.3.7/test/primer_masker_formatted_output primer3-2.4.0/test/primer_masker_formatted_output --- primer3-2.3.7/test/primer_masker_formatted_output 1970-01-01 00:00:00.000000000 +0000 +++ primer3-2.4.0/test/primer_masker_formatted_output 2017-11-03 16:29:54.000000000 +0000 @@ -0,0 +1,4980 @@ +PRIMER PICKING RESULTS FOR masker_default + +No mispriming library specified +No internal oligo mishyb library specified +Using 0-based sequence positions +OLIGO start len tm gc% any 3' seq +LEFT PRIMER 2959 20 60.00 50.00 3.00 3.00 ATGCCCACCTGCTTTGTAAC +RIGHT PRIMER 3388 20 59.99 55.00 8.00 0.00 AGACCAGTTAGCTGGGGGTT +INTERNAL OLIGO 3094 20 60.01 50.00 3.00 2.00 GCACACAAACCACCTCCTTT +SEQUENCE SIZE: 18787 +INCLUDED REGION SIZE: 18787 + +PRODUCT SIZE: 430, PAIR ANY COMPL: 5.00, PAIR 3' COMPL: 3.00 + + 0 CTGACATTTTATGCCCAAGACAATGGCTCTGCCTTCTACCTTCACATGCTCAGGGTCACT + + + 60 CAGCACGTCCTGGAGGATTTCTCTGGCCTGGAGTCCCTGGCCCGGGCAGCAGCGCTAGGG + + + 120 ACCCACCGAGTGGTCACAAGGCTGTTTATGTTGGGCCTCCTGGTGGAGTCGGCATGGTAC + + + 180 CTCCATTGCTACCTGACAGACCTGCGGTTTGACAATATCTACGCCACTCAACAGCTGACC + + + 240 CAGCGGTTGGCACAGGCCCAGGCTACACACCTCCTGGCCCCTCCACCCACCTGGCTGCTC + + + 300 CAGGCGGCTCAGCTGAGGCTGTCACAGGAGGAGCTGTTGAGTTGTCTTCTAAGGCTGGGG + + + 360 CTGCTTGCCCTGCTCCTCGTGGCCACTGCTGTGGCGGTGGCCACAGACCATGTAGCCTTC + + + 420 CTCCTGGCACAGGCGACTGTGGACTGGGCTCAGAAGTTGCCAACTGTGCCCATCACGCTC + + + 480 ACGGTCAAGTATGATGTGGCATACACTGTCCTGGGCTTCATCCCTTTCCTCTTCAACCAG + + + 540 CTGGCTCCGGAGAGCCCCTTCCTCTCCGTCCACAGCTCCCTACCAATAAAGGAGGGCGCG + + + 600 CAGAGCGGCGCGGCGGGCCCGCCCGCGGCCGCCGCCCCGCGCCTGCGCCGGCGGGCGGAT + + + 660 CAGCCGACATCCAGGAGCTCGTCTCCTTGTGTGACTGTAAAACCCCATTTTCGGTGTTTC + + + 720 TCTCTGGAGTGCTTTCCAGCCCCTTGACCCCACGTTCTCACCCCACGTGATGCCATCAGA + + + 780 CCCCTTGTTTTTGCCCACCTGGTGAGCAGATCACAGTGTCTCCTGTCTGGCTGTTTTTTT + + + 840 GAGACGGAGTCTCACTCTGCCGCCCAGGCTGGAGTGCAGTGGAACGATCTCAGCTCACTG + + + 900 CAACCTCCACTTCCTGGGTTCAAGCCATTCTCCTGCCTCAGCCTCCCTAGTAGCTGGGAT + + + 960 TACAGGCGCCCACCACCACACCTGGCTAATTTTTGTGTGTTTTTGGTAGAGACAGGGTTT + + + 1020 CTCCATGTTGGCCAGGCTGGTCTCCAATTCCTGGGCTCAAGTGATCCGCCTGCCTTGGCC + + + 1080 TCCCAAAGTGCTGAGATTACAGGCGTGAGTCACTGCACCCAGCCTTGGCTGTTTTAAATT + + + 1140 CCTAGTTCTAAATTTACTATTACAAATGTTTAAAGTACCCCTACTGACCTGTTGCTGCTC + + + 1200 CTTCCTCCTCCACACCCACACACCCCGTTTAGACCCGCAAGACAGAGCAGGGTGAAGTTC + + + 1260 ATGGTCACTTATGTCCACTCTGTGCAACAGCTCGCAGGGGCTCCCCAGGGAGGGCGCAGG + + + 1320 TCGGGGACCAGGCACGGGAGCACCTAGAATGTTCCTTTACTAGACGTGGAGTAGAGCTGA + + + 1380 TTAGATGTGAGCAGTGGCTCTAGGAGTTGGTTCTATGATTCTCTGTGTTTCTGCCTTTTA + + + 1440 AGAAATTTTATTTCTCGGCCGGGCTCGGTGGCTCATGTCTGTAATCCCAGCACTTTGGGA + + + 1500 GGCCGAGGCAGGCAGATCGCCTGAGGTCAGGAGTTTGAGACCAGCCTGACCAACATGGAG + + + 1560 AAACCCTGTCTCTACTAAAAATACAACATTAGCCAGGCGTGGTGGTGCATGCCTGTATTC + + + 1620 CCAGCTACTTTGGAGGCTGAGACAGAATTGCTTGAACCCGGGAGGCGGAGGGTGCAGTGA + + + 1680 GCCGAGATTGGGCCATTGCCCTCCAGCCTGGGCAACAAGAGTGAAATTACATCTCCAAAA + + + 1740 AAAAAATTTTTTTTATTTCTCGAGTTTGAGTGAAAGGAGCGACCCGGAGGTGAGGCAGTG + + + 1800 GGGCGTGTGGGTGCGCATGAGTGCGAACACACGTGGGGGTGCAAGTGCATGTGTGTATGT + + + 1860 GCACGCAGGTTGCTCCTAGGGGTGCAAAGGCGCGCGCACGGGTGCGGGGTGCGCGCCCCC + + + 1920 TCGCGGCGCCTTCACGGCCCTCCCGCCCCTCGCCCTGCAGAGTACAGCGGCCGCCGGCAG + + + 1980 CCCTACCCCTTCGAGCGCATGATCTTCGGCGCCTGCGCTGGCCTCATCGGGCAGTCGGCC + + + 2040 TCGTACCCGCTGGATGTGGTGCGGCGGCGCATGCAGACGGCCGGCGTCACGGGCTACCCG + + + 2100 CGCGCCTCCATCGCCCGCACGCTGCGCACCATCGTGCGGGAGGAGGGCGCCGTGCGCGGC + + + 2160 CTCTACAAAGGCTTGAGCATGAACTGGGTCAAGGGTCCCATCGCCGTGGGCATCAGCTTC + + + 2220 ACCACCTTCGACCTCATGCAGATCCTGCTGCGGCACCTGCAGAGCTAGGGGACCCTGAGC + + + 2280 TGCTCTCAGGACGGTGGACCGGTGACCCCTTTGTATTCTGGGCCCATGGAACGGTGGGGG + + + 2340 GGTGCGCTTGATTCTACTTCAGGAGGCACATGGGGCGCTTTATGGAACGAGCAGGTGGGC + + + 2400 CTGAGGGGCCTGGGCTCAGAGTCCACGTCCAAACGCAAAGCTGGCAGCCCTGGAAGTGCA + + + 2460 GTGTTGGGGCGATGGTGTGGGGGGTCCCGCAGCTCCCCTCTTCCTTCCTCTGCAGACGCT + + + 2520 GGCGCTGTCTGCCGGAGGTGTTGCCCAAAAGGCCCTAGTGGGGCGTGGTCAGCTCCACCT + + + 2580 CCTGATCCTGTGTGTCCTCCGACATGCTGCTGATTCTAGTGACCCCTGTCCCCACCAGGC + + + 2640 TCAGAGCCAGACCGCGCCTGGACCTTCTTGTTCTGACTCCACGTGCCTGCCCGGCCTCCA + + + 2700 GGGTGCGGGGGCGCCTTTCTTGCAGGCGGACCCTGCCCAGGATGGGGCCAGCCTCGTGCT + + + 2760 CAGCTTTGGCCACAAATGCAGCCCCTGGCCCACCCCACCCTGCCGGCCCTGCCTTCTCCA + + + 2820 GTATTTCCCACATGGCCACGACTCCTCAGTCACTAGAGCCTCCTGCTGGGAACAGTGTCC + + + 2880 CCCAGAGCCTCATGTCTATCCTAGACCCTGCAAGCAGCTGGGTCCCCAAGAGTGCATCTC + + + 2940 CCCCTAGAGTTGCCTGCCCATGCCCACCTGCTTTGTAACCTTCCCAGGAGATTCATGCTT + >>>>>>>>>>>>>>>>>>>> + + 3000 GCTCTGCACAGCAGGGCTCGAGGCCCAGGCCATGACACGGAACTGCCTCAGGTTTGGGTC + + + 3060 AGACCTGCATCCTGGGGCATCTGCTGAAATGTGAGCACACAAACCACCTCCTTTGGCCCA + ^^^^^^^^^^^^^^^^^^^^ + + 3120 GAAGCCCCCCAGGCCTAGCATCTCAGTGCCCCAACCCTCTGCCCAGCTGTGGTATCCAGC + + + 3180 AGGTCCTTGGGTCCCCACTTGAGCAGGCACTTGGCTGGGATATGGAGCAATTTAAAGCCC + + + 3240 ACAGGGGTTGTTCAGTTTCTATGAAATGGAGCATGGGGTGCCTGCTAGCCTCAATCCCCC + + + 3300 GAAGTGGGAGCCTCATGATAGAGTATAGCTTGGGGGTGGGAGGTGAGGAAAATCTGAGGT + + + 3360 ACCCAGGGGAACCCCCAGCTAACTGGTCTCTCAGAGGAGTCCCCCAGGGCCCGCCAGCTA + <<<<<<<<<<<<<<<<<<<< + + 3420 TCACAGGGACTCAGAAACACCCATTTCCTAATGACATGGTGAGTTTCTTGATTTCTTTTT + + + 3480 TTTGTTTGTTTTGTTTTGGTTTTCAACTTGGCTGACCCCGGGTCTATGATCTATTCACAT + + + 3540 CGAACCCCTGACTGGTCTGCCTGGTGCCAGGGTGAGCGTGACCGTGAGTGTTGCTTTCGA + + + 3600 CAGCTGGCTCAGCACACGCTGTGTGAAGGGATCTGAGCTTGTTCATCTCCAGTCGTGACT + + + 3660 TCATTTCCCTTCCTTCTGTCCTCCTCCTGTTCTTGCCTTGGACCTGCAGGTGTGCAGACC + + + 3720 GCTCTCTCTGCCTTCCTTGCATGTGGCCACCAGCCATCCCTGATCTTGTCCCCAGAGGCC + + + 3780 CAGGCAGCCTGTGATGGCTGTGAGGGGCTGTCCCACTGTGTGGGTATCCCTTACCCAGCA + + + 3840 CTTAAACTTGGCAGGAGAGGCAGGGCAACCCTCACAGGGAGATGGGAGGGCACCCAACTC + + + 3900 CCACAAGCATGCAACAGCAGTAGGAATTGGGGGTCTGCCCCAGGTGGGTGAGACCAAATG + + + 3960 AGTGGATTTGGGGCCACAGGCTAGGCAGGAGAGACAAGGGGTAGGTGGGAGGGTCCCCCA + + + 4020 GTCCCTGCTGACCCCAGTGTGTCTCCCCGGAGATGGCTCCTAGCTGAGTGGGACCCGGCA + + + 4080 GGAGTTGGGGACAGTGCTGTCCCCCACCCCTGCACACAGCCAGGCCCTCAGGCTCTGCGG + + + 4140 TCACTCGCCTCCCTGCTGGTCACTGGTCTTGGTCTGGAGTTATATTTTGATGCCATGAAG + + + 4200 ACACTGTTTATATCTAATGTTTATATATTTTAAAGATTTGTGCCAAGAGAGTATATTTAA + + + 4260 TAAAAACTTAAATGACTTCTTCTCCTGCTCCTGGCTCTTCTTTGGCTCTGACCGCCCCCC + + + 4320 CATCTTCCCCCATGAACCCCCAAACAGGGTTGAAGTGCTTTTGACACATTTGTGATAAAA + + + 4380 GTTCTGAATAAAAGTCTTGAATAAAGAAGTTTTTAAATGCAATTGTTGTTTGAATTAATA + + + 4440 CATACCACAATTTTCCAGAAAACACCAGCTGTCCACAAGGGTTTACAGTGAAAAGTAGGT + + + 4500 GAACAGTTCCCTCTGCAGGGGGCCTCCTGTGACCATTTTCTCTTGTCTCCTCCCACAGAG + + + 4560 ATTCTGTGCATACACTCATCCCTTTCAGGATATATGTGGCCACCCACAAAGGCAGGAGGG + + + 4620 GCCGTCTCTGTGCAGCCAGCACAGCCCAAAGTCTCATGGGCTTGAACATGGCCTTCCTTC + + + 4680 CCAAGAGCCCTGCACTCTGGGGCTGGCTGAGGCTTCAGGCCTGAACGTCAGTCACCATCT + + + 4740 GCAGGGGCAGCCACCAGAGGGTCTCCAGTGGCAATCCTGGCTCACTTCACCTGCAGCCCA + + + 4800 TTGGCCAGAGCAACTTGGAGGACCCACCCACTGCCAGGCCAGAAGTGGGAGCCTCTGCGT + + + 4860 GCCCAGAGAGGAGGGGCGGCTGGGCCAGCACAGGCCTGGTGCTCTTGTTGGGGTGGGAGT + + + 4920 AGGAATAAGTTCCACTGCGCTGACCCCCCACTGCTCTCCAATCTGCTCACGTGCAACAGG + + + 4980 ATTTCTTTTGAGTTGGTCTCCGTTGTGCACATTGTTCAGCAGCTGTGCGGTTTTCTCCTA + + + 5040 GAGGATCCCCAGGATGACATTTACCAGGGTGGGTGTGGTGGCTCATGCCTGTAATCCCAG + + + 5100 CACTTTGGAGACTGAGGCAGGTGGCTTGCTTGAGCCCAGGAGTTTGAGACCAGCCTAGGC + + + 5160 AACACAGTAAGACCCCCCATCTCTACAAAAAAATAGAAAAATTAGGCCGGATGCAGTGGC + + + 5220 TCACGCCTTTAATCCCATCACTTTGGGAGGCCAGGGCAGGTGGATCACTTGAGGTCAGGA + + + 5280 GTTCAAGACCAGCCTGGCCAACATGCTGAAACCCCCATCTCTATTAAAAGTACAAAAATC + + + 5340 CTAGCTACTCAGGAGGCTGAGGCAGGAGAATTGCTTGAACCTGGGAGGCGGAGGTTGCAG + + + 5400 TGAGCCGCTGCACTCCAGCCTGAGTGACTGAGAAGTCTCCGTCTCAAAAAAAAATTTTTT + + + 5460 TTTAATTAGCCAGTCTTGGAGGTGCGTGCCTGTAGTCCCAGCCACTCAGAAATTCACGCC + + + 5520 TCCCTTATGTTACCAAACCAGGCTCGTTCTGCCCAGCAGTATGCCAACAGAGATGACAGG + + + 5580 TTTTGCAGCAAAGAGTTTATTCACGAGGCAGCCGAGTGAGGAGACAGGAGAACAGATCTC + + + 5640 AAATCCGCCTCCCTGAAGATGGGATTTTAGGAATATTTAAGGGATAGAGGAGCAAGGTGG + + + 5700 TCAGAGACGTGGGGAAAAGTGGGGCAGTCGGGGAACCGTGCGTGCGTAGTCAAGCTTCAT + + + 5760 GGCTTTTCCATAGGATGTGTGTTCACAAAATGACATTGTTATCATGATCTGAGGGTGGAG + + + 5820 TGTTTGGCCCTCTAACGTCAAAGGTCACCACCTAAATATACACAGGCCAAGGTGAAGGTT + + + 5880 CGGCTCTCAGCCCATTTGGATTGGACAAGAACTGATCCTGTTCCTGAAGAACAACTTGAG + + + 5940 CAACCATTACCATGGTGGCCCATACATAGAGATATTATCTATAAGGAAACTAGTGGGAGT + + + 6000 TTTTTTGTTTGGGTTTTTTTGTTTTGTTTTGTTTCTTTGTTTTTGAGACGGAGTGTTGCT + + + 6060 CTTTTTGCCCAGGCTGGAGTGCAATGGCATGATCTCGGCTTACTGCAACCTCCACCTCCC + + + 6120 GGGTTCAAGCGATTCTCCTGCCTCAGCCTCCTAAGTAGCTGGGACTACAAGCGCCCGCCA + + + 6180 CCACACCCGGCTAATTTTTTGTATTTTTAGCAGAGACGGGGTTTAACCATGTTGGCCAGG + + + 6240 CTGGTCTCAAACTCCTGACCTCAGGTGATTCACTCGCCTTAGCCTCCCAAAGTGCTGGGA + + + 6300 TTACAGGCTTGAGCCACCGTGCCCAGCCTATTTTTCTGTCTTTCTTTTCTTTTTTTTTTT + + + 6360 TTTTTTTTTGAGACAGGGTCTCACTCTATTGCCCAGGCTGGAGTGCAGTGACACTACCAT + + + 6420 GGCTCACTGCAGCCTCCAACTCCTGGGCTCAAGCCATCCTCCCACCTCAGCCCCCCTAGG + + + 6480 AGCTGGGACTACAGGTACATGCCACCACGCCTGGCTACTTTTTGTATTTTTTGTAGAGAT + + + 6540 GGGGTCTCACCATATTTCTCAGGCTGGTCTCTAACTCCTGGCTCAAGTGATCTGCCTGTC + + + 6600 TTGGCCTCCCAAAGTGCTGGGATGACAGGCGTGAGCCACCACACCTGGCCTGGGAGTTTA + + + 6660 GCTATACATTGTTTAGCTGAGTGACTTTTAACACTATGGGGTTTATAATCAACTAAAAAC + + + 6720 AAGTGAGGTAAGTTAAGATTGGTAGGTCTAATCAGGTGAGCCCTCAGTTCCCCTTATGGA + + + 6780 TGGGCAATTGTTAGGTATTGCCATGACAATGTGATAGCAATTTGGTGGGGGCTGCTGAAC + + + 6840 TCATCTGCACCCCGCCTCTGACATCCAGCCCAGATTTCTGATCTAAGTTCCACGTTTCAC + + + 6900 ACCAGCCCCTGAACCTTGGTCAACCCCTCCCCTCTCCCACCCACCACTGTGGCATCTCCT + + + 6960 AACAGTATAGAGGTGAGCCCGTGGACCTGTCTAGACTAGTGACAGTGAAGAAGATGTTTG + + + 7020 CTAGCTGCGTCCAAGAAGAGCTTCAGGAGTCCTTTTTTTTTTGAGACGGAGTCTTGCTCT + + + 7080 GTTGCCCAGGCTGGAGTGCAGTGGCGCGATCTCGGCTCACTGCAAGCTCCACCTCCAGGT + + + 7140 TCAAGTGATTCTCCTGCCTCAGCCTCACAAGTAGCTGGGATTACAGATGCCCGCCACCAC + + + 7200 GCCCAGCTAATTTTTATATTTTTAGTAGAGACGGGGTTTCACCATGTTGGCCAGGCTGGT + + + 7260 CTTGAACTCCCGACCTCAGATGATCTGAACGCTTCGGCCTCCCAAAGTGCTGGGATTACA + + + 7320 GATGTGAGCCACCACACCTGGCCACCAAATGCTTTTTGCTATAAACAATTCCGCGCAGCC + + + 7380 TAGGAGTGTCCTGAAGAAACACAACATGGTACCCCAGGTGCAACCGGCGGCTGATGACTG + + + 7440 AAGGTAGGTGTGTAAGTAGCTTAACCCATGCCCGGACGTGGGATCATCCTGAGATAATTG + + + 7500 CTCTACCCTGCCCCGCTAAGGCCCACAGCAGGACTGAGCCTGGTTGCCCACAGTGTCACC + + + 7560 TGCTCATTGGTGCCCCCTGCAGGGCATCTTCCCTCCTCGTCTCAGCTCTCACCCGCCATG + + + 7620 GGGGCTGCCTGGGGACACCTCCCAGGTAAACCACTAGCTCTGAGTCCTTTTGGGGTCATC + + + 7680 TTTGGGGGAAACCTATCCAAAAAGGAATAGGAATGCCAGGTATTCCTGCAAATAGATCAT + + + 7740 ATAGATTTATACCACATACTCACCCATATTTGATCTTCCATAATCTGACAAGTAAAAAAT + + + 7800 GGTATCTCAGCCGGGTGCGGTGGCTCATGCCTTTAATCTCAGCACTTTGGGAGGCCGAGG + + + 7860 CAGCTGGATCACTTGAGCTCACGAGTTCAAGACCAGCCTGTGCAGCATGGTGAAACCTTG + + + 7920 TCTCTACAAAAAATACCGGGCATGGTGGCACGTGCCTGTAATCCCCACTACTCAGGAGGC + + + 7980 TGAGGTGGGAGGATGGCTTGAGTCTGGGAGGTGGAGGTTGCAGTGAGTCGAGATGGCACC + + + 8040 ACTGCATCCCAGCATGGGTGATAGAACCAGACCCTGTCGCAAAACAACAACAACAACAAC + + + 8100 AAAAACCAGTTAATTTATGGCCAGGCATGGTGGCTCACACCTGTAATCCCAGTTCTTTGG + + + 8160 AAAGCTGAGGCAGGAGGATCACTTGAGACCTGGAGTTTGTCTCTATAAATAATTTTTTTT + + + 8220 TTTGGTGGGACAGGGTTCTCATTCTGTCACCCAGGCTAGGGTACAGTGGCACAATCACAT + + + 8280 CTCACCGCAGCCTCAACCTCCCAGGGTCAAGTGATTCTCCCACCTCAGCCTCCCGAGTAG + + + 8340 CTGCGACTACAGGCGTGGGCCACTATGCCTGGCTAATTTTTTATATTTTGTAGAGACGGG + + + 8400 GTCTTGCTATGTCACCCGAGCTGATGAACTCCTGGGCTCAAGAGATCTGCCCACCTCCAC + + + 8460 TTCTCAAACTGCTGGGATTACAGGCGTGAGCCACTGCACCCAGCCCTCTACAAATAATTT + + + 8520 TAAAAACTATTTTACTATTTTAAAAGTTGAAGGTTATATTTTGTTTTATCTATGAGTTTT + + + 8580 ATTTCCCCTTTTTATTTTGTTTCGGCTTGTCTGGAAATGGTATATTCCGTTTCTTCACCC + + + 8640 ATAGGGCTTCACAACATCAGCACTGCTGACATTTGGCGCTGATAATCCTCTGGGGTGAGG + + + 8700 CCATCCTGGGCACCACACGGTGTTGAGCAGCATCTCTGGCCTCCATTCTTCAGACACCAA + + + 8760 GAGCAACACCTCCACCCCTTGTGGTGACAACTAAAAGATGTCTCCAGACATCAACATGTG + + + 8820 TTCCTTTGGAGCAGAACCACCCCGTCCTGTGAGAGGCACGGATATGGTGGTTACAATGGA + + + 8880 TACATCAACAAGAATTTAAATGTTTGGCCGGGCGCGGTGGGCGCGGTGGCTCAGGCCTGT + + + 8940 AATCCCAGCACGTTGGGAGGCCGAGGCAGGTGAATCACTTGAAGCCAGGAGTTCCAGACC + + + 9000 AGCCTGGCCAACATGGTGAAACCCATCTCTATTAAAAATACACACACACTGCCGGGTGCG + + + 9060 GTGGCTCACGCCTGTAATCCCAGCACGTTGGGAGGCCAAGGAGGGCGGATCACGAGGTCA + + + 9120 GGAGATCGAGACCATCCTGGCTAACACGGTGAAACCCCGTCTCTACTAAAAATACAAAAA + + + 9180 ATTAGCCGGGCGTAGTGGCGGGCGCCTGTAGTCCCAGCTACTCGGGAGGCTGAGGCAGGA + + + 9240 GAATGGCGTGCACCCGGGAGGCGGAGCTTACAGTGAGCCGAGATCGCGCCACTGCACTTC + + + 9300 AGCCTGGGCGACAGAGCGAGACTCCATCTCAAAAAAAAAAAAAAAAAAAAAACTACACAC + + + 9360 ACACACAAAAATTAAAATATTTATCTTCCCTCTGAGCCACACACAAAGACCTCAACCACC + + + 9420 CCCTTCTATCTTTCCTATTTTTATTTATTTATTTATTTTGAGACAGAGTCTCGCTCTGTC + + + 9480 ACCCACGCTGGAGTGCAATGGCGCGATCTTGGCTCACTGCAACCTCTGCCTCTGGGGTTC + + + 9540 AAGCGATTCTCCTGCCTCAGCCTCCTGAGTGGCTGGGATTACAGGCACCTGCCACCGCAC + + + 9600 CTGGCTGATTTTTGTATTTTTAGTAGGGATGGGGTTTCACCATGTTGGCCAGGGTGGTCT + + + 9660 CAAACTCTTGACCTCGTGATCCACCGCCTCGGCCTCCCAAAGTGCTGGGATTACAGATGT + + + 9720 GAGCCACCATACCCAGCCTGATGAAAATTTTAAAAAAGAAAATTCTTAAACCGTTCTAAG + + + 9780 TCAGGGAACTGTCTGTATACATCTTACTTATACAAAAAGGTTACATATGCACCTTACATT + + + 9840 GTTTTTGTTTTTGTTTTGAGATGGAGTCTCACTCTGTCACCCAGACTGGAGTGCAATGGC + + + 9900 ATGATCTTGGCTCACTGCAACCTCTGCCTCCCGGGTTCAAGCGATTCTCCTGTCTCAGCC + + + 9960 TCCCGAGAGGCTGGGATTACAAGTGTGCACCACCACGCTTGGCTAATTTTTTTTGTATTT + + +10020 TAGTAGAGACAGGGTTTCACCATGTTGGCCAGGCTGGTCTTGAACTGCTGACCTCAGGTG + + +10080 ATTGGCCTGCCTCGGTCTCCCAAAGTGTTGGGTTACAGGCATGAGCCACGGCACCCAGCC + + +10140 TGCACCTTACATTGTAACACACGTGTGGACACACCCTGGAGTCACAGCTACAGGACAATT + + +10200 TCAGAGTCCATGACGGCCCCACATCCCTTCCCTGGGTCACCAAGGCCTCAATATGCCCCT + + +10260 CCCCCCTCCCTGTGTGTGATATCTATACAAGTCACCTGCATACCTGTAGCAGACGCTGGC + + +10320 ATCACTGTGGGCTCCCCGCCCTCCCATTCCTCAAACTGGTTTTCCTCTAAGGTTTCCCTG + + +10380 CCCATCTAACCTTCTCCTGGCACTCCCTCATGGTGCATTTCTCTCACCTGCCCGTCCGTC + + +10440 CCAGGCCACCTGCCCTCTCAGCTGGGACTCCAACTTCCCCTGATTTCTGGTCTCTTCCAT + + +10500 CCTGCTTTTGGACTTTTCCTGGGACACTTGCATTTCTTCTTTTTCTTTTTTTTTTTTTTT + + +10560 GAGACAGAGTTTCACTCTGTCACCCAGGCTGGAGTGTGATGCGATCTCGGCTCACTGCAG + + +10620 CCTCCACCTCTCAGGTTCAAGCGACTCTTCTGGCTCATCCTTCTCAGTAGCTGGAACTAC + + +10680 ATGCATGCGCCACCATGCCTAATTTTTGTTATTTTAGTAAAGACTGGGTTTCACCATGCG + + +10740 TTGACCAGGCTGGTCTCAAACTGCTGGCCTCAAGTGATCTGCCCGCCTTGGCTTCCCAAA + + +10800 GTGCTGGGATTTGGGATTACGGGCGTGAGCCGCCGAGCCTGGCCTCCTTCTTGCTCTCCT + + +10860 TTCTCCTCCCAGACCTTTGCTCCCCTCTCAGTCCTGCTCCTCTCTCCCTCCCGCGCAGCC + + +10920 CCCACCCTGCACCCGGGCAGGTGCCACAGGGACGTGCAAGACAGCTACCACCCTGCACAA + + +10980 GCCCGAGTCCCAAACCACTCAGACCCTGTTTGTAAAAATCGGCATGCTCCTTTATTTGTT + + +11040 CAGAAGAGCAGCCAGCATCACCCTTGCCACTCAAACCTGGCACATACGCTTCGGAGACAA + + +11100 TGGCCTCGGGACCCTCATGCTGCTGGGCCCAGGAGAGACAGTTCTGAGGCAGAAACTCGG + + +11160 CGTCCAAGGGGGGCCGCGGGTCAGGCACTGTGGTGAAGGGAACGCCGGGGAGTCCGGCCC + + +11220 CACCTTGCAGCTGGGGACACGGGGGCGCAAACAGAGGGGGCAGGCTAGTGTCCCGCTGCC + + +11280 CCAGGAACAGACCTCAGGGCCCCAGGAGGGTCTGCAGGCAGCTAGGAGCCTGCCAAGTGC + + +11340 TGGTGGAAGTAGAGGCCGAAAAGGCTGGCGAGCAGCTGGCAGGCAGCCGTCCACCAGATG + + +11400 AGGTAGGCCAGGACGCCACGGAGGAAGAGGGGAGTAAGCAGGCCACCCAGAGCCCCGGCA + + +11460 ATCCGCGCTGCAGTCTGCTGGACTTCGTCCTCCCCAGAGCCGATGGGGGCAGCGCTGGCT + + +11520 GAGGATGGGTCGGGGGATAGTAGAGGAGCTGGGCCCAGGCCCCAGGAATAGCCTCCTAGG + + +11580 AGAAGAGGATGAAGCGAGGTATGAGTGGAAAAATGGGGGAGGGGGCGAGGGACAGGGCTG + + +11640 GCACGGGGGGCCAGGCCCATTCCTCCAGACACTCCCACCCCTGTCTCAGACTCCATCTCC + + +11700 AGCCCAGTCTCCACCCCCTCAGGCGCTGCCCCCTGTCCAAGGCAAACCCTACCCCAGGCC + + +11760 CCACCTCCTGCTCAGATCCTGCCTCAATACATGCCCTGCCCCCTCCCCAGGCCCCGCCTC + + +11820 CTGCCAAGACGCAACCCCTCCCCAGGCTCCACCTCCTAAGGCAAACGCCATCCCAAACTC + + +11880 CACCTCCTGCTCAGACCCTGCCTCACCACAGTCCCCGCCCCCTACCCAGGCCCCGCCTCC + + +11940 TGCTCAGATTGCACCCATCCCCAGGCTCCACTTCCTGTCCAAGGCAAGCCCCACTCCAGG + + +12000 CTCCGCTTCCTGCTCAGACCCTGCCTTACCACAGTCTCCGCCCCCTGCCTAGGCCCCGCC + + +12060 TCTCCCCCCCCACCGCGGTCCCCGCCAGAGTCCACCTCCACTCTGTTTTATCTTCCAACT + + +12120 CCGCCCCTCCTCCACCCCCACACCGCGGCATCTCACCCAGCGTCTTGAGCAGAAGTGTGC + + +12180 AGTTGAGGGTGAGGATGAGCGGCGTCAGGTACTGCAAGCTCACCACGGTCACATAGCAGT + + +12240 AGACTCGGACCACCTGTGGGCAGGTAGCAGGGGTGGCTGCAGCAGGAGGCCTTCTGGTTT + + +12300 GGGACGACTCCACGCCCAAAGGACCAGGAACCCCACCCTGAGCCCCAGGTTCCCTCTGGC + + +12360 CTAGGTCATCGGGGCGTCCATACCCTCTGCTGGATTTCACGGGCTTCGATGCGGCCAGCC + + +12420 TCCCTTCGCAGCTGCTCCACCCGGGCCTTGGCCAGGCACAGGTAGGCCTGCAGGTGGGGC + + +12480 CGGGTCACCGCCAGCCGCAGCAGGCACAGCACCACCAGCAACCAGAGGCGCCCAGAGTCG + + +12540 AAGGCAGAATCGGACAGCCTGTGCGGAGAGGGCCGGGGGCAAGGGACTAAGAAGGTCGCC + + +12600 CCCGACCCCCCAGGATCTTCCCCAGGCTCCTCCCTGAATCTCAGAGGCTAGGGCACCCAG + + +12660 GGGAGCCCCAGCTACCTCCTAGCCCCACCCAATACGCACAGGGAGAAACGCGTCTCCCCA + + +12720 AACGGCGGCTGGTGCAGGAAGTCCCGTGCAATGGGCTTTGTCCAGAGCCACAGGATGAAC + + +12780 AGGGGAGACAGGAAGCTGGTGTGCAGGAGGAACCTGGGGGGTGAGGGCAGGAGGGAGTGA + + +12840 GGCCTGGGTACCCCCTCTCCTCGAGTCTCTCCCTTAAGCTCCCTAGTCCCCCCACCCACC + + +12900 AAGCGACCCACTTAACTGCAGCATGGGTCTGTCCTCCGACATGGTCAGTGCGTCCCGGTG + + +12960 GGTCTGGGCCAGCCGCAGGCCTGGGAAGGTGAGGAAGGCACCCAGCACAGAGCCCACCAC + + +13020 TGCCAGTCCCACGCGGATAGCCAGCTTGGCCACAGGAAGCCTAGGAGAACACCAGGTCAC + + +13080 GAGCCTGCCTGGGGGACCCTGGGAGGGTCCCAGCCTGCCCTTGCCTCCCTCCCCCATTCC + + +13140 CAGGACTCACGCCCAGTCCCAGCCCTGCTTCTTCAGAAGTGGCTCTAAGTTCTGGGTCAT + + +13200 GCTGGCCAGACCTGGGGACGATAAGAAGAGGACCGAGTAGAGTGAATTCCTAGGGTCTCT + + +13260 AAGGCCACTCTGTTCCCTAACCCCCCATCCCTCAGGCATCCGTTTGCTTCCCAAGTAGGA + + +13320 ATGAACAAGGGTCTGCCAGGCCCTGAGCCAGGCACAAGGACAATTTTGTGCTCTAGTTAC + + +13380 ACAGTACTTTTTACAAGAAACAAGATTGGAGTGGTGGTTCACGCCTGTAATCCCAGCACT + + +13440 TTGGGAGGCTGAGGCAGGCGGATCATCTGAGATCAGGAGTTTCAGACCAGCCTGGCCAAT + + +13500 GCAGTGAAACCCCCGTCTCTACTAAAAATACAAAAATTAGCCAGGTGTGGTGGCAGGTGC + + +13560 CTGTAATCCCAGCTACTTGAGAGGCTGAGGCAGGAGAATCGCTTGAACATGGGGAGCGGA + + +13620 GGTTGCAGTGAGCTGAGACCGCACCATTGCACTCCAGCCTTGGGGACAAGAGTGAAACTC + + +13680 AGTCTCAAAGAAAACGAAACAGAATGCACCAGGCAGACACTCCTGATTGGGCTGGGAACA + + +13740 TTCAGGGGTATCTGTTGAGCCTGAGCTCCCTAGGTTATAGAAGGAATCTAGAGGGGGATG + + +13800 AAGGACTCCTGCAGGAGAAAACCAAAGTCCTCCTGGAGGAAGGAATCCTCAATTCAGGAC + + +13860 CCAAGATTTTTCAAAAATTAAGAGCAGGGCTGGGTGCAGTGGCTTGCACCTGTAAGTCTC + + +13920 AGCACTTTGGGAGGCCAAGGCGGGTGGATCGTTTGAGCTCACAAGTTTGAGACCAGCCTG + + +13980 GGCAACATGGCAAAACCCCCATCTCTACAAAAAATACAAAACCAGGGGTGGTGGTGCACG + + +14040 CCTATAGTCCCAGCTACTGTGAAGGCTGAGGTGGGAAGGATGGGTTGAGCCCAGGATGTG + + +14100 GAAGTTGCAGTGAGCTGAGATCATGCCACTGCACTCCAGCACAGAGCAAGACCTTGTCAA + + +14160 AAAAAAAAAAAAAAAGGAGCAAATTCATATGAGCTCACAGGCAAAATCACCAAATGCATA + + +14220 AGGAAACAAATCACCATAAAGGAGAGTTAACAGAAAAACAACAGTCAAGTTTAGGCCTCA + + +14280 AAGACTTCAGAAATTGGTGCTGTCAATTATGTGTCAAATGACTAAGGAAATGAAAGCTGT + + +14340 AATCACAGAACAAGTGACATGAGAATTCCTTCAGATGACTGGGTAGAGTTGCAAAGGAAC + + +14400 CAAATTAAACTCTTCCAAAGGAAAACTGTAAGTATTGAAATAATAGGTTGTTAAACAGCA + + +14460 CATTAGGAACAGCCAAAGGAGGAAGTGATGAACTGGAAGACAGATCTGAAGAAATCACTC + + +14520 AGATTCCAACTCAGAAAAACAAGTAGGTGAGAAATATGAAGAGAGGCTAAGAGATAAGGA + + +14580 AGACAGAACAGAGAGCCCAACGCAAATCAAATCAGAGCCCCAGAGGGAGGGAAGAGAAGG + + +14640 AATGAAGAATAAAAGGAATTACTGGAAGAGAATGGTTGAGAAGTTTGCAGAATGAAAGAC + + +14700 AGACACAAAGTATATCAAACCATGTAAATAAAAAGAAATCCATACCTAGACATAATGGAG + + +14760 TGAAACTGCAGAACACCAAAAACAAAAAAATTACAAAGCAGCCAGGGAGTTAAGACAGAT + + +14820 CACCTACAAAGGAACAACAATTAGGCTGACAGCCAATGTCAACTGCAACAACAGAAAAGG + + +14880 AACAAATAGAAAGCAAAAAAGTAAGATGGTAGAAACAAAGTCAAATATGTCAGTAATCAC + + +14940 AATAAATGTAAGTAGACTAAACTTTAAAGTTAAATGACAAAGACTGTCAGACTACATTGA + + +15000 AAATATCCAGCTACATGTTTTTTAAAGGATGACATACCTTGACATAAAGTCACTGGAAGA + + +15060 CTGAAAGTAAAGGGATGTTAAAAAGATACAGCAAATACTAATCAAAAGAAAGCAAGCTAG + + +15120 AAAGGCTATACTACTACCAGCCAAACTAGACTAAGAAGTAGTATTAGAATAGGCCAGGCG + + +15180 CGGTGGCTCACACCTGTAATCTCAGCACTTTGGGAGGCCAAGACGGGCAGATCACAAAGT + + +15240 CAGGAGTTCGAGACGAGCCTGGCCAACATGGTGAAACCCTGGCTCTACTAAAAATCCAAA + + +15300 AAATAGCTGGGCATGGTGGCGGGTAATACCAGCTACTTGGGAGGCTGAGGCAGGAGAATC + + +15360 GCTTGAACCCAGGAGGTGGAGGTTGCAGTGAGCCGAGATTGCGCCACTGCACTCCAGCCT + + +15420 GGCCAACGAGAGCAAAACTCTGTCTCAAAAAAAAAAAAAGTAGTATTAGAAGACAGAAGG + + +15480 GTTCCATACATCATGATAAAATGGCTGATTCACCAGGAAAATGTAACAGTTCTAAATCTG + + +15540 TGAATAGAACTAATCTGTGAATTGTGAATAGGCTGCAAAATATATAAAGAAAACACTGAC + + +15600 AGAATTGATAGGGAAATTGAGAGCTCTCTTGTCCCAGAGGGAGATTAACTTCTGCTGACT + + +15660 GATAAGTCACAGACAAAAGGTTAGGCAAGATGGAGATTTGAATTTATTAAACTCATAGAG + + +15720 CCAGGGAATATGTCCTTCAATTAGAACATGTGAAAAAAGGCAAAACAACAAAAACAGAAT + + +15780 ATGTCCTTCAAGAAAACAAGGAATAGTCACAAAATGTGATCACATTCCAGGCCATAGGGC + + +15840 AAATCTTACCAAATTTTAAAGAAATTATTTCAAATAGACCATCTGTGCAATTGAGCTAGA + + +15900 AATAAATATGTATTTTTTAAAGATCTATGTTTGAAAAATTTAAAAATATTTAATAATCCA + + +15960 TAGGTCAAAGCATAGCAAGACCCCATCTCTACAGAAATCAGAAGGGAAATGTTAAAACAC + + +16020 CCCAAACAGAATAATAAAAAATATCAGTCAAAACTTGGGTAAACTGCCAGGTGTGATGGC + + +16080 TCACACCTGTAATCCCAGCACTTTGAGAGGCCGAGGTGGGTGGATCACCTGAGGTTAGGA + + +16140 GTTTGAGACCAGCCTGGCCAACATGGTAAAACCCCGTCTCTACTAAAAATACAAAAATTA + + +16200 GCCAGGCGTGGTGGCGTGCACCTGTAATCCCAGCTACTCAGGAGGCTGAGGCAGAAGAAT + + +16260 TGCTTGAACCCAGGAGGCAGAGGTTGTAGTGAGCTGAGATTGCACAGTTGCACTCCAGCC + + +16320 TGGGTGACAAGAGCAAAACTCCATCTCAAAACAAAAACAAAAACAAAAAAAAACTTAGGT + + +16380 GAACAAAAGTGAGACCTGGTAAAATATATATAGCATTAAATGCTATATATGCTATAAAAT + + +16440 TAGAAAAGATTGAAAATTTATGAGCCAAGTAGCTAACTGAGAAATTGGAAACAAGAAAAG + + +16500 GAGGTACGCCAGTACTGTTCTCAAATCCAGAGGTCCTAGCCACACCAAAGGGGAAGGATC + + +16560 AGACAGAACAAAAGAAAACCAAAAAGAATCTGCAATTCAATAAAAATATAATTGTTTAGC + + +16620 AAGGTTAGTCCGTGGAGACACTCAAATTTGACCCCTATATGATAACACAAAAATTAATGT + + +16680 CACTGTCCATCAGCAACAGTGAGTAGTTTAGGAGCTTATATGAAATGTAAAAGTTGAAAT + + +16740 ATTTTATTTATTGATTTTTAAGATGGAGTCTTGCTCTTGTCGCCCAGGCTAGAGTGCAAT + + +16800 GGCGTGATTTCGGCTCACTGCAACCTCTGCCTCCGGGGTTCAAGTGATTCTCCTGCCTCA + + +16860 GCCTCCCGAGTAGCTGGGATTACAGGTGCATGCCACCTTGCCCAGCTTTTTTTTTTTTTT + + +16920 TTTTTTTAGACGGAGTCTCGCTCTGTTGCCCAGGCTGGAGTGCAGTGGCGCGATCTTGGC + + +16980 TCACTGCAAGCTCCACCTCCCGGGTTCACGCCATTCTCCTGCCTCAGCCTCCCCAGTAGC + + +17040 TGGGACTACAGGCGCCTGCCACCACGCCTGGCTAATTTTTTGTATTTTTAGTAGAGACGG + + +17100 GGTTTCACGGTGTTAGCCAGGATGGTCTCGATCTGCCGACCTCGTGATGTGCCCATCTCG + + +17160 GCCTCCCAAAGTGCTGGGATTACAGGCATGAGCCACCACCCCTGGCCAGTCATTCTATAT + + +17220 TTTCTTCTAAAATATTTCAGCCAGGCGTGGTGGCAAGCGCCTGTAATCCCAGCACTTTGG + + +17280 GAGGCTGAGGCAGGTGGATTGCCTGAGGTCTGGAGTTCAAGACCAGCCTGGTCAACGTGG + + +17340 TGAAACCCCATCTCTAGTAAAAAATACAAAAAGTAGGCCGGGCACGGTGGCTCGCGCCTG + + +17400 TAATCCCAGCACTTTGGGAGGCTGAGGCGGGTGGATTGCCTGAGGTCTGGAGTTCAAGAC + + +17460 CAGCCTGGTCAGCATAGTGAAACCCCATCTCTAGTAAAAAATACTAGAGATCGCCCACTG + + +17520 CACTCCAGCCTGGGGGAAAGAGCGAGACTCTGTCTCAAAAAAAAAAAAAAAGACAATGTA + + +17580 GAATGACTTTCTGATTTTAGGGAAGGATATTTTTCAAGACAAATATCAACTAAAATAATC + + +17640 AACTTCCATTCATCAAGACACTAGAGGTGACACTTACAACTACATTTGACGACTCAGCAA + + +17700 AGAAAGTGTGATGCATGTATGCAGACGGAAAATAATGCAAATAGTGGTCAAATGAAAACA + + +17760 AAAGAAGTATTGGCAATGAAGTGGATAAATTTGGAACACTTGTGCACTGCTGCTGGGAAT + + +17820 ATAAAATATAAAATGGGCTGAGCACAGTGGTGCACACCTGTAATCCCAGCACTTTGGAAG + + +17880 GCCGAGGCTGGCGATTGCTTGAGTTCAAGAGTTCAAGACTAGCCTGGGCAACATGGCAAA + + +17940 ATCTGTCTCTATTAAAAACACAAAAATTATCTGGGTGTAGCCAGATGTGGTGGCTCACAC + + +18000 CTGTAATCTCAGCACTTTGGGAGGCCAAGATGGGCAGGATCACCTGAGGTCAGGAGTTAA + + +18060 AGACCAGCCTGGCCAACATGGCAAAACCCCATCTCTACTAAAAATGCAAAAATTAGCCAG + + +18120 GTGTGGTGGCGCACACCTGTAATCCCAGCTACTTGGGAGGCTGAGGCAAGAGAATCACTT + + +18180 GAGCCTGGAAGGTGGAGGTTGCAGTGAGCCAAGATCATGCCACTGTACTCTAGCCTGGGT + + +18240 GACAGAGGGAGACTGTCTCAAAAAATAAAAATAAAAATAAAAAAATAAATTAGCTGGGTG + + +18300 TGGTGGTGGGAGCCTGTAGTCCCAGCTACTTGGGAGCCTGAGGCATGAGAATCACTTGAA + + +18360 TCCGGGAGGCAAAGGTTGCAGTGAGTGGAGATCACGCCACCACTGCACTCCAGCCAGGGC + + +18420 AACAGAATGAGACTCTGTCTCAAAAATAAAATAAAATGGTTCAGCTGCTGTATAAAACAG + + +18480 TATGGCAGTCCCTCAAAAAATTAAAAGTAGAATTATCATATAATCCAGCAGTTCCACTTC + + +18540 TGGATATATACTCTCCAAAACTGAAAATGGGGTCTCAAAGAGATACCTGTACACTCAGGT + + +18600 TCACAGCGGTATTAGTCAAAAAGCCAAAAGTTGGGAACAACCCAAGCATTCATCTGTGGA + + +18660 TGAATAAACAAAATGTGTTCCACCCAGACAATGAAATAGTGTTCAGTCTTTTTTTTTTTT + + +18720 TTTTTTTTTGAGATGGAGTCTTGCTCTTTCACCCAGGCCGGAGTGCAGTGGCACTATCTA + + +18780 AGCTCAC + + +KEYS (in order of precedence): +>>>>>> left primer +<<<<<< right primer +^^^^^^ internal oligo + +ADDITIONAL OLIGOS + start len tm gc% any 3' seq + + 1 LEFT PRIMER 10633 20 59.99 55.00 5.00 1.00 GGTTCAAGCGACTCTTCTGG + RIGHT PRIMER 11008 20 60.00 55.00 3.00 0.00 ACAGGGTCTGAGTGGTTTGG + INTERNAL OLIGO 10719 20 59.97 50.00 4.00 2.00 AAGACTGGGTTTCACCATGC + PRODUCT SIZE: 376, PAIR ANY COMPL: 6.00, PAIR 3' COMPL: 0.00 + + 2 LEFT PRIMER 10989 20 60.00 55.00 3.00 1.00 CCAAACCACTCAGACCCTGT + RIGHT PRIMER 11145 20 59.99 60.00 5.00 2.00 CAGAACTGTCTCTCCTGGGC + INTERNAL OLIGO 11056 20 59.97 50.00 3.00 0.00 ATCACCCTTGCCACTCAAAC + PRODUCT SIZE: 157, PAIR ANY COMPL: 4.00, PAIR 3' COMPL: 1.00 + + 3 LEFT PRIMER 11140 20 59.99 55.00 7.00 1.00 GTTCTGAGGCAGAAACTCGG + RIGHT PRIMER 11491 20 59.99 60.00 5.00 2.00 GAGGACGAAGTCCAGCAGAC + INTERNAL OLIGO 11417 20 60.07 55.00 2.00 1.00 ACGGAGGAAGAGGGGAGTAA + PRODUCT SIZE: 352, PAIR ANY COMPL: 4.00, PAIR 3' COMPL: 1.00 + + 4 LEFT PRIMER 3094 20 60.01 50.00 3.00 2.00 GCACACAAACCACCTCCTTT + RIGHT PRIMER 3388 20 59.99 55.00 8.00 0.00 AGACCAGTTAGCTGGGGGTT + INTERNAL OLIGO 3336 20 60.04 50.00 2.00 1.00 TGGGAGGTGAGGAAAATCTG + PRODUCT SIZE: 295, PAIR ANY COMPL: 5.00, PAIR 3' COMPL: 3.00 + +Statistics + con too in in not no tm tm high high high lower + sid many tar excl ok bad GC too too any 3' poly end case + ered Ns get reg reg GC% clamp low high compl compl X stab end ok +Left 180335 0 0 0 0 8877 0 34005101808 0 2 1117 0 530 33996 +Right 180325 0 0 0 0 8926 0 33987101882 0 1 1108 0 480 33941 +Intl 180500 0 0 0 0 9272 0 34043102015 0 0 1142 0 0 34028 +Pair Stats: +considered 338, unacceptable product size 331, high any compl 1, ok 6 +libprimer3 release 2.4.0 + + +PRIMER PICKING RESULTS FOR masker_lc_masking + +No mispriming library specified +No internal oligo mishyb library specified +Using 0-based sequence positions +OLIGO start len tm gc% any 3' seq +LEFT PRIMER 2958 20 60.00 50.00 3.00 3.00 ATGCCCACCTGCTTTGTAAC +RIGHT PRIMER 3387 20 59.99 55.00 8.00 0.00 AGACCAGTTAGCTGGGGGTT +INTERNAL OLIGO 3093 20 60.01 50.00 3.00 2.00 GCACACAAACCACCTCCTTT +SEQUENCE SIZE: 18786 +INCLUDED REGION SIZE: 18786 + +PRODUCT SIZE: 430, PAIR ANY COMPL: 5.00, PAIR 3' COMPL: 3.00 + + 0 TGACATTTTATGCCCAAGACAATGGCTCTGCCTTCTACCTTCACATGCTCAGGGTCACTC + + + 60 AGCACGTCCTGGAGGATTTCTCTGGCCTGGAGTCCCTGGCCCGGGCAGCAGCGCTAGGGA + + + 120 CCCACCGAGTGGTCACAAGGCTGTTTATGTTGGGCCTCCTGGTGGAGTCGGCATGGTACC + + + 180 TCCATTGCTACCTGACAGACCTGCGGTTTGACAATATCTACGCCACTCAACAGCTGACCC + + + 240 AGCGGTTGGCACAGGCCCAGGCTACACACCTCCTGGCCCCTCCACCCACCTGGCTGCTCC + + + 300 AGGCGGCTCAGCTGAGGCTGTCACAGGAGGAGCTGTTGAGTTGTCTTCTAAGGCTGGGGC + + + 360 TGCTTGCCCTGCTCCTCGTGGCCACTGCTGTGGCGGTGGCCACAGACCATGTAGCCTTCC + + + 420 TCCTGGCACAGGCGACTGTGGACTGGGCTCAGAAGTTGCCAACTGTGCCCATCACGCTCA + + + 480 CGGTCAAGTATGATGTGGCATACACTGTCCTGGGCTTCATCCCTTTCCTCTTCAACCAGC + + + 540 TGGCTCCGGAGAGCCCCTTCCTCTCCGTCCACAGCTCCCTACCAATAAAGGAGGGCGCGC + + + 600 AGAGCGGCGCGGCGGGCCCGCCCGCGGCCGCCGCCCCGCGCCTGCGCCGGCGGGCGGATC + + + 660 AGCCGACATCCAGGAGCTCGTCTCCTTGTGTGACTGTAAAACCCCATTTTCGGTGTTTCT + + + 720 CTCTGGAGTGCTTTCCAGCCCCTTGACCCCACGTTCTCACCCCACGTGATGCCATCAGAC + + + 780 CCCTTGTTTTTGCCCACCTGGTGAGCAGATCACAGTGTCTCCTGTCTGGCTGTTTTTTTG + + + 840 AGACGGAGTCTCACTCTGCCGCCCAGGCTGGAGTGCAGTGGAACGATCTCAGCTCACTGC + + + 900 AACCTCCACTTCCTGGGTTCAAGCCATTCTCCTGCCTCAGCCTCCCTAGTAGCTGGGATT + + + 960 ACAGGCGCCCACCACCACACCTGGCTAATTTTTGTGTGTTTTTGGTAGAGACAGGGTTTC + + + 1020 TCCATGTTGGCCAGGCTGGTCTCCAATTCCTGGGCTCAAGTGATCCGCCTGCCTTGGCCT + + + 1080 CCCAAAGTGCTGAGATTACAGGCGTGAGTCACTGCACCCAGCCTTGGCTGTTTTAAATTC + + + 1140 CTAGTTCTAAATTTACTATTACAAATGTTTAAAGTACCCCTACTGACCTGTTGCTGCTCC + + + 1200 TTCCTCCTCCACACCCACACACCCCGTTTAGACCCGCAAGACAGAGCAGGGTGAAGTTCA + + + 1260 TGGTCACTTATGTCCACTCTGTGCAACAGCTCGCAGGGGCTCCCCAGGGAGGGCGCAGGT + + + 1320 CGGGGACCAGGCACGGGAGCACCTAGAATGTTCCTTTACTAGACGTGGAGTAGAGCTGAT + + + 1380 TAGATGTGAGCAGTGGCTCTAGGAGTTGGTTCTATGATTCTCTGTGTTTCTGCCTTTTAA + + + 1440 GAAATTTTATTTCTCGGCCGGGCTCGGTGGCTCATGTCTGTAATCCCAGCACTTTGGGAG + + + 1500 GCCGAGGCAGGCAGATCGCCTGAGGTCAGGAGTTTGAGACCAGCCTGACCAACATGGAGA + + + 1560 AACCCTGTCTCTACTAAAAATACAACATTAGCCAGGCGTGGTGGTGCATGCCTGTATTCC + + + 1620 CAGCTACTTTGGAGGCTGAGACAGAATTGCTTGAACCCGGGAGGCGGAGGGTGCAGTGAG + + + 1680 CCGAGATTGGGCCATTGCCCTCCAGCCTGGGCAACAAGAGTGAAATTACATCTCCAAAAA + + + 1740 AAAAATTTTTTTTATTTCTCGAGTTTGAGTGAAAGGAGCGACCCGGAGGTGAGGCAGTGG + + + 1800 GGCGTGTGGGTGCGCATGAGTGCGAACACACGTGGGGGTGCAAGTGCATGTGTGTATGTG + + + 1860 CACGCAGGTTGCTCCTAGGGGTGCAAAGGCGCGCGCACGGGTGCGGGGTGCGCGCCCCCT + + + 1920 CGCGGCGCCTTCACGGCCCTCCCGCCCCTCGCCCTGCAGAGTACAGCGGCCGCCGGCAGC + + + 1980 CCTACCCCTTCGAGCGCATGATCTTCGGCGCCTGCGCTGGCCTCATCGGGCAGTCGGCCT + + + 2040 CGTACCCGCTGGATGTGGTGCGGCGGCGCATGCAGACGGCCGGCGTCACGGGCTACCCGC + + + 2100 GCGCCTCCATCGCCCGCACGCTGCGCACCATCGTGCGGGAGGAGGGCGCCGTGCGCGGCC + + + 2160 TCTACAAAGGCTTGAGCATGAACTGGGTCAAGGGTCCCATCGCCGTGGGCATCAGCTTCA + + + 2220 CCACCTTCGACCTCATGCAGATCCTGCTGCGGCACCTGCAGAGCTAGGGGACCCTGAGCT + + + 2280 GCTCTCAGGACGGTGGACCGGTGACCCCTTTGTATTCTGGGCCCATGGAACGGTGGGGGG + + + 2340 GTGCGCTTGATTCTACTTCAGGAGGCACATGGGGCGCTTTATGGAACGAGCAGGTGGGCC + + + 2400 TGAGGGGCCTGGGCTCAGAGTCCACGTCCAAACGCAAAGCTGGCAGCCCTGGAAGTGCAG + + + 2460 TGTTGGGGCGATGGTGTGGGGGGTCCCGCAGCTCCCCTCTTCCTTCCTCTGCAGACGCTG + + + 2520 GCGCTGTCTGCCGGAGGTGTTGCCCAAAAGGCCCTAGTGGGGCGTGGTCAGCTCCACCTC + + + 2580 CTGATCCTGTGTGTCCTCCGACATGCTGCTGATTCTAGTGACCCCTGTCCCCACCAGGCT + + + 2640 CAGAGCCAGACCGCGCCTGGACCTTCTTGTTCTGACTCCACGTGCCTGCCCGGCCTCCAG + + + 2700 GGTGCGGGGGCGCCTTTCTTGCAGGCGGACCCTGCCCAGGATGGGGCCAGCCTCGTGCTC + + + 2760 AGCTTTGGCCACAAATGCAGCCCCTGGCCCACCCCACCCTGCCGGCCCTGCCTTCTCCAG + + + 2820 TATTTCCCACATGGCCACGACTCCTCAGTCACTAGAGCCTCCTGCTGGGAACAGTGTCCC + + + 2880 CCAGAGCCTCATGTCTATCCTAGACCCTGCAAGCAGCTGGGTCCCCAAGAGTGCATCTCC + + + 2940 CCCTAGAGTTGCCTGCCCATGCCCACCTGCTTTGTAACCTTCCCAGGAGATTCATGCTTG + >>>>>>>>>>>>>>>>>>>> + + 3000 CTCTGCACAGCAGGGCTCGAGGCCCAGGCCATGACACGGAACTGCCTCAGGTTTGGGTCA + + + 3060 GACCTGCATCCTGGGGCATCTGCTGAAATGTGAGCACACAAACCACCTCCTTTGGCCCAG + ^^^^^^^^^^^^^^^^^^^^ + + 3120 AAGCCCCCCAGGCCTAGCATCTCAGTGCCCCAACCCTCTGCCCAGCTGTGGTATCCAGCA + + + 3180 GGTCCTTGGGTCCCCACTTGAGCAGGCACTTGGCTGGGATATGGAGCAATTTAAAGCCCA + + + 3240 CAGGGGTTGTTCAGTTTCTATGAAATGGAGCATGGGGTGCCTGCTAGCCTCAATCCCCCG + + + 3300 AAGTGGGAGCCTCATGATAGAGTATAGCTTGGGGGTGGGAGGTGAGGAAAATCTGAGGTA + + + 3360 CCCAGGGGAACCCCCAGCTAACTGGTCTCTCAGAGGAGTCCCCCAGGGCCCGCCAGCTAT + <<<<<<<<<<<<<<<<<<<< + + 3420 CACAGGGACTCAGAAACACCCATTTCCTAATGACATGGTGAGTTTCTTGATTTCTTTTTT + + + 3480 TTGTTTGTTTTGTTTTGGTTTTCAACTTGGCTGACCCCGGGTCTATGATCTATTCACATC + + + 3540 GAACCCCTGACTGGTCTGCCTGGTGCCAGGGTGAGCGTGACCGTGAGTGTTGCTTTCGAC + + + 3600 AGCTGGCTCAGCACACGCTGTGTGAAGGGATCTGAGCTTGTTCATCTCCAGTCGTGACTT + + + 3660 CATTTCCCTTCCTTCTGTCCTCCTCCTGTTCTTGCCTTGGACCTGCAGGTGTGCAGACCG + + + 3720 CTCTCTCTGCCTTCCTTGCATGTGGCCACCAGCCATCCCTGATCTTGTCCCCAGAGGCCC + + + 3780 AGGCAGCCTGTGATGGCTGTGAGGGGCTGTCCCACTGTGTGGGTATCCCTTACCCAGCAC + + + 3840 TTAAACTTGGCAGGAGAGGCAGGGCAACCCTCACAGGGAGATGGGAGGGCACCCAACTCC + + + 3900 CACAAGCATGCAACAGCAGTAGGAATTGGGGGTCTGCCCCAGGTGGGTGAGACCAAATGA + + + 3960 GTGGATTTGGGGCCACAGGCTAGGCAGGAGAGACAAGGGGTAGGTGGGAGGGTCCCCCAG + + + 4020 TCCCTGCTGACCCCAGTGTGTCTCCCCGGAGATGGCTCCTAGCTGAGTGGGACCCGGCAG + + + 4080 GAGTTGGGGACAGTGCTGTCCCCCACCCCTGCACACAGCCAGGCCCTCAGGCTCTGCGGT + + + 4140 CACTCGCCTCCCTGCTGGTCACTGGTCTTGGTCTGGAGTTATATTTTGATGCCATGAAGA + + + 4200 CACTGTTTATATCTAATGTTTATATATTTTAAAGATTTGTGCCAAGAGAGTATATTTAAT + + + 4260 AAAAACTTAAATGACTTCTTCTCCTGCTCCTGGCTCTTCTTTGGCTCTGACCGCCCCCCC + + + 4320 ATCTTCCCCCATGAACCCCCAAACAGGGTTGAAGTGCTTTTGACACATTTGTGATAAAAG + + + 4380 TTCTGAATAAAAGTCTTGAATAAAGAAGTTTTTAAATGCAATTGTTGTTTGAATTAATAC + + + 4440 ATACCACAATTTTCCAGAAAACACCAGCTGTCCACAAGGGTTTACAGTGAAAAGTAGGTG + + + 4500 AACAGTTCCCTCTGCAGGGGGCCTCCTGTGACCATTTTCTCTTGTCTCCTCCCACAGAGA + + + 4560 TTCTGTGCATACACTCATCCCTTTCAGGATATATGTGGCCACCCACAAAGGCAGGAGGGG + + + 4620 CCGTCTCTGTGCAGCCAGCACAGCCCAAAGTCTCATGGGCTTGAACATGGCCTTCCTTCC + + + 4680 CAAGAGCCCTGCACTCTGGGGCTGGCTGAGGCTTCAGGCCTGAACGTCAGTCACCATCTG + + + 4740 CAGGGGCAGCCACCAGAGGGTCTCCAGTGGCAATCCTGGCTCACTTCACCTGCAGCCCAT + + + 4800 TGGCCAGAGCAACTTGGAGGACCCACCCACTGCCAGGCCAGAAGTGGGAGCCTCTGCGTG + + + 4860 CCCAGAGAGGAGGGGCGGCTGGGCCAGCACAGGCCTGGTGCTCTTGTTGGGGTGGGAGTA + + + 4920 GGAATAAGTTCCACTGCGCTGACCCCCCACTGCTCTCCAATCTGCTCACGTGCAACAGGA + + + 4980 TTTCTTTTGAGTTGGTCTCCGTTGTGCACATTGTTCAGCAGCTGTGCGGTTTTCTCCTAG + + + 5040 AGGATCCCCAGGATGACATTTACCAGGGTGGGTGTGGTGGCTCATGCCTGTAATCCCAGC + + + 5100 ACTTTGGAGACTGAGGCAGGTGGCTTGCTTGAGCCCAGGAGTTTGAGACCAGCCTAGGCA + + + 5160 ACACAGTAAGACCCCCCATCTCTACAAAAAAATAGAAAAATTAGGCCGGATGCAGTGGCT + + + 5220 CACGCCTTTAATCCCATCACTTTGGGAGGCCAGGGCAGGTGGATCACTTGAGGTCAGGAG + + + 5280 TTCAAGACCAGCCTGGCCAACATGCTGAAACCCCCATCTCTATTAAAAGTACAAAAATCC + + + 5340 TAGCTACTCAGGAGGCTGAGGCAGGAGAATTGCTTGAACCTGGGAGGCGGAGGTTGCAGT + + + 5400 GAGCCGCTGCACTCCAGCCTGAGTGACTGAGAAGTCTCCGTCTCAAAAAAAAATTTTTTT + + + 5460 TTAATTAGCCAGTCTTGGAGGTGCGTGCCTGTAGTCCCAGCCACTCAGAAATTCACGCCT + + + 5520 CCCTTATGTTACCAAACCAGGCTCGTTCTGCCCAGCAGTATGCCAACAGAGATGACAGGT + + + 5580 TTTGCAGCAAAGAGTTTATTCACGAGGCAGCCGAGTGAGGAGACAGGAGAACAGATCTCA + + + 5640 AATCCGCCTCCCTGAAGATGGGATTTTAGGAATATTTAAGGGATAGAGGAGCAAGGTGGT + + + 5700 CAGAGACGTGGGGAAAAGTGGGGCAGTCGGGGAACCGTGCGTGCGTAGTCAAGCTTCATG + + + 5760 GCTTTTCCATAGGATGTGTGTTCACAAAATGACATTGTTATCATGATCTGAGGGTGGAGT + + + 5820 GTTTGGCCCTCTAACGTCAAAGGTCACCACCTAAATATACACAGGCCAAGGTGAAGGTTC + + + 5880 GGCTCTCAGCCCATTTGGATTGGACAAGAACTGATCCTGTTCCTGAAGAACAACTTGAGC + + + 5940 AACCATTACCATGGTGGCCCATACATAGAGATATTATCTATAAGGAAACTAGTGGGAGTT + + + 6000 TTTTTGTTTGGGTTTTTTTGTTTTGTTTTGTTTCTTTGTTTTTGAGACGGAGTGTTGCTC + + + 6060 TTTTTGCCCAGGCTGGAGTGCAATGGCATGATCTCGGCTTACTGCAACCTCCACCTCCCG + + + 6120 GGTTCAAGCGATTCTCCTGCCTCAGCCTCCTAAGTAGCTGGGACTACAAGCGCCCGCCAC + + + 6180 CACACCCGGCTAATTTTTTGTATTTTTAGCAGAGACGGGGTTTAACCATGTTGGCCAGGC + + + 6240 TGGTCTCAAACTCCTGACCTCAGGTGATTCACTCGCCTTAGCCTCCCAAAGTGCTGGGAT + + + 6300 TACAGGCTTGAGCCACCGTGCCCAGCCTATTTTTCTGTCTTTCTTTTCTTTTTTTTTTTT + + + 6360 TTTTTTTTGAGACAGGGTCTCACTCTATTGCCCAGGCTGGAGTGCAGTGACACTACCATG + + + 6420 GCTCACTGCAGCCTCCAACTCCTGGGCTCAAGCCATCCTCCCACCTCAGCCCCCCTAGGA + + + 6480 GCTGGGACTACAGGTACATGCCACCACGCCTGGCTACTTTTTGTATTTTTTGTAGAGATG + + + 6540 GGGTCTCACCATATTTCTCAGGCTGGTCTCTAACTCCTGGCTCAAGTGATCTGCCTGTCT + + + 6600 TGGCCTCCCAAAGTGCTGGGATGACAGGCGTGAGCCACCACACCTGGCCTGGGAGTTTAG + + + 6660 CTATACATTGTTTAGCTGAGTGACTTTTAACACTATGGGGTTTATAATCAACTAAAAACA + + + 6720 AGTGAGGTAAGTTAAGATTGGTAGGTCTAATCAGGTGAGCCCTCAGTTCCCCTTATGGAT + + + 6780 GGGCAATTGTTAGGTATTGCCATGACAATGTGATAGCAATTTGGTGGGGGCTGCTGAACT + + + 6840 CATCTGCACCCCGCCTCTGACATCCAGCCCAGATTTCTGATCTAAGTTCCACGTTTCACA + + + 6900 CCAGCCCCTGAACCTTGGTCAACCCCTCCCCTCTCCCACCCACCACTGTGGCATCTCCTA + + + 6960 ACAGTATAGAGGTGAGCCCGTGGACCTGTCTAGACTAGTGACAGTGAAGAAGATGTTTGC + + + 7020 TAGCTGCGTCCAAGAAGAGCTTCAGGAGTCCTTTTTTTTTTGAGACGGAGTCTTGCTCTG + + + 7080 TTGCCCAGGCTGGAGTGCAGTGGCGCGATCTCGGCTCACTGCAAGCTCCACCTCCAGGTT + + + 7140 CAAGTGATTCTCCTGCCTCAGCCTCACAAGTAGCTGGGATTACAGATGCCCGCCACCACG + + + 7200 CCCAGCTAATTTTTATATTTTTAGTAGAGACGGGGTTTCACCATGTTGGCCAGGCTGGTC + + + 7260 TTGAACTCCCGACCTCAGATGATCTGAACGCTTCGGCCTCCCAAAGTGCTGGGATTACAG + + + 7320 ATGTGAGCCACCACACCTGGCCACCAAATGCTTTTTGCTATAAACAATTCCGCGCAGCCT + + + 7380 AGGAGTGTCCTGAAGAAACACAACATGGTACCCCAGGTGCAACCGGCGGCTGATGACTGA + + + 7440 AGGTAGGTGTGTAAGTAGCTTAACCCATGCCCGGACGTGGGATCATCCTGAGATAATTGC + + + 7500 TCTACCCTGCCCCGCTAAGGCCCACAGCAGGACTGAGCCTGGTTGCCCACAGTGTCACCT + + + 7560 GCTCATTGGTGCCCCCTGCAGGGCATCTTCCCTCCTCGTCTCAGCTCTCACCCGCCATGG + + + 7620 GGGCTGCCTGGGGACACCTCCCAGGTAAACCACTAGCTCTGAGTCCTTTTGGGGTCATCT + + + 7680 TTGGGGGAAACCTATCCAAAAAGGAATAGGAATGCCAGGTATTCCTGCAAATAGATCATA + + + 7740 TAGATTTATACCACATACTCACCCATATTTGATCTTCCATAATCTGACAAGTAAAAAATG + + + 7800 GTATCTCAGCCGGGTGCGGTGGCTCATGCCTTTAATCTCAGCACTTTGGGAGGCCGAGGC + + + 7860 AGCTGGATCACTTGAGCTCACGAGTTCAAGACCAGCCTGTGCAGCATGGTGAAACCTTGT + + + 7920 CTCTACAAAAAATACCGGGCATGGTGGCACGTGCCTGTAATCCCCACTACTCAGGAGGCT + + + 7980 GAGGTGGGAGGATGGCTTGAGTCTGGGAGGTGGAGGTTGCAGTGAGTCGAGATGGCACCA + + + 8040 CTGCATCCCAGCATGGGTGATAGAACCAGACCCTGTCGCAAAACAACAACAACAACAACA + + + 8100 AAAACCAGTTAATTTATGGCCAGGCATGGTGGCTCACACCTGTAATCCCAGTTCTTTGGA + + + 8160 AAGCTGAGGCAGGAGGATCACTTGAGACCTGGAGTTTGTCTCTATAAATAATTTTTTTTT + + + 8220 TTGGTGGGACAGGGTTCTCATTCTGTCACCCAGGCTAGGGTACAGTGGCACAATCACATC + + + 8280 TCACCGCAGCCTCAACCTCCCAGGGTCAAGTGATTCTCCCACCTCAGCCTCCCGAGTAGC + + + 8340 TGCGACTACAGGCGTGGGCCACTATGCCTGGCTAATTTTTTATATTTTGTAGAGACGGGG + + + 8400 TCTTGCTATGTCACCCGAGCTGATGAACTCCTGGGCTCAAGAGATCTGCCCACCTCCACT + + + 8460 TCTCAAACTGCTGGGATTACAGGCGTGAGCCACTGCACCCAGCCCTCTACAAATAATTTT + + + 8520 AAAAACTATTTTACTATTTTAAAAGTTGAAGGTTATATTTTGTTTTATCTATGAGTTTTA + + + 8580 TTTCCCCTTTTTATTTTGTTTCGGCTTGTCTGGAAATGGTATATTCCGTTTCTTCACCCA + + + 8640 TAGGGCTTCACAACATCAGCACTGCTGACATTTGGCGCTGATAATCCTCTGGGGTGAGGC + + + 8700 CATCCTGGGCACCACACGGTGTTGAGCAGCATCTCTGGCCTCCATTCTTCAGACACCAAG + + + 8760 AGCAACACCTCCACCCCTTGTGGTGACAACTAAAAGATGTCTCCAGACATCAACATGTGT + + + 8820 TCCTTTGGAGCAGAACCACCCCGTCCTGTGAGAGGCACGGATATGGTGGTTACAATGGAT + + + 8880 ACATCAACAAGAATTTAAATGTTTGGCCGGGCGCGGTGGGCGCGGTGGCTCAGGCCTGTA + + + 8940 ATCCCAGCACGTTGGGAGGCCGAGGCAGGTGAATCACTTGAAGCCAGGAGTTCCAGACCA + + + 9000 GCCTGGCCAACATGGTGAAACCCATCTCTATTAAAAATACACACACACTGCCGGGTGCGG + + + 9060 TGGCTCACGCCTGTAATCCCAGCACGTTGGGAGGCCAAGGAGGGCGGATCACGAGGTCAG + + + 9120 GAGATCGAGACCATCCTGGCTAACACGGTGAAACCCCGTCTCTACTAAAAATACAAAAAA + + + 9180 TTAGCCGGGCGTAGTGGCGGGCGCCTGTAGTCCCAGCTACTCGGGAGGCTGAGGCAGGAG + + + 9240 AATGGCGTGCACCCGGGAGGCGGAGCTTACAGTGAGCCGAGATCGCGCCACTGCACTTCA + + + 9300 GCCTGGGCGACAGAGCGAGACTCCATCTCAAAAAAAAAAAAAAAAAAAAAACTACACACA + + + 9360 CACACAAAAATTAAAATATTTATCTTCCCTCTGAGCCACACACAAAGACCTCAACCACCC + + + 9420 CCTTCTATCTTTCCTATTTTTATTTATTTATTTATTTTGAGACAGAGTCTCGCTCTGTCA + + + 9480 CCCACGCTGGAGTGCAATGGCGCGATCTTGGCTCACTGCAACCTCTGCCTCTGGGGTTCA + + + 9540 AGCGATTCTCCTGCCTCAGCCTCCTGAGTGGCTGGGATTACAGGCACCTGCCACCGCACC + + + 9600 TGGCTGATTTTTGTATTTTTAGTAGGGATGGGGTTTCACCATGTTGGCCAGGGTGGTCTC + + + 9660 AAACTCTTGACCTCGTGATCCACCGCCTCGGCCTCCCAAAGTGCTGGGATTACAGATGTG + + + 9720 AGCCACCATACCCAGCCTGATGAAAATTTTAAAAAAGAAAATTCTTAAACCGTTCTAAGT + + + 9780 CAGGGAACTGTCTGTATACATCTTACTTATACAAAAAGGTTACATATGCACCTTACATTG + + + 9840 TTTTTGTTTTTGTTTTGAGATGGAGTCTCACTCTGTCACCCAGACTGGAGTGCAATGGCA + + + 9900 TGATCTTGGCTCACTGCAACCTCTGCCTCCCGGGTTCAAGCGATTCTCCTGTCTCAGCCT + + + 9960 CCCGAGAGGCTGGGATTACAAGTGTGCACCACCACGCTTGGCTAATTTTTTTTGTATTTT + + +10020 AGTAGAGACAGGGTTTCACCATGTTGGCCAGGCTGGTCTTGAACTGCTGACCTCAGGTGA + + +10080 TTGGCCTGCCTCGGTCTCCCAAAGTGTTGGGTTACAGGCATGAGCCACGGCACCCAGCCT + + +10140 GCACCTTACATTGTAACACACGTGTGGACACACCCTGGAGTCACAGCTACAGGACAATTT + + +10200 CAGAGTCCATGACGGCCCCACATCCCTTCCCTGGGTCACCAAGGCCTCAATATGCCCCTC + + +10260 CCCCCTCCCTGTGTGTGATATCTATACAAGTCACCTGCATACCTGTAGCAGACGCTGGCA + + +10320 TCACTGTGGGCTCCCCGCCCTCCCATTCCTCAAACTGGTTTTCCTCTAAGGTTTCCCTGC + + +10380 CCATCTAACCTTCTCCTGGCACTCCCTCATGGTGCATTTCTCTCACCTGCCCGTCCGTCC + + +10440 CAGGCCACCTGCCCTCTCAGCTGGGACTCCAACTTCCCCTGATTTCTGGTCTCTTCCATC + + +10500 CTGCTTTTGGACTTTTCCTGGGACACTTGCATTTCTTCTTTTTCTTTTTTTTTTTTTTTG + + +10560 AGACAGAGTTTCACTCTGTCACCCAGGCTGGAGTGTGATGCGATCTCGGCTCACTGCAGC + + +10620 CTCCACCTCTCAGGTTCAAGCGACTCTTCTGGCTCATCCTTCTCAGTAGCTGGAACTACA + + +10680 TGCATGCGCCACCATGCCTAATTTTTGTTATTTTAGTAAAGACTGGGTTTCACCATGCGT + + +10740 TGACCAGGCTGGTCTCAAACTGCTGGCCTCAAGTGATCTGCCCGCCTTGGCTTCCCAAAG + + +10800 TGCTGGGATTTGGGATTACGGGCGTGAGCCGCCGAGCCTGGCCTCCTTCTTGCTCTCCTT + + +10860 TCTCCTCCCAGACCTTTGCTCCCCTCTCAGTCCTGCTCCTCTCTCCCTCCCGCGCAGCCC + + +10920 CCACCCTGCACCCGGGCAGGTGCCACAGGGACGTGCAAGACAGCTACCACCCTGCACAAG + + +10980 CCCGAGTCCCAAACCACTCAGACCCTGTTTGTAAAAATCGGCATGCTCCTTTATTTGTTC + + +11040 AGAAGAGCAGCCAGCATCACCCTTGCCACTCAAACCTGGCACATACGCTTCGGAGACAAT + + +11100 GGCCTCGGGACCCTCATGCTGCTGGGCCCAGGAGAGACAGTTCTGAGGCAGAAACTCGGC + + +11160 GTCCAAGGGGGGCCGCGGGTCAGGCACTGTGGTGAAGGGAACGCCGGGGAGTCCGGCCCC + + +11220 ACCTTGCAGCTGGGGACACGGGGGCGCAAACAGAGGGGGCAGGCTAGTGTCCCGCTGCCC + + +11280 CAGGAACAGACCTCAGGGCCCCAGGAGGGTCTGCAGGCAGCTAGGAGCCTGCCAAGTGCT + + +11340 GGTGGAAGTAGAGGCCGAAAAGGCTGGCGAGCAGCTGGCAGGCAGCCGTCCACCAGATGA + + +11400 GGTAGGCCAGGACGCCACGGAGGAAGAGGGGAGTAAGCAGGCCACCCAGAGCCCCGGCAA + + +11460 TCCGCGCTGCAGTCTGCTGGACTTCGTCCTCCCCAGAGCCGATGGGGGCAGCGCTGGCTG + + +11520 AGGATGGGTCGGGGGATAGTAGAGGAGCTGGGCCCAGGCCCCAGGAATAGCCTCCTAGGA + + +11580 GAAGAGGATGAAGCGAGGTATGAGTGGAAAAATGGGGGAGGGGGCGAGGGACAGGGCTGG + + +11640 CACGGGGGGCCAGGCCCATTCCTCCAGACACTCCCACCCCTGTCTCAGACTCCATCTCCA + + +11700 GCCCAGTCTCCACCCCCTCAGGCGCTGCCCCCTGTCCAAGGCAAACCCTACCCCAGGCCC + + +11760 CACCTCCTGCTCAGATCCTGCCTCAATACATGCCCTGCCCCCTCCCCAGGCCCCGCCTCC + + +11820 TGCCAAGACGCAACCCCTCCCCAGGCTCCACCTCCTAAGGCAAACGCCATCCCAAACTCC + + +11880 ACCTCCTGCTCAGACCCTGCCTCACCACAGTCCCCGCCCCCTACCCAGGCCCCGCCTCCT + + +11940 GCTCAGATTGCACCCATCCCCAGGCTCCACTTCCTGTCCAAGGCAAGCCCCACTCCAGGC + + +12000 TCCGCTTCCTGCTCAGACCCTGCCTTACCACAGTCTCCGCCCCCTGCCTAGGCCCCGCCT + + +12060 CTCCCCCCCCACCGCGGTCCCCGCCAGAGTCCACCTCCACTCTGTTTTATCTTCCAACTC + + +12120 CGCCCCTCCTCCACCCCCACACCGCGGCATCTCACCCAGCGTCTTGAGCAGAAGTGTGCA + + +12180 GTTGAGGGTGAGGATGAGCGGCGTCAGGTACTGCAAGCTCACCACGGTCACATAGCAGTA + + +12240 GACTCGGACCACCTGTGGGCAGGTAGCAGGGGTGGCTGCAGCAGGAGGCCTTCTGGTTTG + + +12300 GGACGACTCCACGCCCAAAGGACCAGGAACCCCACCCTGAGCCCCAGGTTCCCTCTGGCC + + +12360 TAGGTCATCGGGGCGTCCATACCCTCTGCTGGATTTCACGGGCTTCGATGCGGCCAGCCT + + +12420 CCCTTCGCAGCTGCTCCACCCGGGCCTTGGCCAGGCACAGGTAGGCCTGCAGGTGGGGCC + + +12480 GGGTCACCGCCAGCCGCAGCAGGCACAGCACCACCAGCAACCAGAGGCGCCCAGAGTCGA + + +12540 AGGCAGAATCGGACAGCCTGTGCGGAGAGGGCCGGGGGCAAGGGACTAAGAAGGTCGCCC + + +12600 CCGACCCCCCAGGATCTTCCCCAGGCTCCTCCCTGAATCTCAGAGGCTAGGGCACCCAGG + + +12660 GGAGCCCCAGCTACCTCCTAGCCCCACCCAATACGCACAGGGAGAAACGCGTCTCCCCAA + + +12720 ACGGCGGCTGGTGCAGGAAGTCCCGTGCAATGGGCTTTGTCCAGAGCCACAGGATGAACA + + +12780 GGGGAGACAGGAAGCTGGTGTGCAGGAGGAACCTGGGGGGTGAGGGCAGGAGGGAGTGAG + + +12840 GCCTGGGTACCCCCTCTCCTCGAGTCTCTCCCTTAAGCTCCCTAGTCCCCCCACCCACCA + + +12900 AGCGACCCACTTAACTGCAGCATGGGTCTGTCCTCCGACATGGTCAGTGCGTCCCGGTGG + + +12960 GTCTGGGCCAGCCGCAGGCCTGGGAAGGTGAGGAAGGCACCCAGCACAGAGCCCACCACT + + +13020 GCCAGTCCCACGCGGATAGCCAGCTTGGCCACAGGAAGCCTAGGAGAACACCAGGTCACG + + +13080 AGCCTGCCTGGGGGACCCTGGGAGGGTCCCAGCCTGCCCTTGCCTCCCTCCCCCATTCCC + + +13140 AGGACTCACGCCCAGTCCCAGCCCTGCTTCTTCAGAAGTGGCTCTAAGTTCTGGGTCATG + + +13200 CTGGCCAGACCTGGGGACGATAAGAAGAGGACCGAGTAGAGTGAATTCCTAGGGTCTCTA + + +13260 AGGCCACTCTGTTCCCTAACCCCCCATCCCTCAGGCATCCGTTTGCTTCCCAAGTAGGAA + + +13320 TGAACAAGGGTCTGCCAGGCCCTGAGCCAGGCACAAGGACAATTTTGTGCTCTAGTTACA + + +13380 CAGTACTTTTTACAAGAAACAAGATTGGAGTGGTGGTTCACGCCTGTAATCCCAGCACTT + + +13440 TGGGAGGCTGAGGCAGGCGGATCATCTGAGATCAGGAGTTTCAGACCAGCCTGGCCAATG + + +13500 CAGTGAAACCCCCGTCTCTACTAAAAATACAAAAATTAGCCAGGTGTGGTGGCAGGTGCC + + +13560 TGTAATCCCAGCTACTTGAGAGGCTGAGGCAGGAGAATCGCTTGAACATGGGGAGCGGAG + + +13620 GTTGCAGTGAGCTGAGACCGCACCATTGCACTCCAGCCTTGGGGACAAGAGTGAAACTCA + + +13680 GTCTCAAAGAAAACGAAACAGAATGCACCAGGCAGACACTCCTGATTGGGCTGGGAACAT + + +13740 TCAGGGGTATCTGTTGAGCCTGAGCTCCCTAGGTTATAGAAGGAATCTAGAGGGGGATGA + + +13800 AGGACTCCTGCAGGAGAAAACCAAAGTCCTCCTGGAGGAAGGAATCCTCAATTCAGGACC + + +13860 CAAGATTTTTCAAAAATTAAGAGCAGGGCTGGGTGCAGTGGCTTGCACCTGTAAGTCTCA + + +13920 GCACTTTGGGAGGCCAAGGCGGGTGGATCGTTTGAGCTCACAAGTTTGAGACCAGCCTGG + + +13980 GCAACATGGCAAAACCCCCATCTCTACAAAAAATACAAAACCAGGGGTGGTGGTGCACGC + + +14040 CTATAGTCCCAGCTACTGTGAAGGCTGAGGTGGGAAGGATGGGTTGAGCCCAGGATGTGG + + +14100 AAGTTGCAGTGAGCTGAGATCATGCCACTGCACTCCAGCACAGAGCAAGACCTTGTCAAA + + +14160 AAAAAAAAAAAAAAGGAGCAAATTCATATGAGCTCACAGGCAAAATCACCAAATGCATAA + + +14220 GGAAACAAATCACCATAAAGGAGAGTTAACAGAAAAACAACAGTCAAGTTTAGGCCTCAA + + +14280 AGACTTCAGAAATTGGTGCTGTCAATTATGTGTCAAATGACTAAGGAAATGAAAGCTGTA + + +14340 ATCACAGAACAAGTGACATGAGAATTCCTTCAGATGACTGGGTAGAGTTGCAAAGGAACC + + +14400 AAATTAAACTCTTCCAAAGGAAAACTGTAAGTATTGAAATAATAGGTTGTTAAACAGCAC + + +14460 ATTAGGAACAGCCAAAGGAGGAAGTGATGAACTGGAAGACAGATCTGAAGAAATCACTCA + + +14520 GATTCCAACTCAGAAAAACAAGTAGGTGAGAAATATGAAGAGAGGCTAAGAGATAAGGAA + + +14580 GACAGAACAGAGAGCCCAACGCAAATCAAATCAGAGCCCCAGAGGGAGGGAAGAGAAGGA + + +14640 ATGAAGAATAAAAGGAATTACTGGAAGAGAATGGTTGAGAAGTTTGCAGAATGAAAGACA + + +14700 GACACAAAGTATATCAAACCATGTAAATAAAAAGAAATCCATACCTAGACATAATGGAGT + + +14760 GAAACTGCAGAACACCAAAAACAAAAAAATTACAAAGCAGCCAGGGAGTTAAGACAGATC + + +14820 ACCTACAAAGGAACAACAATTAGGCTGACAGCCAATGTCAACTGCAACAACAGAAAAGGA + + +14880 ACAAATAGAAAGCAAAAAAGTAAGATGGTAGAAACAAAGTCAAATATGTCAGTAATCACA + + +14940 ATAAATGTAAGTAGACTAAACTTTAAAGTTAAATGACAAAGACTGTCAGACTACATTGAA + + +15000 AATATCCAGCTACATGTTTTTTAAAGGATGACATACCTTGACATAAAGTCACTGGAAGAC + + +15060 TGAAAGTAAAGGGATGTTAAAAAGATACAGCAAATACTAATCAAAAGAAAGCAAGCTAGA + + +15120 AAGGCTATACTACTACCAGCCAAACTAGACTAAGAAGTAGTATTAGAATAGGCCAGGCGC + + +15180 GGTGGCTCACACCTGTAATCTCAGCACTTTGGGAGGCCAAGACGGGCAGATCACAAAGTC + + +15240 AGGAGTTCGAGACGAGCCTGGCCAACATGGTGAAACCCTGGCTCTACTAAAAATCCAAAA + + +15300 AATAGCTGGGCATGGTGGCGGGTAATACCAGCTACTTGGGAGGCTGAGGCAGGAGAATCG + + +15360 CTTGAACCCAGGAGGTGGAGGTTGCAGTGAGCCGAGATTGCGCCACTGCACTCCAGCCTG + + +15420 GCCAACGAGAGCAAAACTCTGTCTCAAAAAAAAAAAAAGTAGTATTAGAAGACAGAAGGG + + +15480 TTCCATACATCATGATAAAATGGCTGATTCACCAGGAAAATGTAACAGTTCTAAATCTGT + + +15540 GAATAGAACTAATCTGTGAATTGTGAATAGGCTGCAAAATATATAAAGAAAACACTGACA + + +15600 GAATTGATAGGGAAATTGAGAGCTCTCTTGTCCCAGAGGGAGATTAACTTCTGCTGACTG + + +15660 ATAAGTCACAGACAAAAGGTTAGGCAAGATGGAGATTTGAATTTATTAAACTCATAGAGC + + +15720 CAGGGAATATGTCCTTCAATTAGAACATGTGAAAAAAGGCAAAACAACAAAAACAGAATA + + +15780 TGTCCTTCAAGAAAACAAGGAATAGTCACAAAATGTGATCACATTCCAGGCCATAGGGCA + + +15840 AATCTTACCAAATTTTAAAGAAATTATTTCAAATAGACCATCTGTGCAATTGAGCTAGAA + + +15900 ATAAATATGTATTTTTTAAAGATCTATGTTTGAAAAATTTAAAAATATTTAATAATCCAT + + +15960 AGGTCAAAGCATAGCAAGACCCCATCTCTACAGAAATCAGAAGGGAAATGTTAAAACACC + + +16020 CCAAACAGAATAATAAAAAATATCAGTCAAAACTTGGGTAAACTGCCAGGTGTGATGGCT + + +16080 CACACCTGTAATCCCAGCACTTTGAGAGGCCGAGGTGGGTGGATCACCTGAGGTTAGGAG + + +16140 TTTGAGACCAGCCTGGCCAACATGGTAAAACCCCGTCTCTACTAAAAATACAAAAATTAG + + +16200 CCAGGCGTGGTGGCGTGCACCTGTAATCCCAGCTACTCAGGAGGCTGAGGCAGAAGAATT + + +16260 GCTTGAACCCAGGAGGCAGAGGTTGTAGTGAGCTGAGATTGCACAGTTGCACTCCAGCCT + + +16320 GGGTGACAAGAGCAAAACTCCATCTCAAAACAAAAACAAAAACAAAAAAAAACTTAGGTG + + +16380 AACAAAAGTGAGACCTGGTAAAATATATATAGCATTAAATGCTATATATGCTATAAAATT + + +16440 AGAAAAGATTGAAAATTTATGAGCCAAGTAGCTAACTGAGAAATTGGAAACAAGAAAAGG + + +16500 AGGTACGCCAGTACTGTTCTCAAATCCAGAGGTCCTAGCCACACCAAAGGGGAAGGATCA + + +16560 GACAGAACAAAAGAAAACCAAAAAGAATCTGCAATTCAATAAAAATATAATTGTTTAGCA + + +16620 AGGTTAGTCCGTGGAGACACTCAAATTTGACCCCTATATGATAACACAAAAATTAATGTC + + +16680 ACTGTCCATCAGCAACAGTGAGTAGTTTAGGAGCTTATATGAAATGTAAAAGTTGAAATA + + +16740 TTTTATTTATTGATTTTTAAGATGGAGTCTTGCTCTTGTCGCCCAGGCTAGAGTGCAATG + + +16800 GCGTGATTTCGGCTCACTGCAACCTCTGCCTCCGGGGTTCAAGTGATTCTCCTGCCTCAG + + +16860 CCTCCCGAGTAGCTGGGATTACAGGTGCATGCCACCTTGCCCAGCTTTTTTTTTTTTTTT + + +16920 TTTTTTAGACGGAGTCTCGCTCTGTTGCCCAGGCTGGAGTGCAGTGGCGCGATCTTGGCT + + +16980 CACTGCAAGCTCCACCTCCCGGGTTCACGCCATTCTCCTGCCTCAGCCTCCCCAGTAGCT + + +17040 GGGACTACAGGCGCCTGCCACCACGCCTGGCTAATTTTTTGTATTTTTAGTAGAGACGGG + + +17100 GTTTCACGGTGTTAGCCAGGATGGTCTCGATCTGCCGACCTCGTGATGTGCCCATCTCGG + + +17160 CCTCCCAAAGTGCTGGGATTACAGGCATGAGCCACCACCCCTGGCCAGTCATTCTATATT + + +17220 TTCTTCTAAAATATTTCAGCCAGGCGTGGTGGCAAGCGCCTGTAATCCCAGCACTTTGGG + + +17280 AGGCTGAGGCAGGTGGATTGCCTGAGGTCTGGAGTTCAAGACCAGCCTGGTCAACGTGGT + + +17340 GAAACCCCATCTCTAGTAAAAAATACAAAAAGTAGGCCGGGCACGGTGGCTCGCGCCTGT + + +17400 AATCCCAGCACTTTGGGAGGCTGAGGCGGGTGGATTGCCTGAGGTCTGGAGTTCAAGACC + + +17460 AGCCTGGTCAGCATAGTGAAACCCCATCTCTAGTAAAAAATACTAGAGATCGCCCACTGC + + +17520 ACTCCAGCCTGGGGGAAAGAGCGAGACTCTGTCTCAAAAAAAAAAAAAAAGACAATGTAG + + +17580 AATGACTTTCTGATTTTAGGGAAGGATATTTTTCAAGACAAATATCAACTAAAATAATCA + + +17640 ACTTCCATTCATCAAGACACTAGAGGTGACACTTACAACTACATTTGACGACTCAGCAAA + + +17700 GAAAGTGTGATGCATGTATGCAGACGGAAAATAATGCAAATAGTGGTCAAATGAAAACAA + + +17760 AAGAAGTATTGGCAATGAAGTGGATAAATTTGGAACACTTGTGCACTGCTGCTGGGAATA + + +17820 TAAAATATAAAATGGGCTGAGCACAGTGGTGCACACCTGTAATCCCAGCACTTTGGAAGG + + +17880 CCGAGGCTGGCGATTGCTTGAGTTCAAGAGTTCAAGACTAGCCTGGGCAACATGGCAAAA + + +17940 TCTGTCTCTATTAAAAACACAAAAATTATCTGGGTGTAGCCAGATGTGGTGGCTCACACC + + +18000 TGTAATCTCAGCACTTTGGGAGGCCAAGATGGGCAGGATCACCTGAGGTCAGGAGTTAAA + + +18060 GACCAGCCTGGCCAACATGGCAAAACCCCATCTCTACTAAAAATGCAAAAATTAGCCAGG + + +18120 TGTGGTGGCGCACACCTGTAATCCCAGCTACTTGGGAGGCTGAGGCAAGAGAATCACTTG + + +18180 AGCCTGGAAGGTGGAGGTTGCAGTGAGCCAAGATCATGCCACTGTACTCTAGCCTGGGTG + + +18240 ACAGAGGGAGACTGTCTCAAAAAATAAAAATAAAAATAAAAAAATAAATTAGCTGGGTGT + + +18300 GGTGGTGGGAGCCTGTAGTCCCAGCTACTTGGGAGCCTGAGGCATGAGAATCACTTGAAT + + +18360 CCGGGAGGCAAAGGTTGCAGTGAGTGGAGATCACGCCACCACTGCACTCCAGCCAGGGCA + + +18420 ACAGAATGAGACTCTGTCTCAAAAATAAAATAAAATGGTTCAGCTGCTGTATAAAACAGT + + +18480 ATGGCAGTCCCTCAAAAAATTAAAAGTAGAATTATCATATAATCCAGCAGTTCCACTTCT + + +18540 GGATATATACTCTCCAAAACTGAAAATGGGGTCTCAAAGAGATACCTGTACACTCAGGTT + + +18600 CACAGCGGTATTAGTCAAAAAGCCAAAAGTTGGGAACAACCCAAGCATTCATCTGTGGAT + + +18660 GAATAAACAAAATGTGTTCCACCCAGACAATGAAATAGTGTTCAGTCTTTTTTTTTTTTT + + +18720 TTTTTTTTGAGATGGAGTCTTGCTCTTTCACCCAGGCCGGAGTGCAGTGGCACTATCTAA + + +18780 GCTCAC + + +KEYS (in order of precedence): +>>>>>> left primer +<<<<<< right primer +^^^^^^ internal oligo + +ADDITIONAL OLIGOS + start len tm gc% any 3' seq + + 1 LEFT PRIMER 10632 20 59.99 55.00 5.00 1.00 GGTTCAAGCGACTCTTCTGG + RIGHT PRIMER 11007 20 60.00 55.00 3.00 0.00 ACAGGGTCTGAGTGGTTTGG + INTERNAL OLIGO 10718 20 59.97 50.00 4.00 2.00 AAGACTGGGTTTCACCATGC + PRODUCT SIZE: 376, PAIR ANY COMPL: 6.00, PAIR 3' COMPL: 0.00 + + 2 LEFT PRIMER 10988 20 60.00 55.00 3.00 1.00 CCAAACCACTCAGACCCTGT + RIGHT PRIMER 11144 20 59.99 60.00 5.00 2.00 CAGAACTGTCTCTCCTGGGC + INTERNAL OLIGO 11055 20 59.97 50.00 3.00 0.00 ATCACCCTTGCCACTCAAAC + PRODUCT SIZE: 157, PAIR ANY COMPL: 4.00, PAIR 3' COMPL: 1.00 + + 3 LEFT PRIMER 11139 20 59.99 55.00 7.00 1.00 GTTCTGAGGCAGAAACTCGG + RIGHT PRIMER 11490 20 59.99 60.00 5.00 2.00 GAGGACGAAGTCCAGCAGAC + INTERNAL OLIGO 11416 20 60.07 55.00 2.00 1.00 ACGGAGGAAGAGGGGAGTAA + PRODUCT SIZE: 352, PAIR ANY COMPL: 4.00, PAIR 3' COMPL: 1.00 + + 4 LEFT PRIMER 3093 20 60.01 50.00 3.00 2.00 GCACACAAACCACCTCCTTT + RIGHT PRIMER 3387 20 59.99 55.00 8.00 0.00 AGACCAGTTAGCTGGGGGTT + INTERNAL OLIGO 3335 20 60.04 50.00 2.00 1.00 TGGGAGGTGAGGAAAATCTG + PRODUCT SIZE: 295, PAIR ANY COMPL: 5.00, PAIR 3' COMPL: 3.00 + +Statistics + con too in in not no tm tm high high high lower + sid many tar excl ok bad GC too too any 3' poly end case + ered Ns get reg reg GC% clamp low high compl compl X stab end ok +Left 180325 0 0 0 0 8877 0 34002101805 0 2 1117 0 530 33992 +Right 180315 0 0 0 0 8926 0 33985101878 0 1 1108 0 480 33937 +Intl 180490 0 0 0 0 9272 0 34040102012 0 0 1142 0 0 34024 +Pair Stats: +considered 338, unacceptable product size 331, high any compl 1, ok 6 +libprimer3 release 2.4.0 + + +PRIMER PICKING RESULTS FOR masker_prefix1 + +No mispriming library specified +No internal oligo mishyb library specified +Using 0-based sequence positions +OLIGO start len tm gc% any 3' seq +LEFT PRIMER 2959 20 60.00 50.00 3.00 3.00 ATGCCCACCTGCTTTGTAAC +RIGHT PRIMER 3388 20 59.99 55.00 8.00 0.00 AGACCAGTTAGCTGGGGGTT +INTERNAL OLIGO 3094 20 60.01 50.00 3.00 2.00 GCACACAAACCACCTCCTTT +SEQUENCE SIZE: 18787 +INCLUDED REGION SIZE: 18787 + +PRODUCT SIZE: 430, PAIR ANY COMPL: 5.00, PAIR 3' COMPL: 3.00 + + 0 CTGACATTTTATGCCCAAGACAATGGCTCTGCCTTCTACCTTCACATGCTCAGGGTCACT + + + 60 CAGCACGTCCTGGAGGATTTCTCTGGCCTGGAGTCCCTGGCCCGGGCAGCAGCGCTAGGG + + + 120 ACCCACCGAGTGGTCACAAGGCTGTTTATGTTGGGCCTCCTGGTGGAGTCGGCATGGTAC + + + 180 CTCCATTGCTACCTGACAGACCTGCGGTTTGACAATATCTACGCCACTCAACAGCTGACC + + + 240 CAGCGGTTGGCACAGGCCCAGGCTACACACCTCCTGGCCCCTCCACCCACCTGGCTGCTC + + + 300 CAGGCGGCTCAGCTGAGGCTGTCACAGGAGGAGCTGTTGAGTTGTCTTCTAAGGCTGGGG + + + 360 CTGCTTGCCCTGCTCCTCGTGGCCACTGCTGTGGCGGTGGCCACAGACCATGTAGCCTTC + + + 420 CTCCTGGCACAGGCGACTGTGGACTGGGCTCAGAAGTTGCCAACTGTGCCCATCACGCTC + + + 480 ACGGTCAAGTATGATGTGGCATACACTGTCCTGGGCTTCATCCCTTTCCTCTTCAACCAG + + + 540 CTGGCTCCGGAGAGCCCCTTCCTCTCCGTCCACAGCTCCCTACCAATAAAGGAGGGCGCG + + + 600 CAGAGCGGCGCGGCGGGCCCGCCCGCGGCCGCCGCCCCGCGCCTGCGCCGGCGGGCGGAT + + + 660 CAGCCGACATCCAGGAGCTCGTCTCCTTGTGTGACTGTAAAACCCCATTTTCGGTGTTTC + + + 720 TCTCTGGAGTGCTTTCCAGCCCCTTGACCCCACGTTCTCACCCCACGTGATGCCATCAGA + + + 780 CCCCTTGTTTTTGCCCACCTGGTGAGCAGATCACAGTGTCTCCTGTCTGGCTGTTTTTTT + + + 840 GAGACGGAGTCTCACTCTGCCGCCCAGGCTGGAGTGCAGTGGAACGATCTCAGCTCACTG + + + 900 CAACCTCCACTTCCTGGGTTCAAGCCATTCTCCTGCCTCAGCCTCCCTAGTAGCTGGGAT + + + 960 TACAGGCGCCCACCACCACACCTGGCTAATTTTTGTGTGTTTTTGGTAGAGACAGGGTTT + + + 1020 CTCCATGTTGGCCAGGCTGGTCTCCAATTCCTGGGCTCAAGTGATCCGCCTGCCTTGGCC + + + 1080 TCCCAAAGTGCTGAGATTACAGGCGTGAGTCACTGCACCCAGCCTTGGCTGTTTTAAATT + + + 1140 CCTAGTTCTAAATTTACTATTACAAATGTTTAAAGTACCCCTACTGACCTGTTGCTGCTC + + + 1200 CTTCCTCCTCCACACCCACACACCCCGTTTAGACCCGCAAGACAGAGCAGGGTGAAGTTC + + + 1260 ATGGTCACTTATGTCCACTCTGTGCAACAGCTCGCAGGGGCTCCCCAGGGAGGGCGCAGG + + + 1320 TCGGGGACCAGGCACGGGAGCACCTAGAATGTTCCTTTACTAGACGTGGAGTAGAGCTGA + + + 1380 TTAGATGTGAGCAGTGGCTCTAGGAGTTGGTTCTATGATTCTCTGTGTTTCTGCCTTTTA + + + 1440 AGAAATTTTATTTCTCGGCCGGGCTCGGTGGCTCATGTCTGTAATCCCAGCACTTTGGGA + + + 1500 GGCCGAGGCAGGCAGATCGCCTGAGGTCAGGAGTTTGAGACCAGCCTGACCAACATGGAG + + + 1560 AAACCCTGTCTCTACTAAAAATACAACATTAGCCAGGCGTGGTGGTGCATGCCTGTATTC + + + 1620 CCAGCTACTTTGGAGGCTGAGACAGAATTGCTTGAACCCGGGAGGCGGAGGGTGCAGTGA + + + 1680 GCCGAGATTGGGCCATTGCCCTCCAGCCTGGGCAACAAGAGTGAAATTACATCTCCAAAA + + + 1740 AAAAAATTTTTTTTATTTCTCGAGTTTGAGTGAAAGGAGCGACCCGGAGGTGAGGCAGTG + + + 1800 GGGCGTGTGGGTGCGCATGAGTGCGAACACACGTGGGGGTGCAAGTGCATGTGTGTATGT + + + 1860 GCACGCAGGTTGCTCCTAGGGGTGCAAAGGCGCGCGCACGGGTGCGGGGTGCGCGCCCCC + + + 1920 TCGCGGCGCCTTCACGGCCCTCCCGCCCCTCGCCCTGCAGAGTACAGCGGCCGCCGGCAG + + + 1980 CCCTACCCCTTCGAGCGCATGATCTTCGGCGCCTGCGCTGGCCTCATCGGGCAGTCGGCC + + + 2040 TCGTACCCGCTGGATGTGGTGCGGCGGCGCATGCAGACGGCCGGCGTCACGGGCTACCCG + + + 2100 CGCGCCTCCATCGCCCGCACGCTGCGCACCATCGTGCGGGAGGAGGGCGCCGTGCGCGGC + + + 2160 CTCTACAAAGGCTTGAGCATGAACTGGGTCAAGGGTCCCATCGCCGTGGGCATCAGCTTC + + + 2220 ACCACCTTCGACCTCATGCAGATCCTGCTGCGGCACCTGCAGAGCTAGGGGACCCTGAGC + + + 2280 TGCTCTCAGGACGGTGGACCGGTGACCCCTTTGTATTCTGGGCCCATGGAACGGTGGGGG + + + 2340 GGTGCGCTTGATTCTACTTCAGGAGGCACATGGGGCGCTTTATGGAACGAGCAGGTGGGC + + + 2400 CTGAGGGGCCTGGGCTCAGAGTCCACGTCCAAACGCAAAGCTGGCAGCCCTGGAAGTGCA + + + 2460 GTGTTGGGGCGATGGTGTGGGGGGTCCCGCAGCTCCCCTCTTCCTTCCTCTGCAGACGCT + + + 2520 GGCGCTGTCTGCCGGAGGTGTTGCCCAAAAGGCCCTAGTGGGGCGTGGTCAGCTCCACCT + + + 2580 CCTGATCCTGTGTGTCCTCCGACATGCTGCTGATTCTAGTGACCCCTGTCCCCACCAGGC + + + 2640 TCAGAGCCAGACCGCGCCTGGACCTTCTTGTTCTGACTCCACGTGCCTGCCCGGCCTCCA + + + 2700 GGGTGCGGGGGCGCCTTTCTTGCAGGCGGACCCTGCCCAGGATGGGGCCAGCCTCGTGCT + + + 2760 CAGCTTTGGCCACAAATGCAGCCCCTGGCCCACCCCACCCTGCCGGCCCTGCCTTCTCCA + + + 2820 GTATTTCCCACATGGCCACGACTCCTCAGTCACTAGAGCCTCCTGCTGGGAACAGTGTCC + + + 2880 CCCAGAGCCTCATGTCTATCCTAGACCCTGCAAGCAGCTGGGTCCCCAAGAGTGCATCTC + + + 2940 CCCCTAGAGTTGCCTGCCCATGCCCACCTGCTTTGTAACCTTCCCAGGAGATTCATGCTT + >>>>>>>>>>>>>>>>>>>> + + 3000 GCTCTGCACAGCAGGGCTCGAGGCCCAGGCCATGACACGGAACTGCCTCAGGTTTGGGTC + + + 3060 AGACCTGCATCCTGGGGCATCTGCTGAAATGTGAGCACACAAACCACCTCCTTTGGCCCA + ^^^^^^^^^^^^^^^^^^^^ + + 3120 GAAGCCCCCCAGGCCTAGCATCTCAGTGCCCCAACCCTCTGCCCAGCTGTGGTATCCAGC + + + 3180 AGGTCCTTGGGTCCCCACTTGAGCAGGCACTTGGCTGGGATATGGAGCAATTTAAAGCCC + + + 3240 ACAGGGGTTGTTCAGTTTCTATGAAATGGAGCATGGGGTGCCTGCTAGCCTCAATCCCCC + + + 3300 GAAGTGGGAGCCTCATGATAGAGTATAGCTTGGGGGTGGGAGGTGAGGAAAATCTGAGGT + + + 3360 ACCCAGGGGAACCCCCAGCTAACTGGTCTCTCAGAGGAGTCCCCCAGGGCCCGCCAGCTA + <<<<<<<<<<<<<<<<<<<< + + 3420 TCACAGGGACTCAGAAACACCCATTTCCTAATGACATGGTGAGTTTCTTGATTTCTTTTT + + + 3480 TTTGTTTGTTTTGTTTTGGTTTTCAACTTGGCTGACCCCGGGTCTATGATCTATTCACAT + + + 3540 CGAACCCCTGACTGGTCTGCCTGGTGCCAGGGTGAGCGTGACCGTGAGTGTTGCTTTCGA + + + 3600 CAGCTGGCTCAGCACACGCTGTGTGAAGGGATCTGAGCTTGTTCATCTCCAGTCGTGACT + + + 3660 TCATTTCCCTTCCTTCTGTCCTCCTCCTGTTCTTGCCTTGGACCTGCAGGTGTGCAGACC + + + 3720 GCTCTCTCTGCCTTCCTTGCATGTGGCCACCAGCCATCCCTGATCTTGTCCCCAGAGGCC + + + 3780 CAGGCAGCCTGTGATGGCTGTGAGGGGCTGTCCCACTGTGTGGGTATCCCTTACCCAGCA + + + 3840 CTTAAACTTGGCAGGAGAGGCAGGGCAACCCTCACAGGGAGATGGGAGGGCACCCAACTC + + + 3900 CCACAAGCATGCAACAGCAGTAGGAATTGGGGGTCTGCCCCAGGTGGGTGAGACCAAATG + + + 3960 AGTGGATTTGGGGCCACAGGCTAGGCAGGAGAGACAAGGGGTAGGTGGGAGGGTCCCCCA + + + 4020 GTCCCTGCTGACCCCAGTGTGTCTCCCCGGAGATGGCTCCTAGCTGAGTGGGACCCGGCA + + + 4080 GGAGTTGGGGACAGTGCTGTCCCCCACCCCTGCACACAGCCAGGCCCTCAGGCTCTGCGG + + + 4140 TCACTCGCCTCCCTGCTGGTCACTGGTCTTGGTCTGGAGTTATATTTTGATGCCATGAAG + + + 4200 ACACTGTTTATATCTAATGTTTATATATTTTAAAGATTTGTGCCAAGAGAGTATATTTAA + + + 4260 TAAAAACTTAAATGACTTCTTCTCCTGCTCCTGGCTCTTCTTTGGCTCTGACCGCCCCCC + + + 4320 CATCTTCCCCCATGAACCCCCAAACAGGGTTGAAGTGCTTTTGACACATTTGTGATAAAA + + + 4380 GTTCTGAATAAAAGTCTTGAATAAAGAAGTTTTTAAATGCAATTGTTGTTTGAATTAATA + + + 4440 CATACCACAATTTTCCAGAAAACACCAGCTGTCCACAAGGGTTTACAGTGAAAAGTAGGT + + + 4500 GAACAGTTCCCTCTGCAGGGGGCCTCCTGTGACCATTTTCTCTTGTCTCCTCCCACAGAG + + + 4560 ATTCTGTGCATACACTCATCCCTTTCAGGATATATGTGGCCACCCACAAAGGCAGGAGGG + + + 4620 GCCGTCTCTGTGCAGCCAGCACAGCCCAAAGTCTCATGGGCTTGAACATGGCCTTCCTTC + + + 4680 CCAAGAGCCCTGCACTCTGGGGCTGGCTGAGGCTTCAGGCCTGAACGTCAGTCACCATCT + + + 4740 GCAGGGGCAGCCACCAGAGGGTCTCCAGTGGCAATCCTGGCTCACTTCACCTGCAGCCCA + + + 4800 TTGGCCAGAGCAACTTGGAGGACCCACCCACTGCCAGGCCAGAAGTGGGAGCCTCTGCGT + + + 4860 GCCCAGAGAGGAGGGGCGGCTGGGCCAGCACAGGCCTGGTGCTCTTGTTGGGGTGGGAGT + + + 4920 AGGAATAAGTTCCACTGCGCTGACCCCCCACTGCTCTCCAATCTGCTCACGTGCAACAGG + + + 4980 ATTTCTTTTGAGTTGGTCTCCGTTGTGCACATTGTTCAGCAGCTGTGCGGTTTTCTCCTA + + + 5040 GAGGATCCCCAGGATGACATTTACCAGGGTGGGTGTGGTGGCTCATGCCTGTAATCCCAG + + + 5100 CACTTTGGAGACTGAGGCAGGTGGCTTGCTTGAGCCCAGGAGTTTGAGACCAGCCTAGGC + + + 5160 AACACAGTAAGACCCCCCATCTCTACAAAAAAATAGAAAAATTAGGCCGGATGCAGTGGC + + + 5220 TCACGCCTTTAATCCCATCACTTTGGGAGGCCAGGGCAGGTGGATCACTTGAGGTCAGGA + + + 5280 GTTCAAGACCAGCCTGGCCAACATGCTGAAACCCCCATCTCTATTAAAAGTACAAAAATC + + + 5340 CTAGCTACTCAGGAGGCTGAGGCAGGAGAATTGCTTGAACCTGGGAGGCGGAGGTTGCAG + + + 5400 TGAGCCGCTGCACTCCAGCCTGAGTGACTGAGAAGTCTCCGTCTCAAAAAAAAATTTTTT + + + 5460 TTTAATTAGCCAGTCTTGGAGGTGCGTGCCTGTAGTCCCAGCCACTCAGAAATTCACGCC + + + 5520 TCCCTTATGTTACCAAACCAGGCTCGTTCTGCCCAGCAGTATGCCAACAGAGATGACAGG + + + 5580 TTTTGCAGCAAAGAGTTTATTCACGAGGCAGCCGAGTGAGGAGACAGGAGAACAGATCTC + + + 5640 AAATCCGCCTCCCTGAAGATGGGATTTTAGGAATATTTAAGGGATAGAGGAGCAAGGTGG + + + 5700 TCAGAGACGTGGGGAAAAGTGGGGCAGTCGGGGAACCGTGCGTGCGTAGTCAAGCTTCAT + + + 5760 GGCTTTTCCATAGGATGTGTGTTCACAAAATGACATTGTTATCATGATCTGAGGGTGGAG + + + 5820 TGTTTGGCCCTCTAACGTCAAAGGTCACCACCTAAATATACACAGGCCAAGGTGAAGGTT + + + 5880 CGGCTCTCAGCCCATTTGGATTGGACAAGAACTGATCCTGTTCCTGAAGAACAACTTGAG + + + 5940 CAACCATTACCATGGTGGCCCATACATAGAGATATTATCTATAAGGAAACTAGTGGGAGT + + + 6000 TTTTTTGTTTGGGTTTTTTTGTTTTGTTTTGTTTCTTTGTTTTTGAGACGGAGTGTTGCT + + + 6060 CTTTTTGCCCAGGCTGGAGTGCAATGGCATGATCTCGGCTTACTGCAACCTCCACCTCCC + + + 6120 GGGTTCAAGCGATTCTCCTGCCTCAGCCTCCTAAGTAGCTGGGACTACAAGCGCCCGCCA + + + 6180 CCACACCCGGCTAATTTTTTGTATTTTTAGCAGAGACGGGGTTTAACCATGTTGGCCAGG + + + 6240 CTGGTCTCAAACTCCTGACCTCAGGTGATTCACTCGCCTTAGCCTCCCAAAGTGCTGGGA + + + 6300 TTACAGGCTTGAGCCACCGTGCCCAGCCTATTTTTCTGTCTTTCTTTTCTTTTTTTTTTT + + + 6360 TTTTTTTTTGAGACAGGGTCTCACTCTATTGCCCAGGCTGGAGTGCAGTGACACTACCAT + + + 6420 GGCTCACTGCAGCCTCCAACTCCTGGGCTCAAGCCATCCTCCCACCTCAGCCCCCCTAGG + + + 6480 AGCTGGGACTACAGGTACATGCCACCACGCCTGGCTACTTTTTGTATTTTTTGTAGAGAT + + + 6540 GGGGTCTCACCATATTTCTCAGGCTGGTCTCTAACTCCTGGCTCAAGTGATCTGCCTGTC + + + 6600 TTGGCCTCCCAAAGTGCTGGGATGACAGGCGTGAGCCACCACACCTGGCCTGGGAGTTTA + + + 6660 GCTATACATTGTTTAGCTGAGTGACTTTTAACACTATGGGGTTTATAATCAACTAAAAAC + + + 6720 AAGTGAGGTAAGTTAAGATTGGTAGGTCTAATCAGGTGAGCCCTCAGTTCCCCTTATGGA + + + 6780 TGGGCAATTGTTAGGTATTGCCATGACAATGTGATAGCAATTTGGTGGGGGCTGCTGAAC + + + 6840 TCATCTGCACCCCGCCTCTGACATCCAGCCCAGATTTCTGATCTAAGTTCCACGTTTCAC + + + 6900 ACCAGCCCCTGAACCTTGGTCAACCCCTCCCCTCTCCCACCCACCACTGTGGCATCTCCT + + + 6960 AACAGTATAGAGGTGAGCCCGTGGACCTGTCTAGACTAGTGACAGTGAAGAAGATGTTTG + + + 7020 CTAGCTGCGTCCAAGAAGAGCTTCAGGAGTCCTTTTTTTTTTGAGACGGAGTCTTGCTCT + + + 7080 GTTGCCCAGGCTGGAGTGCAGTGGCGCGATCTCGGCTCACTGCAAGCTCCACCTCCAGGT + + + 7140 TCAAGTGATTCTCCTGCCTCAGCCTCACAAGTAGCTGGGATTACAGATGCCCGCCACCAC + + + 7200 GCCCAGCTAATTTTTATATTTTTAGTAGAGACGGGGTTTCACCATGTTGGCCAGGCTGGT + + + 7260 CTTGAACTCCCGACCTCAGATGATCTGAACGCTTCGGCCTCCCAAAGTGCTGGGATTACA + + + 7320 GATGTGAGCCACCACACCTGGCCACCAAATGCTTTTTGCTATAAACAATTCCGCGCAGCC + + + 7380 TAGGAGTGTCCTGAAGAAACACAACATGGTACCCCAGGTGCAACCGGCGGCTGATGACTG + + + 7440 AAGGTAGGTGTGTAAGTAGCTTAACCCATGCCCGGACGTGGGATCATCCTGAGATAATTG + + + 7500 CTCTACCCTGCCCCGCTAAGGCCCACAGCAGGACTGAGCCTGGTTGCCCACAGTGTCACC + + + 7560 TGCTCATTGGTGCCCCCTGCAGGGCATCTTCCCTCCTCGTCTCAGCTCTCACCCGCCATG + + + 7620 GGGGCTGCCTGGGGACACCTCCCAGGTAAACCACTAGCTCTGAGTCCTTTTGGGGTCATC + + + 7680 TTTGGGGGAAACCTATCCAAAAAGGAATAGGAATGCCAGGTATTCCTGCAAATAGATCAT + + + 7740 ATAGATTTATACCACATACTCACCCATATTTGATCTTCCATAATCTGACAAGTAAAAAAT + + + 7800 GGTATCTCAGCCGGGTGCGGTGGCTCATGCCTTTAATCTCAGCACTTTGGGAGGCCGAGG + + + 7860 CAGCTGGATCACTTGAGCTCACGAGTTCAAGACCAGCCTGTGCAGCATGGTGAAACCTTG + + + 7920 TCTCTACAAAAAATACCGGGCATGGTGGCACGTGCCTGTAATCCCCACTACTCAGGAGGC + + + 7980 TGAGGTGGGAGGATGGCTTGAGTCTGGGAGGTGGAGGTTGCAGTGAGTCGAGATGGCACC + + + 8040 ACTGCATCCCAGCATGGGTGATAGAACCAGACCCTGTCGCAAAACAACAACAACAACAAC + + + 8100 AAAAACCAGTTAATTTATGGCCAGGCATGGTGGCTCACACCTGTAATCCCAGTTCTTTGG + + + 8160 AAAGCTGAGGCAGGAGGATCACTTGAGACCTGGAGTTTGTCTCTATAAATAATTTTTTTT + + + 8220 TTTGGTGGGACAGGGTTCTCATTCTGTCACCCAGGCTAGGGTACAGTGGCACAATCACAT + + + 8280 CTCACCGCAGCCTCAACCTCCCAGGGTCAAGTGATTCTCCCACCTCAGCCTCCCGAGTAG + + + 8340 CTGCGACTACAGGCGTGGGCCACTATGCCTGGCTAATTTTTTATATTTTGTAGAGACGGG + + + 8400 GTCTTGCTATGTCACCCGAGCTGATGAACTCCTGGGCTCAAGAGATCTGCCCACCTCCAC + + + 8460 TTCTCAAACTGCTGGGATTACAGGCGTGAGCCACTGCACCCAGCCCTCTACAAATAATTT + + + 8520 TAAAAACTATTTTACTATTTTAAAAGTTGAAGGTTATATTTTGTTTTATCTATGAGTTTT + + + 8580 ATTTCCCCTTTTTATTTTGTTTCGGCTTGTCTGGAAATGGTATATTCCGTTTCTTCACCC + + + 8640 ATAGGGCTTCACAACATCAGCACTGCTGACATTTGGCGCTGATAATCCTCTGGGGTGAGG + + + 8700 CCATCCTGGGCACCACACGGTGTTGAGCAGCATCTCTGGCCTCCATTCTTCAGACACCAA + + + 8760 GAGCAACACCTCCACCCCTTGTGGTGACAACTAAAAGATGTCTCCAGACATCAACATGTG + + + 8820 TTCCTTTGGAGCAGAACCACCCCGTCCTGTGAGAGGCACGGATATGGTGGTTACAATGGA + + + 8880 TACATCAACAAGAATTTAAATGTTTGGCCGGGCGCGGTGGGCGCGGTGGCTCAGGCCTGT + + + 8940 AATCCCAGCACGTTGGGAGGCCGAGGCAGGTGAATCACTTGAAGCCAGGAGTTCCAGACC + + + 9000 AGCCTGGCCAACATGGTGAAACCCATCTCTATTAAAAATACACACACACTGCCGGGTGCG + + + 9060 GTGGCTCACGCCTGTAATCCCAGCACGTTGGGAGGCCAAGGAGGGCGGATCACGAGGTCA + + + 9120 GGAGATCGAGACCATCCTGGCTAACACGGTGAAACCCCGTCTCTACTAAAAATACAAAAA + + + 9180 ATTAGCCGGGCGTAGTGGCGGGCGCCTGTAGTCCCAGCTACTCGGGAGGCTGAGGCAGGA + + + 9240 GAATGGCGTGCACCCGGGAGGCGGAGCTTACAGTGAGCCGAGATCGCGCCACTGCACTTC + + + 9300 AGCCTGGGCGACAGAGCGAGACTCCATCTCAAAAAAAAAAAAAAAAAAAAAACTACACAC + + + 9360 ACACACAAAAATTAAAATATTTATCTTCCCTCTGAGCCACACACAAAGACCTCAACCACC + + + 9420 CCCTTCTATCTTTCCTATTTTTATTTATTTATTTATTTTGAGACAGAGTCTCGCTCTGTC + + + 9480 ACCCACGCTGGAGTGCAATGGCGCGATCTTGGCTCACTGCAACCTCTGCCTCTGGGGTTC + + + 9540 AAGCGATTCTCCTGCCTCAGCCTCCTGAGTGGCTGGGATTACAGGCACCTGCCACCGCAC + + + 9600 CTGGCTGATTTTTGTATTTTTAGTAGGGATGGGGTTTCACCATGTTGGCCAGGGTGGTCT + + + 9660 CAAACTCTTGACCTCGTGATCCACCGCCTCGGCCTCCCAAAGTGCTGGGATTACAGATGT + + + 9720 GAGCCACCATACCCAGCCTGATGAAAATTTTAAAAAAGAAAATTCTTAAACCGTTCTAAG + + + 9780 TCAGGGAACTGTCTGTATACATCTTACTTATACAAAAAGGTTACATATGCACCTTACATT + + + 9840 GTTTTTGTTTTTGTTTTGAGATGGAGTCTCACTCTGTCACCCAGACTGGAGTGCAATGGC + + + 9900 ATGATCTTGGCTCACTGCAACCTCTGCCTCCCGGGTTCAAGCGATTCTCCTGTCTCAGCC + + + 9960 TCCCGAGAGGCTGGGATTACAAGTGTGCACCACCACGCTTGGCTAATTTTTTTTGTATTT + + +10020 TAGTAGAGACAGGGTTTCACCATGTTGGCCAGGCTGGTCTTGAACTGCTGACCTCAGGTG + + +10080 ATTGGCCTGCCTCGGTCTCCCAAAGTGTTGGGTTACAGGCATGAGCCACGGCACCCAGCC + + +10140 TGCACCTTACATTGTAACACACGTGTGGACACACCCTGGAGTCACAGCTACAGGACAATT + + +10200 TCAGAGTCCATGACGGCCCCACATCCCTTCCCTGGGTCACCAAGGCCTCAATATGCCCCT + + +10260 CCCCCCTCCCTGTGTGTGATATCTATACAAGTCACCTGCATACCTGTAGCAGACGCTGGC + + +10320 ATCACTGTGGGCTCCCCGCCCTCCCATTCCTCAAACTGGTTTTCCTCTAAGGTTTCCCTG + + +10380 CCCATCTAACCTTCTCCTGGCACTCCCTCATGGTGCATTTCTCTCACCTGCCCGTCCGTC + + +10440 CCAGGCCACCTGCCCTCTCAGCTGGGACTCCAACTTCCCCTGATTTCTGGTCTCTTCCAT + + +10500 CCTGCTTTTGGACTTTTCCTGGGACACTTGCATTTCTTCTTTTTCTTTTTTTTTTTTTTT + + +10560 GAGACAGAGTTTCACTCTGTCACCCAGGCTGGAGTGTGATGCGATCTCGGCTCACTGCAG + + +10620 CCTCCACCTCTCAGGTTCAAGCGACTCTTCTGGCTCATCCTTCTCAGTAGCTGGAACTAC + + +10680 ATGCATGCGCCACCATGCCTAATTTTTGTTATTTTAGTAAAGACTGGGTTTCACCATGCG + + +10740 TTGACCAGGCTGGTCTCAAACTGCTGGCCTCAAGTGATCTGCCCGCCTTGGCTTCCCAAA + + +10800 GTGCTGGGATTTGGGATTACGGGCGTGAGCCGCCGAGCCTGGCCTCCTTCTTGCTCTCCT + + +10860 TTCTCCTCCCAGACCTTTGCTCCCCTCTCAGTCCTGCTCCTCTCTCCCTCCCGCGCAGCC + + +10920 CCCACCCTGCACCCGGGCAGGTGCCACAGGGACGTGCAAGACAGCTACCACCCTGCACAA + + +10980 GCCCGAGTCCCAAACCACTCAGACCCTGTTTGTAAAAATCGGCATGCTCCTTTATTTGTT + + +11040 CAGAAGAGCAGCCAGCATCACCCTTGCCACTCAAACCTGGCACATACGCTTCGGAGACAA + + +11100 TGGCCTCGGGACCCTCATGCTGCTGGGCCCAGGAGAGACAGTTCTGAGGCAGAAACTCGG + + +11160 CGTCCAAGGGGGGCCGCGGGTCAGGCACTGTGGTGAAGGGAACGCCGGGGAGTCCGGCCC + + +11220 CACCTTGCAGCTGGGGACACGGGGGCGCAAACAGAGGGGGCAGGCTAGTGTCCCGCTGCC + + +11280 CCAGGAACAGACCTCAGGGCCCCAGGAGGGTCTGCAGGCAGCTAGGAGCCTGCCAAGTGC + + +11340 TGGTGGAAGTAGAGGCCGAAAAGGCTGGCGAGCAGCTGGCAGGCAGCCGTCCACCAGATG + + +11400 AGGTAGGCCAGGACGCCACGGAGGAAGAGGGGAGTAAGCAGGCCACCCAGAGCCCCGGCA + + +11460 ATCCGCGCTGCAGTCTGCTGGACTTCGTCCTCCCCAGAGCCGATGGGGGCAGCGCTGGCT + + +11520 GAGGATGGGTCGGGGGATAGTAGAGGAGCTGGGCCCAGGCCCCAGGAATAGCCTCCTAGG + + +11580 AGAAGAGGATGAAGCGAGGTATGAGTGGAAAAATGGGGGAGGGGGCGAGGGACAGGGCTG + + +11640 GCACGGGGGGCCAGGCCCATTCCTCCAGACACTCCCACCCCTGTCTCAGACTCCATCTCC + + +11700 AGCCCAGTCTCCACCCCCTCAGGCGCTGCCCCCTGTCCAAGGCAAACCCTACCCCAGGCC + + +11760 CCACCTCCTGCTCAGATCCTGCCTCAATACATGCCCTGCCCCCTCCCCAGGCCCCGCCTC + + +11820 CTGCCAAGACGCAACCCCTCCCCAGGCTCCACCTCCTAAGGCAAACGCCATCCCAAACTC + + +11880 CACCTCCTGCTCAGACCCTGCCTCACCACAGTCCCCGCCCCCTACCCAGGCCCCGCCTCC + + +11940 TGCTCAGATTGCACCCATCCCCAGGCTCCACTTCCTGTCCAAGGCAAGCCCCACTCCAGG + + +12000 CTCCGCTTCCTGCTCAGACCCTGCCTTACCACAGTCTCCGCCCCCTGCCTAGGCCCCGCC + + +12060 TCTCCCCCCCCACCGCGGTCCCCGCCAGAGTCCACCTCCACTCTGTTTTATCTTCCAACT + + +12120 CCGCCCCTCCTCCACCCCCACACCGCGGCATCTCACCCAGCGTCTTGAGCAGAAGTGTGC + + +12180 AGTTGAGGGTGAGGATGAGCGGCGTCAGGTACTGCAAGCTCACCACGGTCACATAGCAGT + + +12240 AGACTCGGACCACCTGTGGGCAGGTAGCAGGGGTGGCTGCAGCAGGAGGCCTTCTGGTTT + + +12300 GGGACGACTCCACGCCCAAAGGACCAGGAACCCCACCCTGAGCCCCAGGTTCCCTCTGGC + + +12360 CTAGGTCATCGGGGCGTCCATACCCTCTGCTGGATTTCACGGGCTTCGATGCGGCCAGCC + + +12420 TCCCTTCGCAGCTGCTCCACCCGGGCCTTGGCCAGGCACAGGTAGGCCTGCAGGTGGGGC + + +12480 CGGGTCACCGCCAGCCGCAGCAGGCACAGCACCACCAGCAACCAGAGGCGCCCAGAGTCG + + +12540 AAGGCAGAATCGGACAGCCTGTGCGGAGAGGGCCGGGGGCAAGGGACTAAGAAGGTCGCC + + +12600 CCCGACCCCCCAGGATCTTCCCCAGGCTCCTCCCTGAATCTCAGAGGCTAGGGCACCCAG + + +12660 GGGAGCCCCAGCTACCTCCTAGCCCCACCCAATACGCACAGGGAGAAACGCGTCTCCCCA + + +12720 AACGGCGGCTGGTGCAGGAAGTCCCGTGCAATGGGCTTTGTCCAGAGCCACAGGATGAAC + + +12780 AGGGGAGACAGGAAGCTGGTGTGCAGGAGGAACCTGGGGGGTGAGGGCAGGAGGGAGTGA + + +12840 GGCCTGGGTACCCCCTCTCCTCGAGTCTCTCCCTTAAGCTCCCTAGTCCCCCCACCCACC + + +12900 AAGCGACCCACTTAACTGCAGCATGGGTCTGTCCTCCGACATGGTCAGTGCGTCCCGGTG + + +12960 GGTCTGGGCCAGCCGCAGGCCTGGGAAGGTGAGGAAGGCACCCAGCACAGAGCCCACCAC + + +13020 TGCCAGTCCCACGCGGATAGCCAGCTTGGCCACAGGAAGCCTAGGAGAACACCAGGTCAC + + +13080 GAGCCTGCCTGGGGGACCCTGGGAGGGTCCCAGCCTGCCCTTGCCTCCCTCCCCCATTCC + + +13140 CAGGACTCACGCCCAGTCCCAGCCCTGCTTCTTCAGAAGTGGCTCTAAGTTCTGGGTCAT + + +13200 GCTGGCCAGACCTGGGGACGATAAGAAGAGGACCGAGTAGAGTGAATTCCTAGGGTCTCT + + +13260 AAGGCCACTCTGTTCCCTAACCCCCCATCCCTCAGGCATCCGTTTGCTTCCCAAGTAGGA + + +13320 ATGAACAAGGGTCTGCCAGGCCCTGAGCCAGGCACAAGGACAATTTTGTGCTCTAGTTAC + + +13380 ACAGTACTTTTTACAAGAAACAAGATTGGAGTGGTGGTTCACGCCTGTAATCCCAGCACT + + +13440 TTGGGAGGCTGAGGCAGGCGGATCATCTGAGATCAGGAGTTTCAGACCAGCCTGGCCAAT + + +13500 GCAGTGAAACCCCCGTCTCTACTAAAAATACAAAAATTAGCCAGGTGTGGTGGCAGGTGC + + +13560 CTGTAATCCCAGCTACTTGAGAGGCTGAGGCAGGAGAATCGCTTGAACATGGGGAGCGGA + + +13620 GGTTGCAGTGAGCTGAGACCGCACCATTGCACTCCAGCCTTGGGGACAAGAGTGAAACTC + + +13680 AGTCTCAAAGAAAACGAAACAGAATGCACCAGGCAGACACTCCTGATTGGGCTGGGAACA + + +13740 TTCAGGGGTATCTGTTGAGCCTGAGCTCCCTAGGTTATAGAAGGAATCTAGAGGGGGATG + + +13800 AAGGACTCCTGCAGGAGAAAACCAAAGTCCTCCTGGAGGAAGGAATCCTCAATTCAGGAC + + +13860 CCAAGATTTTTCAAAAATTAAGAGCAGGGCTGGGTGCAGTGGCTTGCACCTGTAAGTCTC + + +13920 AGCACTTTGGGAGGCCAAGGCGGGTGGATCGTTTGAGCTCACAAGTTTGAGACCAGCCTG + + +13980 GGCAACATGGCAAAACCCCCATCTCTACAAAAAATACAAAACCAGGGGTGGTGGTGCACG + + +14040 CCTATAGTCCCAGCTACTGTGAAGGCTGAGGTGGGAAGGATGGGTTGAGCCCAGGATGTG + + +14100 GAAGTTGCAGTGAGCTGAGATCATGCCACTGCACTCCAGCACAGAGCAAGACCTTGTCAA + + +14160 AAAAAAAAAAAAAAAGGAGCAAATTCATATGAGCTCACAGGCAAAATCACCAAATGCATA + + +14220 AGGAAACAAATCACCATAAAGGAGAGTTAACAGAAAAACAACAGTCAAGTTTAGGCCTCA + + +14280 AAGACTTCAGAAATTGGTGCTGTCAATTATGTGTCAAATGACTAAGGAAATGAAAGCTGT + + +14340 AATCACAGAACAAGTGACATGAGAATTCCTTCAGATGACTGGGTAGAGTTGCAAAGGAAC + + +14400 CAAATTAAACTCTTCCAAAGGAAAACTGTAAGTATTGAAATAATAGGTTGTTAAACAGCA + + +14460 CATTAGGAACAGCCAAAGGAGGAAGTGATGAACTGGAAGACAGATCTGAAGAAATCACTC + + +14520 AGATTCCAACTCAGAAAAACAAGTAGGTGAGAAATATGAAGAGAGGCTAAGAGATAAGGA + + +14580 AGACAGAACAGAGAGCCCAACGCAAATCAAATCAGAGCCCCAGAGGGAGGGAAGAGAAGG + + +14640 AATGAAGAATAAAAGGAATTACTGGAAGAGAATGGTTGAGAAGTTTGCAGAATGAAAGAC + + +14700 AGACACAAAGTATATCAAACCATGTAAATAAAAAGAAATCCATACCTAGACATAATGGAG + + +14760 TGAAACTGCAGAACACCAAAAACAAAAAAATTACAAAGCAGCCAGGGAGTTAAGACAGAT + + +14820 CACCTACAAAGGAACAACAATTAGGCTGACAGCCAATGTCAACTGCAACAACAGAAAAGG + + +14880 AACAAATAGAAAGCAAAAAAGTAAGATGGTAGAAACAAAGTCAAATATGTCAGTAATCAC + + +14940 AATAAATGTAAGTAGACTAAACTTTAAAGTTAAATGACAAAGACTGTCAGACTACATTGA + + +15000 AAATATCCAGCTACATGTTTTTTAAAGGATGACATACCTTGACATAAAGTCACTGGAAGA + + +15060 CTGAAAGTAAAGGGATGTTAAAAAGATACAGCAAATACTAATCAAAAGAAAGCAAGCTAG + + +15120 AAAGGCTATACTACTACCAGCCAAACTAGACTAAGAAGTAGTATTAGAATAGGCCAGGCG + + +15180 CGGTGGCTCACACCTGTAATCTCAGCACTTTGGGAGGCCAAGACGGGCAGATCACAAAGT + + +15240 CAGGAGTTCGAGACGAGCCTGGCCAACATGGTGAAACCCTGGCTCTACTAAAAATCCAAA + + +15300 AAATAGCTGGGCATGGTGGCGGGTAATACCAGCTACTTGGGAGGCTGAGGCAGGAGAATC + + +15360 GCTTGAACCCAGGAGGTGGAGGTTGCAGTGAGCCGAGATTGCGCCACTGCACTCCAGCCT + + +15420 GGCCAACGAGAGCAAAACTCTGTCTCAAAAAAAAAAAAAGTAGTATTAGAAGACAGAAGG + + +15480 GTTCCATACATCATGATAAAATGGCTGATTCACCAGGAAAATGTAACAGTTCTAAATCTG + + +15540 TGAATAGAACTAATCTGTGAATTGTGAATAGGCTGCAAAATATATAAAGAAAACACTGAC + + +15600 AGAATTGATAGGGAAATTGAGAGCTCTCTTGTCCCAGAGGGAGATTAACTTCTGCTGACT + + +15660 GATAAGTCACAGACAAAAGGTTAGGCAAGATGGAGATTTGAATTTATTAAACTCATAGAG + + +15720 CCAGGGAATATGTCCTTCAATTAGAACATGTGAAAAAAGGCAAAACAACAAAAACAGAAT + + +15780 ATGTCCTTCAAGAAAACAAGGAATAGTCACAAAATGTGATCACATTCCAGGCCATAGGGC + + +15840 AAATCTTACCAAATTTTAAAGAAATTATTTCAAATAGACCATCTGTGCAATTGAGCTAGA + + +15900 AATAAATATGTATTTTTTAAAGATCTATGTTTGAAAAATTTAAAAATATTTAATAATCCA + + +15960 TAGGTCAAAGCATAGCAAGACCCCATCTCTACAGAAATCAGAAGGGAAATGTTAAAACAC + + +16020 CCCAAACAGAATAATAAAAAATATCAGTCAAAACTTGGGTAAACTGCCAGGTGTGATGGC + + +16080 TCACACCTGTAATCCCAGCACTTTGAGAGGCCGAGGTGGGTGGATCACCTGAGGTTAGGA + + +16140 GTTTGAGACCAGCCTGGCCAACATGGTAAAACCCCGTCTCTACTAAAAATACAAAAATTA + + +16200 GCCAGGCGTGGTGGCGTGCACCTGTAATCCCAGCTACTCAGGAGGCTGAGGCAGAAGAAT + + +16260 TGCTTGAACCCAGGAGGCAGAGGTTGTAGTGAGCTGAGATTGCACAGTTGCACTCCAGCC + + +16320 TGGGTGACAAGAGCAAAACTCCATCTCAAAACAAAAACAAAAACAAAAAAAAACTTAGGT + + +16380 GAACAAAAGTGAGACCTGGTAAAATATATATAGCATTAAATGCTATATATGCTATAAAAT + + +16440 TAGAAAAGATTGAAAATTTATGAGCCAAGTAGCTAACTGAGAAATTGGAAACAAGAAAAG + + +16500 GAGGTACGCCAGTACTGTTCTCAAATCCAGAGGTCCTAGCCACACCAAAGGGGAAGGATC + + +16560 AGACAGAACAAAAGAAAACCAAAAAGAATCTGCAATTCAATAAAAATATAATTGTTTAGC + + +16620 AAGGTTAGTCCGTGGAGACACTCAAATTTGACCCCTATATGATAACACAAAAATTAATGT + + +16680 CACTGTCCATCAGCAACAGTGAGTAGTTTAGGAGCTTATATGAAATGTAAAAGTTGAAAT + + +16740 ATTTTATTTATTGATTTTTAAGATGGAGTCTTGCTCTTGTCGCCCAGGCTAGAGTGCAAT + + +16800 GGCGTGATTTCGGCTCACTGCAACCTCTGCCTCCGGGGTTCAAGTGATTCTCCTGCCTCA + + +16860 GCCTCCCGAGTAGCTGGGATTACAGGTGCATGCCACCTTGCCCAGCTTTTTTTTTTTTTT + + +16920 TTTTTTTAGACGGAGTCTCGCTCTGTTGCCCAGGCTGGAGTGCAGTGGCGCGATCTTGGC + + +16980 TCACTGCAAGCTCCACCTCCCGGGTTCACGCCATTCTCCTGCCTCAGCCTCCCCAGTAGC + + +17040 TGGGACTACAGGCGCCTGCCACCACGCCTGGCTAATTTTTTGTATTTTTAGTAGAGACGG + + +17100 GGTTTCACGGTGTTAGCCAGGATGGTCTCGATCTGCCGACCTCGTGATGTGCCCATCTCG + + +17160 GCCTCCCAAAGTGCTGGGATTACAGGCATGAGCCACCACCCCTGGCCAGTCATTCTATAT + + +17220 TTTCTTCTAAAATATTTCAGCCAGGCGTGGTGGCAAGCGCCTGTAATCCCAGCACTTTGG + + +17280 GAGGCTGAGGCAGGTGGATTGCCTGAGGTCTGGAGTTCAAGACCAGCCTGGTCAACGTGG + + +17340 TGAAACCCCATCTCTAGTAAAAAATACAAAAAGTAGGCCGGGCACGGTGGCTCGCGCCTG + + +17400 TAATCCCAGCACTTTGGGAGGCTGAGGCGGGTGGATTGCCTGAGGTCTGGAGTTCAAGAC + + +17460 CAGCCTGGTCAGCATAGTGAAACCCCATCTCTAGTAAAAAATACTAGAGATCGCCCACTG + + +17520 CACTCCAGCCTGGGGGAAAGAGCGAGACTCTGTCTCAAAAAAAAAAAAAAAGACAATGTA + + +17580 GAATGACTTTCTGATTTTAGGGAAGGATATTTTTCAAGACAAATATCAACTAAAATAATC + + +17640 AACTTCCATTCATCAAGACACTAGAGGTGACACTTACAACTACATTTGACGACTCAGCAA + + +17700 AGAAAGTGTGATGCATGTATGCAGACGGAAAATAATGCAAATAGTGGTCAAATGAAAACA + + +17760 AAAGAAGTATTGGCAATGAAGTGGATAAATTTGGAACACTTGTGCACTGCTGCTGGGAAT + + +17820 ATAAAATATAAAATGGGCTGAGCACAGTGGTGCACACCTGTAATCCCAGCACTTTGGAAG + + +17880 GCCGAGGCTGGCGATTGCTTGAGTTCAAGAGTTCAAGACTAGCCTGGGCAACATGGCAAA + + +17940 ATCTGTCTCTATTAAAAACACAAAAATTATCTGGGTGTAGCCAGATGTGGTGGCTCACAC + + +18000 CTGTAATCTCAGCACTTTGGGAGGCCAAGATGGGCAGGATCACCTGAGGTCAGGAGTTAA + + +18060 AGACCAGCCTGGCCAACATGGCAAAACCCCATCTCTACTAAAAATGCAAAAATTAGCCAG + + +18120 GTGTGGTGGCGCACACCTGTAATCCCAGCTACTTGGGAGGCTGAGGCAAGAGAATCACTT + + +18180 GAGCCTGGAAGGTGGAGGTTGCAGTGAGCCAAGATCATGCCACTGTACTCTAGCCTGGGT + + +18240 GACAGAGGGAGACTGTCTCAAAAAATAAAAATAAAAATAAAAAAATAAATTAGCTGGGTG + + +18300 TGGTGGTGGGAGCCTGTAGTCCCAGCTACTTGGGAGCCTGAGGCATGAGAATCACTTGAA + + +18360 TCCGGGAGGCAAAGGTTGCAGTGAGTGGAGATCACGCCACCACTGCACTCCAGCCAGGGC + + +18420 AACAGAATGAGACTCTGTCTCAAAAATAAAATAAAATGGTTCAGCTGCTGTATAAAACAG + + +18480 TATGGCAGTCCCTCAAAAAATTAAAAGTAGAATTATCATATAATCCAGCAGTTCCACTTC + + +18540 TGGATATATACTCTCCAAAACTGAAAATGGGGTCTCAAAGAGATACCTGTACACTCAGGT + + +18600 TCACAGCGGTATTAGTCAAAAAGCCAAAAGTTGGGAACAACCCAAGCATTCATCTGTGGA + + +18660 TGAATAAACAAAATGTGTTCCACCCAGACAATGAAATAGTGTTCAGTCTTTTTTTTTTTT + + +18720 TTTTTTTTTGAGATGGAGTCTTGCTCTTTCACCCAGGCCGGAGTGCAGTGGCACTATCTA + + +18780 AGCTCAC + + +KEYS (in order of precedence): +>>>>>> left primer +<<<<<< right primer +^^^^^^ internal oligo + +ADDITIONAL OLIGOS + start len tm gc% any 3' seq + + 1 LEFT PRIMER 10633 20 59.99 55.00 5.00 1.00 GGTTCAAGCGACTCTTCTGG + RIGHT PRIMER 11008 20 60.00 55.00 3.00 0.00 ACAGGGTCTGAGTGGTTTGG + INTERNAL OLIGO 10719 20 59.97 50.00 4.00 2.00 AAGACTGGGTTTCACCATGC + PRODUCT SIZE: 376, PAIR ANY COMPL: 6.00, PAIR 3' COMPL: 0.00 + + 2 LEFT PRIMER 10989 20 60.00 55.00 3.00 1.00 CCAAACCACTCAGACCCTGT + RIGHT PRIMER 11145 20 59.99 60.00 5.00 2.00 CAGAACTGTCTCTCCTGGGC + INTERNAL OLIGO 11056 20 59.97 50.00 3.00 0.00 ATCACCCTTGCCACTCAAAC + PRODUCT SIZE: 157, PAIR ANY COMPL: 4.00, PAIR 3' COMPL: 1.00 + + 3 LEFT PRIMER 11140 20 59.99 55.00 7.00 1.00 GTTCTGAGGCAGAAACTCGG + RIGHT PRIMER 11491 20 59.99 60.00 5.00 2.00 GAGGACGAAGTCCAGCAGAC + INTERNAL OLIGO 11417 20 60.07 55.00 2.00 1.00 ACGGAGGAAGAGGGGAGTAA + PRODUCT SIZE: 352, PAIR ANY COMPL: 4.00, PAIR 3' COMPL: 1.00 + + 4 LEFT PRIMER 3094 20 60.01 50.00 3.00 2.00 GCACACAAACCACCTCCTTT + RIGHT PRIMER 3388 20 59.99 55.00 8.00 0.00 AGACCAGTTAGCTGGGGGTT + INTERNAL OLIGO 3336 20 60.04 50.00 2.00 1.00 TGGGAGGTGAGGAAAATCTG + PRODUCT SIZE: 295, PAIR ANY COMPL: 5.00, PAIR 3' COMPL: 3.00 + +Statistics + con too in in not no tm tm high high high lower + sid many tar excl ok bad GC too too any 3' poly end case + ered Ns get reg reg GC% clamp low high compl compl X stab end ok +Left 180335 0 0 0 0 8877 0 34005101808 0 2 1117 0 530 33996 +Right 180325 0 0 0 0 8926 0 33987101882 0 1 1108 0 480 33941 +Intl 180500 0 0 0 0 9272 0 34043102015 0 0 1142 0 0 34028 +Pair Stats: +considered 338, unacceptable product size 331, high any compl 1, ok 6 +libprimer3 release 2.4.0 + + +PRIMER PICKING RESULTS FOR masker_prefix2 + +No mispriming library specified +No internal oligo mishyb library specified +Using 0-based sequence positions +OLIGO start len tm gc% any 3' seq +LEFT PRIMER 2959 20 60.00 50.00 3.00 3.00 ATGCCCACCTGCTTTGTAAC +RIGHT PRIMER 3388 20 59.99 55.00 8.00 0.00 AGACCAGTTAGCTGGGGGTT +INTERNAL OLIGO 3094 20 60.01 50.00 3.00 2.00 GCACACAAACCACCTCCTTT +SEQUENCE SIZE: 18787 +INCLUDED REGION SIZE: 18787 + +PRODUCT SIZE: 430, PAIR ANY COMPL: 5.00, PAIR 3' COMPL: 3.00 + + 0 CTGACATTTTATGCCCAAGACAATGGCTCTGCCTTCTACCTTCACATGCTCAGGGTCACT + + + 60 CAGCACGTCCTGGAGGATTTCTCTGGCCTGGAGTCCCTGGCCCGGGCAGCAGCGCTAGGG + + + 120 ACCCACCGAGTGGTCACAAGGCTGTTTATGTTGGGCCTCCTGGTGGAGTCGGCATGGTAC + + + 180 CTCCATTGCTACCTGACAGACCTGCGGTTTGACAATATCTACGCCACTCAACAGCTGACC + + + 240 CAGCGGTTGGCACAGGCCCAGGCTACACACCTCCTGGCCCCTCCACCCACCTGGCTGCTC + + + 300 CAGGCGGCTCAGCTGAGGCTGTCACAGGAGGAGCTGTTGAGTTGTCTTCTAAGGCTGGGG + + + 360 CTGCTTGCCCTGCTCCTCGTGGCCACTGCTGTGGCGGTGGCCACAGACCATGTAGCCTTC + + + 420 CTCCTGGCACAGGCGACTGTGGACTGGGCTCAGAAGTTGCCAACTGTGCCCATCACGCTC + + + 480 ACGGTCAAGTATGATGTGGCATACACTGTCCTGGGCTTCATCCCTTTCCTCTTCAACCAG + + + 540 CTGGCTCCGGAGAGCCCCTTCCTCTCCGTCCACAGCTCCCTACCAATAAAGGAGGGCGCG + + + 600 CAGAGCGGCGCGGCGGGCCCGCCCGCGGCCGCCGCCCCGCGCCTGCGCCGGCGGGCGGAT + + + 660 CAGCCGACATCCAGGAGCTCGTCTCCTTGTGTGACTGTAAAACCCCATTTTCGGTGTTTC + + + 720 TCTCTGGAGTGCTTTCCAGCCCCTTGACCCCACGTTCTCACCCCACGTGATGCCATCAGA + + + 780 CCCCTTGTTTTTGCCCACCTGGTGAGCAGATCACAGTGTCTCCTGTCTGGCTGTTTTTTT + + + 840 GAGACGGAGTCTCACTCTGCCGCCCAGGCTGGAGTGCAGTGGAACGATCTCAGCTCACTG + + + 900 CAACCTCCACTTCCTGGGTTCAAGCCATTCTCCTGCCTCAGCCTCCCTAGTAGCTGGGAT + + + 960 TACAGGCGCCCACCACCACACCTGGCTAATTTTTGTGTGTTTTTGGTAGAGACAGGGTTT + + + 1020 CTCCATGTTGGCCAGGCTGGTCTCCAATTCCTGGGCTCAAGTGATCCGCCTGCCTTGGCC + + + 1080 TCCCAAAGTGCTGAGATTACAGGCGTGAGTCACTGCACCCAGCCTTGGCTGTTTTAAATT + + + 1140 CCTAGTTCTAAATTTACTATTACAAATGTTTAAAGTACCCCTACTGACCTGTTGCTGCTC + + + 1200 CTTCCTCCTCCACACCCACACACCCCGTTTAGACCCGCAAGACAGAGCAGGGTGAAGTTC + + + 1260 ATGGTCACTTATGTCCACTCTGTGCAACAGCTCGCAGGGGCTCCCCAGGGAGGGCGCAGG + + + 1320 TCGGGGACCAGGCACGGGAGCACCTAGAATGTTCCTTTACTAGACGTGGAGTAGAGCTGA + + + 1380 TTAGATGTGAGCAGTGGCTCTAGGAGTTGGTTCTATGATTCTCTGTGTTTCTGCCTTTTA + + + 1440 AGAAATTTTATTTCTCGGCCGGGCTCGGTGGCTCATGTCTGTAATCCCAGCACTTTGGGA + + + 1500 GGCCGAGGCAGGCAGATCGCCTGAGGTCAGGAGTTTGAGACCAGCCTGACCAACATGGAG + + + 1560 AAACCCTGTCTCTACTAAAAATACAACATTAGCCAGGCGTGGTGGTGCATGCCTGTATTC + + + 1620 CCAGCTACTTTGGAGGCTGAGACAGAATTGCTTGAACCCGGGAGGCGGAGGGTGCAGTGA + + + 1680 GCCGAGATTGGGCCATTGCCCTCCAGCCTGGGCAACAAGAGTGAAATTACATCTCCAAAA + + + 1740 AAAAAATTTTTTTTATTTCTCGAGTTTGAGTGAAAGGAGCGACCCGGAGGTGAGGCAGTG + + + 1800 GGGCGTGTGGGTGCGCATGAGTGCGAACACACGTGGGGGTGCAAGTGCATGTGTGTATGT + + + 1860 GCACGCAGGTTGCTCCTAGGGGTGCAAAGGCGCGCGCACGGGTGCGGGGTGCGCGCCCCC + + + 1920 TCGCGGCGCCTTCACGGCCCTCCCGCCCCTCGCCCTGCAGAGTACAGCGGCCGCCGGCAG + + + 1980 CCCTACCCCTTCGAGCGCATGATCTTCGGCGCCTGCGCTGGCCTCATCGGGCAGTCGGCC + + + 2040 TCGTACCCGCTGGATGTGGTGCGGCGGCGCATGCAGACGGCCGGCGTCACGGGCTACCCG + + + 2100 CGCGCCTCCATCGCCCGCACGCTGCGCACCATCGTGCGGGAGGAGGGCGCCGTGCGCGGC + + + 2160 CTCTACAAAGGCTTGAGCATGAACTGGGTCAAGGGTCCCATCGCCGTGGGCATCAGCTTC + + + 2220 ACCACCTTCGACCTCATGCAGATCCTGCTGCGGCACCTGCAGAGCTAGGGGACCCTGAGC + + + 2280 TGCTCTCAGGACGGTGGACCGGTGACCCCTTTGTATTCTGGGCCCATGGAACGGTGGGGG + + + 2340 GGTGCGCTTGATTCTACTTCAGGAGGCACATGGGGCGCTTTATGGAACGAGCAGGTGGGC + + + 2400 CTGAGGGGCCTGGGCTCAGAGTCCACGTCCAAACGCAAAGCTGGCAGCCCTGGAAGTGCA + + + 2460 GTGTTGGGGCGATGGTGTGGGGGGTCCCGCAGCTCCCCTCTTCCTTCCTCTGCAGACGCT + + + 2520 GGCGCTGTCTGCCGGAGGTGTTGCCCAAAAGGCCCTAGTGGGGCGTGGTCAGCTCCACCT + + + 2580 CCTGATCCTGTGTGTCCTCCGACATGCTGCTGATTCTAGTGACCCCTGTCCCCACCAGGC + + + 2640 TCAGAGCCAGACCGCGCCTGGACCTTCTTGTTCTGACTCCACGTGCCTGCCCGGCCTCCA + + + 2700 GGGTGCGGGGGCGCCTTTCTTGCAGGCGGACCCTGCCCAGGATGGGGCCAGCCTCGTGCT + + + 2760 CAGCTTTGGCCACAAATGCAGCCCCTGGCCCACCCCACCCTGCCGGCCCTGCCTTCTCCA + + + 2820 GTATTTCCCACATGGCCACGACTCCTCAGTCACTAGAGCCTCCTGCTGGGAACAGTGTCC + + + 2880 CCCAGAGCCTCATGTCTATCCTAGACCCTGCAAGCAGCTGGGTCCCCAAGAGTGCATCTC + + + 2940 CCCCTAGAGTTGCCTGCCCATGCCCACCTGCTTTGTAACCTTCCCAGGAGATTCATGCTT + >>>>>>>>>>>>>>>>>>>> + + 3000 GCTCTGCACAGCAGGGCTCGAGGCCCAGGCCATGACACGGAACTGCCTCAGGTTTGGGTC + + + 3060 AGACCTGCATCCTGGGGCATCTGCTGAAATGTGAGCACACAAACCACCTCCTTTGGCCCA + ^^^^^^^^^^^^^^^^^^^^ + + 3120 GAAGCCCCCCAGGCCTAGCATCTCAGTGCCCCAACCCTCTGCCCAGCTGTGGTATCCAGC + + + 3180 AGGTCCTTGGGTCCCCACTTGAGCAGGCACTTGGCTGGGATATGGAGCAATTTAAAGCCC + + + 3240 ACAGGGGTTGTTCAGTTTCTATGAAATGGAGCATGGGGTGCCTGCTAGCCTCAATCCCCC + + + 3300 GAAGTGGGAGCCTCATGATAGAGTATAGCTTGGGGGTGGGAGGTGAGGAAAATCTGAGGT + + + 3360 ACCCAGGGGAACCCCCAGCTAACTGGTCTCTCAGAGGAGTCCCCCAGGGCCCGCCAGCTA + <<<<<<<<<<<<<<<<<<<< + + 3420 TCACAGGGACTCAGAAACACCCATTTCCTAATGACATGGTGAGTTTCTTGATTTCTTTTT + + + 3480 TTTGTTTGTTTTGTTTTGGTTTTCAACTTGGCTGACCCCGGGTCTATGATCTATTCACAT + + + 3540 CGAACCCCTGACTGGTCTGCCTGGTGCCAGGGTGAGCGTGACCGTGAGTGTTGCTTTCGA + + + 3600 CAGCTGGCTCAGCACACGCTGTGTGAAGGGATCTGAGCTTGTTCATCTCCAGTCGTGACT + + + 3660 TCATTTCCCTTCCTTCTGTCCTCCTCCTGTTCTTGCCTTGGACCTGCAGGTGTGCAGACC + + + 3720 GCTCTCTCTGCCTTCCTTGCATGTGGCCACCAGCCATCCCTGATCTTGTCCCCAGAGGCC + + + 3780 CAGGCAGCCTGTGATGGCTGTGAGGGGCTGTCCCACTGTGTGGGTATCCCTTACCCAGCA + + + 3840 CTTAAACTTGGCAGGAGAGGCAGGGCAACCCTCACAGGGAGATGGGAGGGCACCCAACTC + + + 3900 CCACAAGCATGCAACAGCAGTAGGAATTGGGGGTCTGCCCCAGGTGGGTGAGACCAAATG + + + 3960 AGTGGATTTGGGGCCACAGGCTAGGCAGGAGAGACAAGGGGTAGGTGGGAGGGTCCCCCA + + + 4020 GTCCCTGCTGACCCCAGTGTGTCTCCCCGGAGATGGCTCCTAGCTGAGTGGGACCCGGCA + + + 4080 GGAGTTGGGGACAGTGCTGTCCCCCACCCCTGCACACAGCCAGGCCCTCAGGCTCTGCGG + + + 4140 TCACTCGCCTCCCTGCTGGTCACTGGTCTTGGTCTGGAGTTATATTTTGATGCCATGAAG + + + 4200 ACACTGTTTATATCTAATGTTTATATATTTTAAAGATTTGTGCCAAGAGAGTATATTTAA + + + 4260 TAAAAACTTAAATGACTTCTTCTCCTGCTCCTGGCTCTTCTTTGGCTCTGACCGCCCCCC + + + 4320 CATCTTCCCCCATGAACCCCCAAACAGGGTTGAAGTGCTTTTGACACATTTGTGATAAAA + + + 4380 GTTCTGAATAAAAGTCTTGAATAAAGAAGTTTTTAAATGCAATTGTTGTTTGAATTAATA + + + 4440 CATACCACAATTTTCCAGAAAACACCAGCTGTCCACAAGGGTTTACAGTGAAAAGTAGGT + + + 4500 GAACAGTTCCCTCTGCAGGGGGCCTCCTGTGACCATTTTCTCTTGTCTCCTCCCACAGAG + + + 4560 ATTCTGTGCATACACTCATCCCTTTCAGGATATATGTGGCCACCCACAAAGGCAGGAGGG + + + 4620 GCCGTCTCTGTGCAGCCAGCACAGCCCAAAGTCTCATGGGCTTGAACATGGCCTTCCTTC + + + 4680 CCAAGAGCCCTGCACTCTGGGGCTGGCTGAGGCTTCAGGCCTGAACGTCAGTCACCATCT + + + 4740 GCAGGGGCAGCCACCAGAGGGTCTCCAGTGGCAATCCTGGCTCACTTCACCTGCAGCCCA + + + 4800 TTGGCCAGAGCAACTTGGAGGACCCACCCACTGCCAGGCCAGAAGTGGGAGCCTCTGCGT + + + 4860 GCCCAGAGAGGAGGGGCGGCTGGGCCAGCACAGGCCTGGTGCTCTTGTTGGGGTGGGAGT + + + 4920 AGGAATAAGTTCCACTGCGCTGACCCCCCACTGCTCTCCAATCTGCTCACGTGCAACAGG + + + 4980 ATTTCTTTTGAGTTGGTCTCCGTTGTGCACATTGTTCAGCAGCTGTGCGGTTTTCTCCTA + + + 5040 GAGGATCCCCAGGATGACATTTACCAGGGTGGGTGTGGTGGCTCATGCCTGTAATCCCAG + + + 5100 CACTTTGGAGACTGAGGCAGGTGGCTTGCTTGAGCCCAGGAGTTTGAGACCAGCCTAGGC + + + 5160 AACACAGTAAGACCCCCCATCTCTACAAAAAAATAGAAAAATTAGGCCGGATGCAGTGGC + + + 5220 TCACGCCTTTAATCCCATCACTTTGGGAGGCCAGGGCAGGTGGATCACTTGAGGTCAGGA + + + 5280 GTTCAAGACCAGCCTGGCCAACATGCTGAAACCCCCATCTCTATTAAAAGTACAAAAATC + + + 5340 CTAGCTACTCAGGAGGCTGAGGCAGGAGAATTGCTTGAACCTGGGAGGCGGAGGTTGCAG + + + 5400 TGAGCCGCTGCACTCCAGCCTGAGTGACTGAGAAGTCTCCGTCTCAAAAAAAAATTTTTT + + + 5460 TTTAATTAGCCAGTCTTGGAGGTGCGTGCCTGTAGTCCCAGCCACTCAGAAATTCACGCC + + + 5520 TCCCTTATGTTACCAAACCAGGCTCGTTCTGCCCAGCAGTATGCCAACAGAGATGACAGG + + + 5580 TTTTGCAGCAAAGAGTTTATTCACGAGGCAGCCGAGTGAGGAGACAGGAGAACAGATCTC + + + 5640 AAATCCGCCTCCCTGAAGATGGGATTTTAGGAATATTTAAGGGATAGAGGAGCAAGGTGG + + + 5700 TCAGAGACGTGGGGAAAAGTGGGGCAGTCGGGGAACCGTGCGTGCGTAGTCAAGCTTCAT + + + 5760 GGCTTTTCCATAGGATGTGTGTTCACAAAATGACATTGTTATCATGATCTGAGGGTGGAG + + + 5820 TGTTTGGCCCTCTAACGTCAAAGGTCACCACCTAAATATACACAGGCCAAGGTGAAGGTT + + + 5880 CGGCTCTCAGCCCATTTGGATTGGACAAGAACTGATCCTGTTCCTGAAGAACAACTTGAG + + + 5940 CAACCATTACCATGGTGGCCCATACATAGAGATATTATCTATAAGGAAACTAGTGGGAGT + + + 6000 TTTTTTGTTTGGGTTTTTTTGTTTTGTTTTGTTTCTTTGTTTTTGAGACGGAGTGTTGCT + + + 6060 CTTTTTGCCCAGGCTGGAGTGCAATGGCATGATCTCGGCTTACTGCAACCTCCACCTCCC + + + 6120 GGGTTCAAGCGATTCTCCTGCCTCAGCCTCCTAAGTAGCTGGGACTACAAGCGCCCGCCA + + + 6180 CCACACCCGGCTAATTTTTTGTATTTTTAGCAGAGACGGGGTTTAACCATGTTGGCCAGG + + + 6240 CTGGTCTCAAACTCCTGACCTCAGGTGATTCACTCGCCTTAGCCTCCCAAAGTGCTGGGA + + + 6300 TTACAGGCTTGAGCCACCGTGCCCAGCCTATTTTTCTGTCTTTCTTTTCTTTTTTTTTTT + + + 6360 TTTTTTTTTGAGACAGGGTCTCACTCTATTGCCCAGGCTGGAGTGCAGTGACACTACCAT + + + 6420 GGCTCACTGCAGCCTCCAACTCCTGGGCTCAAGCCATCCTCCCACCTCAGCCCCCCTAGG + + + 6480 AGCTGGGACTACAGGTACATGCCACCACGCCTGGCTACTTTTTGTATTTTTTGTAGAGAT + + + 6540 GGGGTCTCACCATATTTCTCAGGCTGGTCTCTAACTCCTGGCTCAAGTGATCTGCCTGTC + + + 6600 TTGGCCTCCCAAAGTGCTGGGATGACAGGCGTGAGCCACCACACCTGGCCTGGGAGTTTA + + + 6660 GCTATACATTGTTTAGCTGAGTGACTTTTAACACTATGGGGTTTATAATCAACTAAAAAC + + + 6720 AAGTGAGGTAAGTTAAGATTGGTAGGTCTAATCAGGTGAGCCCTCAGTTCCCCTTATGGA + + + 6780 TGGGCAATTGTTAGGTATTGCCATGACAATGTGATAGCAATTTGGTGGGGGCTGCTGAAC + + + 6840 TCATCTGCACCCCGCCTCTGACATCCAGCCCAGATTTCTGATCTAAGTTCCACGTTTCAC + + + 6900 ACCAGCCCCTGAACCTTGGTCAACCCCTCCCCTCTCCCACCCACCACTGTGGCATCTCCT + + + 6960 AACAGTATAGAGGTGAGCCCGTGGACCTGTCTAGACTAGTGACAGTGAAGAAGATGTTTG + + + 7020 CTAGCTGCGTCCAAGAAGAGCTTCAGGAGTCCTTTTTTTTTTGAGACGGAGTCTTGCTCT + + + 7080 GTTGCCCAGGCTGGAGTGCAGTGGCGCGATCTCGGCTCACTGCAAGCTCCACCTCCAGGT + + + 7140 TCAAGTGATTCTCCTGCCTCAGCCTCACAAGTAGCTGGGATTACAGATGCCCGCCACCAC + + + 7200 GCCCAGCTAATTTTTATATTTTTAGTAGAGACGGGGTTTCACCATGTTGGCCAGGCTGGT + + + 7260 CTTGAACTCCCGACCTCAGATGATCTGAACGCTTCGGCCTCCCAAAGTGCTGGGATTACA + + + 7320 GATGTGAGCCACCACACCTGGCCACCAAATGCTTTTTGCTATAAACAATTCCGCGCAGCC + + + 7380 TAGGAGTGTCCTGAAGAAACACAACATGGTACCCCAGGTGCAACCGGCGGCTGATGACTG + + + 7440 AAGGTAGGTGTGTAAGTAGCTTAACCCATGCCCGGACGTGGGATCATCCTGAGATAATTG + + + 7500 CTCTACCCTGCCCCGCTAAGGCCCACAGCAGGACTGAGCCTGGTTGCCCACAGTGTCACC + + + 7560 TGCTCATTGGTGCCCCCTGCAGGGCATCTTCCCTCCTCGTCTCAGCTCTCACCCGCCATG + + + 7620 GGGGCTGCCTGGGGACACCTCCCAGGTAAACCACTAGCTCTGAGTCCTTTTGGGGTCATC + + + 7680 TTTGGGGGAAACCTATCCAAAAAGGAATAGGAATGCCAGGTATTCCTGCAAATAGATCAT + + + 7740 ATAGATTTATACCACATACTCACCCATATTTGATCTTCCATAATCTGACAAGTAAAAAAT + + + 7800 GGTATCTCAGCCGGGTGCGGTGGCTCATGCCTTTAATCTCAGCACTTTGGGAGGCCGAGG + + + 7860 CAGCTGGATCACTTGAGCTCACGAGTTCAAGACCAGCCTGTGCAGCATGGTGAAACCTTG + + + 7920 TCTCTACAAAAAATACCGGGCATGGTGGCACGTGCCTGTAATCCCCACTACTCAGGAGGC + + + 7980 TGAGGTGGGAGGATGGCTTGAGTCTGGGAGGTGGAGGTTGCAGTGAGTCGAGATGGCACC + + + 8040 ACTGCATCCCAGCATGGGTGATAGAACCAGACCCTGTCGCAAAACAACAACAACAACAAC + + + 8100 AAAAACCAGTTAATTTATGGCCAGGCATGGTGGCTCACACCTGTAATCCCAGTTCTTTGG + + + 8160 AAAGCTGAGGCAGGAGGATCACTTGAGACCTGGAGTTTGTCTCTATAAATAATTTTTTTT + + + 8220 TTTGGTGGGACAGGGTTCTCATTCTGTCACCCAGGCTAGGGTACAGTGGCACAATCACAT + + + 8280 CTCACCGCAGCCTCAACCTCCCAGGGTCAAGTGATTCTCCCACCTCAGCCTCCCGAGTAG + + + 8340 CTGCGACTACAGGCGTGGGCCACTATGCCTGGCTAATTTTTTATATTTTGTAGAGACGGG + + + 8400 GTCTTGCTATGTCACCCGAGCTGATGAACTCCTGGGCTCAAGAGATCTGCCCACCTCCAC + + + 8460 TTCTCAAACTGCTGGGATTACAGGCGTGAGCCACTGCACCCAGCCCTCTACAAATAATTT + + + 8520 TAAAAACTATTTTACTATTTTAAAAGTTGAAGGTTATATTTTGTTTTATCTATGAGTTTT + + + 8580 ATTTCCCCTTTTTATTTTGTTTCGGCTTGTCTGGAAATGGTATATTCCGTTTCTTCACCC + + + 8640 ATAGGGCTTCACAACATCAGCACTGCTGACATTTGGCGCTGATAATCCTCTGGGGTGAGG + + + 8700 CCATCCTGGGCACCACACGGTGTTGAGCAGCATCTCTGGCCTCCATTCTTCAGACACCAA + + + 8760 GAGCAACACCTCCACCCCTTGTGGTGACAACTAAAAGATGTCTCCAGACATCAACATGTG + + + 8820 TTCCTTTGGAGCAGAACCACCCCGTCCTGTGAGAGGCACGGATATGGTGGTTACAATGGA + + + 8880 TACATCAACAAGAATTTAAATGTTTGGCCGGGCGCGGTGGGCGCGGTGGCTCAGGCCTGT + + + 8940 AATCCCAGCACGTTGGGAGGCCGAGGCAGGTGAATCACTTGAAGCCAGGAGTTCCAGACC + + + 9000 AGCCTGGCCAACATGGTGAAACCCATCTCTATTAAAAATACACACACACTGCCGGGTGCG + + + 9060 GTGGCTCACGCCTGTAATCCCAGCACGTTGGGAGGCCAAGGAGGGCGGATCACGAGGTCA + + + 9120 GGAGATCGAGACCATCCTGGCTAACACGGTGAAACCCCGTCTCTACTAAAAATACAAAAA + + + 9180 ATTAGCCGGGCGTAGTGGCGGGCGCCTGTAGTCCCAGCTACTCGGGAGGCTGAGGCAGGA + + + 9240 GAATGGCGTGCACCCGGGAGGCGGAGCTTACAGTGAGCCGAGATCGCGCCACTGCACTTC + + + 9300 AGCCTGGGCGACAGAGCGAGACTCCATCTCAAAAAAAAAAAAAAAAAAAAAACTACACAC + + + 9360 ACACACAAAAATTAAAATATTTATCTTCCCTCTGAGCCACACACAAAGACCTCAACCACC + + + 9420 CCCTTCTATCTTTCCTATTTTTATTTATTTATTTATTTTGAGACAGAGTCTCGCTCTGTC + + + 9480 ACCCACGCTGGAGTGCAATGGCGCGATCTTGGCTCACTGCAACCTCTGCCTCTGGGGTTC + + + 9540 AAGCGATTCTCCTGCCTCAGCCTCCTGAGTGGCTGGGATTACAGGCACCTGCCACCGCAC + + + 9600 CTGGCTGATTTTTGTATTTTTAGTAGGGATGGGGTTTCACCATGTTGGCCAGGGTGGTCT + + + 9660 CAAACTCTTGACCTCGTGATCCACCGCCTCGGCCTCCCAAAGTGCTGGGATTACAGATGT + + + 9720 GAGCCACCATACCCAGCCTGATGAAAATTTTAAAAAAGAAAATTCTTAAACCGTTCTAAG + + + 9780 TCAGGGAACTGTCTGTATACATCTTACTTATACAAAAAGGTTACATATGCACCTTACATT + + + 9840 GTTTTTGTTTTTGTTTTGAGATGGAGTCTCACTCTGTCACCCAGACTGGAGTGCAATGGC + + + 9900 ATGATCTTGGCTCACTGCAACCTCTGCCTCCCGGGTTCAAGCGATTCTCCTGTCTCAGCC + + + 9960 TCCCGAGAGGCTGGGATTACAAGTGTGCACCACCACGCTTGGCTAATTTTTTTTGTATTT + + +10020 TAGTAGAGACAGGGTTTCACCATGTTGGCCAGGCTGGTCTTGAACTGCTGACCTCAGGTG + + +10080 ATTGGCCTGCCTCGGTCTCCCAAAGTGTTGGGTTACAGGCATGAGCCACGGCACCCAGCC + + +10140 TGCACCTTACATTGTAACACACGTGTGGACACACCCTGGAGTCACAGCTACAGGACAATT + + +10200 TCAGAGTCCATGACGGCCCCACATCCCTTCCCTGGGTCACCAAGGCCTCAATATGCCCCT + + +10260 CCCCCCTCCCTGTGTGTGATATCTATACAAGTCACCTGCATACCTGTAGCAGACGCTGGC + + +10320 ATCACTGTGGGCTCCCCGCCCTCCCATTCCTCAAACTGGTTTTCCTCTAAGGTTTCCCTG + + +10380 CCCATCTAACCTTCTCCTGGCACTCCCTCATGGTGCATTTCTCTCACCTGCCCGTCCGTC + + +10440 CCAGGCCACCTGCCCTCTCAGCTGGGACTCCAACTTCCCCTGATTTCTGGTCTCTTCCAT + + +10500 CCTGCTTTTGGACTTTTCCTGGGACACTTGCATTTCTTCTTTTTCTTTTTTTTTTTTTTT + + +10560 GAGACAGAGTTTCACTCTGTCACCCAGGCTGGAGTGTGATGCGATCTCGGCTCACTGCAG + + +10620 CCTCCACCTCTCAGGTTCAAGCGACTCTTCTGGCTCATCCTTCTCAGTAGCTGGAACTAC + + +10680 ATGCATGCGCCACCATGCCTAATTTTTGTTATTTTAGTAAAGACTGGGTTTCACCATGCG + + +10740 TTGACCAGGCTGGTCTCAAACTGCTGGCCTCAAGTGATCTGCCCGCCTTGGCTTCCCAAA + + +10800 GTGCTGGGATTTGGGATTACGGGCGTGAGCCGCCGAGCCTGGCCTCCTTCTTGCTCTCCT + + +10860 TTCTCCTCCCAGACCTTTGCTCCCCTCTCAGTCCTGCTCCTCTCTCCCTCCCGCGCAGCC + + +10920 CCCACCCTGCACCCGGGCAGGTGCCACAGGGACGTGCAAGACAGCTACCACCCTGCACAA + + +10980 GCCCGAGTCCCAAACCACTCAGACCCTGTTTGTAAAAATCGGCATGCTCCTTTATTTGTT + + +11040 CAGAAGAGCAGCCAGCATCACCCTTGCCACTCAAACCTGGCACATACGCTTCGGAGACAA + + +11100 TGGCCTCGGGACCCTCATGCTGCTGGGCCCAGGAGAGACAGTTCTGAGGCAGAAACTCGG + + +11160 CGTCCAAGGGGGGCCGCGGGTCAGGCACTGTGGTGAAGGGAACGCCGGGGAGTCCGGCCC + + +11220 CACCTTGCAGCTGGGGACACGGGGGCGCAAACAGAGGGGGCAGGCTAGTGTCCCGCTGCC + + +11280 CCAGGAACAGACCTCAGGGCCCCAGGAGGGTCTGCAGGCAGCTAGGAGCCTGCCAAGTGC + + +11340 TGGTGGAAGTAGAGGCCGAAAAGGCTGGCGAGCAGCTGGCAGGCAGCCGTCCACCAGATG + + +11400 AGGTAGGCCAGGACGCCACGGAGGAAGAGGGGAGTAAGCAGGCCACCCAGAGCCCCGGCA + + +11460 ATCCGCGCTGCAGTCTGCTGGACTTCGTCCTCCCCAGAGCCGATGGGGGCAGCGCTGGCT + + +11520 GAGGATGGGTCGGGGGATAGTAGAGGAGCTGGGCCCAGGCCCCAGGAATAGCCTCCTAGG + + +11580 AGAAGAGGATGAAGCGAGGTATGAGTGGAAAAATGGGGGAGGGGGCGAGGGACAGGGCTG + + +11640 GCACGGGGGGCCAGGCCCATTCCTCCAGACACTCCCACCCCTGTCTCAGACTCCATCTCC + + +11700 AGCCCAGTCTCCACCCCCTCAGGCGCTGCCCCCTGTCCAAGGCAAACCCTACCCCAGGCC + + +11760 CCACCTCCTGCTCAGATCCTGCCTCAATACATGCCCTGCCCCCTCCCCAGGCCCCGCCTC + + +11820 CTGCCAAGACGCAACCCCTCCCCAGGCTCCACCTCCTAAGGCAAACGCCATCCCAAACTC + + +11880 CACCTCCTGCTCAGACCCTGCCTCACCACAGTCCCCGCCCCCTACCCAGGCCCCGCCTCC + + +11940 TGCTCAGATTGCACCCATCCCCAGGCTCCACTTCCTGTCCAAGGCAAGCCCCACTCCAGG + + +12000 CTCCGCTTCCTGCTCAGACCCTGCCTTACCACAGTCTCCGCCCCCTGCCTAGGCCCCGCC + + +12060 TCTCCCCCCCCACCGCGGTCCCCGCCAGAGTCCACCTCCACTCTGTTTTATCTTCCAACT + + +12120 CCGCCCCTCCTCCACCCCCACACCGCGGCATCTCACCCAGCGTCTTGAGCAGAAGTGTGC + + +12180 AGTTGAGGGTGAGGATGAGCGGCGTCAGGTACTGCAAGCTCACCACGGTCACATAGCAGT + + +12240 AGACTCGGACCACCTGTGGGCAGGTAGCAGGGGTGGCTGCAGCAGGAGGCCTTCTGGTTT + + +12300 GGGACGACTCCACGCCCAAAGGACCAGGAACCCCACCCTGAGCCCCAGGTTCCCTCTGGC + + +12360 CTAGGTCATCGGGGCGTCCATACCCTCTGCTGGATTTCACGGGCTTCGATGCGGCCAGCC + + +12420 TCCCTTCGCAGCTGCTCCACCCGGGCCTTGGCCAGGCACAGGTAGGCCTGCAGGTGGGGC + + +12480 CGGGTCACCGCCAGCCGCAGCAGGCACAGCACCACCAGCAACCAGAGGCGCCCAGAGTCG + + +12540 AAGGCAGAATCGGACAGCCTGTGCGGAGAGGGCCGGGGGCAAGGGACTAAGAAGGTCGCC + + +12600 CCCGACCCCCCAGGATCTTCCCCAGGCTCCTCCCTGAATCTCAGAGGCTAGGGCACCCAG + + +12660 GGGAGCCCCAGCTACCTCCTAGCCCCACCCAATACGCACAGGGAGAAACGCGTCTCCCCA + + +12720 AACGGCGGCTGGTGCAGGAAGTCCCGTGCAATGGGCTTTGTCCAGAGCCACAGGATGAAC + + +12780 AGGGGAGACAGGAAGCTGGTGTGCAGGAGGAACCTGGGGGGTGAGGGCAGGAGGGAGTGA + + +12840 GGCCTGGGTACCCCCTCTCCTCGAGTCTCTCCCTTAAGCTCCCTAGTCCCCCCACCCACC + + +12900 AAGCGACCCACTTAACTGCAGCATGGGTCTGTCCTCCGACATGGTCAGTGCGTCCCGGTG + + +12960 GGTCTGGGCCAGCCGCAGGCCTGGGAAGGTGAGGAAGGCACCCAGCACAGAGCCCACCAC + + +13020 TGCCAGTCCCACGCGGATAGCCAGCTTGGCCACAGGAAGCCTAGGAGAACACCAGGTCAC + + +13080 GAGCCTGCCTGGGGGACCCTGGGAGGGTCCCAGCCTGCCCTTGCCTCCCTCCCCCATTCC + + +13140 CAGGACTCACGCCCAGTCCCAGCCCTGCTTCTTCAGAAGTGGCTCTAAGTTCTGGGTCAT + + +13200 GCTGGCCAGACCTGGGGACGATAAGAAGAGGACCGAGTAGAGTGAATTCCTAGGGTCTCT + + +13260 AAGGCCACTCTGTTCCCTAACCCCCCATCCCTCAGGCATCCGTTTGCTTCCCAAGTAGGA + + +13320 ATGAACAAGGGTCTGCCAGGCCCTGAGCCAGGCACAAGGACAATTTTGTGCTCTAGTTAC + + +13380 ACAGTACTTTTTACAAGAAACAAGATTGGAGTGGTGGTTCACGCCTGTAATCCCAGCACT + + +13440 TTGGGAGGCTGAGGCAGGCGGATCATCTGAGATCAGGAGTTTCAGACCAGCCTGGCCAAT + + +13500 GCAGTGAAACCCCCGTCTCTACTAAAAATACAAAAATTAGCCAGGTGTGGTGGCAGGTGC + + +13560 CTGTAATCCCAGCTACTTGAGAGGCTGAGGCAGGAGAATCGCTTGAACATGGGGAGCGGA + + +13620 GGTTGCAGTGAGCTGAGACCGCACCATTGCACTCCAGCCTTGGGGACAAGAGTGAAACTC + + +13680 AGTCTCAAAGAAAACGAAACAGAATGCACCAGGCAGACACTCCTGATTGGGCTGGGAACA + + +13740 TTCAGGGGTATCTGTTGAGCCTGAGCTCCCTAGGTTATAGAAGGAATCTAGAGGGGGATG + + +13800 AAGGACTCCTGCAGGAGAAAACCAAAGTCCTCCTGGAGGAAGGAATCCTCAATTCAGGAC + + +13860 CCAAGATTTTTCAAAAATTAAGAGCAGGGCTGGGTGCAGTGGCTTGCACCTGTAAGTCTC + + +13920 AGCACTTTGGGAGGCCAAGGCGGGTGGATCGTTTGAGCTCACAAGTTTGAGACCAGCCTG + + +13980 GGCAACATGGCAAAACCCCCATCTCTACAAAAAATACAAAACCAGGGGTGGTGGTGCACG + + +14040 CCTATAGTCCCAGCTACTGTGAAGGCTGAGGTGGGAAGGATGGGTTGAGCCCAGGATGTG + + +14100 GAAGTTGCAGTGAGCTGAGATCATGCCACTGCACTCCAGCACAGAGCAAGACCTTGTCAA + + +14160 AAAAAAAAAAAAAAAGGAGCAAATTCATATGAGCTCACAGGCAAAATCACCAAATGCATA + + +14220 AGGAAACAAATCACCATAAAGGAGAGTTAACAGAAAAACAACAGTCAAGTTTAGGCCTCA + + +14280 AAGACTTCAGAAATTGGTGCTGTCAATTATGTGTCAAATGACTAAGGAAATGAAAGCTGT + + +14340 AATCACAGAACAAGTGACATGAGAATTCCTTCAGATGACTGGGTAGAGTTGCAAAGGAAC + + +14400 CAAATTAAACTCTTCCAAAGGAAAACTGTAAGTATTGAAATAATAGGTTGTTAAACAGCA + + +14460 CATTAGGAACAGCCAAAGGAGGAAGTGATGAACTGGAAGACAGATCTGAAGAAATCACTC + + +14520 AGATTCCAACTCAGAAAAACAAGTAGGTGAGAAATATGAAGAGAGGCTAAGAGATAAGGA + + +14580 AGACAGAACAGAGAGCCCAACGCAAATCAAATCAGAGCCCCAGAGGGAGGGAAGAGAAGG + + +14640 AATGAAGAATAAAAGGAATTACTGGAAGAGAATGGTTGAGAAGTTTGCAGAATGAAAGAC + + +14700 AGACACAAAGTATATCAAACCATGTAAATAAAAAGAAATCCATACCTAGACATAATGGAG + + +14760 TGAAACTGCAGAACACCAAAAACAAAAAAATTACAAAGCAGCCAGGGAGTTAAGACAGAT + + +14820 CACCTACAAAGGAACAACAATTAGGCTGACAGCCAATGTCAACTGCAACAACAGAAAAGG + + +14880 AACAAATAGAAAGCAAAAAAGTAAGATGGTAGAAACAAAGTCAAATATGTCAGTAATCAC + + +14940 AATAAATGTAAGTAGACTAAACTTTAAAGTTAAATGACAAAGACTGTCAGACTACATTGA + + +15000 AAATATCCAGCTACATGTTTTTTAAAGGATGACATACCTTGACATAAAGTCACTGGAAGA + + +15060 CTGAAAGTAAAGGGATGTTAAAAAGATACAGCAAATACTAATCAAAAGAAAGCAAGCTAG + + +15120 AAAGGCTATACTACTACCAGCCAAACTAGACTAAGAAGTAGTATTAGAATAGGCCAGGCG + + +15180 CGGTGGCTCACACCTGTAATCTCAGCACTTTGGGAGGCCAAGACGGGCAGATCACAAAGT + + +15240 CAGGAGTTCGAGACGAGCCTGGCCAACATGGTGAAACCCTGGCTCTACTAAAAATCCAAA + + +15300 AAATAGCTGGGCATGGTGGCGGGTAATACCAGCTACTTGGGAGGCTGAGGCAGGAGAATC + + +15360 GCTTGAACCCAGGAGGTGGAGGTTGCAGTGAGCCGAGATTGCGCCACTGCACTCCAGCCT + + +15420 GGCCAACGAGAGCAAAACTCTGTCTCAAAAAAAAAAAAAGTAGTATTAGAAGACAGAAGG + + +15480 GTTCCATACATCATGATAAAATGGCTGATTCACCAGGAAAATGTAACAGTTCTAAATCTG + + +15540 TGAATAGAACTAATCTGTGAATTGTGAATAGGCTGCAAAATATATAAAGAAAACACTGAC + + +15600 AGAATTGATAGGGAAATTGAGAGCTCTCTTGTCCCAGAGGGAGATTAACTTCTGCTGACT + + +15660 GATAAGTCACAGACAAAAGGTTAGGCAAGATGGAGATTTGAATTTATTAAACTCATAGAG + + +15720 CCAGGGAATATGTCCTTCAATTAGAACATGTGAAAAAAGGCAAAACAACAAAAACAGAAT + + +15780 ATGTCCTTCAAGAAAACAAGGAATAGTCACAAAATGTGATCACATTCCAGGCCATAGGGC + + +15840 AAATCTTACCAAATTTTAAAGAAATTATTTCAAATAGACCATCTGTGCAATTGAGCTAGA + + +15900 AATAAATATGTATTTTTTAAAGATCTATGTTTGAAAAATTTAAAAATATTTAATAATCCA + + +15960 TAGGTCAAAGCATAGCAAGACCCCATCTCTACAGAAATCAGAAGGGAAATGTTAAAACAC + + +16020 CCCAAACAGAATAATAAAAAATATCAGTCAAAACTTGGGTAAACTGCCAGGTGTGATGGC + + +16080 TCACACCTGTAATCCCAGCACTTTGAGAGGCCGAGGTGGGTGGATCACCTGAGGTTAGGA + + +16140 GTTTGAGACCAGCCTGGCCAACATGGTAAAACCCCGTCTCTACTAAAAATACAAAAATTA + + +16200 GCCAGGCGTGGTGGCGTGCACCTGTAATCCCAGCTACTCAGGAGGCTGAGGCAGAAGAAT + + +16260 TGCTTGAACCCAGGAGGCAGAGGTTGTAGTGAGCTGAGATTGCACAGTTGCACTCCAGCC + + +16320 TGGGTGACAAGAGCAAAACTCCATCTCAAAACAAAAACAAAAACAAAAAAAAACTTAGGT + + +16380 GAACAAAAGTGAGACCTGGTAAAATATATATAGCATTAAATGCTATATATGCTATAAAAT + + +16440 TAGAAAAGATTGAAAATTTATGAGCCAAGTAGCTAACTGAGAAATTGGAAACAAGAAAAG + + +16500 GAGGTACGCCAGTACTGTTCTCAAATCCAGAGGTCCTAGCCACACCAAAGGGGAAGGATC + + +16560 AGACAGAACAAAAGAAAACCAAAAAGAATCTGCAATTCAATAAAAATATAATTGTTTAGC + + +16620 AAGGTTAGTCCGTGGAGACACTCAAATTTGACCCCTATATGATAACACAAAAATTAATGT + + +16680 CACTGTCCATCAGCAACAGTGAGTAGTTTAGGAGCTTATATGAAATGTAAAAGTTGAAAT + + +16740 ATTTTATTTATTGATTTTTAAGATGGAGTCTTGCTCTTGTCGCCCAGGCTAGAGTGCAAT + + +16800 GGCGTGATTTCGGCTCACTGCAACCTCTGCCTCCGGGGTTCAAGTGATTCTCCTGCCTCA + + +16860 GCCTCCCGAGTAGCTGGGATTACAGGTGCATGCCACCTTGCCCAGCTTTTTTTTTTTTTT + + +16920 TTTTTTTAGACGGAGTCTCGCTCTGTTGCCCAGGCTGGAGTGCAGTGGCGCGATCTTGGC + + +16980 TCACTGCAAGCTCCACCTCCCGGGTTCACGCCATTCTCCTGCCTCAGCCTCCCCAGTAGC + + +17040 TGGGACTACAGGCGCCTGCCACCACGCCTGGCTAATTTTTTGTATTTTTAGTAGAGACGG + + +17100 GGTTTCACGGTGTTAGCCAGGATGGTCTCGATCTGCCGACCTCGTGATGTGCCCATCTCG + + +17160 GCCTCCCAAAGTGCTGGGATTACAGGCATGAGCCACCACCCCTGGCCAGTCATTCTATAT + + +17220 TTTCTTCTAAAATATTTCAGCCAGGCGTGGTGGCAAGCGCCTGTAATCCCAGCACTTTGG + + +17280 GAGGCTGAGGCAGGTGGATTGCCTGAGGTCTGGAGTTCAAGACCAGCCTGGTCAACGTGG + + +17340 TGAAACCCCATCTCTAGTAAAAAATACAAAAAGTAGGCCGGGCACGGTGGCTCGCGCCTG + + +17400 TAATCCCAGCACTTTGGGAGGCTGAGGCGGGTGGATTGCCTGAGGTCTGGAGTTCAAGAC + + +17460 CAGCCTGGTCAGCATAGTGAAACCCCATCTCTAGTAAAAAATACTAGAGATCGCCCACTG + + +17520 CACTCCAGCCTGGGGGAAAGAGCGAGACTCTGTCTCAAAAAAAAAAAAAAAGACAATGTA + + +17580 GAATGACTTTCTGATTTTAGGGAAGGATATTTTTCAAGACAAATATCAACTAAAATAATC + + +17640 AACTTCCATTCATCAAGACACTAGAGGTGACACTTACAACTACATTTGACGACTCAGCAA + + +17700 AGAAAGTGTGATGCATGTATGCAGACGGAAAATAATGCAAATAGTGGTCAAATGAAAACA + + +17760 AAAGAAGTATTGGCAATGAAGTGGATAAATTTGGAACACTTGTGCACTGCTGCTGGGAAT + + +17820 ATAAAATATAAAATGGGCTGAGCACAGTGGTGCACACCTGTAATCCCAGCACTTTGGAAG + + +17880 GCCGAGGCTGGCGATTGCTTGAGTTCAAGAGTTCAAGACTAGCCTGGGCAACATGGCAAA + + +17940 ATCTGTCTCTATTAAAAACACAAAAATTATCTGGGTGTAGCCAGATGTGGTGGCTCACAC + + +18000 CTGTAATCTCAGCACTTTGGGAGGCCAAGATGGGCAGGATCACCTGAGGTCAGGAGTTAA + + +18060 AGACCAGCCTGGCCAACATGGCAAAACCCCATCTCTACTAAAAATGCAAAAATTAGCCAG + + +18120 GTGTGGTGGCGCACACCTGTAATCCCAGCTACTTGGGAGGCTGAGGCAAGAGAATCACTT + + +18180 GAGCCTGGAAGGTGGAGGTTGCAGTGAGCCAAGATCATGCCACTGTACTCTAGCCTGGGT + + +18240 GACAGAGGGAGACTGTCTCAAAAAATAAAAATAAAAATAAAAAAATAAATTAGCTGGGTG + + +18300 TGGTGGTGGGAGCCTGTAGTCCCAGCTACTTGGGAGCCTGAGGCATGAGAATCACTTGAA + + +18360 TCCGGGAGGCAAAGGTTGCAGTGAGTGGAGATCACGCCACCACTGCACTCCAGCCAGGGC + + +18420 AACAGAATGAGACTCTGTCTCAAAAATAAAATAAAATGGTTCAGCTGCTGTATAAAACAG + + +18480 TATGGCAGTCCCTCAAAAAATTAAAAGTAGAATTATCATATAATCCAGCAGTTCCACTTC + + +18540 TGGATATATACTCTCCAAAACTGAAAATGGGGTCTCAAAGAGATACCTGTACACTCAGGT + + +18600 TCACAGCGGTATTAGTCAAAAAGCCAAAAGTTGGGAACAACCCAAGCATTCATCTGTGGA + + +18660 TGAATAAACAAAATGTGTTCCACCCAGACAATGAAATAGTGTTCAGTCTTTTTTTTTTTT + + +18720 TTTTTTTTTGAGATGGAGTCTTGCTCTTTCACCCAGGCCGGAGTGCAGTGGCACTATCTA + + +18780 AGCTCAC + + +KEYS (in order of precedence): +>>>>>> left primer +<<<<<< right primer +^^^^^^ internal oligo + +ADDITIONAL OLIGOS + start len tm gc% any 3' seq + + 1 LEFT PRIMER 10633 20 59.99 55.00 5.00 1.00 GGTTCAAGCGACTCTTCTGG + RIGHT PRIMER 11008 20 60.00 55.00 3.00 0.00 ACAGGGTCTGAGTGGTTTGG + INTERNAL OLIGO 10719 20 59.97 50.00 4.00 2.00 AAGACTGGGTTTCACCATGC + PRODUCT SIZE: 376, PAIR ANY COMPL: 6.00, PAIR 3' COMPL: 0.00 + + 2 LEFT PRIMER 10989 20 60.00 55.00 3.00 1.00 CCAAACCACTCAGACCCTGT + RIGHT PRIMER 11145 20 59.99 60.00 5.00 2.00 CAGAACTGTCTCTCCTGGGC + INTERNAL OLIGO 11056 20 59.97 50.00 3.00 0.00 ATCACCCTTGCCACTCAAAC + PRODUCT SIZE: 157, PAIR ANY COMPL: 4.00, PAIR 3' COMPL: 1.00 + + 3 LEFT PRIMER 11140 20 59.99 55.00 7.00 1.00 GTTCTGAGGCAGAAACTCGG + RIGHT PRIMER 11491 20 59.99 60.00 5.00 2.00 GAGGACGAAGTCCAGCAGAC + INTERNAL OLIGO 11417 20 60.07 55.00 2.00 1.00 ACGGAGGAAGAGGGGAGTAA + PRODUCT SIZE: 352, PAIR ANY COMPL: 4.00, PAIR 3' COMPL: 1.00 + + 4 LEFT PRIMER 3094 20 60.01 50.00 3.00 2.00 GCACACAAACCACCTCCTTT + RIGHT PRIMER 3388 20 59.99 55.00 8.00 0.00 AGACCAGTTAGCTGGGGGTT + INTERNAL OLIGO 3336 20 60.04 50.00 2.00 1.00 TGGGAGGTGAGGAAAATCTG + PRODUCT SIZE: 295, PAIR ANY COMPL: 5.00, PAIR 3' COMPL: 3.00 + +Statistics + con too in in not no tm tm high high high lower + sid many tar excl ok bad GC too too any 3' poly end case + ered Ns get reg reg GC% clamp low high compl compl X stab end ok +Left 180225 0 0 0 0 9272 0 34005101808 0 2 1142 0 0 33996 +Right 180230 0 0 0 0 9290 0 33987101882 0 1 1129 0 0 33941 +Intl 180500 0 0 0 0 9272 0 34043102015 0 0 1142 0 0 34028 +Pair Stats: +considered 338, unacceptable product size 331, high any compl 1, ok 6 +libprimer3 release 2.4.0 + + +PRIMER PICKING RESULTS FOR masker_path1 + +No mispriming library specified +No internal oligo mishyb library specified +Using 0-based sequence positions +OLIGO start len tm gc% any 3' seq +LEFT PRIMER 2959 20 60.00 50.00 3.00 3.00 ATGCCCACCTGCTTTGTAAC +RIGHT PRIMER 3388 20 59.99 55.00 8.00 0.00 AGACCAGTTAGCTGGGGGTT +INTERNAL OLIGO 3094 20 60.01 50.00 3.00 2.00 GCACACAAACCACCTCCTTT +SEQUENCE SIZE: 18787 +INCLUDED REGION SIZE: 18787 + +PRODUCT SIZE: 430, PAIR ANY COMPL: 5.00, PAIR 3' COMPL: 3.00 + + 0 CTGACATTTTATGCCCAAGACAATGGCTCTGCCTTCTACCTTCACATGCTCAGGGTCACT + + + 60 CAGCACGTCCTGGAGGATTTCTCTGGCCTGGAGTCCCTGGCCCGGGCAGCAGCGCTAGGG + + + 120 ACCCACCGAGTGGTCACAAGGCTGTTTATGTTGGGCCTCCTGGTGGAGTCGGCATGGTAC + + + 180 CTCCATTGCTACCTGACAGACCTGCGGTTTGACAATATCTACGCCACTCAACAGCTGACC + + + 240 CAGCGGTTGGCACAGGCCCAGGCTACACACCTCCTGGCCCCTCCACCCACCTGGCTGCTC + + + 300 CAGGCGGCTCAGCTGAGGCTGTCACAGGAGGAGCTGTTGAGTTGTCTTCTAAGGCTGGGG + + + 360 CTGCTTGCCCTGCTCCTCGTGGCCACTGCTGTGGCGGTGGCCACAGACCATGTAGCCTTC + + + 420 CTCCTGGCACAGGCGACTGTGGACTGGGCTCAGAAGTTGCCAACTGTGCCCATCACGCTC + + + 480 ACGGTCAAGTATGATGTGGCATACACTGTCCTGGGCTTCATCCCTTTCCTCTTCAACCAG + + + 540 CTGGCTCCGGAGAGCCCCTTCCTCTCCGTCCACAGCTCCCTACCAATAAAGGAGGGCGCG + + + 600 CAGAGCGGCGCGGCGGGCCCGCCCGCGGCCGCCGCCCCGCGCCTGCGCCGGCGGGCGGAT + + + 660 CAGCCGACATCCAGGAGCTCGTCTCCTTGTGTGACTGTAAAACCCCATTTTCGGTGTTTC + + + 720 TCTCTGGAGTGCTTTCCAGCCCCTTGACCCCACGTTCTCACCCCACGTGATGCCATCAGA + + + 780 CCCCTTGTTTTTGCCCACCTGGTGAGCAGATCACAGTGTCTCCTGTCTGGCTGTTTTTTT + + + 840 GAGACGGAGTCTCACTCTGCCGCCCAGGCTGGAGTGCAGTGGAACGATCTCAGCTCACTG + + + 900 CAACCTCCACTTCCTGGGTTCAAGCCATTCTCCTGCCTCAGCCTCCCTAGTAGCTGGGAT + + + 960 TACAGGCGCCCACCACCACACCTGGCTAATTTTTGTGTGTTTTTGGTAGAGACAGGGTTT + + + 1020 CTCCATGTTGGCCAGGCTGGTCTCCAATTCCTGGGCTCAAGTGATCCGCCTGCCTTGGCC + + + 1080 TCCCAAAGTGCTGAGATTACAGGCGTGAGTCACTGCACCCAGCCTTGGCTGTTTTAAATT + + + 1140 CCTAGTTCTAAATTTACTATTACAAATGTTTAAAGTACCCCTACTGACCTGTTGCTGCTC + + + 1200 CTTCCTCCTCCACACCCACACACCCCGTTTAGACCCGCAAGACAGAGCAGGGTGAAGTTC + + + 1260 ATGGTCACTTATGTCCACTCTGTGCAACAGCTCGCAGGGGCTCCCCAGGGAGGGCGCAGG + + + 1320 TCGGGGACCAGGCACGGGAGCACCTAGAATGTTCCTTTACTAGACGTGGAGTAGAGCTGA + + + 1380 TTAGATGTGAGCAGTGGCTCTAGGAGTTGGTTCTATGATTCTCTGTGTTTCTGCCTTTTA + + + 1440 AGAAATTTTATTTCTCGGCCGGGCTCGGTGGCTCATGTCTGTAATCCCAGCACTTTGGGA + + + 1500 GGCCGAGGCAGGCAGATCGCCTGAGGTCAGGAGTTTGAGACCAGCCTGACCAACATGGAG + + + 1560 AAACCCTGTCTCTACTAAAAATACAACATTAGCCAGGCGTGGTGGTGCATGCCTGTATTC + + + 1620 CCAGCTACTTTGGAGGCTGAGACAGAATTGCTTGAACCCGGGAGGCGGAGGGTGCAGTGA + + + 1680 GCCGAGATTGGGCCATTGCCCTCCAGCCTGGGCAACAAGAGTGAAATTACATCTCCAAAA + + + 1740 AAAAAATTTTTTTTATTTCTCGAGTTTGAGTGAAAGGAGCGACCCGGAGGTGAGGCAGTG + + + 1800 GGGCGTGTGGGTGCGCATGAGTGCGAACACACGTGGGGGTGCAAGTGCATGTGTGTATGT + + + 1860 GCACGCAGGTTGCTCCTAGGGGTGCAAAGGCGCGCGCACGGGTGCGGGGTGCGCGCCCCC + + + 1920 TCGCGGCGCCTTCACGGCCCTCCCGCCCCTCGCCCTGCAGAGTACAGCGGCCGCCGGCAG + + + 1980 CCCTACCCCTTCGAGCGCATGATCTTCGGCGCCTGCGCTGGCCTCATCGGGCAGTCGGCC + + + 2040 TCGTACCCGCTGGATGTGGTGCGGCGGCGCATGCAGACGGCCGGCGTCACGGGCTACCCG + + + 2100 CGCGCCTCCATCGCCCGCACGCTGCGCACCATCGTGCGGGAGGAGGGCGCCGTGCGCGGC + + + 2160 CTCTACAAAGGCTTGAGCATGAACTGGGTCAAGGGTCCCATCGCCGTGGGCATCAGCTTC + + + 2220 ACCACCTTCGACCTCATGCAGATCCTGCTGCGGCACCTGCAGAGCTAGGGGACCCTGAGC + + + 2280 TGCTCTCAGGACGGTGGACCGGTGACCCCTTTGTATTCTGGGCCCATGGAACGGTGGGGG + + + 2340 GGTGCGCTTGATTCTACTTCAGGAGGCACATGGGGCGCTTTATGGAACGAGCAGGTGGGC + + + 2400 CTGAGGGGCCTGGGCTCAGAGTCCACGTCCAAACGCAAAGCTGGCAGCCCTGGAAGTGCA + + + 2460 GTGTTGGGGCGATGGTGTGGGGGGTCCCGCAGCTCCCCTCTTCCTTCCTCTGCAGACGCT + + + 2520 GGCGCTGTCTGCCGGAGGTGTTGCCCAAAAGGCCCTAGTGGGGCGTGGTCAGCTCCACCT + + + 2580 CCTGATCCTGTGTGTCCTCCGACATGCTGCTGATTCTAGTGACCCCTGTCCCCACCAGGC + + + 2640 TCAGAGCCAGACCGCGCCTGGACCTTCTTGTTCTGACTCCACGTGCCTGCCCGGCCTCCA + + + 2700 GGGTGCGGGGGCGCCTTTCTTGCAGGCGGACCCTGCCCAGGATGGGGCCAGCCTCGTGCT + + + 2760 CAGCTTTGGCCACAAATGCAGCCCCTGGCCCACCCCACCCTGCCGGCCCTGCCTTCTCCA + + + 2820 GTATTTCCCACATGGCCACGACTCCTCAGTCACTAGAGCCTCCTGCTGGGAACAGTGTCC + + + 2880 CCCAGAGCCTCATGTCTATCCTAGACCCTGCAAGCAGCTGGGTCCCCAAGAGTGCATCTC + + + 2940 CCCCTAGAGTTGCCTGCCCATGCCCACCTGCTTTGTAACCTTCCCAGGAGATTCATGCTT + >>>>>>>>>>>>>>>>>>>> + + 3000 GCTCTGCACAGCAGGGCTCGAGGCCCAGGCCATGACACGGAACTGCCTCAGGTTTGGGTC + + + 3060 AGACCTGCATCCTGGGGCATCTGCTGAAATGTGAGCACACAAACCACCTCCTTTGGCCCA + ^^^^^^^^^^^^^^^^^^^^ + + 3120 GAAGCCCCCCAGGCCTAGCATCTCAGTGCCCCAACCCTCTGCCCAGCTGTGGTATCCAGC + + + 3180 AGGTCCTTGGGTCCCCACTTGAGCAGGCACTTGGCTGGGATATGGAGCAATTTAAAGCCC + + + 3240 ACAGGGGTTGTTCAGTTTCTATGAAATGGAGCATGGGGTGCCTGCTAGCCTCAATCCCCC + + + 3300 GAAGTGGGAGCCTCATGATAGAGTATAGCTTGGGGGTGGGAGGTGAGGAAAATCTGAGGT + + + 3360 ACCCAGGGGAACCCCCAGCTAACTGGTCTCTCAGAGGAGTCCCCCAGGGCCCGCCAGCTA + <<<<<<<<<<<<<<<<<<<< + + 3420 TCACAGGGACTCAGAAACACCCATTTCCTAATGACATGGTGAGTTTCTTGATTTCTTTTT + + + 3480 TTTGTTTGTTTTGTTTTGGTTTTCAACTTGGCTGACCCCGGGTCTATGATCTATTCACAT + + + 3540 CGAACCCCTGACTGGTCTGCCTGGTGCCAGGGTGAGCGTGACCGTGAGTGTTGCTTTCGA + + + 3600 CAGCTGGCTCAGCACACGCTGTGTGAAGGGATCTGAGCTTGTTCATCTCCAGTCGTGACT + + + 3660 TCATTTCCCTTCCTTCTGTCCTCCTCCTGTTCTTGCCTTGGACCTGCAGGTGTGCAGACC + + + 3720 GCTCTCTCTGCCTTCCTTGCATGTGGCCACCAGCCATCCCTGATCTTGTCCCCAGAGGCC + + + 3780 CAGGCAGCCTGTGATGGCTGTGAGGGGCTGTCCCACTGTGTGGGTATCCCTTACCCAGCA + + + 3840 CTTAAACTTGGCAGGAGAGGCAGGGCAACCCTCACAGGGAGATGGGAGGGCACCCAACTC + + + 3900 CCACAAGCATGCAACAGCAGTAGGAATTGGGGGTCTGCCCCAGGTGGGTGAGACCAAATG + + + 3960 AGTGGATTTGGGGCCACAGGCTAGGCAGGAGAGACAAGGGGTAGGTGGGAGGGTCCCCCA + + + 4020 GTCCCTGCTGACCCCAGTGTGTCTCCCCGGAGATGGCTCCTAGCTGAGTGGGACCCGGCA + + + 4080 GGAGTTGGGGACAGTGCTGTCCCCCACCCCTGCACACAGCCAGGCCCTCAGGCTCTGCGG + + + 4140 TCACTCGCCTCCCTGCTGGTCACTGGTCTTGGTCTGGAGTTATATTTTGATGCCATGAAG + + + 4200 ACACTGTTTATATCTAATGTTTATATATTTTAAAGATTTGTGCCAAGAGAGTATATTTAA + + + 4260 TAAAAACTTAAATGACTTCTTCTCCTGCTCCTGGCTCTTCTTTGGCTCTGACCGCCCCCC + + + 4320 CATCTTCCCCCATGAACCCCCAAACAGGGTTGAAGTGCTTTTGACACATTTGTGATAAAA + + + 4380 GTTCTGAATAAAAGTCTTGAATAAAGAAGTTTTTAAATGCAATTGTTGTTTGAATTAATA + + + 4440 CATACCACAATTTTCCAGAAAACACCAGCTGTCCACAAGGGTTTACAGTGAAAAGTAGGT + + + 4500 GAACAGTTCCCTCTGCAGGGGGCCTCCTGTGACCATTTTCTCTTGTCTCCTCCCACAGAG + + + 4560 ATTCTGTGCATACACTCATCCCTTTCAGGATATATGTGGCCACCCACAAAGGCAGGAGGG + + + 4620 GCCGTCTCTGTGCAGCCAGCACAGCCCAAAGTCTCATGGGCTTGAACATGGCCTTCCTTC + + + 4680 CCAAGAGCCCTGCACTCTGGGGCTGGCTGAGGCTTCAGGCCTGAACGTCAGTCACCATCT + + + 4740 GCAGGGGCAGCCACCAGAGGGTCTCCAGTGGCAATCCTGGCTCACTTCACCTGCAGCCCA + + + 4800 TTGGCCAGAGCAACTTGGAGGACCCACCCACTGCCAGGCCAGAAGTGGGAGCCTCTGCGT + + + 4860 GCCCAGAGAGGAGGGGCGGCTGGGCCAGCACAGGCCTGGTGCTCTTGTTGGGGTGGGAGT + + + 4920 AGGAATAAGTTCCACTGCGCTGACCCCCCACTGCTCTCCAATCTGCTCACGTGCAACAGG + + + 4980 ATTTCTTTTGAGTTGGTCTCCGTTGTGCACATTGTTCAGCAGCTGTGCGGTTTTCTCCTA + + + 5040 GAGGATCCCCAGGATGACATTTACCAGGGTGGGTGTGGTGGCTCATGCCTGTAATCCCAG + + + 5100 CACTTTGGAGACTGAGGCAGGTGGCTTGCTTGAGCCCAGGAGTTTGAGACCAGCCTAGGC + + + 5160 AACACAGTAAGACCCCCCATCTCTACAAAAAAATAGAAAAATTAGGCCGGATGCAGTGGC + + + 5220 TCACGCCTTTAATCCCATCACTTTGGGAGGCCAGGGCAGGTGGATCACTTGAGGTCAGGA + + + 5280 GTTCAAGACCAGCCTGGCCAACATGCTGAAACCCCCATCTCTATTAAAAGTACAAAAATC + + + 5340 CTAGCTACTCAGGAGGCTGAGGCAGGAGAATTGCTTGAACCTGGGAGGCGGAGGTTGCAG + + + 5400 TGAGCCGCTGCACTCCAGCCTGAGTGACTGAGAAGTCTCCGTCTCAAAAAAAAATTTTTT + + + 5460 TTTAATTAGCCAGTCTTGGAGGTGCGTGCCTGTAGTCCCAGCCACTCAGAAATTCACGCC + + + 5520 TCCCTTATGTTACCAAACCAGGCTCGTTCTGCCCAGCAGTATGCCAACAGAGATGACAGG + + + 5580 TTTTGCAGCAAAGAGTTTATTCACGAGGCAGCCGAGTGAGGAGACAGGAGAACAGATCTC + + + 5640 AAATCCGCCTCCCTGAAGATGGGATTTTAGGAATATTTAAGGGATAGAGGAGCAAGGTGG + + + 5700 TCAGAGACGTGGGGAAAAGTGGGGCAGTCGGGGAACCGTGCGTGCGTAGTCAAGCTTCAT + + + 5760 GGCTTTTCCATAGGATGTGTGTTCACAAAATGACATTGTTATCATGATCTGAGGGTGGAG + + + 5820 TGTTTGGCCCTCTAACGTCAAAGGTCACCACCTAAATATACACAGGCCAAGGTGAAGGTT + + + 5880 CGGCTCTCAGCCCATTTGGATTGGACAAGAACTGATCCTGTTCCTGAAGAACAACTTGAG + + + 5940 CAACCATTACCATGGTGGCCCATACATAGAGATATTATCTATAAGGAAACTAGTGGGAGT + + + 6000 TTTTTTGTTTGGGTTTTTTTGTTTTGTTTTGTTTCTTTGTTTTTGAGACGGAGTGTTGCT + + + 6060 CTTTTTGCCCAGGCTGGAGTGCAATGGCATGATCTCGGCTTACTGCAACCTCCACCTCCC + + + 6120 GGGTTCAAGCGATTCTCCTGCCTCAGCCTCCTAAGTAGCTGGGACTACAAGCGCCCGCCA + + + 6180 CCACACCCGGCTAATTTTTTGTATTTTTAGCAGAGACGGGGTTTAACCATGTTGGCCAGG + + + 6240 CTGGTCTCAAACTCCTGACCTCAGGTGATTCACTCGCCTTAGCCTCCCAAAGTGCTGGGA + + + 6300 TTACAGGCTTGAGCCACCGTGCCCAGCCTATTTTTCTGTCTTTCTTTTCTTTTTTTTTTT + + + 6360 TTTTTTTTTGAGACAGGGTCTCACTCTATTGCCCAGGCTGGAGTGCAGTGACACTACCAT + + + 6420 GGCTCACTGCAGCCTCCAACTCCTGGGCTCAAGCCATCCTCCCACCTCAGCCCCCCTAGG + + + 6480 AGCTGGGACTACAGGTACATGCCACCACGCCTGGCTACTTTTTGTATTTTTTGTAGAGAT + + + 6540 GGGGTCTCACCATATTTCTCAGGCTGGTCTCTAACTCCTGGCTCAAGTGATCTGCCTGTC + + + 6600 TTGGCCTCCCAAAGTGCTGGGATGACAGGCGTGAGCCACCACACCTGGCCTGGGAGTTTA + + + 6660 GCTATACATTGTTTAGCTGAGTGACTTTTAACACTATGGGGTTTATAATCAACTAAAAAC + + + 6720 AAGTGAGGTAAGTTAAGATTGGTAGGTCTAATCAGGTGAGCCCTCAGTTCCCCTTATGGA + + + 6780 TGGGCAATTGTTAGGTATTGCCATGACAATGTGATAGCAATTTGGTGGGGGCTGCTGAAC + + + 6840 TCATCTGCACCCCGCCTCTGACATCCAGCCCAGATTTCTGATCTAAGTTCCACGTTTCAC + + + 6900 ACCAGCCCCTGAACCTTGGTCAACCCCTCCCCTCTCCCACCCACCACTGTGGCATCTCCT + + + 6960 AACAGTATAGAGGTGAGCCCGTGGACCTGTCTAGACTAGTGACAGTGAAGAAGATGTTTG + + + 7020 CTAGCTGCGTCCAAGAAGAGCTTCAGGAGTCCTTTTTTTTTTGAGACGGAGTCTTGCTCT + + + 7080 GTTGCCCAGGCTGGAGTGCAGTGGCGCGATCTCGGCTCACTGCAAGCTCCACCTCCAGGT + + + 7140 TCAAGTGATTCTCCTGCCTCAGCCTCACAAGTAGCTGGGATTACAGATGCCCGCCACCAC + + + 7200 GCCCAGCTAATTTTTATATTTTTAGTAGAGACGGGGTTTCACCATGTTGGCCAGGCTGGT + + + 7260 CTTGAACTCCCGACCTCAGATGATCTGAACGCTTCGGCCTCCCAAAGTGCTGGGATTACA + + + 7320 GATGTGAGCCACCACACCTGGCCACCAAATGCTTTTTGCTATAAACAATTCCGCGCAGCC + + + 7380 TAGGAGTGTCCTGAAGAAACACAACATGGTACCCCAGGTGCAACCGGCGGCTGATGACTG + + + 7440 AAGGTAGGTGTGTAAGTAGCTTAACCCATGCCCGGACGTGGGATCATCCTGAGATAATTG + + + 7500 CTCTACCCTGCCCCGCTAAGGCCCACAGCAGGACTGAGCCTGGTTGCCCACAGTGTCACC + + + 7560 TGCTCATTGGTGCCCCCTGCAGGGCATCTTCCCTCCTCGTCTCAGCTCTCACCCGCCATG + + + 7620 GGGGCTGCCTGGGGACACCTCCCAGGTAAACCACTAGCTCTGAGTCCTTTTGGGGTCATC + + + 7680 TTTGGGGGAAACCTATCCAAAAAGGAATAGGAATGCCAGGTATTCCTGCAAATAGATCAT + + + 7740 ATAGATTTATACCACATACTCACCCATATTTGATCTTCCATAATCTGACAAGTAAAAAAT + + + 7800 GGTATCTCAGCCGGGTGCGGTGGCTCATGCCTTTAATCTCAGCACTTTGGGAGGCCGAGG + + + 7860 CAGCTGGATCACTTGAGCTCACGAGTTCAAGACCAGCCTGTGCAGCATGGTGAAACCTTG + + + 7920 TCTCTACAAAAAATACCGGGCATGGTGGCACGTGCCTGTAATCCCCACTACTCAGGAGGC + + + 7980 TGAGGTGGGAGGATGGCTTGAGTCTGGGAGGTGGAGGTTGCAGTGAGTCGAGATGGCACC + + + 8040 ACTGCATCCCAGCATGGGTGATAGAACCAGACCCTGTCGCAAAACAACAACAACAACAAC + + + 8100 AAAAACCAGTTAATTTATGGCCAGGCATGGTGGCTCACACCTGTAATCCCAGTTCTTTGG + + + 8160 AAAGCTGAGGCAGGAGGATCACTTGAGACCTGGAGTTTGTCTCTATAAATAATTTTTTTT + + + 8220 TTTGGTGGGACAGGGTTCTCATTCTGTCACCCAGGCTAGGGTACAGTGGCACAATCACAT + + + 8280 CTCACCGCAGCCTCAACCTCCCAGGGTCAAGTGATTCTCCCACCTCAGCCTCCCGAGTAG + + + 8340 CTGCGACTACAGGCGTGGGCCACTATGCCTGGCTAATTTTTTATATTTTGTAGAGACGGG + + + 8400 GTCTTGCTATGTCACCCGAGCTGATGAACTCCTGGGCTCAAGAGATCTGCCCACCTCCAC + + + 8460 TTCTCAAACTGCTGGGATTACAGGCGTGAGCCACTGCACCCAGCCCTCTACAAATAATTT + + + 8520 TAAAAACTATTTTACTATTTTAAAAGTTGAAGGTTATATTTTGTTTTATCTATGAGTTTT + + + 8580 ATTTCCCCTTTTTATTTTGTTTCGGCTTGTCTGGAAATGGTATATTCCGTTTCTTCACCC + + + 8640 ATAGGGCTTCACAACATCAGCACTGCTGACATTTGGCGCTGATAATCCTCTGGGGTGAGG + + + 8700 CCATCCTGGGCACCACACGGTGTTGAGCAGCATCTCTGGCCTCCATTCTTCAGACACCAA + + + 8760 GAGCAACACCTCCACCCCTTGTGGTGACAACTAAAAGATGTCTCCAGACATCAACATGTG + + + 8820 TTCCTTTGGAGCAGAACCACCCCGTCCTGTGAGAGGCACGGATATGGTGGTTACAATGGA + + + 8880 TACATCAACAAGAATTTAAATGTTTGGCCGGGCGCGGTGGGCGCGGTGGCTCAGGCCTGT + + + 8940 AATCCCAGCACGTTGGGAGGCCGAGGCAGGTGAATCACTTGAAGCCAGGAGTTCCAGACC + + + 9000 AGCCTGGCCAACATGGTGAAACCCATCTCTATTAAAAATACACACACACTGCCGGGTGCG + + + 9060 GTGGCTCACGCCTGTAATCCCAGCACGTTGGGAGGCCAAGGAGGGCGGATCACGAGGTCA + + + 9120 GGAGATCGAGACCATCCTGGCTAACACGGTGAAACCCCGTCTCTACTAAAAATACAAAAA + + + 9180 ATTAGCCGGGCGTAGTGGCGGGCGCCTGTAGTCCCAGCTACTCGGGAGGCTGAGGCAGGA + + + 9240 GAATGGCGTGCACCCGGGAGGCGGAGCTTACAGTGAGCCGAGATCGCGCCACTGCACTTC + + + 9300 AGCCTGGGCGACAGAGCGAGACTCCATCTCAAAAAAAAAAAAAAAAAAAAAACTACACAC + + + 9360 ACACACAAAAATTAAAATATTTATCTTCCCTCTGAGCCACACACAAAGACCTCAACCACC + + + 9420 CCCTTCTATCTTTCCTATTTTTATTTATTTATTTATTTTGAGACAGAGTCTCGCTCTGTC + + + 9480 ACCCACGCTGGAGTGCAATGGCGCGATCTTGGCTCACTGCAACCTCTGCCTCTGGGGTTC + + + 9540 AAGCGATTCTCCTGCCTCAGCCTCCTGAGTGGCTGGGATTACAGGCACCTGCCACCGCAC + + + 9600 CTGGCTGATTTTTGTATTTTTAGTAGGGATGGGGTTTCACCATGTTGGCCAGGGTGGTCT + + + 9660 CAAACTCTTGACCTCGTGATCCACCGCCTCGGCCTCCCAAAGTGCTGGGATTACAGATGT + + + 9720 GAGCCACCATACCCAGCCTGATGAAAATTTTAAAAAAGAAAATTCTTAAACCGTTCTAAG + + + 9780 TCAGGGAACTGTCTGTATACATCTTACTTATACAAAAAGGTTACATATGCACCTTACATT + + + 9840 GTTTTTGTTTTTGTTTTGAGATGGAGTCTCACTCTGTCACCCAGACTGGAGTGCAATGGC + + + 9900 ATGATCTTGGCTCACTGCAACCTCTGCCTCCCGGGTTCAAGCGATTCTCCTGTCTCAGCC + + + 9960 TCCCGAGAGGCTGGGATTACAAGTGTGCACCACCACGCTTGGCTAATTTTTTTTGTATTT + + +10020 TAGTAGAGACAGGGTTTCACCATGTTGGCCAGGCTGGTCTTGAACTGCTGACCTCAGGTG + + +10080 ATTGGCCTGCCTCGGTCTCCCAAAGTGTTGGGTTACAGGCATGAGCCACGGCACCCAGCC + + +10140 TGCACCTTACATTGTAACACACGTGTGGACACACCCTGGAGTCACAGCTACAGGACAATT + + +10200 TCAGAGTCCATGACGGCCCCACATCCCTTCCCTGGGTCACCAAGGCCTCAATATGCCCCT + + +10260 CCCCCCTCCCTGTGTGTGATATCTATACAAGTCACCTGCATACCTGTAGCAGACGCTGGC + + +10320 ATCACTGTGGGCTCCCCGCCCTCCCATTCCTCAAACTGGTTTTCCTCTAAGGTTTCCCTG + + +10380 CCCATCTAACCTTCTCCTGGCACTCCCTCATGGTGCATTTCTCTCACCTGCCCGTCCGTC + + +10440 CCAGGCCACCTGCCCTCTCAGCTGGGACTCCAACTTCCCCTGATTTCTGGTCTCTTCCAT + + +10500 CCTGCTTTTGGACTTTTCCTGGGACACTTGCATTTCTTCTTTTTCTTTTTTTTTTTTTTT + + +10560 GAGACAGAGTTTCACTCTGTCACCCAGGCTGGAGTGTGATGCGATCTCGGCTCACTGCAG + + +10620 CCTCCACCTCTCAGGTTCAAGCGACTCTTCTGGCTCATCCTTCTCAGTAGCTGGAACTAC + + +10680 ATGCATGCGCCACCATGCCTAATTTTTGTTATTTTAGTAAAGACTGGGTTTCACCATGCG + + +10740 TTGACCAGGCTGGTCTCAAACTGCTGGCCTCAAGTGATCTGCCCGCCTTGGCTTCCCAAA + + +10800 GTGCTGGGATTTGGGATTACGGGCGTGAGCCGCCGAGCCTGGCCTCCTTCTTGCTCTCCT + + +10860 TTCTCCTCCCAGACCTTTGCTCCCCTCTCAGTCCTGCTCCTCTCTCCCTCCCGCGCAGCC + + +10920 CCCACCCTGCACCCGGGCAGGTGCCACAGGGACGTGCAAGACAGCTACCACCCTGCACAA + + +10980 GCCCGAGTCCCAAACCACTCAGACCCTGTTTGTAAAAATCGGCATGCTCCTTTATTTGTT + + +11040 CAGAAGAGCAGCCAGCATCACCCTTGCCACTCAAACCTGGCACATACGCTTCGGAGACAA + + +11100 TGGCCTCGGGACCCTCATGCTGCTGGGCCCAGGAGAGACAGTTCTGAGGCAGAAACTCGG + + +11160 CGTCCAAGGGGGGCCGCGGGTCAGGCACTGTGGTGAAGGGAACGCCGGGGAGTCCGGCCC + + +11220 CACCTTGCAGCTGGGGACACGGGGGCGCAAACAGAGGGGGCAGGCTAGTGTCCCGCTGCC + + +11280 CCAGGAACAGACCTCAGGGCCCCAGGAGGGTCTGCAGGCAGCTAGGAGCCTGCCAAGTGC + + +11340 TGGTGGAAGTAGAGGCCGAAAAGGCTGGCGAGCAGCTGGCAGGCAGCCGTCCACCAGATG + + +11400 AGGTAGGCCAGGACGCCACGGAGGAAGAGGGGAGTAAGCAGGCCACCCAGAGCCCCGGCA + + +11460 ATCCGCGCTGCAGTCTGCTGGACTTCGTCCTCCCCAGAGCCGATGGGGGCAGCGCTGGCT + + +11520 GAGGATGGGTCGGGGGATAGTAGAGGAGCTGGGCCCAGGCCCCAGGAATAGCCTCCTAGG + + +11580 AGAAGAGGATGAAGCGAGGTATGAGTGGAAAAATGGGGGAGGGGGCGAGGGACAGGGCTG + + +11640 GCACGGGGGGCCAGGCCCATTCCTCCAGACACTCCCACCCCTGTCTCAGACTCCATCTCC + + +11700 AGCCCAGTCTCCACCCCCTCAGGCGCTGCCCCCTGTCCAAGGCAAACCCTACCCCAGGCC + + +11760 CCACCTCCTGCTCAGATCCTGCCTCAATACATGCCCTGCCCCCTCCCCAGGCCCCGCCTC + + +11820 CTGCCAAGACGCAACCCCTCCCCAGGCTCCACCTCCTAAGGCAAACGCCATCCCAAACTC + + +11880 CACCTCCTGCTCAGACCCTGCCTCACCACAGTCCCCGCCCCCTACCCAGGCCCCGCCTCC + + +11940 TGCTCAGATTGCACCCATCCCCAGGCTCCACTTCCTGTCCAAGGCAAGCCCCACTCCAGG + + +12000 CTCCGCTTCCTGCTCAGACCCTGCCTTACCACAGTCTCCGCCCCCTGCCTAGGCCCCGCC + + +12060 TCTCCCCCCCCACCGCGGTCCCCGCCAGAGTCCACCTCCACTCTGTTTTATCTTCCAACT + + +12120 CCGCCCCTCCTCCACCCCCACACCGCGGCATCTCACCCAGCGTCTTGAGCAGAAGTGTGC + + +12180 AGTTGAGGGTGAGGATGAGCGGCGTCAGGTACTGCAAGCTCACCACGGTCACATAGCAGT + + +12240 AGACTCGGACCACCTGTGGGCAGGTAGCAGGGGTGGCTGCAGCAGGAGGCCTTCTGGTTT + + +12300 GGGACGACTCCACGCCCAAAGGACCAGGAACCCCACCCTGAGCCCCAGGTTCCCTCTGGC + + +12360 CTAGGTCATCGGGGCGTCCATACCCTCTGCTGGATTTCACGGGCTTCGATGCGGCCAGCC + + +12420 TCCCTTCGCAGCTGCTCCACCCGGGCCTTGGCCAGGCACAGGTAGGCCTGCAGGTGGGGC + + +12480 CGGGTCACCGCCAGCCGCAGCAGGCACAGCACCACCAGCAACCAGAGGCGCCCAGAGTCG + + +12540 AAGGCAGAATCGGACAGCCTGTGCGGAGAGGGCCGGGGGCAAGGGACTAAGAAGGTCGCC + + +12600 CCCGACCCCCCAGGATCTTCCCCAGGCTCCTCCCTGAATCTCAGAGGCTAGGGCACCCAG + + +12660 GGGAGCCCCAGCTACCTCCTAGCCCCACCCAATACGCACAGGGAGAAACGCGTCTCCCCA + + +12720 AACGGCGGCTGGTGCAGGAAGTCCCGTGCAATGGGCTTTGTCCAGAGCCACAGGATGAAC + + +12780 AGGGGAGACAGGAAGCTGGTGTGCAGGAGGAACCTGGGGGGTGAGGGCAGGAGGGAGTGA + + +12840 GGCCTGGGTACCCCCTCTCCTCGAGTCTCTCCCTTAAGCTCCCTAGTCCCCCCACCCACC + + +12900 AAGCGACCCACTTAACTGCAGCATGGGTCTGTCCTCCGACATGGTCAGTGCGTCCCGGTG + + +12960 GGTCTGGGCCAGCCGCAGGCCTGGGAAGGTGAGGAAGGCACCCAGCACAGAGCCCACCAC + + +13020 TGCCAGTCCCACGCGGATAGCCAGCTTGGCCACAGGAAGCCTAGGAGAACACCAGGTCAC + + +13080 GAGCCTGCCTGGGGGACCCTGGGAGGGTCCCAGCCTGCCCTTGCCTCCCTCCCCCATTCC + + +13140 CAGGACTCACGCCCAGTCCCAGCCCTGCTTCTTCAGAAGTGGCTCTAAGTTCTGGGTCAT + + +13200 GCTGGCCAGACCTGGGGACGATAAGAAGAGGACCGAGTAGAGTGAATTCCTAGGGTCTCT + + +13260 AAGGCCACTCTGTTCCCTAACCCCCCATCCCTCAGGCATCCGTTTGCTTCCCAAGTAGGA + + +13320 ATGAACAAGGGTCTGCCAGGCCCTGAGCCAGGCACAAGGACAATTTTGTGCTCTAGTTAC + + +13380 ACAGTACTTTTTACAAGAAACAAGATTGGAGTGGTGGTTCACGCCTGTAATCCCAGCACT + + +13440 TTGGGAGGCTGAGGCAGGCGGATCATCTGAGATCAGGAGTTTCAGACCAGCCTGGCCAAT + + +13500 GCAGTGAAACCCCCGTCTCTACTAAAAATACAAAAATTAGCCAGGTGTGGTGGCAGGTGC + + +13560 CTGTAATCCCAGCTACTTGAGAGGCTGAGGCAGGAGAATCGCTTGAACATGGGGAGCGGA + + +13620 GGTTGCAGTGAGCTGAGACCGCACCATTGCACTCCAGCCTTGGGGACAAGAGTGAAACTC + + +13680 AGTCTCAAAGAAAACGAAACAGAATGCACCAGGCAGACACTCCTGATTGGGCTGGGAACA + + +13740 TTCAGGGGTATCTGTTGAGCCTGAGCTCCCTAGGTTATAGAAGGAATCTAGAGGGGGATG + + +13800 AAGGACTCCTGCAGGAGAAAACCAAAGTCCTCCTGGAGGAAGGAATCCTCAATTCAGGAC + + +13860 CCAAGATTTTTCAAAAATTAAGAGCAGGGCTGGGTGCAGTGGCTTGCACCTGTAAGTCTC + + +13920 AGCACTTTGGGAGGCCAAGGCGGGTGGATCGTTTGAGCTCACAAGTTTGAGACCAGCCTG + + +13980 GGCAACATGGCAAAACCCCCATCTCTACAAAAAATACAAAACCAGGGGTGGTGGTGCACG + + +14040 CCTATAGTCCCAGCTACTGTGAAGGCTGAGGTGGGAAGGATGGGTTGAGCCCAGGATGTG + + +14100 GAAGTTGCAGTGAGCTGAGATCATGCCACTGCACTCCAGCACAGAGCAAGACCTTGTCAA + + +14160 AAAAAAAAAAAAAAAGGAGCAAATTCATATGAGCTCACAGGCAAAATCACCAAATGCATA + + +14220 AGGAAACAAATCACCATAAAGGAGAGTTAACAGAAAAACAACAGTCAAGTTTAGGCCTCA + + +14280 AAGACTTCAGAAATTGGTGCTGTCAATTATGTGTCAAATGACTAAGGAAATGAAAGCTGT + + +14340 AATCACAGAACAAGTGACATGAGAATTCCTTCAGATGACTGGGTAGAGTTGCAAAGGAAC + + +14400 CAAATTAAACTCTTCCAAAGGAAAACTGTAAGTATTGAAATAATAGGTTGTTAAACAGCA + + +14460 CATTAGGAACAGCCAAAGGAGGAAGTGATGAACTGGAAGACAGATCTGAAGAAATCACTC + + +14520 AGATTCCAACTCAGAAAAACAAGTAGGTGAGAAATATGAAGAGAGGCTAAGAGATAAGGA + + +14580 AGACAGAACAGAGAGCCCAACGCAAATCAAATCAGAGCCCCAGAGGGAGGGAAGAGAAGG + + +14640 AATGAAGAATAAAAGGAATTACTGGAAGAGAATGGTTGAGAAGTTTGCAGAATGAAAGAC + + +14700 AGACACAAAGTATATCAAACCATGTAAATAAAAAGAAATCCATACCTAGACATAATGGAG + + +14760 TGAAACTGCAGAACACCAAAAACAAAAAAATTACAAAGCAGCCAGGGAGTTAAGACAGAT + + +14820 CACCTACAAAGGAACAACAATTAGGCTGACAGCCAATGTCAACTGCAACAACAGAAAAGG + + +14880 AACAAATAGAAAGCAAAAAAGTAAGATGGTAGAAACAAAGTCAAATATGTCAGTAATCAC + + +14940 AATAAATGTAAGTAGACTAAACTTTAAAGTTAAATGACAAAGACTGTCAGACTACATTGA + + +15000 AAATATCCAGCTACATGTTTTTTAAAGGATGACATACCTTGACATAAAGTCACTGGAAGA + + +15060 CTGAAAGTAAAGGGATGTTAAAAAGATACAGCAAATACTAATCAAAAGAAAGCAAGCTAG + + +15120 AAAGGCTATACTACTACCAGCCAAACTAGACTAAGAAGTAGTATTAGAATAGGCCAGGCG + + +15180 CGGTGGCTCACACCTGTAATCTCAGCACTTTGGGAGGCCAAGACGGGCAGATCACAAAGT + + +15240 CAGGAGTTCGAGACGAGCCTGGCCAACATGGTGAAACCCTGGCTCTACTAAAAATCCAAA + + +15300 AAATAGCTGGGCATGGTGGCGGGTAATACCAGCTACTTGGGAGGCTGAGGCAGGAGAATC + + +15360 GCTTGAACCCAGGAGGTGGAGGTTGCAGTGAGCCGAGATTGCGCCACTGCACTCCAGCCT + + +15420 GGCCAACGAGAGCAAAACTCTGTCTCAAAAAAAAAAAAAGTAGTATTAGAAGACAGAAGG + + +15480 GTTCCATACATCATGATAAAATGGCTGATTCACCAGGAAAATGTAACAGTTCTAAATCTG + + +15540 TGAATAGAACTAATCTGTGAATTGTGAATAGGCTGCAAAATATATAAAGAAAACACTGAC + + +15600 AGAATTGATAGGGAAATTGAGAGCTCTCTTGTCCCAGAGGGAGATTAACTTCTGCTGACT + + +15660 GATAAGTCACAGACAAAAGGTTAGGCAAGATGGAGATTTGAATTTATTAAACTCATAGAG + + +15720 CCAGGGAATATGTCCTTCAATTAGAACATGTGAAAAAAGGCAAAACAACAAAAACAGAAT + + +15780 ATGTCCTTCAAGAAAACAAGGAATAGTCACAAAATGTGATCACATTCCAGGCCATAGGGC + + +15840 AAATCTTACCAAATTTTAAAGAAATTATTTCAAATAGACCATCTGTGCAATTGAGCTAGA + + +15900 AATAAATATGTATTTTTTAAAGATCTATGTTTGAAAAATTTAAAAATATTTAATAATCCA + + +15960 TAGGTCAAAGCATAGCAAGACCCCATCTCTACAGAAATCAGAAGGGAAATGTTAAAACAC + + +16020 CCCAAACAGAATAATAAAAAATATCAGTCAAAACTTGGGTAAACTGCCAGGTGTGATGGC + + +16080 TCACACCTGTAATCCCAGCACTTTGAGAGGCCGAGGTGGGTGGATCACCTGAGGTTAGGA + + +16140 GTTTGAGACCAGCCTGGCCAACATGGTAAAACCCCGTCTCTACTAAAAATACAAAAATTA + + +16200 GCCAGGCGTGGTGGCGTGCACCTGTAATCCCAGCTACTCAGGAGGCTGAGGCAGAAGAAT + + +16260 TGCTTGAACCCAGGAGGCAGAGGTTGTAGTGAGCTGAGATTGCACAGTTGCACTCCAGCC + + +16320 TGGGTGACAAGAGCAAAACTCCATCTCAAAACAAAAACAAAAACAAAAAAAAACTTAGGT + + +16380 GAACAAAAGTGAGACCTGGTAAAATATATATAGCATTAAATGCTATATATGCTATAAAAT + + +16440 TAGAAAAGATTGAAAATTTATGAGCCAAGTAGCTAACTGAGAAATTGGAAACAAGAAAAG + + +16500 GAGGTACGCCAGTACTGTTCTCAAATCCAGAGGTCCTAGCCACACCAAAGGGGAAGGATC + + +16560 AGACAGAACAAAAGAAAACCAAAAAGAATCTGCAATTCAATAAAAATATAATTGTTTAGC + + +16620 AAGGTTAGTCCGTGGAGACACTCAAATTTGACCCCTATATGATAACACAAAAATTAATGT + + +16680 CACTGTCCATCAGCAACAGTGAGTAGTTTAGGAGCTTATATGAAATGTAAAAGTTGAAAT + + +16740 ATTTTATTTATTGATTTTTAAGATGGAGTCTTGCTCTTGTCGCCCAGGCTAGAGTGCAAT + + +16800 GGCGTGATTTCGGCTCACTGCAACCTCTGCCTCCGGGGTTCAAGTGATTCTCCTGCCTCA + + +16860 GCCTCCCGAGTAGCTGGGATTACAGGTGCATGCCACCTTGCCCAGCTTTTTTTTTTTTTT + + +16920 TTTTTTTAGACGGAGTCTCGCTCTGTTGCCCAGGCTGGAGTGCAGTGGCGCGATCTTGGC + + +16980 TCACTGCAAGCTCCACCTCCCGGGTTCACGCCATTCTCCTGCCTCAGCCTCCCCAGTAGC + + +17040 TGGGACTACAGGCGCCTGCCACCACGCCTGGCTAATTTTTTGTATTTTTAGTAGAGACGG + + +17100 GGTTTCACGGTGTTAGCCAGGATGGTCTCGATCTGCCGACCTCGTGATGTGCCCATCTCG + + +17160 GCCTCCCAAAGTGCTGGGATTACAGGCATGAGCCACCACCCCTGGCCAGTCATTCTATAT + + +17220 TTTCTTCTAAAATATTTCAGCCAGGCGTGGTGGCAAGCGCCTGTAATCCCAGCACTTTGG + + +17280 GAGGCTGAGGCAGGTGGATTGCCTGAGGTCTGGAGTTCAAGACCAGCCTGGTCAACGTGG + + +17340 TGAAACCCCATCTCTAGTAAAAAATACAAAAAGTAGGCCGGGCACGGTGGCTCGCGCCTG + + +17400 TAATCCCAGCACTTTGGGAGGCTGAGGCGGGTGGATTGCCTGAGGTCTGGAGTTCAAGAC + + +17460 CAGCCTGGTCAGCATAGTGAAACCCCATCTCTAGTAAAAAATACTAGAGATCGCCCACTG + + +17520 CACTCCAGCCTGGGGGAAAGAGCGAGACTCTGTCTCAAAAAAAAAAAAAAAGACAATGTA + + +17580 GAATGACTTTCTGATTTTAGGGAAGGATATTTTTCAAGACAAATATCAACTAAAATAATC + + +17640 AACTTCCATTCATCAAGACACTAGAGGTGACACTTACAACTACATTTGACGACTCAGCAA + + +17700 AGAAAGTGTGATGCATGTATGCAGACGGAAAATAATGCAAATAGTGGTCAAATGAAAACA + + +17760 AAAGAAGTATTGGCAATGAAGTGGATAAATTTGGAACACTTGTGCACTGCTGCTGGGAAT + + +17820 ATAAAATATAAAATGGGCTGAGCACAGTGGTGCACACCTGTAATCCCAGCACTTTGGAAG + + +17880 GCCGAGGCTGGCGATTGCTTGAGTTCAAGAGTTCAAGACTAGCCTGGGCAACATGGCAAA + + +17940 ATCTGTCTCTATTAAAAACACAAAAATTATCTGGGTGTAGCCAGATGTGGTGGCTCACAC + + +18000 CTGTAATCTCAGCACTTTGGGAGGCCAAGATGGGCAGGATCACCTGAGGTCAGGAGTTAA + + +18060 AGACCAGCCTGGCCAACATGGCAAAACCCCATCTCTACTAAAAATGCAAAAATTAGCCAG + + +18120 GTGTGGTGGCGCACACCTGTAATCCCAGCTACTTGGGAGGCTGAGGCAAGAGAATCACTT + + +18180 GAGCCTGGAAGGTGGAGGTTGCAGTGAGCCAAGATCATGCCACTGTACTCTAGCCTGGGT + + +18240 GACAGAGGGAGACTGTCTCAAAAAATAAAAATAAAAATAAAAAAATAAATTAGCTGGGTG + + +18300 TGGTGGTGGGAGCCTGTAGTCCCAGCTACTTGGGAGCCTGAGGCATGAGAATCACTTGAA + + +18360 TCCGGGAGGCAAAGGTTGCAGTGAGTGGAGATCACGCCACCACTGCACTCCAGCCAGGGC + + +18420 AACAGAATGAGACTCTGTCTCAAAAATAAAATAAAATGGTTCAGCTGCTGTATAAAACAG + + +18480 TATGGCAGTCCCTCAAAAAATTAAAAGTAGAATTATCATATAATCCAGCAGTTCCACTTC + + +18540 TGGATATATACTCTCCAAAACTGAAAATGGGGTCTCAAAGAGATACCTGTACACTCAGGT + + +18600 TCACAGCGGTATTAGTCAAAAAGCCAAAAGTTGGGAACAACCCAAGCATTCATCTGTGGA + + +18660 TGAATAAACAAAATGTGTTCCACCCAGACAATGAAATAGTGTTCAGTCTTTTTTTTTTTT + + +18720 TTTTTTTTTGAGATGGAGTCTTGCTCTTTCACCCAGGCCGGAGTGCAGTGGCACTATCTA + + +18780 AGCTCAC + + +KEYS (in order of precedence): +>>>>>> left primer +<<<<<< right primer +^^^^^^ internal oligo + +ADDITIONAL OLIGOS + start len tm gc% any 3' seq + + 1 LEFT PRIMER 10633 20 59.99 55.00 5.00 1.00 GGTTCAAGCGACTCTTCTGG + RIGHT PRIMER 11008 20 60.00 55.00 3.00 0.00 ACAGGGTCTGAGTGGTTTGG + INTERNAL OLIGO 10719 20 59.97 50.00 4.00 2.00 AAGACTGGGTTTCACCATGC + PRODUCT SIZE: 376, PAIR ANY COMPL: 6.00, PAIR 3' COMPL: 0.00 + + 2 LEFT PRIMER 10989 20 60.00 55.00 3.00 1.00 CCAAACCACTCAGACCCTGT + RIGHT PRIMER 11145 20 59.99 60.00 5.00 2.00 CAGAACTGTCTCTCCTGGGC + INTERNAL OLIGO 11056 20 59.97 50.00 3.00 0.00 ATCACCCTTGCCACTCAAAC + PRODUCT SIZE: 157, PAIR ANY COMPL: 4.00, PAIR 3' COMPL: 1.00 + + 3 LEFT PRIMER 11140 20 59.99 55.00 7.00 1.00 GTTCTGAGGCAGAAACTCGG + RIGHT PRIMER 11491 20 59.99 60.00 5.00 2.00 GAGGACGAAGTCCAGCAGAC + INTERNAL OLIGO 11417 20 60.07 55.00 2.00 1.00 ACGGAGGAAGAGGGGAGTAA + PRODUCT SIZE: 352, PAIR ANY COMPL: 4.00, PAIR 3' COMPL: 1.00 + + 4 LEFT PRIMER 3094 20 60.01 50.00 3.00 2.00 GCACACAAACCACCTCCTTT + RIGHT PRIMER 3388 20 59.99 55.00 8.00 0.00 AGACCAGTTAGCTGGGGGTT + INTERNAL OLIGO 3336 20 60.04 50.00 2.00 1.00 TGGGAGGTGAGGAAAATCTG + PRODUCT SIZE: 295, PAIR ANY COMPL: 5.00, PAIR 3' COMPL: 3.00 + +Statistics + con too in in not no tm tm high high high lower + sid many tar excl ok bad GC too too any 3' poly end case + ered Ns get reg reg GC% clamp low high compl compl X stab end ok +Left 180225 0 0 0 0 9272 0 34005101808 0 2 1142 0 0 33996 +Right 180230 0 0 0 0 9290 0 33987101882 0 1 1129 0 0 33941 +Intl 180500 0 0 0 0 9272 0 34043102015 0 0 1142 0 0 34028 +Pair Stats: +considered 338, unacceptable product size 331, high any compl 1, ok 6 +libprimer3 release 2.4.0 + + diff -Nru primer3-2.3.7/test/primer_masker_input primer3-2.4.0/test/primer_masker_input --- primer3-2.3.7/test/primer_masker_input 1970-01-01 00:00:00.000000000 +0000 +++ primer3-2.4.0/test/primer_masker_input 2017-11-03 16:29:54.000000000 +0000 @@ -0,0 +1,65 @@ +SEQUENCE_ID=masker_default +PRIMER_TASK=pick_pcr_primers_and_hyb_probe +PRIMER_NUM_RETURN=5 +PRIMER_PRODUCT_SIZE_RANGE=50-500 +PRIMER_EXPLAIN_FLAG=1 +PRIMER_MASK_TEMPLATE=1 +PRIMER_MASK_FAILURE_RATE=0.2 +PRIMER_MASK_5P_DIRECTION=1 +PRIMER_MASK_3P_DIRECTION=1 +PRIMER_WT_MASK_FAILURE_RATE=0.0 +SEQUENCE_TEMPLATE=CTGACATTTTATGCCCAAGACAATGGCTCTGCCTTCTACCTTCACATGCTCAGGGTCACTCAGCACGTCCTGGAGGATTTCTCTGGCCTGGAGTCCCTGGCCCGGGCAGCAGCGCTAGGGACCCACCGAGTGGTCACAAGGCTGTTTATGTTGGGCCTCCTGGTGGAGTCGGCATGGTACCTCCATTGCTACCTGACAGACCTGCGGTTTGACAATATCTACGCCACTCAACAGCTGACCCAGCGGTTGGCACAGGCCCAGGCTACACACCTCCTGGCCCCTCCACCCACCTGGCTGCTCCAGGCGGCTCAGCTGAGGCTGTCACAGGAGGAGCTGTTGAGTTGTCTTCTAAGGCTGGGGCTGCTTGCCCTGCTCCTCGTGGCCACTGCTGTGGCGGTGGCCACAGACCATGTAGCCTTCCTCCTGGCACAGGCGACTGTGGACTGGGCTCAGAAGTTGCCAACTGTGCCCATCACGCTCACGGTCAAGTATGATGTGGCATACACTGTCCTGGGCTTCATCCCTTTCCTCTTCAACCAGCTGGCTCCGGAGAGCCCCTTCCTCTCCGTCCACAGCTCCCTACCAATAAAGGAGGGCGCGCAGAGCGGCGCGGCGGGCCCGCCCGCGGCCGCCGCCCCGCGCCTGCGCCGGCGGGCGGATCAGCCGACATCCAGGAGCTCGTCTCCTTGTGTGACTGTAAAACCCCATTTTCGGTGTTTCTCTCTGGAGTGCTTTCCAGCCCCTTGACCCCACGTTCTCACCCCACGTGATGCCATCAGACCCCTTGTTTTTGCCCACCTGGTGAGCAGATCACAGTGTCTCCTGTCTGGCTGTTTTTTTGAGACGGAGTCTCACTCTGCCGCCCAGGCTGGAGTGCAGTGGAACGATCTCAGCTCACTGCAACCTCCACTTCCTGGGTTCAAGCCATTCTCCTGCCTCAGCCTCCCTAGTAGCTGGGATTACAGGCGCCCACCACCACACCTGGCTAATTTTTGTGTGTTTTTGGTAGAGACAGGGTTTCTCCATGTTGGCCAGGCTGGTCTCCAATTCCTGGGCTCAAGTGATCCGCCTGCCTTGGCCTCCCAAAGTGCTGAGATTACAGGCGTGAGTCACTGCACCCAGCCTTGGCTGTTTTAAATTCCTAGTTCTAAATTTACTATTACAAATGTTTAAAGTACCCCTACTGACCTGTTGCTGCTCCTTCCTCCTCCACACCCACACACCCCGTTTAGACCCGCAAGACAGAGCAGGGTGAAGTTCATGGTCACTTATGTCCACTCTGTGCAACAGCTCGCAGGGGCTCCCCAGGGAGGGCGCAGGTCGGGGACCAGGCACGGGAGCACCTAGAATGTTCCTTTACTAGACGTGGAGTAGAGCTGATTAGATGTGAGCAGTGGCTCTAGGAGTTGGTTCTATGATTCTCTGTGTTTCTGCCTTTTAAGAAATTTTATTTCTCGGCCGGGCTCGGTGGCTCATGTCTGTAATCCCAGCACTTTGGGAGGCCGAGGCAGGCAGATCGCCTGAGGTCAGGAGTTTGAGACCAGCCTGACCAACATGGAGAAACCCTGTCTCTACTAAAAATACAACATTAGCCAGGCGTGGTGGTGCATGCCTGTATTCCCAGCTACTTTGGAGGCTGAGACAGAATTGCTTGAACCCGGGAGGCGGAGGGTGCAGTGAGCCGAGATTGGGCCATTGCCCTCCAGCCTGGGCAACAAGAGTGAAATTACATCTCCAAAAAAAAAATTTTTTTTATTTCTCGAGTTTGAGTGAAAGGAGCGACCCGGAGGTGAGGCAGTGGGGCGTGTGGGTGCGCATGAGTGCGAACACACGTGGGGGTGCAAGTGCATGTGTGTATGTGCACGCAGGTTGCTCCTAGGGGTGCAAAGGCGCGCGCACGGGTGCGGGGTGCGCGCCCCCTCGCGGCGCCTTCACGGCCCTCCCGCCCCTCGCCCTGCAGAGTACAGCGGCCGCCGGCAGCCCTACCCCTTCGAGCGCATGATCTTCGGCGCCTGCGCTGGCCTCATCGGGCAGTCGGCCTCGTACCCGCTGGATGTGGTGCGGCGGCGCATGCAGACGGCCGGCGTCACGGGCTACCCGCGCGCCTCCATCGCCCGCACGCTGCGCACCATCGTGCGGGAGGAGGGCGCCGTGCGCGGCCTCTACAAAGGCTTGAGCATGAACTGGGTCAAGGGTCCCATCGCCGTGGGCATCAGCTTCACCACCTTCGACCTCATGCAGATCCTGCTGCGGCACCTGCAGAGCTAGGGGACCCTGAGCTGCTCTCAGGACGGTGGACCGGTGACCCCTTTGTATTCTGGGCCCATGGAACGGTGGGGGGGTGCGCTTGATTCTACTTCAGGAGGCACATGGGGCGCTTTATGGAACGAGCAGGTGGGCCTGAGGGGCCTGGGCTCAGAGTCCACGTCCAAACGCAAAGCTGGCAGCCCTGGAAGTGCAGTGTTGGGGCGATGGTGTGGGGGGTCCCGCAGCTCCCCTCTTCCTTCCTCTGCAGACGCTGGCGCTGTCTGCCGGAGGTGTTGCCCAAAAGGCCCTAGTGGGGCGTGGTCAGCTCCACCTCCTGATCCTGTGTGTCCTCCGACATGCTGCTGATTCTAGTGACCCCTGTCCCCACCAGGCTCAGAGCCAGACCGCGCCTGGACCTTCTTGTTCTGACTCCACGTGCCTGCCCGGCCTCCAGGGTGCGGGGGCGCCTTTCTTGCAGGCGGACCCTGCCCAGGATGGGGCCAGCCTCGTGCTCAGCTTTGGCCACAAATGCAGCCCCTGGCCCACCCCACCCTGCCGGCCCTGCCTTCTCCAGTATTTCCCACATGGCCACGACTCCTCAGTCACTAGAGCCTCCTGCTGGGAACAGTGTCCCCCAGAGCCTCATGTCTATCCTAGACCCTGCAAGCAGCTGGGTCCCCAAGAGTGCATCTCCCCCTAGAGTTGCCTGCCCATGCCCACCTGCTTTGTAACCTTCCCAGGAGATTCATGCTTGCTCTGCACAGCAGGGCTCGAGGCCCAGGCCATGACACGGAACTGCCTCAGGTTTGGGTCAGACCTGCATCCTGGGGCATCTGCTGAAATGTGAGCACACAAACCACCTCCTTTGGCCCAGAAGCCCCCCAGGCCTAGCATCTCAGTGCCCCAACCCTCTGCCCAGCTGTGGTATCCAGCAGGTCCTTGGGTCCCCACTTGAGCAGGCACTTGGCTGGGATATGGAGCAATTTAAAGCCCACAGGGGTTGTTCAGTTTCTATGAAATGGAGCATGGGGTGCCTGCTAGCCTCAATCCCCCGAAGTGGGAGCCTCATGATAGAGTATAGCTTGGGGGTGGGAGGTGAGGAAAATCTGAGGTACCCAGGGGAACCCCCAGCTAACTGGTCTCTCAGAGGAGTCCCCCAGGGCCCGCCAGCTATCACAGGGACTCAGAAACACCCATTTCCTAATGACATGGTGAGTTTCTTGATTTCTTTTTTTTGTTTGTTTTGTTTTGGTTTTCAACTTGGCTGACCCCGGGTCTATGATCTATTCACATCGAACCCCTGACTGGTCTGCCTGGTGCCAGGGTGAGCGTGACCGTGAGTGTTGCTTTCGACAGCTGGCTCAGCACACGCTGTGTGAAGGGATCTGAGCTTGTTCATCTCCAGTCGTGACTTCATTTCCCTTCCTTCTGTCCTCCTCCTGTTCTTGCCTTGGACCTGCAGGTGTGCAGACCGCTCTCTCTGCCTTCCTTGCATGTGGCCACCAGCCATCCCTGATCTTGTCCCCAGAGGCCCAGGCAGCCTGTGATGGCTGTGAGGGGCTGTCCCACTGTGTGGGTATCCCTTACCCAGCACTTAAACTTGGCAGGAGAGGCAGGGCAACCCTCACAGGGAGATGGGAGGGCACCCAACTCCCACAAGCATGCAACAGCAGTAGGAATTGGGGGTCTGCCCCAGGTGGGTGAGACCAAATGAGTGGATTTGGGGCCACAGGCTAGGCAGGAGAGACAAGGGGTAGGTGGGAGGGTCCCCCAGTCCCTGCTGACCCCAGTGTGTCTCCCCGGAGATGGCTCCTAGCTGAGTGGGACCCGGCAGGAGTTGGGGACAGTGCTGTCCCCCACCCCTGCACACAGCCAGGCCCTCAGGCTCTGCGGTCACTCGCCTCCCTGCTGGTCACTGGTCTTGGTCTGGAGTTATATTTTGATGCCATGAAGACACTGTTTATATCTAATGTTTATATATTTTAAAGATTTGTGCCAAGAGAGTATATTTAATAAAAACTTAAATGACTTCTTCTCCTGCTCCTGGCTCTTCTTTGGCTCTGACCGCCCCCCCATCTTCCCCCATGAACCCCCAAACAGGGTTGAAGTGCTTTTGACACATTTGTGATAAAAGTTCTGAATAAAAGTCTTGAATAAAGAAGTTTTTAAATGCAATTGTTGTTTGAATTAATACATACCACAATTTTCCAGAAAACACCAGCTGTCCACAAGGGTTTACAGTGAAAAGTAGGTGAACAGTTCCCTCTGCAGGGGGCCTCCTGTGACCATTTTCTCTTGTCTCCTCCCACAGAGATTCTGTGCATACACTCATCCCTTTCAGGATATATGTGGCCACCCACAAAGGCAGGAGGGGCCGTCTCTGTGCAGCCAGCACAGCCCAAAGTCTCATGGGCTTGAACATGGCCTTCCTTCCCAAGAGCCCTGCACTCTGGGGCTGGCTGAGGCTTCAGGCCTGAACGTCAGTCACCATCTGCAGGGGCAGCCACCAGAGGGTCTCCAGTGGCAATCCTGGCTCACTTCACCTGCAGCCCATTGGCCAGAGCAACTTGGAGGACCCACCCACTGCCAGGCCAGAAGTGGGAGCCTCTGCGTGCCCAGAGAGGAGGGGCGGCTGGGCCAGCACAGGCCTGGTGCTCTTGTTGGGGTGGGAGTAGGAATAAGTTCCACTGCGCTGACCCCCCACTGCTCTCCAATCTGCTCACGTGCAACAGGATTTCTTTTGAGTTGGTCTCCGTTGTGCACATTGTTCAGCAGCTGTGCGGTTTTCTCCTAGAGGATCCCCAGGATGACATTTACCAGGGTGGGTGTGGTGGCTCATGCCTGTAATCCCAGCACTTTGGAGACTGAGGCAGGTGGCTTGCTTGAGCCCAGGAGTTTGAGACCAGCCTAGGCAACACAGTAAGACCCCCCATCTCTACAAAAAAATAGAAAAATTAGGCCGGATGCAGTGGCTCACGCCTTTAATCCCATCACTTTGGGAGGCCAGGGCAGGTGGATCACTTGAGGTCAGGAGTTCAAGACCAGCCTGGCCAACATGCTGAAACCCCCATCTCTATTAAAAGTACAAAAATCCTAGCTACTCAGGAGGCTGAGGCAGGAGAATTGCTTGAACCTGGGAGGCGGAGGTTGCAGTGAGCCGCTGCACTCCAGCCTGAGTGACTGAGAAGTCTCCGTCTCAAAAAAAAATTTTTTTTTAATTAGCCAGTCTTGGAGGTGCGTGCCTGTAGTCCCAGCCACTCAGAAATTCACGCCTCCCTTATGTTACCAAACCAGGCTCGTTCTGCCCAGCAGTATGCCAACAGAGATGACAGGTTTTGCAGCAAAGAGTTTATTCACGAGGCAGCCGAGTGAGGAGACAGGAGAACAGATCTCAAATCCGCCTCCCTGAAGATGGGATTTTAGGAATATTTAAGGGATAGAGGAGCAAGGTGGTCAGAGACGTGGGGAAAAGTGGGGCAGTCGGGGAACCGTGCGTGCGTAGTCAAGCTTCATGGCTTTTCCATAGGATGTGTGTTCACAAAATGACATTGTTATCATGATCTGAGGGTGGAGTGTTTGGCCCTCTAACGTCAAAGGTCACCACCTAAATATACACAGGCCAAGGTGAAGGTTCGGCTCTCAGCCCATTTGGATTGGACAAGAACTGATCCTGTTCCTGAAGAACAACTTGAGCAACCATTACCATGGTGGCCCATACATAGAGATATTATCTATAAGGAAACTAGTGGGAGTTTTTTTGTTTGGGTTTTTTTGTTTTGTTTTGTTTCTTTGTTTTTGAGACGGAGTGTTGCTCTTTTTGCCCAGGCTGGAGTGCAATGGCATGATCTCGGCTTACTGCAACCTCCACCTCCCGGGTTCAAGCGATTCTCCTGCCTCAGCCTCCTAAGTAGCTGGGACTACAAGCGCCCGCCACCACACCCGGCTAATTTTTTGTATTTTTAGCAGAGACGGGGTTTAACCATGTTGGCCAGGCTGGTCTCAAACTCCTGACCTCAGGTGATTCACTCGCCTTAGCCTCCCAAAGTGCTGGGATTACAGGCTTGAGCCACCGTGCCCAGCCTATTTTTCTGTCTTTCTTTTCTTTTTTTTTTTTTTTTTTTTGAGACAGGGTCTCACTCTATTGCCCAGGCTGGAGTGCAGTGACACTACCATGGCTCACTGCAGCCTCCAACTCCTGGGCTCAAGCCATCCTCCCACCTCAGCCCCCCTAGGAGCTGGGACTACAGGTACATGCCACCACGCCTGGCTACTTTTTGTATTTTTTGTAGAGATGGGGTCTCACCATATTTCTCAGGCTGGTCTCTAACTCCTGGCTCAAGTGATCTGCCTGTCTTGGCCTCCCAAAGTGCTGGGATGACAGGCGTGAGCCACCACACCTGGCCTGGGAGTTTAGCTATACATTGTTTAGCTGAGTGACTTTTAACACTATGGGGTTTATAATCAACTAAAAACAAGTGAGGTAAGTTAAGATTGGTAGGTCTAATCAGGTGAGCCCTCAGTTCCCCTTATGGATGGGCAATTGTTAGGTATTGCCATGACAATGTGATAGCAATTTGGTGGGGGCTGCTGAACTCATCTGCACCCCGCCTCTGACATCCAGCCCAGATTTCTGATCTAAGTTCCACGTTTCACACCAGCCCCTGAACCTTGGTCAACCCCTCCCCTCTCCCACCCACCACTGTGGCATCTCCTAACAGTATAGAGGTGAGCCCGTGGACCTGTCTAGACTAGTGACAGTGAAGAAGATGTTTGCTAGCTGCGTCCAAGAAGAGCTTCAGGAGTCCTTTTTTTTTTGAGACGGAGTCTTGCTCTGTTGCCCAGGCTGGAGTGCAGTGGCGCGATCTCGGCTCACTGCAAGCTCCACCTCCAGGTTCAAGTGATTCTCCTGCCTCAGCCTCACAAGTAGCTGGGATTACAGATGCCCGCCACCACGCCCAGCTAATTTTTATATTTTTAGTAGAGACGGGGTTTCACCATGTTGGCCAGGCTGGTCTTGAACTCCCGACCTCAGATGATCTGAACGCTTCGGCCTCCCAAAGTGCTGGGATTACAGATGTGAGCCACCACACCTGGCCACCAAATGCTTTTTGCTATAAACAATTCCGCGCAGCCTAGGAGTGTCCTGAAGAAACACAACATGGTACCCCAGGTGCAACCGGCGGCTGATGACTGAAGGTAGGTGTGTAAGTAGCTTAACCCATGCCCGGACGTGGGATCATCCTGAGATAATTGCTCTACCCTGCCCCGCTAAGGCCCACAGCAGGACTGAGCCTGGTTGCCCACAGTGTCACCTGCTCATTGGTGCCCCCTGCAGGGCATCTTCCCTCCTCGTCTCAGCTCTCACCCGCCATGGGGGCTGCCTGGGGACACCTCCCAGGTAAACCACTAGCTCTGAGTCCTTTTGGGGTCATCTTTGGGGGAAACCTATCCAAAAAGGAATAGGAATGCCAGGTATTCCTGCAAATAGATCATATAGATTTATACCACATACTCACCCATATTTGATCTTCCATAATCTGACAAGTAAAAAATGGTATCTCAGCCGGGTGCGGTGGCTCATGCCTTTAATCTCAGCACTTTGGGAGGCCGAGGCAGCTGGATCACTTGAGCTCACGAGTTCAAGACCAGCCTGTGCAGCATGGTGAAACCTTGTCTCTACAAAAAATACCGGGCATGGTGGCACGTGCCTGTAATCCCCACTACTCAGGAGGCTGAGGTGGGAGGATGGCTTGAGTCTGGGAGGTGGAGGTTGCAGTGAGTCGAGATGGCACCACTGCATCCCAGCATGGGTGATAGAACCAGACCCTGTCGCAAAACAACAACAACAACAACAAAAACCAGTTAATTTATGGCCAGGCATGGTGGCTCACACCTGTAATCCCAGTTCTTTGGAAAGCTGAGGCAGGAGGATCACTTGAGACCTGGAGTTTGTCTCTATAAATAATTTTTTTTTTTGGTGGGACAGGGTTCTCATTCTGTCACCCAGGCTAGGGTACAGTGGCACAATCACATCTCACCGCAGCCTCAACCTCCCAGGGTCAAGTGATTCTCCCACCTCAGCCTCCCGAGTAGCTGCGACTACAGGCGTGGGCCACTATGCCTGGCTAATTTTTTATATTTTGTAGAGACGGGGTCTTGCTATGTCACCCGAGCTGATGAACTCCTGGGCTCAAGAGATCTGCCCACCTCCACTTCTCAAACTGCTGGGATTACAGGCGTGAGCCACTGCACCCAGCCCTCTACAAATAATTTTAAAAACTATTTTACTATTTTAAAAGTTGAAGGTTATATTTTGTTTTATCTATGAGTTTTATTTCCCCTTTTTATTTTGTTTCGGCTTGTCTGGAAATGGTATATTCCGTTTCTTCACCCATAGGGCTTCACAACATCAGCACTGCTGACATTTGGCGCTGATAATCCTCTGGGGTGAGGCCATCCTGGGCACCACACGGTGTTGAGCAGCATCTCTGGCCTCCATTCTTCAGACACCAAGAGCAACACCTCCACCCCTTGTGGTGACAACTAAAAGATGTCTCCAGACATCAACATGTGTTCCTTTGGAGCAGAACCACCCCGTCCTGTGAGAGGCACGGATATGGTGGTTACAATGGATACATCAACAAGAATTTAAATGTTTGGCCGGGCGCGGTGGGCGCGGTGGCTCAGGCCTGTAATCCCAGCACGTTGGGAGGCCGAGGCAGGTGAATCACTTGAAGCCAGGAGTTCCAGACCAGCCTGGCCAACATGGTGAAACCCATCTCTATTAAAAATACACACACACTGCCGGGTGCGGTGGCTCACGCCTGTAATCCCAGCACGTTGGGAGGCCAAGGAGGGCGGATCACGAGGTCAGGAGATCGAGACCATCCTGGCTAACACGGTGAAACCCCGTCTCTACTAAAAATACAAAAAATTAGCCGGGCGTAGTGGCGGGCGCCTGTAGTCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATGGCGTGCACCCGGGAGGCGGAGCTTACAGTGAGCCGAGATCGCGCCACTGCACTTCAGCCTGGGCGACAGAGCGAGACTCCATCTCAAAAAAAAAAAAAAAAAAAAAACTACACACACACACAAAAATTAAAATATTTATCTTCCCTCTGAGCCACACACAAAGACCTCAACCACCCCCTTCTATCTTTCCTATTTTTATTTATTTATTTATTTTGAGACAGAGTCTCGCTCTGTCACCCACGCTGGAGTGCAATGGCGCGATCTTGGCTCACTGCAACCTCTGCCTCTGGGGTTCAAGCGATTCTCCTGCCTCAGCCTCCTGAGTGGCTGGGATTACAGGCACCTGCCACCGCACCTGGCTGATTTTTGTATTTTTAGTAGGGATGGGGTTTCACCATGTTGGCCAGGGTGGTCTCAAACTCTTGACCTCGTGATCCACCGCCTCGGCCTCCCAAAGTGCTGGGATTACAGATGTGAGCCACCATACCCAGCCTGATGAAAATTTTAAAAAAGAAAATTCTTAAACCGTTCTAAGTCAGGGAACTGTCTGTATACATCTTACTTATACAAAAAGGTTACATATGCACCTTACATTGTTTTTGTTTTTGTTTTGAGATGGAGTCTCACTCTGTCACCCAGACTGGAGTGCAATGGCATGATCTTGGCTCACTGCAACCTCTGCCTCCCGGGTTCAAGCGATTCTCCTGTCTCAGCCTCCCGAGAGGCTGGGATTACAAGTGTGCACCACCACGCTTGGCTAATTTTTTTTGTATTTTAGTAGAGACAGGGTTTCACCATGTTGGCCAGGCTGGTCTTGAACTGCTGACCTCAGGTGATTGGCCTGCCTCGGTCTCCCAAAGTGTTGGGTTACAGGCATGAGCCACGGCACCCAGCCTGCACCTTACATTGTAACACACGTGTGGACACACCCTGGAGTCACAGCTACAGGACAATTTCAGAGTCCATGACGGCCCCACATCCCTTCCCTGGGTCACCAAGGCCTCAATATGCCCCTCCCCCCTCCCTGTGTGTGATATCTATACAAGTCACCTGCATACCTGTAGCAGACGCTGGCATCACTGTGGGCTCCCCGCCCTCCCATTCCTCAAACTGGTTTTCCTCTAAGGTTTCCCTGCCCATCTAACCTTCTCCTGGCACTCCCTCATGGTGCATTTCTCTCACCTGCCCGTCCGTCCCAGGCCACCTGCCCTCTCAGCTGGGACTCCAACTTCCCCTGATTTCTGGTCTCTTCCATCCTGCTTTTGGACTTTTCCTGGGACACTTGCATTTCTTCTTTTTCTTTTTTTTTTTTTTTGAGACAGAGTTTCACTCTGTCACCCAGGCTGGAGTGTGATGCGATCTCGGCTCACTGCAGCCTCCACCTCTCAGGTTCAAGCGACTCTTCTGGCTCATCCTTCTCAGTAGCTGGAACTACATGCATGCGCCACCATGCCTAATTTTTGTTATTTTAGTAAAGACTGGGTTTCACCATGCGTTGACCAGGCTGGTCTCAAACTGCTGGCCTCAAGTGATCTGCCCGCCTTGGCTTCCCAAAGTGCTGGGATTTGGGATTACGGGCGTGAGCCGCCGAGCCTGGCCTCCTTCTTGCTCTCCTTTCTCCTCCCAGACCTTTGCTCCCCTCTCAGTCCTGCTCCTCTCTCCCTCCCGCGCAGCCCCCACCCTGCACCCGGGCAGGTGCCACAGGGACGTGCAAGACAGCTACCACCCTGCACAAGCCCGAGTCCCAAACCACTCAGACCCTGTTTGTAAAAATCGGCATGCTCCTTTATTTGTTCAGAAGAGCAGCCAGCATCACCCTTGCCACTCAAACCTGGCACATACGCTTCGGAGACAATGGCCTCGGGACCCTCATGCTGCTGGGCCCAGGAGAGACAGTTCTGAGGCAGAAACTCGGCGTCCAAGGGGGGCCGCGGGTCAGGCACTGTGGTGAAGGGAACGCCGGGGAGTCCGGCCCCACCTTGCAGCTGGGGACACGGGGGCGCAAACAGAGGGGGCAGGCTAGTGTCCCGCTGCCCCAGGAACAGACCTCAGGGCCCCAGGAGGGTCTGCAGGCAGCTAGGAGCCTGCCAAGTGCTGGTGGAAGTAGAGGCCGAAAAGGCTGGCGAGCAGCTGGCAGGCAGCCGTCCACCAGATGAGGTAGGCCAGGACGCCACGGAGGAAGAGGGGAGTAAGCAGGCCACCCAGAGCCCCGGCAATCCGCGCTGCAGTCTGCTGGACTTCGTCCTCCCCAGAGCCGATGGGGGCAGCGCTGGCTGAGGATGGGTCGGGGGATAGTAGAGGAGCTGGGCCCAGGCCCCAGGAATAGCCTCCTAGGAGAAGAGGATGAAGCGAGGTATGAGTGGAAAAATGGGGGAGGGGGCGAGGGACAGGGCTGGCACGGGGGGCCAGGCCCATTCCTCCAGACACTCCCACCCCTGTCTCAGACTCCATCTCCAGCCCAGTCTCCACCCCCTCAGGCGCTGCCCCCTGTCCAAGGCAAACCCTACCCCAGGCCCCACCTCCTGCTCAGATCCTGCCTCAATACATGCCCTGCCCCCTCCCCAGGCCCCGCCTCCTGCCAAGACGCAACCCCTCCCCAGGCTCCACCTCCTAAGGCAAACGCCATCCCAAACTCCACCTCCTGCTCAGACCCTGCCTCACCACAGTCCCCGCCCCCTACCCAGGCCCCGCCTCCTGCTCAGATTGCACCCATCCCCAGGCTCCACTTCCTGTCCAAGGCAAGCCCCACTCCAGGCTCCGCTTCCTGCTCAGACCCTGCCTTACCACAGTCTCCGCCCCCTGCCTAGGCCCCGCCTCTCCCCCCCCACCGCGGTCCCCGCCAGAGTCCACCTCCACTCTGTTTTATCTTCCAACTCCGCCCCTCCTCCACCCCCACACCGCGGCATCTCACCCAGCGTCTTGAGCAGAAGTGTGCAGTTGAGGGTGAGGATGAGCGGCGTCAGGTACTGCAAGCTCACCACGGTCACATAGCAGTAGACTCGGACCACCTGTGGGCAGGTAGCAGGGGTGGCTGCAGCAGGAGGCCTTCTGGTTTGGGACGACTCCACGCCCAAAGGACCAGGAACCCCACCCTGAGCCCCAGGTTCCCTCTGGCCTAGGTCATCGGGGCGTCCATACCCTCTGCTGGATTTCACGGGCTTCGATGCGGCCAGCCTCCCTTCGCAGCTGCTCCACCCGGGCCTTGGCCAGGCACAGGTAGGCCTGCAGGTGGGGCCGGGTCACCGCCAGCCGCAGCAGGCACAGCACCACCAGCAACCAGAGGCGCCCAGAGTCGAAGGCAGAATCGGACAGCCTGTGCGGAGAGGGCCGGGGGCAAGGGACTAAGAAGGTCGCCCCCGACCCCCCAGGATCTTCCCCAGGCTCCTCCCTGAATCTCAGAGGCTAGGGCACCCAGGGGAGCCCCAGCTACCTCCTAGCCCCACCCAATACGCACAGGGAGAAACGCGTCTCCCCAAACGGCGGCTGGTGCAGGAAGTCCCGTGCAATGGGCTTTGTCCAGAGCCACAGGATGAACAGGGGAGACAGGAAGCTGGTGTGCAGGAGGAACCTGGGGGGTGAGGGCAGGAGGGAGTGAGGCCTGGGTACCCCCTCTCCTCGAGTCTCTCCCTTAAGCTCCCTAGTCCCCCCACCCACCAAGCGACCCACTTAACTGCAGCATGGGTCTGTCCTCCGACATGGTCAGTGCGTCCCGGTGGGTCTGGGCCAGCCGCAGGCCTGGGAAGGTGAGGAAGGCACCCAGCACAGAGCCCACCACTGCCAGTCCCACGCGGATAGCCAGCTTGGCCACAGGAAGCCTAGGAGAACACCAGGTCACGAGCCTGCCTGGGGGACCCTGGGAGGGTCCCAGCCTGCCCTTGCCTCCCTCCCCCATTCCCAGGACTCACGCCCAGTCCCAGCCCTGCTTCTTCAGAAGTGGCTCTAAGTTCTGGGTCATGCTGGCCAGACCTGGGGACGATAAGAAGAGGACCGAGTAGAGTGAATTCCTAGGGTCTCTAAGGCCACTCTGTTCCCTAACCCCCCATCCCTCAGGCATCCGTTTGCTTCCCAAGTAGGAATGAACAAGGGTCTGCCAGGCCCTGAGCCAGGCACAAGGACAATTTTGTGCTCTAGTTACACAGTACTTTTTACAAGAAACAAGATTGGAGTGGTGGTTCACGCCTGTAATCCCAGCACTTTGGGAGGCTGAGGCAGGCGGATCATCTGAGATCAGGAGTTTCAGACCAGCCTGGCCAATGCAGTGAAACCCCCGTCTCTACTAAAAATACAAAAATTAGCCAGGTGTGGTGGCAGGTGCCTGTAATCCCAGCTACTTGAGAGGCTGAGGCAGGAGAATCGCTTGAACATGGGGAGCGGAGGTTGCAGTGAGCTGAGACCGCACCATTGCACTCCAGCCTTGGGGACAAGAGTGAAACTCAGTCTCAAAGAAAACGAAACAGAATGCACCAGGCAGACACTCCTGATTGGGCTGGGAACATTCAGGGGTATCTGTTGAGCCTGAGCTCCCTAGGTTATAGAAGGAATCTAGAGGGGGATGAAGGACTCCTGCAGGAGAAAACCAAAGTCCTCCTGGAGGAAGGAATCCTCAATTCAGGACCCAAGATTTTTCAAAAATTAAGAGCAGGGCTGGGTGCAGTGGCTTGCACCTGTAAGTCTCAGCACTTTGGGAGGCCAAGGCGGGTGGATCGTTTGAGCTCACAAGTTTGAGACCAGCCTGGGCAACATGGCAAAACCCCCATCTCTACAAAAAATACAAAACCAGGGGTGGTGGTGCACGCCTATAGTCCCAGCTACTGTGAAGGCTGAGGTGGGAAGGATGGGTTGAGCCCAGGATGTGGAAGTTGCAGTGAGCTGAGATCATGCCACTGCACTCCAGCACAGAGCAAGACCTTGTCAAAAAAAAAAAAAAAAAGGAGCAAATTCATATGAGCTCACAGGCAAAATCACCAAATGCATAAGGAAACAAATCACCATAAAGGAGAGTTAACAGAAAAACAACAGTCAAGTTTAGGCCTCAAAGACTTCAGAAATTGGTGCTGTCAATTATGTGTCAAATGACTAAGGAAATGAAAGCTGTAATCACAGAACAAGTGACATGAGAATTCCTTCAGATGACTGGGTAGAGTTGCAAAGGAACCAAATTAAACTCTTCCAAAGGAAAACTGTAAGTATTGAAATAATAGGTTGTTAAACAGCACATTAGGAACAGCCAAAGGAGGAAGTGATGAACTGGAAGACAGATCTGAAGAAATCACTCAGATTCCAACTCAGAAAAACAAGTAGGTGAGAAATATGAAGAGAGGCTAAGAGATAAGGAAGACAGAACAGAGAGCCCAACGCAAATCAAATCAGAGCCCCAGAGGGAGGGAAGAGAAGGAATGAAGAATAAAAGGAATTACTGGAAGAGAATGGTTGAGAAGTTTGCAGAATGAAAGACAGACACAAAGTATATCAAACCATGTAAATAAAAAGAAATCCATACCTAGACATAATGGAGTGAAACTGCAGAACACCAAAAACAAAAAAATTACAAAGCAGCCAGGGAGTTAAGACAGATCACCTACAAAGGAACAACAATTAGGCTGACAGCCAATGTCAACTGCAACAACAGAAAAGGAACAAATAGAAAGCAAAAAAGTAAGATGGTAGAAACAAAGTCAAATATGTCAGTAATCACAATAAATGTAAGTAGACTAAACTTTAAAGTTAAATGACAAAGACTGTCAGACTACATTGAAAATATCCAGCTACATGTTTTTTAAAGGATGACATACCTTGACATAAAGTCACTGGAAGACTGAAAGTAAAGGGATGTTAAAAAGATACAGCAAATACTAATCAAAAGAAAGCAAGCTAGAAAGGCTATACTACTACCAGCCAAACTAGACTAAGAAGTAGTATTAGAATAGGCCAGGCGCGGTGGCTCACACCTGTAATCTCAGCACTTTGGGAGGCCAAGACGGGCAGATCACAAAGTCAGGAGTTCGAGACGAGCCTGGCCAACATGGTGAAACCCTGGCTCTACTAAAAATCCAAAAAATAGCTGGGCATGGTGGCGGGTAATACCAGCTACTTGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCAGGAGGTGGAGGTTGCAGTGAGCCGAGATTGCGCCACTGCACTCCAGCCTGGCCAACGAGAGCAAAACTCTGTCTCAAAAAAAAAAAAAGTAGTATTAGAAGACAGAAGGGTTCCATACATCATGATAAAATGGCTGATTCACCAGGAAAATGTAACAGTTCTAAATCTGTGAATAGAACTAATCTGTGAATTGTGAATAGGCTGCAAAATATATAAAGAAAACACTGACAGAATTGATAGGGAAATTGAGAGCTCTCTTGTCCCAGAGGGAGATTAACTTCTGCTGACTGATAAGTCACAGACAAAAGGTTAGGCAAGATGGAGATTTGAATTTATTAAACTCATAGAGCCAGGGAATATGTCCTTCAATTAGAACATGTGAAAAAAGGCAAAACAACAAAAACAGAATATGTCCTTCAAGAAAACAAGGAATAGTCACAAAATGTGATCACATTCCAGGCCATAGGGCAAATCTTACCAAATTTTAAAGAAATTATTTCAAATAGACCATCTGTGCAATTGAGCTAGAAATAAATATGTATTTTTTAAAGATCTATGTTTGAAAAATTTAAAAATATTTAATAATCCATAGGTCAAAGCATAGCAAGACCCCATCTCTACAGAAATCAGAAGGGAAATGTTAAAACACCCCAAACAGAATAATAAAAAATATCAGTCAAAACTTGGGTAAACTGCCAGGTGTGATGGCTCACACCTGTAATCCCAGCACTTTGAGAGGCCGAGGTGGGTGGATCACCTGAGGTTAGGAGTTTGAGACCAGCCTGGCCAACATGGTAAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCAGGCGTGGTGGCGTGCACCTGTAATCCCAGCTACTCAGGAGGCTGAGGCAGAAGAATTGCTTGAACCCAGGAGGCAGAGGTTGTAGTGAGCTGAGATTGCACAGTTGCACTCCAGCCTGGGTGACAAGAGCAAAACTCCATCTCAAAACAAAAACAAAAACAAAAAAAAACTTAGGTGAACAAAAGTGAGACCTGGTAAAATATATATAGCATTAAATGCTATATATGCTATAAAATTAGAAAAGATTGAAAATTTATGAGCCAAGTAGCTAACTGAGAAATTGGAAACAAGAAAAGGAGGTACGCCAGTACTGTTCTCAAATCCAGAGGTCCTAGCCACACCAAAGGGGAAGGATCAGACAGAACAAAAGAAAACCAAAAAGAATCTGCAATTCAATAAAAATATAATTGTTTAGCAAGGTTAGTCCGTGGAGACACTCAAATTTGACCCCTATATGATAACACAAAAATTAATGTCACTGTCCATCAGCAACAGTGAGTAGTTTAGGAGCTTATATGAAATGTAAAAGTTGAAATATTTTATTTATTGATTTTTAAGATGGAGTCTTGCTCTTGTCGCCCAGGCTAGAGTGCAATGGCGTGATTTCGGCTCACTGCAACCTCTGCCTCCGGGGTTCAAGTGATTCTCCTGCCTCAGCCTCCCGAGTAGCTGGGATTACAGGTGCATGCCACCTTGCCCAGCTTTTTTTTTTTTTTTTTTTTTAGACGGAGTCTCGCTCTGTTGCCCAGGCTGGAGTGCAGTGGCGCGATCTTGGCTCACTGCAAGCTCCACCTCCCGGGTTCACGCCATTCTCCTGCCTCAGCCTCCCCAGTAGCTGGGACTACAGGCGCCTGCCACCACGCCTGGCTAATTTTTTGTATTTTTAGTAGAGACGGGGTTTCACGGTGTTAGCCAGGATGGTCTCGATCTGCCGACCTCGTGATGTGCCCATCTCGGCCTCCCAAAGTGCTGGGATTACAGGCATGAGCCACCACCCCTGGCCAGTCATTCTATATTTTCTTCTAAAATATTTCAGCCAGGCGTGGTGGCAAGCGCCTGTAATCCCAGCACTTTGGGAGGCTGAGGCAGGTGGATTGCCTGAGGTCTGGAGTTCAAGACCAGCCTGGTCAACGTGGTGAAACCCCATCTCTAGTAAAAAATACAAAAAGTAGGCCGGGCACGGTGGCTCGCGCCTGTAATCCCAGCACTTTGGGAGGCTGAGGCGGGTGGATTGCCTGAGGTCTGGAGTTCAAGACCAGCCTGGTCAGCATAGTGAAACCCCATCTCTAGTAAAAAATACTAGAGATCGCCCACTGCACTCCAGCCTGGGGGAAAGAGCGAGACTCTGTCTCAAAAAAAAAAAAAAAGACAATGTAGAATGACTTTCTGATTTTAGGGAAGGATATTTTTCAAGACAAATATCAACTAAAATAATCAACTTCCATTCATCAAGACACTAGAGGTGACACTTACAACTACATTTGACGACTCAGCAAAGAAAGTGTGATGCATGTATGCAGACGGAAAATAATGCAAATAGTGGTCAAATGAAAACAAAAGAAGTATTGGCAATGAAGTGGATAAATTTGGAACACTTGTGCACTGCTGCTGGGAATATAAAATATAAAATGGGCTGAGCACAGTGGTGCACACCTGTAATCCCAGCACTTTGGAAGGCCGAGGCTGGCGATTGCTTGAGTTCAAGAGTTCAAGACTAGCCTGGGCAACATGGCAAAATCTGTCTCTATTAAAAACACAAAAATTATCTGGGTGTAGCCAGATGTGGTGGCTCACACCTGTAATCTCAGCACTTTGGGAGGCCAAGATGGGCAGGATCACCTGAGGTCAGGAGTTAAAGACCAGCCTGGCCAACATGGCAAAACCCCATCTCTACTAAAAATGCAAAAATTAGCCAGGTGTGGTGGCGCACACCTGTAATCCCAGCTACTTGGGAGGCTGAGGCAAGAGAATCACTTGAGCCTGGAAGGTGGAGGTTGCAGTGAGCCAAGATCATGCCACTGTACTCTAGCCTGGGTGACAGAGGGAGACTGTCTCAAAAAATAAAAATAAAAATAAAAAAATAAATTAGCTGGGTGTGGTGGTGGGAGCCTGTAGTCCCAGCTACTTGGGAGCCTGAGGCATGAGAATCACTTGAATCCGGGAGGCAAAGGTTGCAGTGAGTGGAGATCACGCCACCACTGCACTCCAGCCAGGGCAACAGAATGAGACTCTGTCTCAAAAATAAAATAAAATGGTTCAGCTGCTGTATAAAACAGTATGGCAGTCCCTCAAAAAATTAAAAGTAGAATTATCATATAATCCAGCAGTTCCACTTCTGGATATATACTCTCCAAAACTGAAAATGGGGTCTCAAAGAGATACCTGTACACTCAGGTTCACAGCGGTATTAGTCAAAAAGCCAAAAGTTGGGAACAACCCAAGCATTCATCTGTGGATGAATAAACAAAATGTGTTCCACCCAGACAATGAAATAGTGTTCAGTCTTTTTTTTTTTTTTTTTTTTTGAGATGGAGTCTTGCTCTTTCACCCAGGCCGGAGTGCAGTGGCACTATCTAAGCTCAC += +SEQUENCE_ID=masker_lc_masking +PRIMER_TASK=pick_pcr_primers_and_hyb_probe +PRIMER_NUM_RETURN=5 +PRIMER_PRODUCT_SIZE_RANGE=50-500 +PRIMER_EXPLAIN_FLAG=1 +PRIMER_MASK_TEMPLATE=1 +PRIMER_MASK_FAILURE_RATE=0.2 +PRIMER_MASK_5P_DIRECTION=1 +PRIMER_MASK_3P_DIRECTION=1 +PRIMER_WT_MASK_FAILURE_RATE=0.0 +PRIMER_LOWERCASE_MASKING=0 +SEQUENCE_TEMPLATE=TGACATTTTATGCCCAAGACAATGGCTCTGCCTTCTACCTTCACATGCTCAGGGTCACTCAGCACGTCCTGGAGGATTTCTCTGGCCTGGAGTCCCTGGCCCGGGCAGCAGCGCTAGGGACCCACCGAGTGGTCACAAGGCTGTTTATGTTGGGCCTCCTGGTGGAGTCGGCATGGTACCTCCATTGCTACCTGACAGACCTGCGGTTTGACAATATCTACGCCACTCAACAGCTGACCCAGCGGTTGGCACAGGCCCAGGCTACACACCTCCTGGCCCCTCCACCCACCTGGCTGCTCCAGGCGGCTCAGCTGAGGCTGTCACAGGAGGAGCTGTTGAGTTGTCTTCTAAGGCTGGGGCTGCTTGCCCTGCTCCTCGTGGCCACTGCTGTGGCGGTGGCCACAGACCATGTAGCCTTCCTCCTGGCACAGGCGACTGTGGACTGGGCTCAGAAGTTGCCAACTGTGCCCATCACGCTCACGGTCAAGTATGATGTGGCATACACTGTCCTGGGCTTCATCCCTTTCCTCTTCAACCAGCTGGCTCCGGAGAGCCCCTTCCTCTCCGTCCACAGCTCCCTACCAATAAAGGAGGGCGCGCAGAGCGGCGCGGCGGGCCCGCCCGCGGCCGCCGCCCCGCGCCTGCGCCGGCGGGCGGATCAGCCGACATCCAGGAGCTCGTCTCCTTGTGTGACTGTAAAACCCCATTTTCGGTGTTTCTCTCTGGAGTGCTTTCCAGCCCCTTGACCCCACGTTCTCACCCCACGTGATGCCATCAGACCCCTTGTTTTTGCCCACCTGGTGAGCAGATCACAGTGTCTCCTGTCTGGCTGTTTTTTTGAGACGGAGTCTCACTCTGCCGCCCAGGCTGGAGTGCAGTGGAACGATCTCAGCTCACTGCAACCTCCACTTCCTGGGTTCAAGCCATTCTCCTGCCTCAGCCTCCCTAGTAGCTGGGATTACAGGCGCCCACCACCACACCTGGCTAATTTTTGTGTGTTTTTGGTAGAGACAGGGTTTCTCCATGTTGGCCAGGCTGGTCTCCAATTCCTGGGCTCAAGTGATCCGCCTGCCTTGGCCTCCCAAAGTGCTGAGATTACAGGCGTGAGTCACTGCACCCAGCCTTGGCTGTTTTAAATTCCTAGTTCTAAATTTACTATTACAAATGTTTAAAGTACCCCTACTGACCTGTTGCTGCTCCTTCCTCCTCCACACCCACACACCCCGTTTAGACCCGCAAGACAGAGCAGGGTGAAGTTCATGGTCACTTATGTCCACTCTGTGCAACAGCTCGCAGGGGCTCCCCAGGGAGGGCGCAGGTCGGGGACCAGGCACGGGAGCACCTAGAATGTTCCTTTACTAGACGTGGAGTAGAGCTGATTAGATGTGAGCAGTGGCTCTAGGAGTTGGTTCTATGATTCTCTGTGTTTCTGCCTTTTAAGAAATTTTATTTCTCGGCCGGGCTCGGTGGCTCATGTCTGTAATCCCAGCACTTTGGGAGGCCGAGGCAGGCAGATCGCCTGAGGTCAGGAGTTTGAGACCAGCCTGACCAACATGGAGAAACCCTGTCTCTACTAAAAATACAACATTAGCCAGGCGTGGTGGTGCATGCCTGTATTCCCAGCTACTTTGGAGGCTGAGACAGAATTGCTTGAACCCGGGAGGCGGAGGGTGCAGTGAGCCGAGATTGGGCCATTGCCCTCCAGCCTGGGCAACAAGAGTGAAATTACATCTCCAAAAAAAAAATTTTTTTTATTTCTCGAGTTTGAGTGAAAGGAGCGACCCGGAGGTGAGGCAGTGGGGCGTGTGGGTGCGCATGAGTGCGAACACACGTGGGGGTGCAAGTGCATGTGTGTATGTGCACGCAGGTTGCTCCTAGGGGTGCAAAGGCGCGCGCACGGGTGCGGGGTGCGCGCCCCCTCGCGGCGCCTTCACGGCCCTCCCGCCCCTCGCCCTGCAGAGTACAGCGGCCGCCGGCAGCCCTACCCCTTCGAGCGCATGATCTTCGGCGCCTGCGCTGGCCTCATCGGGCAGTCGGCCTCGTACCCGCTGGATGTGGTGCGGCGGCGCATGCAGACGGCCGGCGTCACGGGCTACCCGCGCGCCTCCATCGCCCGCACGCTGCGCACCATCGTGCGGGAGGAGGGCGCCGTGCGCGGCCTCTACAAAGGCTTGAGCATGAACTGGGTCAAGGGTCCCATCGCCGTGGGCATCAGCTTCACCACCTTCGACCTCATGCAGATCCTGCTGCGGCACCTGCAGAGCTAGGGGACCCTGAGCTGCTCTCAGGACGGTGGACCGGTGACCCCTTTGTATTCTGGGCCCATGGAACGGTGGGGGGGTGCGCTTGATTCTACTTCAGGAGGCACATGGGGCGCTTTATGGAACGAGCAGGTGGGCCTGAGGGGCCTGGGCTCAGAGTCCACGTCCAAACGCAAAGCTGGCAGCCCTGGAAGTGCAGTGTTGGGGCGATGGTGTGGGGGGTCCCGCAGCTCCCCTCTTCCTTCCTCTGCAGACGCTGGCGCTGTCTGCCGGAGGTGTTGCCCAAAAGGCCCTAGTGGGGCGTGGTCAGCTCCACCTCCTGATCCTGTGTGTCCTCCGACATGCTGCTGATTCTAGTGACCCCTGTCCCCACCAGGCTCAGAGCCAGACCGCGCCTGGACCTTCTTGTTCTGACTCCACGTGCCTGCCCGGCCTCCAGGGTGCGGGGGCGCCTTTCTTGCAGGCGGACCCTGCCCAGGATGGGGCCAGCCTCGTGCTCAGCTTTGGCCACAAATGCAGCCCCTGGCCCACCCCACCCTGCCGGCCCTGCCTTCTCCAGTATTTCCCACATGGCCACGACTCCTCAGTCACTAGAGCCTCCTGCTGGGAACAGTGTCCCCCAGAGCCTCATGTCTATCCTAGACCCTGCAAGCAGCTGGGTCCCCAAGAGTGCATCTCCCCCTAGAGTTGCCTGCCCATGCCCACCTGCTTTGTAACCTTCCCAGGAGATTCATGCTTGCTCTGCACAGCAGGGCTCGAGGCCCAGGCCATGACACGGAACTGCCTCAGGTTTGGGTCAGACCTGCATCCTGGGGCATCTGCTGAAATGTGAGCACACAAACCACCTCCTTTGGCCCAGAAGCCCCCCAGGCCTAGCATCTCAGTGCCCCAACCCTCTGCCCAGCTGTGGTATCCAGCAGGTCCTTGGGTCCCCACTTGAGCAGGCACTTGGCTGGGATATGGAGCAATTTAAAGCCCACAGGGGTTGTTCAGTTTCTATGAAATGGAGCATGGGGTGCCTGCTAGCCTCAATCCCCCGAAGTGGGAGCCTCATGATAGAGTATAGCTTGGGGGTGGGAGGTGAGGAAAATCTGAGGTACCCAGGGGAACCCCCAGCTAACTGGTCTCTCAGAGGAGTCCCCCAGGGCCCGCCAGCTATCACAGGGACTCAGAAACACCCATTTCCTAATGACATGGTGAGTTTCTTGATTTCTTTTTTTTGTTTGTTTTGTTTTGGTTTTCAACTTGGCTGACCCCGGGTCTATGATCTATTCACATCGAACCCCTGACTGGTCTGCCTGGTGCCAGGGTGAGCGTGACCGTGAGTGTTGCTTTCGACAGCTGGCTCAGCACACGCTGTGTGAAGGGATCTGAGCTTGTTCATCTCCAGTCGTGACTTCATTTCCCTTCCTTCTGTCCTCCTCCTGTTCTTGCCTTGGACCTGCAGGTGTGCAGACCGCTCTCTCTGCCTTCCTTGCATGTGGCCACCAGCCATCCCTGATCTTGTCCCCAGAGGCCCAGGCAGCCTGTGATGGCTGTGAGGGGCTGTCCCACTGTGTGGGTATCCCTTACCCAGCACTTAAACTTGGCAGGAGAGGCAGGGCAACCCTCACAGGGAGATGGGAGGGCACCCAACTCCCACAAGCATGCAACAGCAGTAGGAATTGGGGGTCTGCCCCAGGTGGGTGAGACCAAATGAGTGGATTTGGGGCCACAGGCTAGGCAGGAGAGACAAGGGGTAGGTGGGAGGGTCCCCCAGTCCCTGCTGACCCCAGTGTGTCTCCCCGGAGATGGCTCCTAGCTGAGTGGGACCCGGCAGGAGTTGGGGACAGTGCTGTCCCCCACCCCTGCACACAGCCAGGCCCTCAGGCTCTGCGGTCACTCGCCTCCCTGCTGGTCACTGGTCTTGGTCTGGAGTTATATTTTGATGCCATGAAGACACTGTTTATATCTAATGTTTATATATTTTAAAGATTTGTGCCAAGAGAGTATATTTAATAAAAACTTAAATGACTTCTTCTCCTGCTCCTGGCTCTTCTTTGGCTCTGACCGCCCCCCCATCTTCCCCCATGAACCCCCAAACAGGGTTGAAGTGCTTTTGACACATTTGTGATAAAAGTTCTGAATAAAAGTCTTGAATAAAGAAGTTTTTAAATGCAATTGTTGTTTGAATTAATACATACCACAATTTTCCAGAAAACACCAGCTGTCCACAAGGGTTTACAGTGAAAAGTAGGTGAACAGTTCCCTCTGCAGGGGGCCTCCTGTGACCATTTTCTCTTGTCTCCTCCCACAGAGATTCTGTGCATACACTCATCCCTTTCAGGATATATGTGGCCACCCACAAAGGCAGGAGGGGCCGTCTCTGTGCAGCCAGCACAGCCCAAAGTCTCATGGGCTTGAACATGGCCTTCCTTCCCAAGAGCCCTGCACTCTGGGGCTGGCTGAGGCTTCAGGCCTGAACGTCAGTCACCATCTGCAGGGGCAGCCACCAGAGGGTCTCCAGTGGCAATCCTGGCTCACTTCACCTGCAGCCCATTGGCCAGAGCAACTTGGAGGACCCACCCACTGCCAGGCCAGAAGTGGGAGCCTCTGCGTGCCCAGAGAGGAGGGGCGGCTGGGCCAGCACAGGCCTGGTGCTCTTGTTGGGGTGGGAGTAGGAATAAGTTCCACTGCGCTGACCCCCCACTGCTCTCCAATCTGCTCACGTGCAACAGGATTTCTTTTGAGTTGGTCTCCGTTGTGCACATTGTTCAGCAGCTGTGCGGTTTTCTCCTAGAGGATCCCCAGGATGACATTTACCAGGGTGGGTGTGGTGGCTCATGCCTGTAATCCCAGCACTTTGGAGACTGAGGCAGGTGGCTTGCTTGAGCCCAGGAGTTTGAGACCAGCCTAGGCAACACAGTAAGACCCCCCATCTCTACAAAAAAATAGAAAAATTAGGCCGGATGCAGTGGCTCACGCCTTTAATCCCATCACTTTGGGAGGCCAGGGCAGGTGGATCACTTGAGGTCAGGAGTTCAAGACCAGCCTGGCCAACATGCTGAAACCCCCATCTCTATTAAAAGTACAAAAATCCTAGCTACTCAGGAGGCTGAGGCAGGAGAATTGCTTGAACCTGGGAGGCGGAGGTTGCAGTGAGCCGCTGCACTCCAGCCTGAGTGACTGAGAAGTCTCCGTCTCAAAAAAAAATTTTTTTTTAATTAGCCAGTCTTGGAGGTGCGTGCCTGTAGTCCCAGCCACTCAGAAATTCACGCCTCCCTTATGTTACCAAACCAGGCTCGTTCTGCCCAGCAGTATGCCAACAGAGATGACAGGTTTTGCAGCAAAGAGTTTATTCACGAGGCAGCCGAGTGAGGAGACAGGAGAACAGATCTCAAATCCGCCTCCCTGAAGATGGGATTTTAGGAATATTTAAGGGATAGAGGAGCAAGGTGGTCAGAGACGTGGGGAAAAGTGGGGCAGTCGGGGAACCGTGCGTGCGTAGTCAAGCTTCATGGCTTTTCCATAGGATGTGTGTTCACAAAATGACATTGTTATCATGATCTGAGGGTGGAGTGTTTGGCCCTCTAACGTCAAAGGTCACCACCTAAATATACACAGGCCAAGGTGAAGGTTCGGCTCTCAGCCCATTTGGATTGGACAAGAACTGATCCTGTTCCTGAAGAACAACTTGAGCAACCATTACCATGGTGGCCCATACATAGAGATATTATCTATAAGGAAACTAGTGGGAGTTTTTTTGTTTGGGTTTTTTTGTTTTGTTTTGTTTCTTTGTTTTTGAGACGGAGTGTTGCTCTTTTTGCCCAGGCTGGAGTGCAATGGCATGATCTCGGCTTACTGCAACCTCCACCTCCCGGGTTCAAGCGATTCTCCTGCCTCAGCCTCCTAAGTAGCTGGGACTACAAGCGCCCGCCACCACACCCGGCTAATTTTTTGTATTTTTAGCAGAGACGGGGTTTAACCATGTTGGCCAGGCTGGTCTCAAACTCCTGACCTCAGGTGATTCACTCGCCTTAGCCTCCCAAAGTGCTGGGATTACAGGCTTGAGCCACCGTGCCCAGCCTATTTTTCTGTCTTTCTTTTCTTTTTTTTTTTTTTTTTTTTGAGACAGGGTCTCACTCTATTGCCCAGGCTGGAGTGCAGTGACACTACCATGGCTCACTGCAGCCTCCAACTCCTGGGCTCAAGCCATCCTCCCACCTCAGCCCCCCTAGGAGCTGGGACTACAGGTACATGCCACCACGCCTGGCTACTTTTTGTATTTTTTGTAGAGATGGGGTCTCACCATATTTCTCAGGCTGGTCTCTAACTCCTGGCTCAAGTGATCTGCCTGTCTTGGCCTCCCAAAGTGCTGGGATGACAGGCGTGAGCCACCACACCTGGCCTGGGAGTTTAGCTATACATTGTTTAGCTGAGTGACTTTTAACACTATGGGGTTTATAATCAACTAAAAACAAGTGAGGTAAGTTAAGATTGGTAGGTCTAATCAGGTGAGCCCTCAGTTCCCCTTATGGATGGGCAATTGTTAGGTATTGCCATGACAATGTGATAGCAATTTGGTGGGGGCTGCTGAACTCATCTGCACCCCGCCTCTGACATCCAGCCCAGATTTCTGATCTAAGTTCCACGTTTCACACCAGCCCCTGAACCTTGGTCAACCCCTCCCCTCTCCCACCCACCACTGTGGCATCTCCTAACAGTATAGAGGTGAGCCCGTGGACCTGTCTAGACTAGTGACAGTGAAGAAGATGTTTGCTAGCTGCGTCCAAGAAGAGCTTCAGGAGTCCTTTTTTTTTTGAGACGGAGTCTTGCTCTGTTGCCCAGGCTGGAGTGCAGTGGCGCGATCTCGGCTCACTGCAAGCTCCACCTCCAGGTTCAAGTGATTCTCCTGCCTCAGCCTCACAAGTAGCTGGGATTACAGATGCCCGCCACCACGCCCAGCTAATTTTTATATTTTTAGTAGAGACGGGGTTTCACCATGTTGGCCAGGCTGGTCTTGAACTCCCGACCTCAGATGATCTGAACGCTTCGGCCTCCCAAAGTGCTGGGATTACAGATGTGAGCCACCACACCTGGCCACCAAATGCTTTTTGCTATAAACAATTCCGCGCAGCCTAGGAGTGTCCTGAAGAAACACAACATGGTACCCCAGGTGCAACCGGCGGCTGATGACTGAAGGTAGGTGTGTAAGTAGCTTAACCCATGCCCGGACGTGGGATCATCCTGAGATAATTGCTCTACCCTGCCCCGCTAAGGCCCACAGCAGGACTGAGCCTGGTTGCCCACAGTGTCACCTGCTCATTGGTGCCCCCTGCAGGGCATCTTCCCTCCTCGTCTCAGCTCTCACCCGCCATGGGGGCTGCCTGGGGACACCTCCCAGGTAAACCACTAGCTCTGAGTCCTTTTGGGGTCATCTTTGGGGGAAACCTATCCAAAAAGGAATAGGAATGCCAGGTATTCCTGCAAATAGATCATATAGATTTATACCACATACTCACCCATATTTGATCTTCCATAATCTGACAAGTAAAAAATGGTATCTCAGCCGGGTGCGGTGGCTCATGCCTTTAATCTCAGCACTTTGGGAGGCCGAGGCAGCTGGATCACTTGAGCTCACGAGTTCAAGACCAGCCTGTGCAGCATGGTGAAACCTTGTCTCTACAAAAAATACCGGGCATGGTGGCACGTGCCTGTAATCCCCACTACTCAGGAGGCTGAGGTGGGAGGATGGCTTGAGTCTGGGAGGTGGAGGTTGCAGTGAGTCGAGATGGCACCACTGCATCCCAGCATGGGTGATAGAACCAGACCCTGTCGCAAAACAACAACAACAACAACAAAAACCAGTTAATTTATGGCCAGGCATGGTGGCTCACACCTGTAATCCCAGTTCTTTGGAAAGCTGAGGCAGGAGGATCACTTGAGACCTGGAGTTTGTCTCTATAAATAATTTTTTTTTTTGGTGGGACAGGGTTCTCATTCTGTCACCCAGGCTAGGGTACAGTGGCACAATCACATCTCACCGCAGCCTCAACCTCCCAGGGTCAAGTGATTCTCCCACCTCAGCCTCCCGAGTAGCTGCGACTACAGGCGTGGGCCACTATGCCTGGCTAATTTTTTATATTTTGTAGAGACGGGGTCTTGCTATGTCACCCGAGCTGATGAACTCCTGGGCTCAAGAGATCTGCCCACCTCCACTTCTCAAACTGCTGGGATTACAGGCGTGAGCCACTGCACCCAGCCCTCTACAAATAATTTTAAAAACTATTTTACTATTTTAAAAGTTGAAGGTTATATTTTGTTTTATCTATGAGTTTTATTTCCCCTTTTTATTTTGTTTCGGCTTGTCTGGAAATGGTATATTCCGTTTCTTCACCCATAGGGCTTCACAACATCAGCACTGCTGACATTTGGCGCTGATAATCCTCTGGGGTGAGGCCATCCTGGGCACCACACGGTGTTGAGCAGCATCTCTGGCCTCCATTCTTCAGACACCAAGAGCAACACCTCCACCCCTTGTGGTGACAACTAAAAGATGTCTCCAGACATCAACATGTGTTCCTTTGGAGCAGAACCACCCCGTCCTGTGAGAGGCACGGATATGGTGGTTACAATGGATACATCAACAAGAATTTAAATGTTTGGCCGGGCGCGGTGGGCGCGGTGGCTCAGGCCTGTAATCCCAGCACGTTGGGAGGCCGAGGCAGGTGAATCACTTGAAGCCAGGAGTTCCAGACCAGCCTGGCCAACATGGTGAAACCCATCTCTATTAAAAATACACACACACTGCCGGGTGCGGTGGCTCACGCCTGTAATCCCAGCACGTTGGGAGGCCAAGGAGGGCGGATCACGAGGTCAGGAGATCGAGACCATCCTGGCTAACACGGTGAAACCCCGTCTCTACTAAAAATACAAAAAATTAGCCGGGCGTAGTGGCGGGCGCCTGTAGTCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATGGCGTGCACCCGGGAGGCGGAGCTTACAGTGAGCCGAGATCGCGCCACTGCACTTCAGCCTGGGCGACAGAGCGAGACTCCATCTCAAAAAAAAAAAAAAAAAAAAAACTACACACACACACAAAAATTAAAATATTTATCTTCCCTCTGAGCCACACACAAAGACCTCAACCACCCCCTTCTATCTTTCCTATTTTTATTTATTTATTTATTTTGAGACAGAGTCTCGCTCTGTCACCCACGCTGGAGTGCAATGGCGCGATCTTGGCTCACTGCAACCTCTGCCTCTGGGGTTCAAGCGATTCTCCTGCCTCAGCCTCCTGAGTGGCTGGGATTACAGGCACCTGCCACCGCACCTGGCTGATTTTTGTATTTTTAGTAGGGATGGGGTTTCACCATGTTGGCCAGGGTGGTCTCAAACTCTTGACCTCGTGATCCACCGCCTCGGCCTCCCAAAGTGCTGGGATTACAGATGTGAGCCACCATACCCAGCCTGATGAAAATTTTAAAAAAGAAAATTCTTAAACCGTTCTAAGTCAGGGAACTGTCTGTATACATCTTACTTATACAAAAAGGTTACATATGCACCTTACATTGTTTTTGTTTTTGTTTTGAGATGGAGTCTCACTCTGTCACCCAGACTGGAGTGCAATGGCATGATCTTGGCTCACTGCAACCTCTGCCTCCCGGGTTCAAGCGATTCTCCTGTCTCAGCCTCCCGAGAGGCTGGGATTACAAGTGTGCACCACCACGCTTGGCTAATTTTTTTTGTATTTTAGTAGAGACAGGGTTTCACCATGTTGGCCAGGCTGGTCTTGAACTGCTGACCTCAGGTGATTGGCCTGCCTCGGTCTCCCAAAGTGTTGGGTTACAGGCATGAGCCACGGCACCCAGCCTGCACCTTACATTGTAACACACGTGTGGACACACCCTGGAGTCACAGCTACAGGACAATTTCAGAGTCCATGACGGCCCCACATCCCTTCCCTGGGTCACCAAGGCCTCAATATGCCCCTCCCCCCTCCCTGTGTGTGATATCTATACAAGTCACCTGCATACCTGTAGCAGACGCTGGCATCACTGTGGGCTCCCCGCCCTCCCATTCCTCAAACTGGTTTTCCTCTAAGGTTTCCCTGCCCATCTAACCTTCTCCTGGCACTCCCTCATGGTGCATTTCTCTCACCTGCCCGTCCGTCCCAGGCCACCTGCCCTCTCAGCTGGGACTCCAACTTCCCCTGATTTCTGGTCTCTTCCATCCTGCTTTTGGACTTTTCCTGGGACACTTGCATTTCTTCTTTTTCTTTTTTTTTTTTTTTGAGACAGAGTTTCACTCTGTCACCCAGGCTGGAGTGTGATGCGATCTCGGCTCACTGCAGCCTCCACCTCTCAGGTTCAAGCGACTCTTCTGGCTCATCCTTCTCAGTAGCTGGAACTACATGCATGCGCCACCATGCCTAATTTTTGTTATTTTAGTAAAGACTGGGTTTCACCATGCGTTGACCAGGCTGGTCTCAAACTGCTGGCCTCAAGTGATCTGCCCGCCTTGGCTTCCCAAAGTGCTGGGATTTGGGATTACGGGCGTGAGCCGCCGAGCCTGGCCTCCTTCTTGCTCTCCTTTCTCCTCCCAGACCTTTGCTCCCCTCTCAGTCCTGCTCCTCTCTCCCTCCCGCGCAGCCCCCACCCTGCACCCGGGCAGGTGCCACAGGGACGTGCAAGACAGCTACCACCCTGCACAAGCCCGAGTCCCAAACCACTCAGACCCTGTTTGTAAAAATCGGCATGCTCCTTTATTTGTTCAGAAGAGCAGCCAGCATCACCCTTGCCACTCAAACCTGGCACATACGCTTCGGAGACAATGGCCTCGGGACCCTCATGCTGCTGGGCCCAGGAGAGACAGTTCTGAGGCAGAAACTCGGCGTCCAAGGGGGGCCGCGGGTCAGGCACTGTGGTGAAGGGAACGCCGGGGAGTCCGGCCCCACCTTGCAGCTGGGGACACGGGGGCGCAAACAGAGGGGGCAGGCTAGTGTCCCGCTGCCCCAGGAACAGACCTCAGGGCCCCAGGAGGGTCTGCAGGCAGCTAGGAGCCTGCCAAGTGCTGGTGGAAGTAGAGGCCGAAAAGGCTGGCGAGCAGCTGGCAGGCAGCCGTCCACCAGATGAGGTAGGCCAGGACGCCACGGAGGAAGAGGGGAGTAAGCAGGCCACCCAGAGCCCCGGCAATCCGCGCTGCAGTCTGCTGGACTTCGTCCTCCCCAGAGCCGATGGGGGCAGCGCTGGCTGAGGATGGGTCGGGGGATAGTAGAGGAGCTGGGCCCAGGCCCCAGGAATAGCCTCCTAGGAGAAGAGGATGAAGCGAGGTATGAGTGGAAAAATGGGGGAGGGGGCGAGGGACAGGGCTGGCACGGGGGGCCAGGCCCATTCCTCCAGACACTCCCACCCCTGTCTCAGACTCCATCTCCAGCCCAGTCTCCACCCCCTCAGGCGCTGCCCCCTGTCCAAGGCAAACCCTACCCCAGGCCCCACCTCCTGCTCAGATCCTGCCTCAATACATGCCCTGCCCCCTCCCCAGGCCCCGCCTCCTGCCAAGACGCAACCCCTCCCCAGGCTCCACCTCCTAAGGCAAACGCCATCCCAAACTCCACCTCCTGCTCAGACCCTGCCTCACCACAGTCCCCGCCCCCTACCCAGGCCCCGCCTCCTGCTCAGATTGCACCCATCCCCAGGCTCCACTTCCTGTCCAAGGCAAGCCCCACTCCAGGCTCCGCTTCCTGCTCAGACCCTGCCTTACCACAGTCTCCGCCCCCTGCCTAGGCCCCGCCTCTCCCCCCCCACCGCGGTCCCCGCCAGAGTCCACCTCCACTCTGTTTTATCTTCCAACTCCGCCCCTCCTCCACCCCCACACCGCGGCATCTCACCCAGCGTCTTGAGCAGAAGTGTGCAGTTGAGGGTGAGGATGAGCGGCGTCAGGTACTGCAAGCTCACCACGGTCACATAGCAGTAGACTCGGACCACCTGTGGGCAGGTAGCAGGGGTGGCTGCAGCAGGAGGCCTTCTGGTTTGGGACGACTCCACGCCCAAAGGACCAGGAACCCCACCCTGAGCCCCAGGTTCCCTCTGGCCTAGGTCATCGGGGCGTCCATACCCTCTGCTGGATTTCACGGGCTTCGATGCGGCCAGCCTCCCTTCGCAGCTGCTCCACCCGGGCCTTGGCCAGGCACAGGTAGGCCTGCAGGTGGGGCCGGGTCACCGCCAGCCGCAGCAGGCACAGCACCACCAGCAACCAGAGGCGCCCAGAGTCGAAGGCAGAATCGGACAGCCTGTGCGGAGAGGGCCGGGGGCAAGGGACTAAGAAGGTCGCCCCCGACCCCCCAGGATCTTCCCCAGGCTCCTCCCTGAATCTCAGAGGCTAGGGCACCCAGGGGAGCCCCAGCTACCTCCTAGCCCCACCCAATACGCACAGGGAGAAACGCGTCTCCCCAAACGGCGGCTGGTGCAGGAAGTCCCGTGCAATGGGCTTTGTCCAGAGCCACAGGATGAACAGGGGAGACAGGAAGCTGGTGTGCAGGAGGAACCTGGGGGGTGAGGGCAGGAGGGAGTGAGGCCTGGGTACCCCCTCTCCTCGAGTCTCTCCCTTAAGCTCCCTAGTCCCCCCACCCACCAAGCGACCCACTTAACTGCAGCATGGGTCTGTCCTCCGACATGGTCAGTGCGTCCCGGTGGGTCTGGGCCAGCCGCAGGCCTGGGAAGGTGAGGAAGGCACCCAGCACAGAGCCCACCACTGCCAGTCCCACGCGGATAGCCAGCTTGGCCACAGGAAGCCTAGGAGAACACCAGGTCACGAGCCTGCCTGGGGGACCCTGGGAGGGTCCCAGCCTGCCCTTGCCTCCCTCCCCCATTCCCAGGACTCACGCCCAGTCCCAGCCCTGCTTCTTCAGAAGTGGCTCTAAGTTCTGGGTCATGCTGGCCAGACCTGGGGACGATAAGAAGAGGACCGAGTAGAGTGAATTCCTAGGGTCTCTAAGGCCACTCTGTTCCCTAACCCCCCATCCCTCAGGCATCCGTTTGCTTCCCAAGTAGGAATGAACAAGGGTCTGCCAGGCCCTGAGCCAGGCACAAGGACAATTTTGTGCTCTAGTTACACAGTACTTTTTACAAGAAACAAGATTGGAGTGGTGGTTCACGCCTGTAATCCCAGCACTTTGGGAGGCTGAGGCAGGCGGATCATCTGAGATCAGGAGTTTCAGACCAGCCTGGCCAATGCAGTGAAACCCCCGTCTCTACTAAAAATACAAAAATTAGCCAGGTGTGGTGGCAGGTGCCTGTAATCCCAGCTACTTGAGAGGCTGAGGCAGGAGAATCGCTTGAACATGGGGAGCGGAGGTTGCAGTGAGCTGAGACCGCACCATTGCACTCCAGCCTTGGGGACAAGAGTGAAACTCAGTCTCAAAGAAAACGAAACAGAATGCACCAGGCAGACACTCCTGATTGGGCTGGGAACATTCAGGGGTATCTGTTGAGCCTGAGCTCCCTAGGTTATAGAAGGAATCTAGAGGGGGATGAAGGACTCCTGCAGGAGAAAACCAAAGTCCTCCTGGAGGAAGGAATCCTCAATTCAGGACCCAAGATTTTTCAAAAATTAAGAGCAGGGCTGGGTGCAGTGGCTTGCACCTGTAAGTCTCAGCACTTTGGGAGGCCAAGGCGGGTGGATCGTTTGAGCTCACAAGTTTGAGACCAGCCTGGGCAACATGGCAAAACCCCCATCTCTACAAAAAATACAAAACCAGGGGTGGTGGTGCACGCCTATAGTCCCAGCTACTGTGAAGGCTGAGGTGGGAAGGATGGGTTGAGCCCAGGATGTGGAAGTTGCAGTGAGCTGAGATCATGCCACTGCACTCCAGCACAGAGCAAGACCTTGTCAAAAAAAAAAAAAAAAAGGAGCAAATTCATATGAGCTCACAGGCAAAATCACCAAATGCATAAGGAAACAAATCACCATAAAGGAGAGTTAACAGAAAAACAACAGTCAAGTTTAGGCCTCAAAGACTTCAGAAATTGGTGCTGTCAATTATGTGTCAAATGACTAAGGAAATGAAAGCTGTAATCACAGAACAAGTGACATGAGAATTCCTTCAGATGACTGGGTAGAGTTGCAAAGGAACCAAATTAAACTCTTCCAAAGGAAAACTGTAAGTATTGAAATAATAGGTTGTTAAACAGCACATTAGGAACAGCCAAAGGAGGAAGTGATGAACTGGAAGACAGATCTGAAGAAATCACTCAGATTCCAACTCAGAAAAACAAGTAGGTGAGAAATATGAAGAGAGGCTAAGAGATAAGGAAGACAGAACAGAGAGCCCAACGCAAATCAAATCAGAGCCCCAGAGGGAGGGAAGAGAAGGAATGAAGAATAAAAGGAATTACTGGAAGAGAATGGTTGAGAAGTTTGCAGAATGAAAGACAGACACAAAGTATATCAAACCATGTAAATAAAAAGAAATCCATACCTAGACATAATGGAGTGAAACTGCAGAACACCAAAAACAAAAAAATTACAAAGCAGCCAGGGAGTTAAGACAGATCACCTACAAAGGAACAACAATTAGGCTGACAGCCAATGTCAACTGCAACAACAGAAAAGGAACAAATAGAAAGCAAAAAAGTAAGATGGTAGAAACAAAGTCAAATATGTCAGTAATCACAATAAATGTAAGTAGACTAAACTTTAAAGTTAAATGACAAAGACTGTCAGACTACATTGAAAATATCCAGCTACATGTTTTTTAAAGGATGACATACCTTGACATAAAGTCACTGGAAGACTGAAAGTAAAGGGATGTTAAAAAGATACAGCAAATACTAATCAAAAGAAAGCAAGCTAGAAAGGCTATACTACTACCAGCCAAACTAGACTAAGAAGTAGTATTAGAATAGGCCAGGCGCGGTGGCTCACACCTGTAATCTCAGCACTTTGGGAGGCCAAGACGGGCAGATCACAAAGTCAGGAGTTCGAGACGAGCCTGGCCAACATGGTGAAACCCTGGCTCTACTAAAAATCCAAAAAATAGCTGGGCATGGTGGCGGGTAATACCAGCTACTTGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCAGGAGGTGGAGGTTGCAGTGAGCCGAGATTGCGCCACTGCACTCCAGCCTGGCCAACGAGAGCAAAACTCTGTCTCAAAAAAAAAAAAAGTAGTATTAGAAGACAGAAGGGTTCCATACATCATGATAAAATGGCTGATTCACCAGGAAAATGTAACAGTTCTAAATCTGTGAATAGAACTAATCTGTGAATTGTGAATAGGCTGCAAAATATATAAAGAAAACACTGACAGAATTGATAGGGAAATTGAGAGCTCTCTTGTCCCAGAGGGAGATTAACTTCTGCTGACTGATAAGTCACAGACAAAAGGTTAGGCAAGATGGAGATTTGAATTTATTAAACTCATAGAGCCAGGGAATATGTCCTTCAATTAGAACATGTGAAAAAAGGCAAAACAACAAAAACAGAATATGTCCTTCAAGAAAACAAGGAATAGTCACAAAATGTGATCACATTCCAGGCCATAGGGCAAATCTTACCAAATTTTAAAGAAATTATTTCAAATAGACCATCTGTGCAATTGAGCTAGAAATAAATATGTATTTTTTAAAGATCTATGTTTGAAAAATTTAAAAATATTTAATAATCCATAGGTCAAAGCATAGCAAGACCCCATCTCTACAGAAATCAGAAGGGAAATGTTAAAACACCCCAAACAGAATAATAAAAAATATCAGTCAAAACTTGGGTAAACTGCCAGGTGTGATGGCTCACACCTGTAATCCCAGCACTTTGAGAGGCCGAGGTGGGTGGATCACCTGAGGTTAGGAGTTTGAGACCAGCCTGGCCAACATGGTAAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCAGGCGTGGTGGCGTGCACCTGTAATCCCAGCTACTCAGGAGGCTGAGGCAGAAGAATTGCTTGAACCCAGGAGGCAGAGGTTGTAGTGAGCTGAGATTGCACAGTTGCACTCCAGCCTGGGTGACAAGAGCAAAACTCCATCTCAAAACAAAAACAAAAACAAAAAAAAACTTAGGTGAACAAAAGTGAGACCTGGTAAAATATATATAGCATTAAATGCTATATATGCTATAAAATTAGAAAAGATTGAAAATTTATGAGCCAAGTAGCTAACTGAGAAATTGGAAACAAGAAAAGGAGGTACGCCAGTACTGTTCTCAAATCCAGAGGTCCTAGCCACACCAAAGGGGAAGGATCAGACAGAACAAAAGAAAACCAAAAAGAATCTGCAATTCAATAAAAATATAATTGTTTAGCAAGGTTAGTCCGTGGAGACACTCAAATTTGACCCCTATATGATAACACAAAAATTAATGTCACTGTCCATCAGCAACAGTGAGTAGTTTAGGAGCTTATATGAAATGTAAAAGTTGAAATATTTTATTTATTGATTTTTAAGATGGAGTCTTGCTCTTGTCGCCCAGGCTAGAGTGCAATGGCGTGATTTCGGCTCACTGCAACCTCTGCCTCCGGGGTTCAAGTGATTCTCCTGCCTCAGCCTCCCGAGTAGCTGGGATTACAGGTGCATGCCACCTTGCCCAGCTTTTTTTTTTTTTTTTTTTTTAGACGGAGTCTCGCTCTGTTGCCCAGGCTGGAGTGCAGTGGCGCGATCTTGGCTCACTGCAAGCTCCACCTCCCGGGTTCACGCCATTCTCCTGCCTCAGCCTCCCCAGTAGCTGGGACTACAGGCGCCTGCCACCACGCCTGGCTAATTTTTTGTATTTTTAGTAGAGACGGGGTTTCACGGTGTTAGCCAGGATGGTCTCGATCTGCCGACCTCGTGATGTGCCCATCTCGGCCTCCCAAAGTGCTGGGATTACAGGCATGAGCCACCACCCCTGGCCAGTCATTCTATATTTTCTTCTAAAATATTTCAGCCAGGCGTGGTGGCAAGCGCCTGTAATCCCAGCACTTTGGGAGGCTGAGGCAGGTGGATTGCCTGAGGTCTGGAGTTCAAGACCAGCCTGGTCAACGTGGTGAAACCCCATCTCTAGTAAAAAATACAAAAAGTAGGCCGGGCACGGTGGCTCGCGCCTGTAATCCCAGCACTTTGGGAGGCTGAGGCGGGTGGATTGCCTGAGGTCTGGAGTTCAAGACCAGCCTGGTCAGCATAGTGAAACCCCATCTCTAGTAAAAAATACTAGAGATCGCCCACTGCACTCCAGCCTGGGGGAAAGAGCGAGACTCTGTCTCAAAAAAAAAAAAAAAGACAATGTAGAATGACTTTCTGATTTTAGGGAAGGATATTTTTCAAGACAAATATCAACTAAAATAATCAACTTCCATTCATCAAGACACTAGAGGTGACACTTACAACTACATTTGACGACTCAGCAAAGAAAGTGTGATGCATGTATGCAGACGGAAAATAATGCAAATAGTGGTCAAATGAAAACAAAAGAAGTATTGGCAATGAAGTGGATAAATTTGGAACACTTGTGCACTGCTGCTGGGAATATAAAATATAAAATGGGCTGAGCACAGTGGTGCACACCTGTAATCCCAGCACTTTGGAAGGCCGAGGCTGGCGATTGCTTGAGTTCAAGAGTTCAAGACTAGCCTGGGCAACATGGCAAAATCTGTCTCTATTAAAAACACAAAAATTATCTGGGTGTAGCCAGATGTGGTGGCTCACACCTGTAATCTCAGCACTTTGGGAGGCCAAGATGGGCAGGATCACCTGAGGTCAGGAGTTAAAGACCAGCCTGGCCAACATGGCAAAACCCCATCTCTACTAAAAATGCAAAAATTAGCCAGGTGTGGTGGCGCACACCTGTAATCCCAGCTACTTGGGAGGCTGAGGCAAGAGAATCACTTGAGCCTGGAAGGTGGAGGTTGCAGTGAGCCAAGATCATGCCACTGTACTCTAGCCTGGGTGACAGAGGGAGACTGTCTCAAAAAATAAAAATAAAAATAAAAAAATAAATTAGCTGGGTGTGGTGGTGGGAGCCTGTAGTCCCAGCTACTTGGGAGCCTGAGGCATGAGAATCACTTGAATCCGGGAGGCAAAGGTTGCAGTGAGTGGAGATCACGCCACCACTGCACTCCAGCCAGGGCAACAGAATGAGACTCTGTCTCAAAAATAAAATAAAATGGTTCAGCTGCTGTATAAAACAGTATGGCAGTCCCTCAAAAAATTAAAAGTAGAATTATCATATAATCCAGCAGTTCCACTTCTGGATATATACTCTCCAAAACTGAAAATGGGGTCTCAAAGAGATACCTGTACACTCAGGTTCACAGCGGTATTAGTCAAAAAGCCAAAAGTTGGGAACAACCCAAGCATTCATCTGTGGATGAATAAACAAAATGTGTTCCACCCAGACAATGAAATAGTGTTCAGTCTTTTTTTTTTTTTTTTTTTTTGAGATGGAGTCTTGCTCTTTCACCCAGGCCGGAGTGCAGTGGCACTATCTAAGCTCAC += +SEQUENCE_ID=masker_prefix1 +PRIMER_TASK=pick_pcr_primers_and_hyb_probe +PRIMER_NUM_RETURN=5 +PRIMER_PRODUCT_SIZE_RANGE=50-500 +PRIMER_EXPLAIN_FLAG=1 +PRIMER_MASK_TEMPLATE=1 +PRIMER_MASK_FAILURE_RATE=0.2 +PRIMER_MASK_5P_DIRECTION=1 +PRIMER_MASK_3P_DIRECTION=1 +PRIMER_WT_MASK_FAILURE_RATE=0.0 +PRIMER_MASK_KMERLIST_PREFIX=homo_sapiens +SEQUENCE_TEMPLATE=CTGACATTTTATGCCCAAGACAATGGCTCTGCCTTCTACCTTCACATGCTCAGGGTCACTCAGCACGTCCTGGAGGATTTCTCTGGCCTGGAGTCCCTGGCCCGGGCAGCAGCGCTAGGGACCCACCGAGTGGTCACAAGGCTGTTTATGTTGGGCCTCCTGGTGGAGTCGGCATGGTACCTCCATTGCTACCTGACAGACCTGCGGTTTGACAATATCTACGCCACTCAACAGCTGACCCAGCGGTTGGCACAGGCCCAGGCTACACACCTCCTGGCCCCTCCACCCACCTGGCTGCTCCAGGCGGCTCAGCTGAGGCTGTCACAGGAGGAGCTGTTGAGTTGTCTTCTAAGGCTGGGGCTGCTTGCCCTGCTCCTCGTGGCCACTGCTGTGGCGGTGGCCACAGACCATGTAGCCTTCCTCCTGGCACAGGCGACTGTGGACTGGGCTCAGAAGTTGCCAACTGTGCCCATCACGCTCACGGTCAAGTATGATGTGGCATACACTGTCCTGGGCTTCATCCCTTTCCTCTTCAACCAGCTGGCTCCGGAGAGCCCCTTCCTCTCCGTCCACAGCTCCCTACCAATAAAGGAGGGCGCGCAGAGCGGCGCGGCGGGCCCGCCCGCGGCCGCCGCCCCGCGCCTGCGCCGGCGGGCGGATCAGCCGACATCCAGGAGCTCGTCTCCTTGTGTGACTGTAAAACCCCATTTTCGGTGTTTCTCTCTGGAGTGCTTTCCAGCCCCTTGACCCCACGTTCTCACCCCACGTGATGCCATCAGACCCCTTGTTTTTGCCCACCTGGTGAGCAGATCACAGTGTCTCCTGTCTGGCTGTTTTTTTGAGACGGAGTCTCACTCTGCCGCCCAGGCTGGAGTGCAGTGGAACGATCTCAGCTCACTGCAACCTCCACTTCCTGGGTTCAAGCCATTCTCCTGCCTCAGCCTCCCTAGTAGCTGGGATTACAGGCGCCCACCACCACACCTGGCTAATTTTTGTGTGTTTTTGGTAGAGACAGGGTTTCTCCATGTTGGCCAGGCTGGTCTCCAATTCCTGGGCTCAAGTGATCCGCCTGCCTTGGCCTCCCAAAGTGCTGAGATTACAGGCGTGAGTCACTGCACCCAGCCTTGGCTGTTTTAAATTCCTAGTTCTAAATTTACTATTACAAATGTTTAAAGTACCCCTACTGACCTGTTGCTGCTCCTTCCTCCTCCACACCCACACACCCCGTTTAGACCCGCAAGACAGAGCAGGGTGAAGTTCATGGTCACTTATGTCCACTCTGTGCAACAGCTCGCAGGGGCTCCCCAGGGAGGGCGCAGGTCGGGGACCAGGCACGGGAGCACCTAGAATGTTCCTTTACTAGACGTGGAGTAGAGCTGATTAGATGTGAGCAGTGGCTCTAGGAGTTGGTTCTATGATTCTCTGTGTTTCTGCCTTTTAAGAAATTTTATTTCTCGGCCGGGCTCGGTGGCTCATGTCTGTAATCCCAGCACTTTGGGAGGCCGAGGCAGGCAGATCGCCTGAGGTCAGGAGTTTGAGACCAGCCTGACCAACATGGAGAAACCCTGTCTCTACTAAAAATACAACATTAGCCAGGCGTGGTGGTGCATGCCTGTATTCCCAGCTACTTTGGAGGCTGAGACAGAATTGCTTGAACCCGGGAGGCGGAGGGTGCAGTGAGCCGAGATTGGGCCATTGCCCTCCAGCCTGGGCAACAAGAGTGAAATTACATCTCCAAAAAAAAAATTTTTTTTATTTCTCGAGTTTGAGTGAAAGGAGCGACCCGGAGGTGAGGCAGTGGGGCGTGTGGGTGCGCATGAGTGCGAACACACGTGGGGGTGCAAGTGCATGTGTGTATGTGCACGCAGGTTGCTCCTAGGGGTGCAAAGGCGCGCGCACGGGTGCGGGGTGCGCGCCCCCTCGCGGCGCCTTCACGGCCCTCCCGCCCCTCGCCCTGCAGAGTACAGCGGCCGCCGGCAGCCCTACCCCTTCGAGCGCATGATCTTCGGCGCCTGCGCTGGCCTCATCGGGCAGTCGGCCTCGTACCCGCTGGATGTGGTGCGGCGGCGCATGCAGACGGCCGGCGTCACGGGCTACCCGCGCGCCTCCATCGCCCGCACGCTGCGCACCATCGTGCGGGAGGAGGGCGCCGTGCGCGGCCTCTACAAAGGCTTGAGCATGAACTGGGTCAAGGGTCCCATCGCCGTGGGCATCAGCTTCACCACCTTCGACCTCATGCAGATCCTGCTGCGGCACCTGCAGAGCTAGGGGACCCTGAGCTGCTCTCAGGACGGTGGACCGGTGACCCCTTTGTATTCTGGGCCCATGGAACGGTGGGGGGGTGCGCTTGATTCTACTTCAGGAGGCACATGGGGCGCTTTATGGAACGAGCAGGTGGGCCTGAGGGGCCTGGGCTCAGAGTCCACGTCCAAACGCAAAGCTGGCAGCCCTGGAAGTGCAGTGTTGGGGCGATGGTGTGGGGGGTCCCGCAGCTCCCCTCTTCCTTCCTCTGCAGACGCTGGCGCTGTCTGCCGGAGGTGTTGCCCAAAAGGCCCTAGTGGGGCGTGGTCAGCTCCACCTCCTGATCCTGTGTGTCCTCCGACATGCTGCTGATTCTAGTGACCCCTGTCCCCACCAGGCTCAGAGCCAGACCGCGCCTGGACCTTCTTGTTCTGACTCCACGTGCCTGCCCGGCCTCCAGGGTGCGGGGGCGCCTTTCTTGCAGGCGGACCCTGCCCAGGATGGGGCCAGCCTCGTGCTCAGCTTTGGCCACAAATGCAGCCCCTGGCCCACCCCACCCTGCCGGCCCTGCCTTCTCCAGTATTTCCCACATGGCCACGACTCCTCAGTCACTAGAGCCTCCTGCTGGGAACAGTGTCCCCCAGAGCCTCATGTCTATCCTAGACCCTGCAAGCAGCTGGGTCCCCAAGAGTGCATCTCCCCCTAGAGTTGCCTGCCCATGCCCACCTGCTTTGTAACCTTCCCAGGAGATTCATGCTTGCTCTGCACAGCAGGGCTCGAGGCCCAGGCCATGACACGGAACTGCCTCAGGTTTGGGTCAGACCTGCATCCTGGGGCATCTGCTGAAATGTGAGCACACAAACCACCTCCTTTGGCCCAGAAGCCCCCCAGGCCTAGCATCTCAGTGCCCCAACCCTCTGCCCAGCTGTGGTATCCAGCAGGTCCTTGGGTCCCCACTTGAGCAGGCACTTGGCTGGGATATGGAGCAATTTAAAGCCCACAGGGGTTGTTCAGTTTCTATGAAATGGAGCATGGGGTGCCTGCTAGCCTCAATCCCCCGAAGTGGGAGCCTCATGATAGAGTATAGCTTGGGGGTGGGAGGTGAGGAAAATCTGAGGTACCCAGGGGAACCCCCAGCTAACTGGTCTCTCAGAGGAGTCCCCCAGGGCCCGCCAGCTATCACAGGGACTCAGAAACACCCATTTCCTAATGACATGGTGAGTTTCTTGATTTCTTTTTTTTGTTTGTTTTGTTTTGGTTTTCAACTTGGCTGACCCCGGGTCTATGATCTATTCACATCGAACCCCTGACTGGTCTGCCTGGTGCCAGGGTGAGCGTGACCGTGAGTGTTGCTTTCGACAGCTGGCTCAGCACACGCTGTGTGAAGGGATCTGAGCTTGTTCATCTCCAGTCGTGACTTCATTTCCCTTCCTTCTGTCCTCCTCCTGTTCTTGCCTTGGACCTGCAGGTGTGCAGACCGCTCTCTCTGCCTTCCTTGCATGTGGCCACCAGCCATCCCTGATCTTGTCCCCAGAGGCCCAGGCAGCCTGTGATGGCTGTGAGGGGCTGTCCCACTGTGTGGGTATCCCTTACCCAGCACTTAAACTTGGCAGGAGAGGCAGGGCAACCCTCACAGGGAGATGGGAGGGCACCCAACTCCCACAAGCATGCAACAGCAGTAGGAATTGGGGGTCTGCCCCAGGTGGGTGAGACCAAATGAGTGGATTTGGGGCCACAGGCTAGGCAGGAGAGACAAGGGGTAGGTGGGAGGGTCCCCCAGTCCCTGCTGACCCCAGTGTGTCTCCCCGGAGATGGCTCCTAGCTGAGTGGGACCCGGCAGGAGTTGGGGACAGTGCTGTCCCCCACCCCTGCACACAGCCAGGCCCTCAGGCTCTGCGGTCACTCGCCTCCCTGCTGGTCACTGGTCTTGGTCTGGAGTTATATTTTGATGCCATGAAGACACTGTTTATATCTAATGTTTATATATTTTAAAGATTTGTGCCAAGAGAGTATATTTAATAAAAACTTAAATGACTTCTTCTCCTGCTCCTGGCTCTTCTTTGGCTCTGACCGCCCCCCCATCTTCCCCCATGAACCCCCAAACAGGGTTGAAGTGCTTTTGACACATTTGTGATAAAAGTTCTGAATAAAAGTCTTGAATAAAGAAGTTTTTAAATGCAATTGTTGTTTGAATTAATACATACCACAATTTTCCAGAAAACACCAGCTGTCCACAAGGGTTTACAGTGAAAAGTAGGTGAACAGTTCCCTCTGCAGGGGGCCTCCTGTGACCATTTTCTCTTGTCTCCTCCCACAGAGATTCTGTGCATACACTCATCCCTTTCAGGATATATGTGGCCACCCACAAAGGCAGGAGGGGCCGTCTCTGTGCAGCCAGCACAGCCCAAAGTCTCATGGGCTTGAACATGGCCTTCCTTCCCAAGAGCCCTGCACTCTGGGGCTGGCTGAGGCTTCAGGCCTGAACGTCAGTCACCATCTGCAGGGGCAGCCACCAGAGGGTCTCCAGTGGCAATCCTGGCTCACTTCACCTGCAGCCCATTGGCCAGAGCAACTTGGAGGACCCACCCACTGCCAGGCCAGAAGTGGGAGCCTCTGCGTGCCCAGAGAGGAGGGGCGGCTGGGCCAGCACAGGCCTGGTGCTCTTGTTGGGGTGGGAGTAGGAATAAGTTCCACTGCGCTGACCCCCCACTGCTCTCCAATCTGCTCACGTGCAACAGGATTTCTTTTGAGTTGGTCTCCGTTGTGCACATTGTTCAGCAGCTGTGCGGTTTTCTCCTAGAGGATCCCCAGGATGACATTTACCAGGGTGGGTGTGGTGGCTCATGCCTGTAATCCCAGCACTTTGGAGACTGAGGCAGGTGGCTTGCTTGAGCCCAGGAGTTTGAGACCAGCCTAGGCAACACAGTAAGACCCCCCATCTCTACAAAAAAATAGAAAAATTAGGCCGGATGCAGTGGCTCACGCCTTTAATCCCATCACTTTGGGAGGCCAGGGCAGGTGGATCACTTGAGGTCAGGAGTTCAAGACCAGCCTGGCCAACATGCTGAAACCCCCATCTCTATTAAAAGTACAAAAATCCTAGCTACTCAGGAGGCTGAGGCAGGAGAATTGCTTGAACCTGGGAGGCGGAGGTTGCAGTGAGCCGCTGCACTCCAGCCTGAGTGACTGAGAAGTCTCCGTCTCAAAAAAAAATTTTTTTTTAATTAGCCAGTCTTGGAGGTGCGTGCCTGTAGTCCCAGCCACTCAGAAATTCACGCCTCCCTTATGTTACCAAACCAGGCTCGTTCTGCCCAGCAGTATGCCAACAGAGATGACAGGTTTTGCAGCAAAGAGTTTATTCACGAGGCAGCCGAGTGAGGAGACAGGAGAACAGATCTCAAATCCGCCTCCCTGAAGATGGGATTTTAGGAATATTTAAGGGATAGAGGAGCAAGGTGGTCAGAGACGTGGGGAAAAGTGGGGCAGTCGGGGAACCGTGCGTGCGTAGTCAAGCTTCATGGCTTTTCCATAGGATGTGTGTTCACAAAATGACATTGTTATCATGATCTGAGGGTGGAGTGTTTGGCCCTCTAACGTCAAAGGTCACCACCTAAATATACACAGGCCAAGGTGAAGGTTCGGCTCTCAGCCCATTTGGATTGGACAAGAACTGATCCTGTTCCTGAAGAACAACTTGAGCAACCATTACCATGGTGGCCCATACATAGAGATATTATCTATAAGGAAACTAGTGGGAGTTTTTTTGTTTGGGTTTTTTTGTTTTGTTTTGTTTCTTTGTTTTTGAGACGGAGTGTTGCTCTTTTTGCCCAGGCTGGAGTGCAATGGCATGATCTCGGCTTACTGCAACCTCCACCTCCCGGGTTCAAGCGATTCTCCTGCCTCAGCCTCCTAAGTAGCTGGGACTACAAGCGCCCGCCACCACACCCGGCTAATTTTTTGTATTTTTAGCAGAGACGGGGTTTAACCATGTTGGCCAGGCTGGTCTCAAACTCCTGACCTCAGGTGATTCACTCGCCTTAGCCTCCCAAAGTGCTGGGATTACAGGCTTGAGCCACCGTGCCCAGCCTATTTTTCTGTCTTTCTTTTCTTTTTTTTTTTTTTTTTTTTGAGACAGGGTCTCACTCTATTGCCCAGGCTGGAGTGCAGTGACACTACCATGGCTCACTGCAGCCTCCAACTCCTGGGCTCAAGCCATCCTCCCACCTCAGCCCCCCTAGGAGCTGGGACTACAGGTACATGCCACCACGCCTGGCTACTTTTTGTATTTTTTGTAGAGATGGGGTCTCACCATATTTCTCAGGCTGGTCTCTAACTCCTGGCTCAAGTGATCTGCCTGTCTTGGCCTCCCAAAGTGCTGGGATGACAGGCGTGAGCCACCACACCTGGCCTGGGAGTTTAGCTATACATTGTTTAGCTGAGTGACTTTTAACACTATGGGGTTTATAATCAACTAAAAACAAGTGAGGTAAGTTAAGATTGGTAGGTCTAATCAGGTGAGCCCTCAGTTCCCCTTATGGATGGGCAATTGTTAGGTATTGCCATGACAATGTGATAGCAATTTGGTGGGGGCTGCTGAACTCATCTGCACCCCGCCTCTGACATCCAGCCCAGATTTCTGATCTAAGTTCCACGTTTCACACCAGCCCCTGAACCTTGGTCAACCCCTCCCCTCTCCCACCCACCACTGTGGCATCTCCTAACAGTATAGAGGTGAGCCCGTGGACCTGTCTAGACTAGTGACAGTGAAGAAGATGTTTGCTAGCTGCGTCCAAGAAGAGCTTCAGGAGTCCTTTTTTTTTTGAGACGGAGTCTTGCTCTGTTGCCCAGGCTGGAGTGCAGTGGCGCGATCTCGGCTCACTGCAAGCTCCACCTCCAGGTTCAAGTGATTCTCCTGCCTCAGCCTCACAAGTAGCTGGGATTACAGATGCCCGCCACCACGCCCAGCTAATTTTTATATTTTTAGTAGAGACGGGGTTTCACCATGTTGGCCAGGCTGGTCTTGAACTCCCGACCTCAGATGATCTGAACGCTTCGGCCTCCCAAAGTGCTGGGATTACAGATGTGAGCCACCACACCTGGCCACCAAATGCTTTTTGCTATAAACAATTCCGCGCAGCCTAGGAGTGTCCTGAAGAAACACAACATGGTACCCCAGGTGCAACCGGCGGCTGATGACTGAAGGTAGGTGTGTAAGTAGCTTAACCCATGCCCGGACGTGGGATCATCCTGAGATAATTGCTCTACCCTGCCCCGCTAAGGCCCACAGCAGGACTGAGCCTGGTTGCCCACAGTGTCACCTGCTCATTGGTGCCCCCTGCAGGGCATCTTCCCTCCTCGTCTCAGCTCTCACCCGCCATGGGGGCTGCCTGGGGACACCTCCCAGGTAAACCACTAGCTCTGAGTCCTTTTGGGGTCATCTTTGGGGGAAACCTATCCAAAAAGGAATAGGAATGCCAGGTATTCCTGCAAATAGATCATATAGATTTATACCACATACTCACCCATATTTGATCTTCCATAATCTGACAAGTAAAAAATGGTATCTCAGCCGGGTGCGGTGGCTCATGCCTTTAATCTCAGCACTTTGGGAGGCCGAGGCAGCTGGATCACTTGAGCTCACGAGTTCAAGACCAGCCTGTGCAGCATGGTGAAACCTTGTCTCTACAAAAAATACCGGGCATGGTGGCACGTGCCTGTAATCCCCACTACTCAGGAGGCTGAGGTGGGAGGATGGCTTGAGTCTGGGAGGTGGAGGTTGCAGTGAGTCGAGATGGCACCACTGCATCCCAGCATGGGTGATAGAACCAGACCCTGTCGCAAAACAACAACAACAACAACAAAAACCAGTTAATTTATGGCCAGGCATGGTGGCTCACACCTGTAATCCCAGTTCTTTGGAAAGCTGAGGCAGGAGGATCACTTGAGACCTGGAGTTTGTCTCTATAAATAATTTTTTTTTTTGGTGGGACAGGGTTCTCATTCTGTCACCCAGGCTAGGGTACAGTGGCACAATCACATCTCACCGCAGCCTCAACCTCCCAGGGTCAAGTGATTCTCCCACCTCAGCCTCCCGAGTAGCTGCGACTACAGGCGTGGGCCACTATGCCTGGCTAATTTTTTATATTTTGTAGAGACGGGGTCTTGCTATGTCACCCGAGCTGATGAACTCCTGGGCTCAAGAGATCTGCCCACCTCCACTTCTCAAACTGCTGGGATTACAGGCGTGAGCCACTGCACCCAGCCCTCTACAAATAATTTTAAAAACTATTTTACTATTTTAAAAGTTGAAGGTTATATTTTGTTTTATCTATGAGTTTTATTTCCCCTTTTTATTTTGTTTCGGCTTGTCTGGAAATGGTATATTCCGTTTCTTCACCCATAGGGCTTCACAACATCAGCACTGCTGACATTTGGCGCTGATAATCCTCTGGGGTGAGGCCATCCTGGGCACCACACGGTGTTGAGCAGCATCTCTGGCCTCCATTCTTCAGACACCAAGAGCAACACCTCCACCCCTTGTGGTGACAACTAAAAGATGTCTCCAGACATCAACATGTGTTCCTTTGGAGCAGAACCACCCCGTCCTGTGAGAGGCACGGATATGGTGGTTACAATGGATACATCAACAAGAATTTAAATGTTTGGCCGGGCGCGGTGGGCGCGGTGGCTCAGGCCTGTAATCCCAGCACGTTGGGAGGCCGAGGCAGGTGAATCACTTGAAGCCAGGAGTTCCAGACCAGCCTGGCCAACATGGTGAAACCCATCTCTATTAAAAATACACACACACTGCCGGGTGCGGTGGCTCACGCCTGTAATCCCAGCACGTTGGGAGGCCAAGGAGGGCGGATCACGAGGTCAGGAGATCGAGACCATCCTGGCTAACACGGTGAAACCCCGTCTCTACTAAAAATACAAAAAATTAGCCGGGCGTAGTGGCGGGCGCCTGTAGTCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATGGCGTGCACCCGGGAGGCGGAGCTTACAGTGAGCCGAGATCGCGCCACTGCACTTCAGCCTGGGCGACAGAGCGAGACTCCATCTCAAAAAAAAAAAAAAAAAAAAAACTACACACACACACAAAAATTAAAATATTTATCTTCCCTCTGAGCCACACACAAAGACCTCAACCACCCCCTTCTATCTTTCCTATTTTTATTTATTTATTTATTTTGAGACAGAGTCTCGCTCTGTCACCCACGCTGGAGTGCAATGGCGCGATCTTGGCTCACTGCAACCTCTGCCTCTGGGGTTCAAGCGATTCTCCTGCCTCAGCCTCCTGAGTGGCTGGGATTACAGGCACCTGCCACCGCACCTGGCTGATTTTTGTATTTTTAGTAGGGATGGGGTTTCACCATGTTGGCCAGGGTGGTCTCAAACTCTTGACCTCGTGATCCACCGCCTCGGCCTCCCAAAGTGCTGGGATTACAGATGTGAGCCACCATACCCAGCCTGATGAAAATTTTAAAAAAGAAAATTCTTAAACCGTTCTAAGTCAGGGAACTGTCTGTATACATCTTACTTATACAAAAAGGTTACATATGCACCTTACATTGTTTTTGTTTTTGTTTTGAGATGGAGTCTCACTCTGTCACCCAGACTGGAGTGCAATGGCATGATCTTGGCTCACTGCAACCTCTGCCTCCCGGGTTCAAGCGATTCTCCTGTCTCAGCCTCCCGAGAGGCTGGGATTACAAGTGTGCACCACCACGCTTGGCTAATTTTTTTTGTATTTTAGTAGAGACAGGGTTTCACCATGTTGGCCAGGCTGGTCTTGAACTGCTGACCTCAGGTGATTGGCCTGCCTCGGTCTCCCAAAGTGTTGGGTTACAGGCATGAGCCACGGCACCCAGCCTGCACCTTACATTGTAACACACGTGTGGACACACCCTGGAGTCACAGCTACAGGACAATTTCAGAGTCCATGACGGCCCCACATCCCTTCCCTGGGTCACCAAGGCCTCAATATGCCCCTCCCCCCTCCCTGTGTGTGATATCTATACAAGTCACCTGCATACCTGTAGCAGACGCTGGCATCACTGTGGGCTCCCCGCCCTCCCATTCCTCAAACTGGTTTTCCTCTAAGGTTTCCCTGCCCATCTAACCTTCTCCTGGCACTCCCTCATGGTGCATTTCTCTCACCTGCCCGTCCGTCCCAGGCCACCTGCCCTCTCAGCTGGGACTCCAACTTCCCCTGATTTCTGGTCTCTTCCATCCTGCTTTTGGACTTTTCCTGGGACACTTGCATTTCTTCTTTTTCTTTTTTTTTTTTTTTGAGACAGAGTTTCACTCTGTCACCCAGGCTGGAGTGTGATGCGATCTCGGCTCACTGCAGCCTCCACCTCTCAGGTTCAAGCGACTCTTCTGGCTCATCCTTCTCAGTAGCTGGAACTACATGCATGCGCCACCATGCCTAATTTTTGTTATTTTAGTAAAGACTGGGTTTCACCATGCGTTGACCAGGCTGGTCTCAAACTGCTGGCCTCAAGTGATCTGCCCGCCTTGGCTTCCCAAAGTGCTGGGATTTGGGATTACGGGCGTGAGCCGCCGAGCCTGGCCTCCTTCTTGCTCTCCTTTCTCCTCCCAGACCTTTGCTCCCCTCTCAGTCCTGCTCCTCTCTCCCTCCCGCGCAGCCCCCACCCTGCACCCGGGCAGGTGCCACAGGGACGTGCAAGACAGCTACCACCCTGCACAAGCCCGAGTCCCAAACCACTCAGACCCTGTTTGTAAAAATCGGCATGCTCCTTTATTTGTTCAGAAGAGCAGCCAGCATCACCCTTGCCACTCAAACCTGGCACATACGCTTCGGAGACAATGGCCTCGGGACCCTCATGCTGCTGGGCCCAGGAGAGACAGTTCTGAGGCAGAAACTCGGCGTCCAAGGGGGGCCGCGGGTCAGGCACTGTGGTGAAGGGAACGCCGGGGAGTCCGGCCCCACCTTGCAGCTGGGGACACGGGGGCGCAAACAGAGGGGGCAGGCTAGTGTCCCGCTGCCCCAGGAACAGACCTCAGGGCCCCAGGAGGGTCTGCAGGCAGCTAGGAGCCTGCCAAGTGCTGGTGGAAGTAGAGGCCGAAAAGGCTGGCGAGCAGCTGGCAGGCAGCCGTCCACCAGATGAGGTAGGCCAGGACGCCACGGAGGAAGAGGGGAGTAAGCAGGCCACCCAGAGCCCCGGCAATCCGCGCTGCAGTCTGCTGGACTTCGTCCTCCCCAGAGCCGATGGGGGCAGCGCTGGCTGAGGATGGGTCGGGGGATAGTAGAGGAGCTGGGCCCAGGCCCCAGGAATAGCCTCCTAGGAGAAGAGGATGAAGCGAGGTATGAGTGGAAAAATGGGGGAGGGGGCGAGGGACAGGGCTGGCACGGGGGGCCAGGCCCATTCCTCCAGACACTCCCACCCCTGTCTCAGACTCCATCTCCAGCCCAGTCTCCACCCCCTCAGGCGCTGCCCCCTGTCCAAGGCAAACCCTACCCCAGGCCCCACCTCCTGCTCAGATCCTGCCTCAATACATGCCCTGCCCCCTCCCCAGGCCCCGCCTCCTGCCAAGACGCAACCCCTCCCCAGGCTCCACCTCCTAAGGCAAACGCCATCCCAAACTCCACCTCCTGCTCAGACCCTGCCTCACCACAGTCCCCGCCCCCTACCCAGGCCCCGCCTCCTGCTCAGATTGCACCCATCCCCAGGCTCCACTTCCTGTCCAAGGCAAGCCCCACTCCAGGCTCCGCTTCCTGCTCAGACCCTGCCTTACCACAGTCTCCGCCCCCTGCCTAGGCCCCGCCTCTCCCCCCCCACCGCGGTCCCCGCCAGAGTCCACCTCCACTCTGTTTTATCTTCCAACTCCGCCCCTCCTCCACCCCCACACCGCGGCATCTCACCCAGCGTCTTGAGCAGAAGTGTGCAGTTGAGGGTGAGGATGAGCGGCGTCAGGTACTGCAAGCTCACCACGGTCACATAGCAGTAGACTCGGACCACCTGTGGGCAGGTAGCAGGGGTGGCTGCAGCAGGAGGCCTTCTGGTTTGGGACGACTCCACGCCCAAAGGACCAGGAACCCCACCCTGAGCCCCAGGTTCCCTCTGGCCTAGGTCATCGGGGCGTCCATACCCTCTGCTGGATTTCACGGGCTTCGATGCGGCCAGCCTCCCTTCGCAGCTGCTCCACCCGGGCCTTGGCCAGGCACAGGTAGGCCTGCAGGTGGGGCCGGGTCACCGCCAGCCGCAGCAGGCACAGCACCACCAGCAACCAGAGGCGCCCAGAGTCGAAGGCAGAATCGGACAGCCTGTGCGGAGAGGGCCGGGGGCAAGGGACTAAGAAGGTCGCCCCCGACCCCCCAGGATCTTCCCCAGGCTCCTCCCTGAATCTCAGAGGCTAGGGCACCCAGGGGAGCCCCAGCTACCTCCTAGCCCCACCCAATACGCACAGGGAGAAACGCGTCTCCCCAAACGGCGGCTGGTGCAGGAAGTCCCGTGCAATGGGCTTTGTCCAGAGCCACAGGATGAACAGGGGAGACAGGAAGCTGGTGTGCAGGAGGAACCTGGGGGGTGAGGGCAGGAGGGAGTGAGGCCTGGGTACCCCCTCTCCTCGAGTCTCTCCCTTAAGCTCCCTAGTCCCCCCACCCACCAAGCGACCCACTTAACTGCAGCATGGGTCTGTCCTCCGACATGGTCAGTGCGTCCCGGTGGGTCTGGGCCAGCCGCAGGCCTGGGAAGGTGAGGAAGGCACCCAGCACAGAGCCCACCACTGCCAGTCCCACGCGGATAGCCAGCTTGGCCACAGGAAGCCTAGGAGAACACCAGGTCACGAGCCTGCCTGGGGGACCCTGGGAGGGTCCCAGCCTGCCCTTGCCTCCCTCCCCCATTCCCAGGACTCACGCCCAGTCCCAGCCCTGCTTCTTCAGAAGTGGCTCTAAGTTCTGGGTCATGCTGGCCAGACCTGGGGACGATAAGAAGAGGACCGAGTAGAGTGAATTCCTAGGGTCTCTAAGGCCACTCTGTTCCCTAACCCCCCATCCCTCAGGCATCCGTTTGCTTCCCAAGTAGGAATGAACAAGGGTCTGCCAGGCCCTGAGCCAGGCACAAGGACAATTTTGTGCTCTAGTTACACAGTACTTTTTACAAGAAACAAGATTGGAGTGGTGGTTCACGCCTGTAATCCCAGCACTTTGGGAGGCTGAGGCAGGCGGATCATCTGAGATCAGGAGTTTCAGACCAGCCTGGCCAATGCAGTGAAACCCCCGTCTCTACTAAAAATACAAAAATTAGCCAGGTGTGGTGGCAGGTGCCTGTAATCCCAGCTACTTGAGAGGCTGAGGCAGGAGAATCGCTTGAACATGGGGAGCGGAGGTTGCAGTGAGCTGAGACCGCACCATTGCACTCCAGCCTTGGGGACAAGAGTGAAACTCAGTCTCAAAGAAAACGAAACAGAATGCACCAGGCAGACACTCCTGATTGGGCTGGGAACATTCAGGGGTATCTGTTGAGCCTGAGCTCCCTAGGTTATAGAAGGAATCTAGAGGGGGATGAAGGACTCCTGCAGGAGAAAACCAAAGTCCTCCTGGAGGAAGGAATCCTCAATTCAGGACCCAAGATTTTTCAAAAATTAAGAGCAGGGCTGGGTGCAGTGGCTTGCACCTGTAAGTCTCAGCACTTTGGGAGGCCAAGGCGGGTGGATCGTTTGAGCTCACAAGTTTGAGACCAGCCTGGGCAACATGGCAAAACCCCCATCTCTACAAAAAATACAAAACCAGGGGTGGTGGTGCACGCCTATAGTCCCAGCTACTGTGAAGGCTGAGGTGGGAAGGATGGGTTGAGCCCAGGATGTGGAAGTTGCAGTGAGCTGAGATCATGCCACTGCACTCCAGCACAGAGCAAGACCTTGTCAAAAAAAAAAAAAAAAAGGAGCAAATTCATATGAGCTCACAGGCAAAATCACCAAATGCATAAGGAAACAAATCACCATAAAGGAGAGTTAACAGAAAAACAACAGTCAAGTTTAGGCCTCAAAGACTTCAGAAATTGGTGCTGTCAATTATGTGTCAAATGACTAAGGAAATGAAAGCTGTAATCACAGAACAAGTGACATGAGAATTCCTTCAGATGACTGGGTAGAGTTGCAAAGGAACCAAATTAAACTCTTCCAAAGGAAAACTGTAAGTATTGAAATAATAGGTTGTTAAACAGCACATTAGGAACAGCCAAAGGAGGAAGTGATGAACTGGAAGACAGATCTGAAGAAATCACTCAGATTCCAACTCAGAAAAACAAGTAGGTGAGAAATATGAAGAGAGGCTAAGAGATAAGGAAGACAGAACAGAGAGCCCAACGCAAATCAAATCAGAGCCCCAGAGGGAGGGAAGAGAAGGAATGAAGAATAAAAGGAATTACTGGAAGAGAATGGTTGAGAAGTTTGCAGAATGAAAGACAGACACAAAGTATATCAAACCATGTAAATAAAAAGAAATCCATACCTAGACATAATGGAGTGAAACTGCAGAACACCAAAAACAAAAAAATTACAAAGCAGCCAGGGAGTTAAGACAGATCACCTACAAAGGAACAACAATTAGGCTGACAGCCAATGTCAACTGCAACAACAGAAAAGGAACAAATAGAAAGCAAAAAAGTAAGATGGTAGAAACAAAGTCAAATATGTCAGTAATCACAATAAATGTAAGTAGACTAAACTTTAAAGTTAAATGACAAAGACTGTCAGACTACATTGAAAATATCCAGCTACATGTTTTTTAAAGGATGACATACCTTGACATAAAGTCACTGGAAGACTGAAAGTAAAGGGATGTTAAAAAGATACAGCAAATACTAATCAAAAGAAAGCAAGCTAGAAAGGCTATACTACTACCAGCCAAACTAGACTAAGAAGTAGTATTAGAATAGGCCAGGCGCGGTGGCTCACACCTGTAATCTCAGCACTTTGGGAGGCCAAGACGGGCAGATCACAAAGTCAGGAGTTCGAGACGAGCCTGGCCAACATGGTGAAACCCTGGCTCTACTAAAAATCCAAAAAATAGCTGGGCATGGTGGCGGGTAATACCAGCTACTTGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCAGGAGGTGGAGGTTGCAGTGAGCCGAGATTGCGCCACTGCACTCCAGCCTGGCCAACGAGAGCAAAACTCTGTCTCAAAAAAAAAAAAAGTAGTATTAGAAGACAGAAGGGTTCCATACATCATGATAAAATGGCTGATTCACCAGGAAAATGTAACAGTTCTAAATCTGTGAATAGAACTAATCTGTGAATTGTGAATAGGCTGCAAAATATATAAAGAAAACACTGACAGAATTGATAGGGAAATTGAGAGCTCTCTTGTCCCAGAGGGAGATTAACTTCTGCTGACTGATAAGTCACAGACAAAAGGTTAGGCAAGATGGAGATTTGAATTTATTAAACTCATAGAGCCAGGGAATATGTCCTTCAATTAGAACATGTGAAAAAAGGCAAAACAACAAAAACAGAATATGTCCTTCAAGAAAACAAGGAATAGTCACAAAATGTGATCACATTCCAGGCCATAGGGCAAATCTTACCAAATTTTAAAGAAATTATTTCAAATAGACCATCTGTGCAATTGAGCTAGAAATAAATATGTATTTTTTAAAGATCTATGTTTGAAAAATTTAAAAATATTTAATAATCCATAGGTCAAAGCATAGCAAGACCCCATCTCTACAGAAATCAGAAGGGAAATGTTAAAACACCCCAAACAGAATAATAAAAAATATCAGTCAAAACTTGGGTAAACTGCCAGGTGTGATGGCTCACACCTGTAATCCCAGCACTTTGAGAGGCCGAGGTGGGTGGATCACCTGAGGTTAGGAGTTTGAGACCAGCCTGGCCAACATGGTAAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCAGGCGTGGTGGCGTGCACCTGTAATCCCAGCTACTCAGGAGGCTGAGGCAGAAGAATTGCTTGAACCCAGGAGGCAGAGGTTGTAGTGAGCTGAGATTGCACAGTTGCACTCCAGCCTGGGTGACAAGAGCAAAACTCCATCTCAAAACAAAAACAAAAACAAAAAAAAACTTAGGTGAACAAAAGTGAGACCTGGTAAAATATATATAGCATTAAATGCTATATATGCTATAAAATTAGAAAAGATTGAAAATTTATGAGCCAAGTAGCTAACTGAGAAATTGGAAACAAGAAAAGGAGGTACGCCAGTACTGTTCTCAAATCCAGAGGTCCTAGCCACACCAAAGGGGAAGGATCAGACAGAACAAAAGAAAACCAAAAAGAATCTGCAATTCAATAAAAATATAATTGTTTAGCAAGGTTAGTCCGTGGAGACACTCAAATTTGACCCCTATATGATAACACAAAAATTAATGTCACTGTCCATCAGCAACAGTGAGTAGTTTAGGAGCTTATATGAAATGTAAAAGTTGAAATATTTTATTTATTGATTTTTAAGATGGAGTCTTGCTCTTGTCGCCCAGGCTAGAGTGCAATGGCGTGATTTCGGCTCACTGCAACCTCTGCCTCCGGGGTTCAAGTGATTCTCCTGCCTCAGCCTCCCGAGTAGCTGGGATTACAGGTGCATGCCACCTTGCCCAGCTTTTTTTTTTTTTTTTTTTTTAGACGGAGTCTCGCTCTGTTGCCCAGGCTGGAGTGCAGTGGCGCGATCTTGGCTCACTGCAAGCTCCACCTCCCGGGTTCACGCCATTCTCCTGCCTCAGCCTCCCCAGTAGCTGGGACTACAGGCGCCTGCCACCACGCCTGGCTAATTTTTTGTATTTTTAGTAGAGACGGGGTTTCACGGTGTTAGCCAGGATGGTCTCGATCTGCCGACCTCGTGATGTGCCCATCTCGGCCTCCCAAAGTGCTGGGATTACAGGCATGAGCCACCACCCCTGGCCAGTCATTCTATATTTTCTTCTAAAATATTTCAGCCAGGCGTGGTGGCAAGCGCCTGTAATCCCAGCACTTTGGGAGGCTGAGGCAGGTGGATTGCCTGAGGTCTGGAGTTCAAGACCAGCCTGGTCAACGTGGTGAAACCCCATCTCTAGTAAAAAATACAAAAAGTAGGCCGGGCACGGTGGCTCGCGCCTGTAATCCCAGCACTTTGGGAGGCTGAGGCGGGTGGATTGCCTGAGGTCTGGAGTTCAAGACCAGCCTGGTCAGCATAGTGAAACCCCATCTCTAGTAAAAAATACTAGAGATCGCCCACTGCACTCCAGCCTGGGGGAAAGAGCGAGACTCTGTCTCAAAAAAAAAAAAAAAGACAATGTAGAATGACTTTCTGATTTTAGGGAAGGATATTTTTCAAGACAAATATCAACTAAAATAATCAACTTCCATTCATCAAGACACTAGAGGTGACACTTACAACTACATTTGACGACTCAGCAAAGAAAGTGTGATGCATGTATGCAGACGGAAAATAATGCAAATAGTGGTCAAATGAAAACAAAAGAAGTATTGGCAATGAAGTGGATAAATTTGGAACACTTGTGCACTGCTGCTGGGAATATAAAATATAAAATGGGCTGAGCACAGTGGTGCACACCTGTAATCCCAGCACTTTGGAAGGCCGAGGCTGGCGATTGCTTGAGTTCAAGAGTTCAAGACTAGCCTGGGCAACATGGCAAAATCTGTCTCTATTAAAAACACAAAAATTATCTGGGTGTAGCCAGATGTGGTGGCTCACACCTGTAATCTCAGCACTTTGGGAGGCCAAGATGGGCAGGATCACCTGAGGTCAGGAGTTAAAGACCAGCCTGGCCAACATGGCAAAACCCCATCTCTACTAAAAATGCAAAAATTAGCCAGGTGTGGTGGCGCACACCTGTAATCCCAGCTACTTGGGAGGCTGAGGCAAGAGAATCACTTGAGCCTGGAAGGTGGAGGTTGCAGTGAGCCAAGATCATGCCACTGTACTCTAGCCTGGGTGACAGAGGGAGACTGTCTCAAAAAATAAAAATAAAAATAAAAAAATAAATTAGCTGGGTGTGGTGGTGGGAGCCTGTAGTCCCAGCTACTTGGGAGCCTGAGGCATGAGAATCACTTGAATCCGGGAGGCAAAGGTTGCAGTGAGTGGAGATCACGCCACCACTGCACTCCAGCCAGGGCAACAGAATGAGACTCTGTCTCAAAAATAAAATAAAATGGTTCAGCTGCTGTATAAAACAGTATGGCAGTCCCTCAAAAAATTAAAAGTAGAATTATCATATAATCCAGCAGTTCCACTTCTGGATATATACTCTCCAAAACTGAAAATGGGGTCTCAAAGAGATACCTGTACACTCAGGTTCACAGCGGTATTAGTCAAAAAGCCAAAAGTTGGGAACAACCCAAGCATTCATCTGTGGATGAATAAACAAAATGTGTTCCACCCAGACAATGAAATAGTGTTCAGTCTTTTTTTTTTTTTTTTTTTTTGAGATGGAGTCTTGCTCTTTCACCCAGGCCGGAGTGCAGTGGCACTATCTAAGCTCAC += +SEQUENCE_ID=masker_prefix2 +PRIMER_TASK=pick_pcr_primers_and_hyb_probe +PRIMER_NUM_RETURN=5 +PRIMER_PRODUCT_SIZE_RANGE=50-500 +PRIMER_EXPLAIN_FLAG=1 +PRIMER_MASK_TEMPLATE=1 +PRIMER_MASK_FAILURE_RATE=0.2 +PRIMER_MASK_5P_DIRECTION=1 +PRIMER_MASK_3P_DIRECTION=1 +PRIMER_WT_MASK_FAILURE_RATE=0.0 +PRIMER_MASK_KMERLIST_PREFIX=mus_musculus +SEQUENCE_TEMPLATE=CTGACATTTTATGCCCAAGACAATGGCTCTGCCTTCTACCTTCACATGCTCAGGGTCACTCAGCACGTCCTGGAGGATTTCTCTGGCCTGGAGTCCCTGGCCCGGGCAGCAGCGCTAGGGACCCACCGAGTGGTCACAAGGCTGTTTATGTTGGGCCTCCTGGTGGAGTCGGCATGGTACCTCCATTGCTACCTGACAGACCTGCGGTTTGACAATATCTACGCCACTCAACAGCTGACCCAGCGGTTGGCACAGGCCCAGGCTACACACCTCCTGGCCCCTCCACCCACCTGGCTGCTCCAGGCGGCTCAGCTGAGGCTGTCACAGGAGGAGCTGTTGAGTTGTCTTCTAAGGCTGGGGCTGCTTGCCCTGCTCCTCGTGGCCACTGCTGTGGCGGTGGCCACAGACCATGTAGCCTTCCTCCTGGCACAGGCGACTGTGGACTGGGCTCAGAAGTTGCCAACTGTGCCCATCACGCTCACGGTCAAGTATGATGTGGCATACACTGTCCTGGGCTTCATCCCTTTCCTCTTCAACCAGCTGGCTCCGGAGAGCCCCTTCCTCTCCGTCCACAGCTCCCTACCAATAAAGGAGGGCGCGCAGAGCGGCGCGGCGGGCCCGCCCGCGGCCGCCGCCCCGCGCCTGCGCCGGCGGGCGGATCAGCCGACATCCAGGAGCTCGTCTCCTTGTGTGACTGTAAAACCCCATTTTCGGTGTTTCTCTCTGGAGTGCTTTCCAGCCCCTTGACCCCACGTTCTCACCCCACGTGATGCCATCAGACCCCTTGTTTTTGCCCACCTGGTGAGCAGATCACAGTGTCTCCTGTCTGGCTGTTTTTTTGAGACGGAGTCTCACTCTGCCGCCCAGGCTGGAGTGCAGTGGAACGATCTCAGCTCACTGCAACCTCCACTTCCTGGGTTCAAGCCATTCTCCTGCCTCAGCCTCCCTAGTAGCTGGGATTACAGGCGCCCACCACCACACCTGGCTAATTTTTGTGTGTTTTTGGTAGAGACAGGGTTTCTCCATGTTGGCCAGGCTGGTCTCCAATTCCTGGGCTCAAGTGATCCGCCTGCCTTGGCCTCCCAAAGTGCTGAGATTACAGGCGTGAGTCACTGCACCCAGCCTTGGCTGTTTTAAATTCCTAGTTCTAAATTTACTATTACAAATGTTTAAAGTACCCCTACTGACCTGTTGCTGCTCCTTCCTCCTCCACACCCACACACCCCGTTTAGACCCGCAAGACAGAGCAGGGTGAAGTTCATGGTCACTTATGTCCACTCTGTGCAACAGCTCGCAGGGGCTCCCCAGGGAGGGCGCAGGTCGGGGACCAGGCACGGGAGCACCTAGAATGTTCCTTTACTAGACGTGGAGTAGAGCTGATTAGATGTGAGCAGTGGCTCTAGGAGTTGGTTCTATGATTCTCTGTGTTTCTGCCTTTTAAGAAATTTTATTTCTCGGCCGGGCTCGGTGGCTCATGTCTGTAATCCCAGCACTTTGGGAGGCCGAGGCAGGCAGATCGCCTGAGGTCAGGAGTTTGAGACCAGCCTGACCAACATGGAGAAACCCTGTCTCTACTAAAAATACAACATTAGCCAGGCGTGGTGGTGCATGCCTGTATTCCCAGCTACTTTGGAGGCTGAGACAGAATTGCTTGAACCCGGGAGGCGGAGGGTGCAGTGAGCCGAGATTGGGCCATTGCCCTCCAGCCTGGGCAACAAGAGTGAAATTACATCTCCAAAAAAAAAATTTTTTTTATTTCTCGAGTTTGAGTGAAAGGAGCGACCCGGAGGTGAGGCAGTGGGGCGTGTGGGTGCGCATGAGTGCGAACACACGTGGGGGTGCAAGTGCATGTGTGTATGTGCACGCAGGTTGCTCCTAGGGGTGCAAAGGCGCGCGCACGGGTGCGGGGTGCGCGCCCCCTCGCGGCGCCTTCACGGCCCTCCCGCCCCTCGCCCTGCAGAGTACAGCGGCCGCCGGCAGCCCTACCCCTTCGAGCGCATGATCTTCGGCGCCTGCGCTGGCCTCATCGGGCAGTCGGCCTCGTACCCGCTGGATGTGGTGCGGCGGCGCATGCAGACGGCCGGCGTCACGGGCTACCCGCGCGCCTCCATCGCCCGCACGCTGCGCACCATCGTGCGGGAGGAGGGCGCCGTGCGCGGCCTCTACAAAGGCTTGAGCATGAACTGGGTCAAGGGTCCCATCGCCGTGGGCATCAGCTTCACCACCTTCGACCTCATGCAGATCCTGCTGCGGCACCTGCAGAGCTAGGGGACCCTGAGCTGCTCTCAGGACGGTGGACCGGTGACCCCTTTGTATTCTGGGCCCATGGAACGGTGGGGGGGTGCGCTTGATTCTACTTCAGGAGGCACATGGGGCGCTTTATGGAACGAGCAGGTGGGCCTGAGGGGCCTGGGCTCAGAGTCCACGTCCAAACGCAAAGCTGGCAGCCCTGGAAGTGCAGTGTTGGGGCGATGGTGTGGGGGGTCCCGCAGCTCCCCTCTTCCTTCCTCTGCAGACGCTGGCGCTGTCTGCCGGAGGTGTTGCCCAAAAGGCCCTAGTGGGGCGTGGTCAGCTCCACCTCCTGATCCTGTGTGTCCTCCGACATGCTGCTGATTCTAGTGACCCCTGTCCCCACCAGGCTCAGAGCCAGACCGCGCCTGGACCTTCTTGTTCTGACTCCACGTGCCTGCCCGGCCTCCAGGGTGCGGGGGCGCCTTTCTTGCAGGCGGACCCTGCCCAGGATGGGGCCAGCCTCGTGCTCAGCTTTGGCCACAAATGCAGCCCCTGGCCCACCCCACCCTGCCGGCCCTGCCTTCTCCAGTATTTCCCACATGGCCACGACTCCTCAGTCACTAGAGCCTCCTGCTGGGAACAGTGTCCCCCAGAGCCTCATGTCTATCCTAGACCCTGCAAGCAGCTGGGTCCCCAAGAGTGCATCTCCCCCTAGAGTTGCCTGCCCATGCCCACCTGCTTTGTAACCTTCCCAGGAGATTCATGCTTGCTCTGCACAGCAGGGCTCGAGGCCCAGGCCATGACACGGAACTGCCTCAGGTTTGGGTCAGACCTGCATCCTGGGGCATCTGCTGAAATGTGAGCACACAAACCACCTCCTTTGGCCCAGAAGCCCCCCAGGCCTAGCATCTCAGTGCCCCAACCCTCTGCCCAGCTGTGGTATCCAGCAGGTCCTTGGGTCCCCACTTGAGCAGGCACTTGGCTGGGATATGGAGCAATTTAAAGCCCACAGGGGTTGTTCAGTTTCTATGAAATGGAGCATGGGGTGCCTGCTAGCCTCAATCCCCCGAAGTGGGAGCCTCATGATAGAGTATAGCTTGGGGGTGGGAGGTGAGGAAAATCTGAGGTACCCAGGGGAACCCCCAGCTAACTGGTCTCTCAGAGGAGTCCCCCAGGGCCCGCCAGCTATCACAGGGACTCAGAAACACCCATTTCCTAATGACATGGTGAGTTTCTTGATTTCTTTTTTTTGTTTGTTTTGTTTTGGTTTTCAACTTGGCTGACCCCGGGTCTATGATCTATTCACATCGAACCCCTGACTGGTCTGCCTGGTGCCAGGGTGAGCGTGACCGTGAGTGTTGCTTTCGACAGCTGGCTCAGCACACGCTGTGTGAAGGGATCTGAGCTTGTTCATCTCCAGTCGTGACTTCATTTCCCTTCCTTCTGTCCTCCTCCTGTTCTTGCCTTGGACCTGCAGGTGTGCAGACCGCTCTCTCTGCCTTCCTTGCATGTGGCCACCAGCCATCCCTGATCTTGTCCCCAGAGGCCCAGGCAGCCTGTGATGGCTGTGAGGGGCTGTCCCACTGTGTGGGTATCCCTTACCCAGCACTTAAACTTGGCAGGAGAGGCAGGGCAACCCTCACAGGGAGATGGGAGGGCACCCAACTCCCACAAGCATGCAACAGCAGTAGGAATTGGGGGTCTGCCCCAGGTGGGTGAGACCAAATGAGTGGATTTGGGGCCACAGGCTAGGCAGGAGAGACAAGGGGTAGGTGGGAGGGTCCCCCAGTCCCTGCTGACCCCAGTGTGTCTCCCCGGAGATGGCTCCTAGCTGAGTGGGACCCGGCAGGAGTTGGGGACAGTGCTGTCCCCCACCCCTGCACACAGCCAGGCCCTCAGGCTCTGCGGTCACTCGCCTCCCTGCTGGTCACTGGTCTTGGTCTGGAGTTATATTTTGATGCCATGAAGACACTGTTTATATCTAATGTTTATATATTTTAAAGATTTGTGCCAAGAGAGTATATTTAATAAAAACTTAAATGACTTCTTCTCCTGCTCCTGGCTCTTCTTTGGCTCTGACCGCCCCCCCATCTTCCCCCATGAACCCCCAAACAGGGTTGAAGTGCTTTTGACACATTTGTGATAAAAGTTCTGAATAAAAGTCTTGAATAAAGAAGTTTTTAAATGCAATTGTTGTTTGAATTAATACATACCACAATTTTCCAGAAAACACCAGCTGTCCACAAGGGTTTACAGTGAAAAGTAGGTGAACAGTTCCCTCTGCAGGGGGCCTCCTGTGACCATTTTCTCTTGTCTCCTCCCACAGAGATTCTGTGCATACACTCATCCCTTTCAGGATATATGTGGCCACCCACAAAGGCAGGAGGGGCCGTCTCTGTGCAGCCAGCACAGCCCAAAGTCTCATGGGCTTGAACATGGCCTTCCTTCCCAAGAGCCCTGCACTCTGGGGCTGGCTGAGGCTTCAGGCCTGAACGTCAGTCACCATCTGCAGGGGCAGCCACCAGAGGGTCTCCAGTGGCAATCCTGGCTCACTTCACCTGCAGCCCATTGGCCAGAGCAACTTGGAGGACCCACCCACTGCCAGGCCAGAAGTGGGAGCCTCTGCGTGCCCAGAGAGGAGGGGCGGCTGGGCCAGCACAGGCCTGGTGCTCTTGTTGGGGTGGGAGTAGGAATAAGTTCCACTGCGCTGACCCCCCACTGCTCTCCAATCTGCTCACGTGCAACAGGATTTCTTTTGAGTTGGTCTCCGTTGTGCACATTGTTCAGCAGCTGTGCGGTTTTCTCCTAGAGGATCCCCAGGATGACATTTACCAGGGTGGGTGTGGTGGCTCATGCCTGTAATCCCAGCACTTTGGAGACTGAGGCAGGTGGCTTGCTTGAGCCCAGGAGTTTGAGACCAGCCTAGGCAACACAGTAAGACCCCCCATCTCTACAAAAAAATAGAAAAATTAGGCCGGATGCAGTGGCTCACGCCTTTAATCCCATCACTTTGGGAGGCCAGGGCAGGTGGATCACTTGAGGTCAGGAGTTCAAGACCAGCCTGGCCAACATGCTGAAACCCCCATCTCTATTAAAAGTACAAAAATCCTAGCTACTCAGGAGGCTGAGGCAGGAGAATTGCTTGAACCTGGGAGGCGGAGGTTGCAGTGAGCCGCTGCACTCCAGCCTGAGTGACTGAGAAGTCTCCGTCTCAAAAAAAAATTTTTTTTTAATTAGCCAGTCTTGGAGGTGCGTGCCTGTAGTCCCAGCCACTCAGAAATTCACGCCTCCCTTATGTTACCAAACCAGGCTCGTTCTGCCCAGCAGTATGCCAACAGAGATGACAGGTTTTGCAGCAAAGAGTTTATTCACGAGGCAGCCGAGTGAGGAGACAGGAGAACAGATCTCAAATCCGCCTCCCTGAAGATGGGATTTTAGGAATATTTAAGGGATAGAGGAGCAAGGTGGTCAGAGACGTGGGGAAAAGTGGGGCAGTCGGGGAACCGTGCGTGCGTAGTCAAGCTTCATGGCTTTTCCATAGGATGTGTGTTCACAAAATGACATTGTTATCATGATCTGAGGGTGGAGTGTTTGGCCCTCTAACGTCAAAGGTCACCACCTAAATATACACAGGCCAAGGTGAAGGTTCGGCTCTCAGCCCATTTGGATTGGACAAGAACTGATCCTGTTCCTGAAGAACAACTTGAGCAACCATTACCATGGTGGCCCATACATAGAGATATTATCTATAAGGAAACTAGTGGGAGTTTTTTTGTTTGGGTTTTTTTGTTTTGTTTTGTTTCTTTGTTTTTGAGACGGAGTGTTGCTCTTTTTGCCCAGGCTGGAGTGCAATGGCATGATCTCGGCTTACTGCAACCTCCACCTCCCGGGTTCAAGCGATTCTCCTGCCTCAGCCTCCTAAGTAGCTGGGACTACAAGCGCCCGCCACCACACCCGGCTAATTTTTTGTATTTTTAGCAGAGACGGGGTTTAACCATGTTGGCCAGGCTGGTCTCAAACTCCTGACCTCAGGTGATTCACTCGCCTTAGCCTCCCAAAGTGCTGGGATTACAGGCTTGAGCCACCGTGCCCAGCCTATTTTTCTGTCTTTCTTTTCTTTTTTTTTTTTTTTTTTTTGAGACAGGGTCTCACTCTATTGCCCAGGCTGGAGTGCAGTGACACTACCATGGCTCACTGCAGCCTCCAACTCCTGGGCTCAAGCCATCCTCCCACCTCAGCCCCCCTAGGAGCTGGGACTACAGGTACATGCCACCACGCCTGGCTACTTTTTGTATTTTTTGTAGAGATGGGGTCTCACCATATTTCTCAGGCTGGTCTCTAACTCCTGGCTCAAGTGATCTGCCTGTCTTGGCCTCCCAAAGTGCTGGGATGACAGGCGTGAGCCACCACACCTGGCCTGGGAGTTTAGCTATACATTGTTTAGCTGAGTGACTTTTAACACTATGGGGTTTATAATCAACTAAAAACAAGTGAGGTAAGTTAAGATTGGTAGGTCTAATCAGGTGAGCCCTCAGTTCCCCTTATGGATGGGCAATTGTTAGGTATTGCCATGACAATGTGATAGCAATTTGGTGGGGGCTGCTGAACTCATCTGCACCCCGCCTCTGACATCCAGCCCAGATTTCTGATCTAAGTTCCACGTTTCACACCAGCCCCTGAACCTTGGTCAACCCCTCCCCTCTCCCACCCACCACTGTGGCATCTCCTAACAGTATAGAGGTGAGCCCGTGGACCTGTCTAGACTAGTGACAGTGAAGAAGATGTTTGCTAGCTGCGTCCAAGAAGAGCTTCAGGAGTCCTTTTTTTTTTGAGACGGAGTCTTGCTCTGTTGCCCAGGCTGGAGTGCAGTGGCGCGATCTCGGCTCACTGCAAGCTCCACCTCCAGGTTCAAGTGATTCTCCTGCCTCAGCCTCACAAGTAGCTGGGATTACAGATGCCCGCCACCACGCCCAGCTAATTTTTATATTTTTAGTAGAGACGGGGTTTCACCATGTTGGCCAGGCTGGTCTTGAACTCCCGACCTCAGATGATCTGAACGCTTCGGCCTCCCAAAGTGCTGGGATTACAGATGTGAGCCACCACACCTGGCCACCAAATGCTTTTTGCTATAAACAATTCCGCGCAGCCTAGGAGTGTCCTGAAGAAACACAACATGGTACCCCAGGTGCAACCGGCGGCTGATGACTGAAGGTAGGTGTGTAAGTAGCTTAACCCATGCCCGGACGTGGGATCATCCTGAGATAATTGCTCTACCCTGCCCCGCTAAGGCCCACAGCAGGACTGAGCCTGGTTGCCCACAGTGTCACCTGCTCATTGGTGCCCCCTGCAGGGCATCTTCCCTCCTCGTCTCAGCTCTCACCCGCCATGGGGGCTGCCTGGGGACACCTCCCAGGTAAACCACTAGCTCTGAGTCCTTTTGGGGTCATCTTTGGGGGAAACCTATCCAAAAAGGAATAGGAATGCCAGGTATTCCTGCAAATAGATCATATAGATTTATACCACATACTCACCCATATTTGATCTTCCATAATCTGACAAGTAAAAAATGGTATCTCAGCCGGGTGCGGTGGCTCATGCCTTTAATCTCAGCACTTTGGGAGGCCGAGGCAGCTGGATCACTTGAGCTCACGAGTTCAAGACCAGCCTGTGCAGCATGGTGAAACCTTGTCTCTACAAAAAATACCGGGCATGGTGGCACGTGCCTGTAATCCCCACTACTCAGGAGGCTGAGGTGGGAGGATGGCTTGAGTCTGGGAGGTGGAGGTTGCAGTGAGTCGAGATGGCACCACTGCATCCCAGCATGGGTGATAGAACCAGACCCTGTCGCAAAACAACAACAACAACAACAAAAACCAGTTAATTTATGGCCAGGCATGGTGGCTCACACCTGTAATCCCAGTTCTTTGGAAAGCTGAGGCAGGAGGATCACTTGAGACCTGGAGTTTGTCTCTATAAATAATTTTTTTTTTTGGTGGGACAGGGTTCTCATTCTGTCACCCAGGCTAGGGTACAGTGGCACAATCACATCTCACCGCAGCCTCAACCTCCCAGGGTCAAGTGATTCTCCCACCTCAGCCTCCCGAGTAGCTGCGACTACAGGCGTGGGCCACTATGCCTGGCTAATTTTTTATATTTTGTAGAGACGGGGTCTTGCTATGTCACCCGAGCTGATGAACTCCTGGGCTCAAGAGATCTGCCCACCTCCACTTCTCAAACTGCTGGGATTACAGGCGTGAGCCACTGCACCCAGCCCTCTACAAATAATTTTAAAAACTATTTTACTATTTTAAAAGTTGAAGGTTATATTTTGTTTTATCTATGAGTTTTATTTCCCCTTTTTATTTTGTTTCGGCTTGTCTGGAAATGGTATATTCCGTTTCTTCACCCATAGGGCTTCACAACATCAGCACTGCTGACATTTGGCGCTGATAATCCTCTGGGGTGAGGCCATCCTGGGCACCACACGGTGTTGAGCAGCATCTCTGGCCTCCATTCTTCAGACACCAAGAGCAACACCTCCACCCCTTGTGGTGACAACTAAAAGATGTCTCCAGACATCAACATGTGTTCCTTTGGAGCAGAACCACCCCGTCCTGTGAGAGGCACGGATATGGTGGTTACAATGGATACATCAACAAGAATTTAAATGTTTGGCCGGGCGCGGTGGGCGCGGTGGCTCAGGCCTGTAATCCCAGCACGTTGGGAGGCCGAGGCAGGTGAATCACTTGAAGCCAGGAGTTCCAGACCAGCCTGGCCAACATGGTGAAACCCATCTCTATTAAAAATACACACACACTGCCGGGTGCGGTGGCTCACGCCTGTAATCCCAGCACGTTGGGAGGCCAAGGAGGGCGGATCACGAGGTCAGGAGATCGAGACCATCCTGGCTAACACGGTGAAACCCCGTCTCTACTAAAAATACAAAAAATTAGCCGGGCGTAGTGGCGGGCGCCTGTAGTCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATGGCGTGCACCCGGGAGGCGGAGCTTACAGTGAGCCGAGATCGCGCCACTGCACTTCAGCCTGGGCGACAGAGCGAGACTCCATCTCAAAAAAAAAAAAAAAAAAAAAACTACACACACACACAAAAATTAAAATATTTATCTTCCCTCTGAGCCACACACAAAGACCTCAACCACCCCCTTCTATCTTTCCTATTTTTATTTATTTATTTATTTTGAGACAGAGTCTCGCTCTGTCACCCACGCTGGAGTGCAATGGCGCGATCTTGGCTCACTGCAACCTCTGCCTCTGGGGTTCAAGCGATTCTCCTGCCTCAGCCTCCTGAGTGGCTGGGATTACAGGCACCTGCCACCGCACCTGGCTGATTTTTGTATTTTTAGTAGGGATGGGGTTTCACCATGTTGGCCAGGGTGGTCTCAAACTCTTGACCTCGTGATCCACCGCCTCGGCCTCCCAAAGTGCTGGGATTACAGATGTGAGCCACCATACCCAGCCTGATGAAAATTTTAAAAAAGAAAATTCTTAAACCGTTCTAAGTCAGGGAACTGTCTGTATACATCTTACTTATACAAAAAGGTTACATATGCACCTTACATTGTTTTTGTTTTTGTTTTGAGATGGAGTCTCACTCTGTCACCCAGACTGGAGTGCAATGGCATGATCTTGGCTCACTGCAACCTCTGCCTCCCGGGTTCAAGCGATTCTCCTGTCTCAGCCTCCCGAGAGGCTGGGATTACAAGTGTGCACCACCACGCTTGGCTAATTTTTTTTGTATTTTAGTAGAGACAGGGTTTCACCATGTTGGCCAGGCTGGTCTTGAACTGCTGACCTCAGGTGATTGGCCTGCCTCGGTCTCCCAAAGTGTTGGGTTACAGGCATGAGCCACGGCACCCAGCCTGCACCTTACATTGTAACACACGTGTGGACACACCCTGGAGTCACAGCTACAGGACAATTTCAGAGTCCATGACGGCCCCACATCCCTTCCCTGGGTCACCAAGGCCTCAATATGCCCCTCCCCCCTCCCTGTGTGTGATATCTATACAAGTCACCTGCATACCTGTAGCAGACGCTGGCATCACTGTGGGCTCCCCGCCCTCCCATTCCTCAAACTGGTTTTCCTCTAAGGTTTCCCTGCCCATCTAACCTTCTCCTGGCACTCCCTCATGGTGCATTTCTCTCACCTGCCCGTCCGTCCCAGGCCACCTGCCCTCTCAGCTGGGACTCCAACTTCCCCTGATTTCTGGTCTCTTCCATCCTGCTTTTGGACTTTTCCTGGGACACTTGCATTTCTTCTTTTTCTTTTTTTTTTTTTTTGAGACAGAGTTTCACTCTGTCACCCAGGCTGGAGTGTGATGCGATCTCGGCTCACTGCAGCCTCCACCTCTCAGGTTCAAGCGACTCTTCTGGCTCATCCTTCTCAGTAGCTGGAACTACATGCATGCGCCACCATGCCTAATTTTTGTTATTTTAGTAAAGACTGGGTTTCACCATGCGTTGACCAGGCTGGTCTCAAACTGCTGGCCTCAAGTGATCTGCCCGCCTTGGCTTCCCAAAGTGCTGGGATTTGGGATTACGGGCGTGAGCCGCCGAGCCTGGCCTCCTTCTTGCTCTCCTTTCTCCTCCCAGACCTTTGCTCCCCTCTCAGTCCTGCTCCTCTCTCCCTCCCGCGCAGCCCCCACCCTGCACCCGGGCAGGTGCCACAGGGACGTGCAAGACAGCTACCACCCTGCACAAGCCCGAGTCCCAAACCACTCAGACCCTGTTTGTAAAAATCGGCATGCTCCTTTATTTGTTCAGAAGAGCAGCCAGCATCACCCTTGCCACTCAAACCTGGCACATACGCTTCGGAGACAATGGCCTCGGGACCCTCATGCTGCTGGGCCCAGGAGAGACAGTTCTGAGGCAGAAACTCGGCGTCCAAGGGGGGCCGCGGGTCAGGCACTGTGGTGAAGGGAACGCCGGGGAGTCCGGCCCCACCTTGCAGCTGGGGACACGGGGGCGCAAACAGAGGGGGCAGGCTAGTGTCCCGCTGCCCCAGGAACAGACCTCAGGGCCCCAGGAGGGTCTGCAGGCAGCTAGGAGCCTGCCAAGTGCTGGTGGAAGTAGAGGCCGAAAAGGCTGGCGAGCAGCTGGCAGGCAGCCGTCCACCAGATGAGGTAGGCCAGGACGCCACGGAGGAAGAGGGGAGTAAGCAGGCCACCCAGAGCCCCGGCAATCCGCGCTGCAGTCTGCTGGACTTCGTCCTCCCCAGAGCCGATGGGGGCAGCGCTGGCTGAGGATGGGTCGGGGGATAGTAGAGGAGCTGGGCCCAGGCCCCAGGAATAGCCTCCTAGGAGAAGAGGATGAAGCGAGGTATGAGTGGAAAAATGGGGGAGGGGGCGAGGGACAGGGCTGGCACGGGGGGCCAGGCCCATTCCTCCAGACACTCCCACCCCTGTCTCAGACTCCATCTCCAGCCCAGTCTCCACCCCCTCAGGCGCTGCCCCCTGTCCAAGGCAAACCCTACCCCAGGCCCCACCTCCTGCTCAGATCCTGCCTCAATACATGCCCTGCCCCCTCCCCAGGCCCCGCCTCCTGCCAAGACGCAACCCCTCCCCAGGCTCCACCTCCTAAGGCAAACGCCATCCCAAACTCCACCTCCTGCTCAGACCCTGCCTCACCACAGTCCCCGCCCCCTACCCAGGCCCCGCCTCCTGCTCAGATTGCACCCATCCCCAGGCTCCACTTCCTGTCCAAGGCAAGCCCCACTCCAGGCTCCGCTTCCTGCTCAGACCCTGCCTTACCACAGTCTCCGCCCCCTGCCTAGGCCCCGCCTCTCCCCCCCCACCGCGGTCCCCGCCAGAGTCCACCTCCACTCTGTTTTATCTTCCAACTCCGCCCCTCCTCCACCCCCACACCGCGGCATCTCACCCAGCGTCTTGAGCAGAAGTGTGCAGTTGAGGGTGAGGATGAGCGGCGTCAGGTACTGCAAGCTCACCACGGTCACATAGCAGTAGACTCGGACCACCTGTGGGCAGGTAGCAGGGGTGGCTGCAGCAGGAGGCCTTCTGGTTTGGGACGACTCCACGCCCAAAGGACCAGGAACCCCACCCTGAGCCCCAGGTTCCCTCTGGCCTAGGTCATCGGGGCGTCCATACCCTCTGCTGGATTTCACGGGCTTCGATGCGGCCAGCCTCCCTTCGCAGCTGCTCCACCCGGGCCTTGGCCAGGCACAGGTAGGCCTGCAGGTGGGGCCGGGTCACCGCCAGCCGCAGCAGGCACAGCACCACCAGCAACCAGAGGCGCCCAGAGTCGAAGGCAGAATCGGACAGCCTGTGCGGAGAGGGCCGGGGGCAAGGGACTAAGAAGGTCGCCCCCGACCCCCCAGGATCTTCCCCAGGCTCCTCCCTGAATCTCAGAGGCTAGGGCACCCAGGGGAGCCCCAGCTACCTCCTAGCCCCACCCAATACGCACAGGGAGAAACGCGTCTCCCCAAACGGCGGCTGGTGCAGGAAGTCCCGTGCAATGGGCTTTGTCCAGAGCCACAGGATGAACAGGGGAGACAGGAAGCTGGTGTGCAGGAGGAACCTGGGGGGTGAGGGCAGGAGGGAGTGAGGCCTGGGTACCCCCTCTCCTCGAGTCTCTCCCTTAAGCTCCCTAGTCCCCCCACCCACCAAGCGACCCACTTAACTGCAGCATGGGTCTGTCCTCCGACATGGTCAGTGCGTCCCGGTGGGTCTGGGCCAGCCGCAGGCCTGGGAAGGTGAGGAAGGCACCCAGCACAGAGCCCACCACTGCCAGTCCCACGCGGATAGCCAGCTTGGCCACAGGAAGCCTAGGAGAACACCAGGTCACGAGCCTGCCTGGGGGACCCTGGGAGGGTCCCAGCCTGCCCTTGCCTCCCTCCCCCATTCCCAGGACTCACGCCCAGTCCCAGCCCTGCTTCTTCAGAAGTGGCTCTAAGTTCTGGGTCATGCTGGCCAGACCTGGGGACGATAAGAAGAGGACCGAGTAGAGTGAATTCCTAGGGTCTCTAAGGCCACTCTGTTCCCTAACCCCCCATCCCTCAGGCATCCGTTTGCTTCCCAAGTAGGAATGAACAAGGGTCTGCCAGGCCCTGAGCCAGGCACAAGGACAATTTTGTGCTCTAGTTACACAGTACTTTTTACAAGAAACAAGATTGGAGTGGTGGTTCACGCCTGTAATCCCAGCACTTTGGGAGGCTGAGGCAGGCGGATCATCTGAGATCAGGAGTTTCAGACCAGCCTGGCCAATGCAGTGAAACCCCCGTCTCTACTAAAAATACAAAAATTAGCCAGGTGTGGTGGCAGGTGCCTGTAATCCCAGCTACTTGAGAGGCTGAGGCAGGAGAATCGCTTGAACATGGGGAGCGGAGGTTGCAGTGAGCTGAGACCGCACCATTGCACTCCAGCCTTGGGGACAAGAGTGAAACTCAGTCTCAAAGAAAACGAAACAGAATGCACCAGGCAGACACTCCTGATTGGGCTGGGAACATTCAGGGGTATCTGTTGAGCCTGAGCTCCCTAGGTTATAGAAGGAATCTAGAGGGGGATGAAGGACTCCTGCAGGAGAAAACCAAAGTCCTCCTGGAGGAAGGAATCCTCAATTCAGGACCCAAGATTTTTCAAAAATTAAGAGCAGGGCTGGGTGCAGTGGCTTGCACCTGTAAGTCTCAGCACTTTGGGAGGCCAAGGCGGGTGGATCGTTTGAGCTCACAAGTTTGAGACCAGCCTGGGCAACATGGCAAAACCCCCATCTCTACAAAAAATACAAAACCAGGGGTGGTGGTGCACGCCTATAGTCCCAGCTACTGTGAAGGCTGAGGTGGGAAGGATGGGTTGAGCCCAGGATGTGGAAGTTGCAGTGAGCTGAGATCATGCCACTGCACTCCAGCACAGAGCAAGACCTTGTCAAAAAAAAAAAAAAAAAGGAGCAAATTCATATGAGCTCACAGGCAAAATCACCAAATGCATAAGGAAACAAATCACCATAAAGGAGAGTTAACAGAAAAACAACAGTCAAGTTTAGGCCTCAAAGACTTCAGAAATTGGTGCTGTCAATTATGTGTCAAATGACTAAGGAAATGAAAGCTGTAATCACAGAACAAGTGACATGAGAATTCCTTCAGATGACTGGGTAGAGTTGCAAAGGAACCAAATTAAACTCTTCCAAAGGAAAACTGTAAGTATTGAAATAATAGGTTGTTAAACAGCACATTAGGAACAGCCAAAGGAGGAAGTGATGAACTGGAAGACAGATCTGAAGAAATCACTCAGATTCCAACTCAGAAAAACAAGTAGGTGAGAAATATGAAGAGAGGCTAAGAGATAAGGAAGACAGAACAGAGAGCCCAACGCAAATCAAATCAGAGCCCCAGAGGGAGGGAAGAGAAGGAATGAAGAATAAAAGGAATTACTGGAAGAGAATGGTTGAGAAGTTTGCAGAATGAAAGACAGACACAAAGTATATCAAACCATGTAAATAAAAAGAAATCCATACCTAGACATAATGGAGTGAAACTGCAGAACACCAAAAACAAAAAAATTACAAAGCAGCCAGGGAGTTAAGACAGATCACCTACAAAGGAACAACAATTAGGCTGACAGCCAATGTCAACTGCAACAACAGAAAAGGAACAAATAGAAAGCAAAAAAGTAAGATGGTAGAAACAAAGTCAAATATGTCAGTAATCACAATAAATGTAAGTAGACTAAACTTTAAAGTTAAATGACAAAGACTGTCAGACTACATTGAAAATATCCAGCTACATGTTTTTTAAAGGATGACATACCTTGACATAAAGTCACTGGAAGACTGAAAGTAAAGGGATGTTAAAAAGATACAGCAAATACTAATCAAAAGAAAGCAAGCTAGAAAGGCTATACTACTACCAGCCAAACTAGACTAAGAAGTAGTATTAGAATAGGCCAGGCGCGGTGGCTCACACCTGTAATCTCAGCACTTTGGGAGGCCAAGACGGGCAGATCACAAAGTCAGGAGTTCGAGACGAGCCTGGCCAACATGGTGAAACCCTGGCTCTACTAAAAATCCAAAAAATAGCTGGGCATGGTGGCGGGTAATACCAGCTACTTGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCAGGAGGTGGAGGTTGCAGTGAGCCGAGATTGCGCCACTGCACTCCAGCCTGGCCAACGAGAGCAAAACTCTGTCTCAAAAAAAAAAAAAGTAGTATTAGAAGACAGAAGGGTTCCATACATCATGATAAAATGGCTGATTCACCAGGAAAATGTAACAGTTCTAAATCTGTGAATAGAACTAATCTGTGAATTGTGAATAGGCTGCAAAATATATAAAGAAAACACTGACAGAATTGATAGGGAAATTGAGAGCTCTCTTGTCCCAGAGGGAGATTAACTTCTGCTGACTGATAAGTCACAGACAAAAGGTTAGGCAAGATGGAGATTTGAATTTATTAAACTCATAGAGCCAGGGAATATGTCCTTCAATTAGAACATGTGAAAAAAGGCAAAACAACAAAAACAGAATATGTCCTTCAAGAAAACAAGGAATAGTCACAAAATGTGATCACATTCCAGGCCATAGGGCAAATCTTACCAAATTTTAAAGAAATTATTTCAAATAGACCATCTGTGCAATTGAGCTAGAAATAAATATGTATTTTTTAAAGATCTATGTTTGAAAAATTTAAAAATATTTAATAATCCATAGGTCAAAGCATAGCAAGACCCCATCTCTACAGAAATCAGAAGGGAAATGTTAAAACACCCCAAACAGAATAATAAAAAATATCAGTCAAAACTTGGGTAAACTGCCAGGTGTGATGGCTCACACCTGTAATCCCAGCACTTTGAGAGGCCGAGGTGGGTGGATCACCTGAGGTTAGGAGTTTGAGACCAGCCTGGCCAACATGGTAAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCAGGCGTGGTGGCGTGCACCTGTAATCCCAGCTACTCAGGAGGCTGAGGCAGAAGAATTGCTTGAACCCAGGAGGCAGAGGTTGTAGTGAGCTGAGATTGCACAGTTGCACTCCAGCCTGGGTGACAAGAGCAAAACTCCATCTCAAAACAAAAACAAAAACAAAAAAAAACTTAGGTGAACAAAAGTGAGACCTGGTAAAATATATATAGCATTAAATGCTATATATGCTATAAAATTAGAAAAGATTGAAAATTTATGAGCCAAGTAGCTAACTGAGAAATTGGAAACAAGAAAAGGAGGTACGCCAGTACTGTTCTCAAATCCAGAGGTCCTAGCCACACCAAAGGGGAAGGATCAGACAGAACAAAAGAAAACCAAAAAGAATCTGCAATTCAATAAAAATATAATTGTTTAGCAAGGTTAGTCCGTGGAGACACTCAAATTTGACCCCTATATGATAACACAAAAATTAATGTCACTGTCCATCAGCAACAGTGAGTAGTTTAGGAGCTTATATGAAATGTAAAAGTTGAAATATTTTATTTATTGATTTTTAAGATGGAGTCTTGCTCTTGTCGCCCAGGCTAGAGTGCAATGGCGTGATTTCGGCTCACTGCAACCTCTGCCTCCGGGGTTCAAGTGATTCTCCTGCCTCAGCCTCCCGAGTAGCTGGGATTACAGGTGCATGCCACCTTGCCCAGCTTTTTTTTTTTTTTTTTTTTTAGACGGAGTCTCGCTCTGTTGCCCAGGCTGGAGTGCAGTGGCGCGATCTTGGCTCACTGCAAGCTCCACCTCCCGGGTTCACGCCATTCTCCTGCCTCAGCCTCCCCAGTAGCTGGGACTACAGGCGCCTGCCACCACGCCTGGCTAATTTTTTGTATTTTTAGTAGAGACGGGGTTTCACGGTGTTAGCCAGGATGGTCTCGATCTGCCGACCTCGTGATGTGCCCATCTCGGCCTCCCAAAGTGCTGGGATTACAGGCATGAGCCACCACCCCTGGCCAGTCATTCTATATTTTCTTCTAAAATATTTCAGCCAGGCGTGGTGGCAAGCGCCTGTAATCCCAGCACTTTGGGAGGCTGAGGCAGGTGGATTGCCTGAGGTCTGGAGTTCAAGACCAGCCTGGTCAACGTGGTGAAACCCCATCTCTAGTAAAAAATACAAAAAGTAGGCCGGGCACGGTGGCTCGCGCCTGTAATCCCAGCACTTTGGGAGGCTGAGGCGGGTGGATTGCCTGAGGTCTGGAGTTCAAGACCAGCCTGGTCAGCATAGTGAAACCCCATCTCTAGTAAAAAATACTAGAGATCGCCCACTGCACTCCAGCCTGGGGGAAAGAGCGAGACTCTGTCTCAAAAAAAAAAAAAAAGACAATGTAGAATGACTTTCTGATTTTAGGGAAGGATATTTTTCAAGACAAATATCAACTAAAATAATCAACTTCCATTCATCAAGACACTAGAGGTGACACTTACAACTACATTTGACGACTCAGCAAAGAAAGTGTGATGCATGTATGCAGACGGAAAATAATGCAAATAGTGGTCAAATGAAAACAAAAGAAGTATTGGCAATGAAGTGGATAAATTTGGAACACTTGTGCACTGCTGCTGGGAATATAAAATATAAAATGGGCTGAGCACAGTGGTGCACACCTGTAATCCCAGCACTTTGGAAGGCCGAGGCTGGCGATTGCTTGAGTTCAAGAGTTCAAGACTAGCCTGGGCAACATGGCAAAATCTGTCTCTATTAAAAACACAAAAATTATCTGGGTGTAGCCAGATGTGGTGGCTCACACCTGTAATCTCAGCACTTTGGGAGGCCAAGATGGGCAGGATCACCTGAGGTCAGGAGTTAAAGACCAGCCTGGCCAACATGGCAAAACCCCATCTCTACTAAAAATGCAAAAATTAGCCAGGTGTGGTGGCGCACACCTGTAATCCCAGCTACTTGGGAGGCTGAGGCAAGAGAATCACTTGAGCCTGGAAGGTGGAGGTTGCAGTGAGCCAAGATCATGCCACTGTACTCTAGCCTGGGTGACAGAGGGAGACTGTCTCAAAAAATAAAAATAAAAATAAAAAAATAAATTAGCTGGGTGTGGTGGTGGGAGCCTGTAGTCCCAGCTACTTGGGAGCCTGAGGCATGAGAATCACTTGAATCCGGGAGGCAAAGGTTGCAGTGAGTGGAGATCACGCCACCACTGCACTCCAGCCAGGGCAACAGAATGAGACTCTGTCTCAAAAATAAAATAAAATGGTTCAGCTGCTGTATAAAACAGTATGGCAGTCCCTCAAAAAATTAAAAGTAGAATTATCATATAATCCAGCAGTTCCACTTCTGGATATATACTCTCCAAAACTGAAAATGGGGTCTCAAAGAGATACCTGTACACTCAGGTTCACAGCGGTATTAGTCAAAAAGCCAAAAGTTGGGAACAACCCAAGCATTCATCTGTGGATGAATAAACAAAATGTGTTCCACCCAGACAATGAAATAGTGTTCAGTCTTTTTTTTTTTTTTTTTTTTTGAGATGGAGTCTTGCTCTTTCACCCAGGCCGGAGTGCAGTGGCACTATCTAAGCTCAC += +SEQUENCE_ID=masker_path1 +PRIMER_TASK=pick_pcr_primers_and_hyb_probe +PRIMER_NUM_RETURN=5 +PRIMER_PRODUCT_SIZE_RANGE=50-500 +PRIMER_EXPLAIN_FLAG=1 +PRIMER_MASK_TEMPLATE=1 +PRIMER_MASK_FAILURE_RATE=0.2 +PRIMER_MASK_5P_DIRECTION=1 +PRIMER_MASK_3P_DIRECTION=1 +PRIMER_WT_MASK_FAILURE_RATE=0.0 +PRIMER_LOWERCASE_MASKING=0 +PRIMER_MASK_KMERLIST_PATH=../kmer_lists/ +SEQUENCE_TEMPLATE=CTGACATTTTATGCCCAAGACAATGGCTCTGCCTTCTACCTTCACATGCTCAGGGTCACTCAGCACGTCCTGGAGGATTTCTCTGGCCTGGAGTCCCTGGCCCGGGCAGCAGCGCTAGGGACCCACCGAGTGGTCACAAGGCTGTTTATGTTGGGCCTCCTGGTGGAGTCGGCATGGTACCTCCATTGCTACCTGACAGACCTGCGGTTTGACAATATCTACGCCACTCAACAGCTGACCCAGCGGTTGGCACAGGCCCAGGCTACACACCTCCTGGCCCCTCCACCCACCTGGCTGCTCCAGGCGGCTCAGCTGAGGCTGTCACAGGAGGAGCTGTTGAGTTGTCTTCTAAGGCTGGGGCTGCTTGCCCTGCTCCTCGTGGCCACTGCTGTGGCGGTGGCCACAGACCATGTAGCCTTCCTCCTGGCACAGGCGACTGTGGACTGGGCTCAGAAGTTGCCAACTGTGCCCATCACGCTCACGGTCAAGTATGATGTGGCATACACTGTCCTGGGCTTCATCCCTTTCCTCTTCAACCAGCTGGCTCCGGAGAGCCCCTTCCTCTCCGTCCACAGCTCCCTACCAATAAAGGAGGGCGCGCAGAGCGGCGCGGCGGGCCCGCCCGCGGCCGCCGCCCCGCGCCTGCGCCGGCGGGCGGATCAGCCGACATCCAGGAGCTCGTCTCCTTGTGTGACTGTAAAACCCCATTTTCGGTGTTTCTCTCTGGAGTGCTTTCCAGCCCCTTGACCCCACGTTCTCACCCCACGTGATGCCATCAGACCCCTTGTTTTTGCCCACCTGGTGAGCAGATCACAGTGTCTCCTGTCTGGCTGTTTTTTTGAGACGGAGTCTCACTCTGCCGCCCAGGCTGGAGTGCAGTGGAACGATCTCAGCTCACTGCAACCTCCACTTCCTGGGTTCAAGCCATTCTCCTGCCTCAGCCTCCCTAGTAGCTGGGATTACAGGCGCCCACCACCACACCTGGCTAATTTTTGTGTGTTTTTGGTAGAGACAGGGTTTCTCCATGTTGGCCAGGCTGGTCTCCAATTCCTGGGCTCAAGTGATCCGCCTGCCTTGGCCTCCCAAAGTGCTGAGATTACAGGCGTGAGTCACTGCACCCAGCCTTGGCTGTTTTAAATTCCTAGTTCTAAATTTACTATTACAAATGTTTAAAGTACCCCTACTGACCTGTTGCTGCTCCTTCCTCCTCCACACCCACACACCCCGTTTAGACCCGCAAGACAGAGCAGGGTGAAGTTCATGGTCACTTATGTCCACTCTGTGCAACAGCTCGCAGGGGCTCCCCAGGGAGGGCGCAGGTCGGGGACCAGGCACGGGAGCACCTAGAATGTTCCTTTACTAGACGTGGAGTAGAGCTGATTAGATGTGAGCAGTGGCTCTAGGAGTTGGTTCTATGATTCTCTGTGTTTCTGCCTTTTAAGAAATTTTATTTCTCGGCCGGGCTCGGTGGCTCATGTCTGTAATCCCAGCACTTTGGGAGGCCGAGGCAGGCAGATCGCCTGAGGTCAGGAGTTTGAGACCAGCCTGACCAACATGGAGAAACCCTGTCTCTACTAAAAATACAACATTAGCCAGGCGTGGTGGTGCATGCCTGTATTCCCAGCTACTTTGGAGGCTGAGACAGAATTGCTTGAACCCGGGAGGCGGAGGGTGCAGTGAGCCGAGATTGGGCCATTGCCCTCCAGCCTGGGCAACAAGAGTGAAATTACATCTCCAAAAAAAAAATTTTTTTTATTTCTCGAGTTTGAGTGAAAGGAGCGACCCGGAGGTGAGGCAGTGGGGCGTGTGGGTGCGCATGAGTGCGAACACACGTGGGGGTGCAAGTGCATGTGTGTATGTGCACGCAGGTTGCTCCTAGGGGTGCAAAGGCGCGCGCACGGGTGCGGGGTGCGCGCCCCCTCGCGGCGCCTTCACGGCCCTCCCGCCCCTCGCCCTGCAGAGTACAGCGGCCGCCGGCAGCCCTACCCCTTCGAGCGCATGATCTTCGGCGCCTGCGCTGGCCTCATCGGGCAGTCGGCCTCGTACCCGCTGGATGTGGTGCGGCGGCGCATGCAGACGGCCGGCGTCACGGGCTACCCGCGCGCCTCCATCGCCCGCACGCTGCGCACCATCGTGCGGGAGGAGGGCGCCGTGCGCGGCCTCTACAAAGGCTTGAGCATGAACTGGGTCAAGGGTCCCATCGCCGTGGGCATCAGCTTCACCACCTTCGACCTCATGCAGATCCTGCTGCGGCACCTGCAGAGCTAGGGGACCCTGAGCTGCTCTCAGGACGGTGGACCGGTGACCCCTTTGTATTCTGGGCCCATGGAACGGTGGGGGGGTGCGCTTGATTCTACTTCAGGAGGCACATGGGGCGCTTTATGGAACGAGCAGGTGGGCCTGAGGGGCCTGGGCTCAGAGTCCACGTCCAAACGCAAAGCTGGCAGCCCTGGAAGTGCAGTGTTGGGGCGATGGTGTGGGGGGTCCCGCAGCTCCCCTCTTCCTTCCTCTGCAGACGCTGGCGCTGTCTGCCGGAGGTGTTGCCCAAAAGGCCCTAGTGGGGCGTGGTCAGCTCCACCTCCTGATCCTGTGTGTCCTCCGACATGCTGCTGATTCTAGTGACCCCTGTCCCCACCAGGCTCAGAGCCAGACCGCGCCTGGACCTTCTTGTTCTGACTCCACGTGCCTGCCCGGCCTCCAGGGTGCGGGGGCGCCTTTCTTGCAGGCGGACCCTGCCCAGGATGGGGCCAGCCTCGTGCTCAGCTTTGGCCACAAATGCAGCCCCTGGCCCACCCCACCCTGCCGGCCCTGCCTTCTCCAGTATTTCCCACATGGCCACGACTCCTCAGTCACTAGAGCCTCCTGCTGGGAACAGTGTCCCCCAGAGCCTCATGTCTATCCTAGACCCTGCAAGCAGCTGGGTCCCCAAGAGTGCATCTCCCCCTAGAGTTGCCTGCCCATGCCCACCTGCTTTGTAACCTTCCCAGGAGATTCATGCTTGCTCTGCACAGCAGGGCTCGAGGCCCAGGCCATGACACGGAACTGCCTCAGGTTTGGGTCAGACCTGCATCCTGGGGCATCTGCTGAAATGTGAGCACACAAACCACCTCCTTTGGCCCAGAAGCCCCCCAGGCCTAGCATCTCAGTGCCCCAACCCTCTGCCCAGCTGTGGTATCCAGCAGGTCCTTGGGTCCCCACTTGAGCAGGCACTTGGCTGGGATATGGAGCAATTTAAAGCCCACAGGGGTTGTTCAGTTTCTATGAAATGGAGCATGGGGTGCCTGCTAGCCTCAATCCCCCGAAGTGGGAGCCTCATGATAGAGTATAGCTTGGGGGTGGGAGGTGAGGAAAATCTGAGGTACCCAGGGGAACCCCCAGCTAACTGGTCTCTCAGAGGAGTCCCCCAGGGCCCGCCAGCTATCACAGGGACTCAGAAACACCCATTTCCTAATGACATGGTGAGTTTCTTGATTTCTTTTTTTTGTTTGTTTTGTTTTGGTTTTCAACTTGGCTGACCCCGGGTCTATGATCTATTCACATCGAACCCCTGACTGGTCTGCCTGGTGCCAGGGTGAGCGTGACCGTGAGTGTTGCTTTCGACAGCTGGCTCAGCACACGCTGTGTGAAGGGATCTGAGCTTGTTCATCTCCAGTCGTGACTTCATTTCCCTTCCTTCTGTCCTCCTCCTGTTCTTGCCTTGGACCTGCAGGTGTGCAGACCGCTCTCTCTGCCTTCCTTGCATGTGGCCACCAGCCATCCCTGATCTTGTCCCCAGAGGCCCAGGCAGCCTGTGATGGCTGTGAGGGGCTGTCCCACTGTGTGGGTATCCCTTACCCAGCACTTAAACTTGGCAGGAGAGGCAGGGCAACCCTCACAGGGAGATGGGAGGGCACCCAACTCCCACAAGCATGCAACAGCAGTAGGAATTGGGGGTCTGCCCCAGGTGGGTGAGACCAAATGAGTGGATTTGGGGCCACAGGCTAGGCAGGAGAGACAAGGGGTAGGTGGGAGGGTCCCCCAGTCCCTGCTGACCCCAGTGTGTCTCCCCGGAGATGGCTCCTAGCTGAGTGGGACCCGGCAGGAGTTGGGGACAGTGCTGTCCCCCACCCCTGCACACAGCCAGGCCCTCAGGCTCTGCGGTCACTCGCCTCCCTGCTGGTCACTGGTCTTGGTCTGGAGTTATATTTTGATGCCATGAAGACACTGTTTATATCTAATGTTTATATATTTTAAAGATTTGTGCCAAGAGAGTATATTTAATAAAAACTTAAATGACTTCTTCTCCTGCTCCTGGCTCTTCTTTGGCTCTGACCGCCCCCCCATCTTCCCCCATGAACCCCCAAACAGGGTTGAAGTGCTTTTGACACATTTGTGATAAAAGTTCTGAATAAAAGTCTTGAATAAAGAAGTTTTTAAATGCAATTGTTGTTTGAATTAATACATACCACAATTTTCCAGAAAACACCAGCTGTCCACAAGGGTTTACAGTGAAAAGTAGGTGAACAGTTCCCTCTGCAGGGGGCCTCCTGTGACCATTTTCTCTTGTCTCCTCCCACAGAGATTCTGTGCATACACTCATCCCTTTCAGGATATATGTGGCCACCCACAAAGGCAGGAGGGGCCGTCTCTGTGCAGCCAGCACAGCCCAAAGTCTCATGGGCTTGAACATGGCCTTCCTTCCCAAGAGCCCTGCACTCTGGGGCTGGCTGAGGCTTCAGGCCTGAACGTCAGTCACCATCTGCAGGGGCAGCCACCAGAGGGTCTCCAGTGGCAATCCTGGCTCACTTCACCTGCAGCCCATTGGCCAGAGCAACTTGGAGGACCCACCCACTGCCAGGCCAGAAGTGGGAGCCTCTGCGTGCCCAGAGAGGAGGGGCGGCTGGGCCAGCACAGGCCTGGTGCTCTTGTTGGGGTGGGAGTAGGAATAAGTTCCACTGCGCTGACCCCCCACTGCTCTCCAATCTGCTCACGTGCAACAGGATTTCTTTTGAGTTGGTCTCCGTTGTGCACATTGTTCAGCAGCTGTGCGGTTTTCTCCTAGAGGATCCCCAGGATGACATTTACCAGGGTGGGTGTGGTGGCTCATGCCTGTAATCCCAGCACTTTGGAGACTGAGGCAGGTGGCTTGCTTGAGCCCAGGAGTTTGAGACCAGCCTAGGCAACACAGTAAGACCCCCCATCTCTACAAAAAAATAGAAAAATTAGGCCGGATGCAGTGGCTCACGCCTTTAATCCCATCACTTTGGGAGGCCAGGGCAGGTGGATCACTTGAGGTCAGGAGTTCAAGACCAGCCTGGCCAACATGCTGAAACCCCCATCTCTATTAAAAGTACAAAAATCCTAGCTACTCAGGAGGCTGAGGCAGGAGAATTGCTTGAACCTGGGAGGCGGAGGTTGCAGTGAGCCGCTGCACTCCAGCCTGAGTGACTGAGAAGTCTCCGTCTCAAAAAAAAATTTTTTTTTAATTAGCCAGTCTTGGAGGTGCGTGCCTGTAGTCCCAGCCACTCAGAAATTCACGCCTCCCTTATGTTACCAAACCAGGCTCGTTCTGCCCAGCAGTATGCCAACAGAGATGACAGGTTTTGCAGCAAAGAGTTTATTCACGAGGCAGCCGAGTGAGGAGACAGGAGAACAGATCTCAAATCCGCCTCCCTGAAGATGGGATTTTAGGAATATTTAAGGGATAGAGGAGCAAGGTGGTCAGAGACGTGGGGAAAAGTGGGGCAGTCGGGGAACCGTGCGTGCGTAGTCAAGCTTCATGGCTTTTCCATAGGATGTGTGTTCACAAAATGACATTGTTATCATGATCTGAGGGTGGAGTGTTTGGCCCTCTAACGTCAAAGGTCACCACCTAAATATACACAGGCCAAGGTGAAGGTTCGGCTCTCAGCCCATTTGGATTGGACAAGAACTGATCCTGTTCCTGAAGAACAACTTGAGCAACCATTACCATGGTGGCCCATACATAGAGATATTATCTATAAGGAAACTAGTGGGAGTTTTTTTGTTTGGGTTTTTTTGTTTTGTTTTGTTTCTTTGTTTTTGAGACGGAGTGTTGCTCTTTTTGCCCAGGCTGGAGTGCAATGGCATGATCTCGGCTTACTGCAACCTCCACCTCCCGGGTTCAAGCGATTCTCCTGCCTCAGCCTCCTAAGTAGCTGGGACTACAAGCGCCCGCCACCACACCCGGCTAATTTTTTGTATTTTTAGCAGAGACGGGGTTTAACCATGTTGGCCAGGCTGGTCTCAAACTCCTGACCTCAGGTGATTCACTCGCCTTAGCCTCCCAAAGTGCTGGGATTACAGGCTTGAGCCACCGTGCCCAGCCTATTTTTCTGTCTTTCTTTTCTTTTTTTTTTTTTTTTTTTTGAGACAGGGTCTCACTCTATTGCCCAGGCTGGAGTGCAGTGACACTACCATGGCTCACTGCAGCCTCCAACTCCTGGGCTCAAGCCATCCTCCCACCTCAGCCCCCCTAGGAGCTGGGACTACAGGTACATGCCACCACGCCTGGCTACTTTTTGTATTTTTTGTAGAGATGGGGTCTCACCATATTTCTCAGGCTGGTCTCTAACTCCTGGCTCAAGTGATCTGCCTGTCTTGGCCTCCCAAAGTGCTGGGATGACAGGCGTGAGCCACCACACCTGGCCTGGGAGTTTAGCTATACATTGTTTAGCTGAGTGACTTTTAACACTATGGGGTTTATAATCAACTAAAAACAAGTGAGGTAAGTTAAGATTGGTAGGTCTAATCAGGTGAGCCCTCAGTTCCCCTTATGGATGGGCAATTGTTAGGTATTGCCATGACAATGTGATAGCAATTTGGTGGGGGCTGCTGAACTCATCTGCACCCCGCCTCTGACATCCAGCCCAGATTTCTGATCTAAGTTCCACGTTTCACACCAGCCCCTGAACCTTGGTCAACCCCTCCCCTCTCCCACCCACCACTGTGGCATCTCCTAACAGTATAGAGGTGAGCCCGTGGACCTGTCTAGACTAGTGACAGTGAAGAAGATGTTTGCTAGCTGCGTCCAAGAAGAGCTTCAGGAGTCCTTTTTTTTTTGAGACGGAGTCTTGCTCTGTTGCCCAGGCTGGAGTGCAGTGGCGCGATCTCGGCTCACTGCAAGCTCCACCTCCAGGTTCAAGTGATTCTCCTGCCTCAGCCTCACAAGTAGCTGGGATTACAGATGCCCGCCACCACGCCCAGCTAATTTTTATATTTTTAGTAGAGACGGGGTTTCACCATGTTGGCCAGGCTGGTCTTGAACTCCCGACCTCAGATGATCTGAACGCTTCGGCCTCCCAAAGTGCTGGGATTACAGATGTGAGCCACCACACCTGGCCACCAAATGCTTTTTGCTATAAACAATTCCGCGCAGCCTAGGAGTGTCCTGAAGAAACACAACATGGTACCCCAGGTGCAACCGGCGGCTGATGACTGAAGGTAGGTGTGTAAGTAGCTTAACCCATGCCCGGACGTGGGATCATCCTGAGATAATTGCTCTACCCTGCCCCGCTAAGGCCCACAGCAGGACTGAGCCTGGTTGCCCACAGTGTCACCTGCTCATTGGTGCCCCCTGCAGGGCATCTTCCCTCCTCGTCTCAGCTCTCACCCGCCATGGGGGCTGCCTGGGGACACCTCCCAGGTAAACCACTAGCTCTGAGTCCTTTTGGGGTCATCTTTGGGGGAAACCTATCCAAAAAGGAATAGGAATGCCAGGTATTCCTGCAAATAGATCATATAGATTTATACCACATACTCACCCATATTTGATCTTCCATAATCTGACAAGTAAAAAATGGTATCTCAGCCGGGTGCGGTGGCTCATGCCTTTAATCTCAGCACTTTGGGAGGCCGAGGCAGCTGGATCACTTGAGCTCACGAGTTCAAGACCAGCCTGTGCAGCATGGTGAAACCTTGTCTCTACAAAAAATACCGGGCATGGTGGCACGTGCCTGTAATCCCCACTACTCAGGAGGCTGAGGTGGGAGGATGGCTTGAGTCTGGGAGGTGGAGGTTGCAGTGAGTCGAGATGGCACCACTGCATCCCAGCATGGGTGATAGAACCAGACCCTGTCGCAAAACAACAACAACAACAACAAAAACCAGTTAATTTATGGCCAGGCATGGTGGCTCACACCTGTAATCCCAGTTCTTTGGAAAGCTGAGGCAGGAGGATCACTTGAGACCTGGAGTTTGTCTCTATAAATAATTTTTTTTTTTGGTGGGACAGGGTTCTCATTCTGTCACCCAGGCTAGGGTACAGTGGCACAATCACATCTCACCGCAGCCTCAACCTCCCAGGGTCAAGTGATTCTCCCACCTCAGCCTCCCGAGTAGCTGCGACTACAGGCGTGGGCCACTATGCCTGGCTAATTTTTTATATTTTGTAGAGACGGGGTCTTGCTATGTCACCCGAGCTGATGAACTCCTGGGCTCAAGAGATCTGCCCACCTCCACTTCTCAAACTGCTGGGATTACAGGCGTGAGCCACTGCACCCAGCCCTCTACAAATAATTTTAAAAACTATTTTACTATTTTAAAAGTTGAAGGTTATATTTTGTTTTATCTATGAGTTTTATTTCCCCTTTTTATTTTGTTTCGGCTTGTCTGGAAATGGTATATTCCGTTTCTTCACCCATAGGGCTTCACAACATCAGCACTGCTGACATTTGGCGCTGATAATCCTCTGGGGTGAGGCCATCCTGGGCACCACACGGTGTTGAGCAGCATCTCTGGCCTCCATTCTTCAGACACCAAGAGCAACACCTCCACCCCTTGTGGTGACAACTAAAAGATGTCTCCAGACATCAACATGTGTTCCTTTGGAGCAGAACCACCCCGTCCTGTGAGAGGCACGGATATGGTGGTTACAATGGATACATCAACAAGAATTTAAATGTTTGGCCGGGCGCGGTGGGCGCGGTGGCTCAGGCCTGTAATCCCAGCACGTTGGGAGGCCGAGGCAGGTGAATCACTTGAAGCCAGGAGTTCCAGACCAGCCTGGCCAACATGGTGAAACCCATCTCTATTAAAAATACACACACACTGCCGGGTGCGGTGGCTCACGCCTGTAATCCCAGCACGTTGGGAGGCCAAGGAGGGCGGATCACGAGGTCAGGAGATCGAGACCATCCTGGCTAACACGGTGAAACCCCGTCTCTACTAAAAATACAAAAAATTAGCCGGGCGTAGTGGCGGGCGCCTGTAGTCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATGGCGTGCACCCGGGAGGCGGAGCTTACAGTGAGCCGAGATCGCGCCACTGCACTTCAGCCTGGGCGACAGAGCGAGACTCCATCTCAAAAAAAAAAAAAAAAAAAAAACTACACACACACACAAAAATTAAAATATTTATCTTCCCTCTGAGCCACACACAAAGACCTCAACCACCCCCTTCTATCTTTCCTATTTTTATTTATTTATTTATTTTGAGACAGAGTCTCGCTCTGTCACCCACGCTGGAGTGCAATGGCGCGATCTTGGCTCACTGCAACCTCTGCCTCTGGGGTTCAAGCGATTCTCCTGCCTCAGCCTCCTGAGTGGCTGGGATTACAGGCACCTGCCACCGCACCTGGCTGATTTTTGTATTTTTAGTAGGGATGGGGTTTCACCATGTTGGCCAGGGTGGTCTCAAACTCTTGACCTCGTGATCCACCGCCTCGGCCTCCCAAAGTGCTGGGATTACAGATGTGAGCCACCATACCCAGCCTGATGAAAATTTTAAAAAAGAAAATTCTTAAACCGTTCTAAGTCAGGGAACTGTCTGTATACATCTTACTTATACAAAAAGGTTACATATGCACCTTACATTGTTTTTGTTTTTGTTTTGAGATGGAGTCTCACTCTGTCACCCAGACTGGAGTGCAATGGCATGATCTTGGCTCACTGCAACCTCTGCCTCCCGGGTTCAAGCGATTCTCCTGTCTCAGCCTCCCGAGAGGCTGGGATTACAAGTGTGCACCACCACGCTTGGCTAATTTTTTTTGTATTTTAGTAGAGACAGGGTTTCACCATGTTGGCCAGGCTGGTCTTGAACTGCTGACCTCAGGTGATTGGCCTGCCTCGGTCTCCCAAAGTGTTGGGTTACAGGCATGAGCCACGGCACCCAGCCTGCACCTTACATTGTAACACACGTGTGGACACACCCTGGAGTCACAGCTACAGGACAATTTCAGAGTCCATGACGGCCCCACATCCCTTCCCTGGGTCACCAAGGCCTCAATATGCCCCTCCCCCCTCCCTGTGTGTGATATCTATACAAGTCACCTGCATACCTGTAGCAGACGCTGGCATCACTGTGGGCTCCCCGCCCTCCCATTCCTCAAACTGGTTTTCCTCTAAGGTTTCCCTGCCCATCTAACCTTCTCCTGGCACTCCCTCATGGTGCATTTCTCTCACCTGCCCGTCCGTCCCAGGCCACCTGCCCTCTCAGCTGGGACTCCAACTTCCCCTGATTTCTGGTCTCTTCCATCCTGCTTTTGGACTTTTCCTGGGACACTTGCATTTCTTCTTTTTCTTTTTTTTTTTTTTTGAGACAGAGTTTCACTCTGTCACCCAGGCTGGAGTGTGATGCGATCTCGGCTCACTGCAGCCTCCACCTCTCAGGTTCAAGCGACTCTTCTGGCTCATCCTTCTCAGTAGCTGGAACTACATGCATGCGCCACCATGCCTAATTTTTGTTATTTTAGTAAAGACTGGGTTTCACCATGCGTTGACCAGGCTGGTCTCAAACTGCTGGCCTCAAGTGATCTGCCCGCCTTGGCTTCCCAAAGTGCTGGGATTTGGGATTACGGGCGTGAGCCGCCGAGCCTGGCCTCCTTCTTGCTCTCCTTTCTCCTCCCAGACCTTTGCTCCCCTCTCAGTCCTGCTCCTCTCTCCCTCCCGCGCAGCCCCCACCCTGCACCCGGGCAGGTGCCACAGGGACGTGCAAGACAGCTACCACCCTGCACAAGCCCGAGTCCCAAACCACTCAGACCCTGTTTGTAAAAATCGGCATGCTCCTTTATTTGTTCAGAAGAGCAGCCAGCATCACCCTTGCCACTCAAACCTGGCACATACGCTTCGGAGACAATGGCCTCGGGACCCTCATGCTGCTGGGCCCAGGAGAGACAGTTCTGAGGCAGAAACTCGGCGTCCAAGGGGGGCCGCGGGTCAGGCACTGTGGTGAAGGGAACGCCGGGGAGTCCGGCCCCACCTTGCAGCTGGGGACACGGGGGCGCAAACAGAGGGGGCAGGCTAGTGTCCCGCTGCCCCAGGAACAGACCTCAGGGCCCCAGGAGGGTCTGCAGGCAGCTAGGAGCCTGCCAAGTGCTGGTGGAAGTAGAGGCCGAAAAGGCTGGCGAGCAGCTGGCAGGCAGCCGTCCACCAGATGAGGTAGGCCAGGACGCCACGGAGGAAGAGGGGAGTAAGCAGGCCACCCAGAGCCCCGGCAATCCGCGCTGCAGTCTGCTGGACTTCGTCCTCCCCAGAGCCGATGGGGGCAGCGCTGGCTGAGGATGGGTCGGGGGATAGTAGAGGAGCTGGGCCCAGGCCCCAGGAATAGCCTCCTAGGAGAAGAGGATGAAGCGAGGTATGAGTGGAAAAATGGGGGAGGGGGCGAGGGACAGGGCTGGCACGGGGGGCCAGGCCCATTCCTCCAGACACTCCCACCCCTGTCTCAGACTCCATCTCCAGCCCAGTCTCCACCCCCTCAGGCGCTGCCCCCTGTCCAAGGCAAACCCTACCCCAGGCCCCACCTCCTGCTCAGATCCTGCCTCAATACATGCCCTGCCCCCTCCCCAGGCCCCGCCTCCTGCCAAGACGCAACCCCTCCCCAGGCTCCACCTCCTAAGGCAAACGCCATCCCAAACTCCACCTCCTGCTCAGACCCTGCCTCACCACAGTCCCCGCCCCCTACCCAGGCCCCGCCTCCTGCTCAGATTGCACCCATCCCCAGGCTCCACTTCCTGTCCAAGGCAAGCCCCACTCCAGGCTCCGCTTCCTGCTCAGACCCTGCCTTACCACAGTCTCCGCCCCCTGCCTAGGCCCCGCCTCTCCCCCCCCACCGCGGTCCCCGCCAGAGTCCACCTCCACTCTGTTTTATCTTCCAACTCCGCCCCTCCTCCACCCCCACACCGCGGCATCTCACCCAGCGTCTTGAGCAGAAGTGTGCAGTTGAGGGTGAGGATGAGCGGCGTCAGGTACTGCAAGCTCACCACGGTCACATAGCAGTAGACTCGGACCACCTGTGGGCAGGTAGCAGGGGTGGCTGCAGCAGGAGGCCTTCTGGTTTGGGACGACTCCACGCCCAAAGGACCAGGAACCCCACCCTGAGCCCCAGGTTCCCTCTGGCCTAGGTCATCGGGGCGTCCATACCCTCTGCTGGATTTCACGGGCTTCGATGCGGCCAGCCTCCCTTCGCAGCTGCTCCACCCGGGCCTTGGCCAGGCACAGGTAGGCCTGCAGGTGGGGCCGGGTCACCGCCAGCCGCAGCAGGCACAGCACCACCAGCAACCAGAGGCGCCCAGAGTCGAAGGCAGAATCGGACAGCCTGTGCGGAGAGGGCCGGGGGCAAGGGACTAAGAAGGTCGCCCCCGACCCCCCAGGATCTTCCCCAGGCTCCTCCCTGAATCTCAGAGGCTAGGGCACCCAGGGGAGCCCCAGCTACCTCCTAGCCCCACCCAATACGCACAGGGAGAAACGCGTCTCCCCAAACGGCGGCTGGTGCAGGAAGTCCCGTGCAATGGGCTTTGTCCAGAGCCACAGGATGAACAGGGGAGACAGGAAGCTGGTGTGCAGGAGGAACCTGGGGGGTGAGGGCAGGAGGGAGTGAGGCCTGGGTACCCCCTCTCCTCGAGTCTCTCCCTTAAGCTCCCTAGTCCCCCCACCCACCAAGCGACCCACTTAACTGCAGCATGGGTCTGTCCTCCGACATGGTCAGTGCGTCCCGGTGGGTCTGGGCCAGCCGCAGGCCTGGGAAGGTGAGGAAGGCACCCAGCACAGAGCCCACCACTGCCAGTCCCACGCGGATAGCCAGCTTGGCCACAGGAAGCCTAGGAGAACACCAGGTCACGAGCCTGCCTGGGGGACCCTGGGAGGGTCCCAGCCTGCCCTTGCCTCCCTCCCCCATTCCCAGGACTCACGCCCAGTCCCAGCCCTGCTTCTTCAGAAGTGGCTCTAAGTTCTGGGTCATGCTGGCCAGACCTGGGGACGATAAGAAGAGGACCGAGTAGAGTGAATTCCTAGGGTCTCTAAGGCCACTCTGTTCCCTAACCCCCCATCCCTCAGGCATCCGTTTGCTTCCCAAGTAGGAATGAACAAGGGTCTGCCAGGCCCTGAGCCAGGCACAAGGACAATTTTGTGCTCTAGTTACACAGTACTTTTTACAAGAAACAAGATTGGAGTGGTGGTTCACGCCTGTAATCCCAGCACTTTGGGAGGCTGAGGCAGGCGGATCATCTGAGATCAGGAGTTTCAGACCAGCCTGGCCAATGCAGTGAAACCCCCGTCTCTACTAAAAATACAAAAATTAGCCAGGTGTGGTGGCAGGTGCCTGTAATCCCAGCTACTTGAGAGGCTGAGGCAGGAGAATCGCTTGAACATGGGGAGCGGAGGTTGCAGTGAGCTGAGACCGCACCATTGCACTCCAGCCTTGGGGACAAGAGTGAAACTCAGTCTCAAAGAAAACGAAACAGAATGCACCAGGCAGACACTCCTGATTGGGCTGGGAACATTCAGGGGTATCTGTTGAGCCTGAGCTCCCTAGGTTATAGAAGGAATCTAGAGGGGGATGAAGGACTCCTGCAGGAGAAAACCAAAGTCCTCCTGGAGGAAGGAATCCTCAATTCAGGACCCAAGATTTTTCAAAAATTAAGAGCAGGGCTGGGTGCAGTGGCTTGCACCTGTAAGTCTCAGCACTTTGGGAGGCCAAGGCGGGTGGATCGTTTGAGCTCACAAGTTTGAGACCAGCCTGGGCAACATGGCAAAACCCCCATCTCTACAAAAAATACAAAACCAGGGGTGGTGGTGCACGCCTATAGTCCCAGCTACTGTGAAGGCTGAGGTGGGAAGGATGGGTTGAGCCCAGGATGTGGAAGTTGCAGTGAGCTGAGATCATGCCACTGCACTCCAGCACAGAGCAAGACCTTGTCAAAAAAAAAAAAAAAAAGGAGCAAATTCATATGAGCTCACAGGCAAAATCACCAAATGCATAAGGAAACAAATCACCATAAAGGAGAGTTAACAGAAAAACAACAGTCAAGTTTAGGCCTCAAAGACTTCAGAAATTGGTGCTGTCAATTATGTGTCAAATGACTAAGGAAATGAAAGCTGTAATCACAGAACAAGTGACATGAGAATTCCTTCAGATGACTGGGTAGAGTTGCAAAGGAACCAAATTAAACTCTTCCAAAGGAAAACTGTAAGTATTGAAATAATAGGTTGTTAAACAGCACATTAGGAACAGCCAAAGGAGGAAGTGATGAACTGGAAGACAGATCTGAAGAAATCACTCAGATTCCAACTCAGAAAAACAAGTAGGTGAGAAATATGAAGAGAGGCTAAGAGATAAGGAAGACAGAACAGAGAGCCCAACGCAAATCAAATCAGAGCCCCAGAGGGAGGGAAGAGAAGGAATGAAGAATAAAAGGAATTACTGGAAGAGAATGGTTGAGAAGTTTGCAGAATGAAAGACAGACACAAAGTATATCAAACCATGTAAATAAAAAGAAATCCATACCTAGACATAATGGAGTGAAACTGCAGAACACCAAAAACAAAAAAATTACAAAGCAGCCAGGGAGTTAAGACAGATCACCTACAAAGGAACAACAATTAGGCTGACAGCCAATGTCAACTGCAACAACAGAAAAGGAACAAATAGAAAGCAAAAAAGTAAGATGGTAGAAACAAAGTCAAATATGTCAGTAATCACAATAAATGTAAGTAGACTAAACTTTAAAGTTAAATGACAAAGACTGTCAGACTACATTGAAAATATCCAGCTACATGTTTTTTAAAGGATGACATACCTTGACATAAAGTCACTGGAAGACTGAAAGTAAAGGGATGTTAAAAAGATACAGCAAATACTAATCAAAAGAAAGCAAGCTAGAAAGGCTATACTACTACCAGCCAAACTAGACTAAGAAGTAGTATTAGAATAGGCCAGGCGCGGTGGCTCACACCTGTAATCTCAGCACTTTGGGAGGCCAAGACGGGCAGATCACAAAGTCAGGAGTTCGAGACGAGCCTGGCCAACATGGTGAAACCCTGGCTCTACTAAAAATCCAAAAAATAGCTGGGCATGGTGGCGGGTAATACCAGCTACTTGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCAGGAGGTGGAGGTTGCAGTGAGCCGAGATTGCGCCACTGCACTCCAGCCTGGCCAACGAGAGCAAAACTCTGTCTCAAAAAAAAAAAAAGTAGTATTAGAAGACAGAAGGGTTCCATACATCATGATAAAATGGCTGATTCACCAGGAAAATGTAACAGTTCTAAATCTGTGAATAGAACTAATCTGTGAATTGTGAATAGGCTGCAAAATATATAAAGAAAACACTGACAGAATTGATAGGGAAATTGAGAGCTCTCTTGTCCCAGAGGGAGATTAACTTCTGCTGACTGATAAGTCACAGACAAAAGGTTAGGCAAGATGGAGATTTGAATTTATTAAACTCATAGAGCCAGGGAATATGTCCTTCAATTAGAACATGTGAAAAAAGGCAAAACAACAAAAACAGAATATGTCCTTCAAGAAAACAAGGAATAGTCACAAAATGTGATCACATTCCAGGCCATAGGGCAAATCTTACCAAATTTTAAAGAAATTATTTCAAATAGACCATCTGTGCAATTGAGCTAGAAATAAATATGTATTTTTTAAAGATCTATGTTTGAAAAATTTAAAAATATTTAATAATCCATAGGTCAAAGCATAGCAAGACCCCATCTCTACAGAAATCAGAAGGGAAATGTTAAAACACCCCAAACAGAATAATAAAAAATATCAGTCAAAACTTGGGTAAACTGCCAGGTGTGATGGCTCACACCTGTAATCCCAGCACTTTGAGAGGCCGAGGTGGGTGGATCACCTGAGGTTAGGAGTTTGAGACCAGCCTGGCCAACATGGTAAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCAGGCGTGGTGGCGTGCACCTGTAATCCCAGCTACTCAGGAGGCTGAGGCAGAAGAATTGCTTGAACCCAGGAGGCAGAGGTTGTAGTGAGCTGAGATTGCACAGTTGCACTCCAGCCTGGGTGACAAGAGCAAAACTCCATCTCAAAACAAAAACAAAAACAAAAAAAAACTTAGGTGAACAAAAGTGAGACCTGGTAAAATATATATAGCATTAAATGCTATATATGCTATAAAATTAGAAAAGATTGAAAATTTATGAGCCAAGTAGCTAACTGAGAAATTGGAAACAAGAAAAGGAGGTACGCCAGTACTGTTCTCAAATCCAGAGGTCCTAGCCACACCAAAGGGGAAGGATCAGACAGAACAAAAGAAAACCAAAAAGAATCTGCAATTCAATAAAAATATAATTGTTTAGCAAGGTTAGTCCGTGGAGACACTCAAATTTGACCCCTATATGATAACACAAAAATTAATGTCACTGTCCATCAGCAACAGTGAGTAGTTTAGGAGCTTATATGAAATGTAAAAGTTGAAATATTTTATTTATTGATTTTTAAGATGGAGTCTTGCTCTTGTCGCCCAGGCTAGAGTGCAATGGCGTGATTTCGGCTCACTGCAACCTCTGCCTCCGGGGTTCAAGTGATTCTCCTGCCTCAGCCTCCCGAGTAGCTGGGATTACAGGTGCATGCCACCTTGCCCAGCTTTTTTTTTTTTTTTTTTTTTAGACGGAGTCTCGCTCTGTTGCCCAGGCTGGAGTGCAGTGGCGCGATCTTGGCTCACTGCAAGCTCCACCTCCCGGGTTCACGCCATTCTCCTGCCTCAGCCTCCCCAGTAGCTGGGACTACAGGCGCCTGCCACCACGCCTGGCTAATTTTTTGTATTTTTAGTAGAGACGGGGTTTCACGGTGTTAGCCAGGATGGTCTCGATCTGCCGACCTCGTGATGTGCCCATCTCGGCCTCCCAAAGTGCTGGGATTACAGGCATGAGCCACCACCCCTGGCCAGTCATTCTATATTTTCTTCTAAAATATTTCAGCCAGGCGTGGTGGCAAGCGCCTGTAATCCCAGCACTTTGGGAGGCTGAGGCAGGTGGATTGCCTGAGGTCTGGAGTTCAAGACCAGCCTGGTCAACGTGGTGAAACCCCATCTCTAGTAAAAAATACAAAAAGTAGGCCGGGCACGGTGGCTCGCGCCTGTAATCCCAGCACTTTGGGAGGCTGAGGCGGGTGGATTGCCTGAGGTCTGGAGTTCAAGACCAGCCTGGTCAGCATAGTGAAACCCCATCTCTAGTAAAAAATACTAGAGATCGCCCACTGCACTCCAGCCTGGGGGAAAGAGCGAGACTCTGTCTCAAAAAAAAAAAAAAAGACAATGTAGAATGACTTTCTGATTTTAGGGAAGGATATTTTTCAAGACAAATATCAACTAAAATAATCAACTTCCATTCATCAAGACACTAGAGGTGACACTTACAACTACATTTGACGACTCAGCAAAGAAAGTGTGATGCATGTATGCAGACGGAAAATAATGCAAATAGTGGTCAAATGAAAACAAAAGAAGTATTGGCAATGAAGTGGATAAATTTGGAACACTTGTGCACTGCTGCTGGGAATATAAAATATAAAATGGGCTGAGCACAGTGGTGCACACCTGTAATCCCAGCACTTTGGAAGGCCGAGGCTGGCGATTGCTTGAGTTCAAGAGTTCAAGACTAGCCTGGGCAACATGGCAAAATCTGTCTCTATTAAAAACACAAAAATTATCTGGGTGTAGCCAGATGTGGTGGCTCACACCTGTAATCTCAGCACTTTGGGAGGCCAAGATGGGCAGGATCACCTGAGGTCAGGAGTTAAAGACCAGCCTGGCCAACATGGCAAAACCCCATCTCTACTAAAAATGCAAAAATTAGCCAGGTGTGGTGGCGCACACCTGTAATCCCAGCTACTTGGGAGGCTGAGGCAAGAGAATCACTTGAGCCTGGAAGGTGGAGGTTGCAGTGAGCCAAGATCATGCCACTGTACTCTAGCCTGGGTGACAGAGGGAGACTGTCTCAAAAAATAAAAATAAAAATAAAAAAATAAATTAGCTGGGTGTGGTGGTGGGAGCCTGTAGTCCCAGCTACTTGGGAGCCTGAGGCATGAGAATCACTTGAATCCGGGAGGCAAAGGTTGCAGTGAGTGGAGATCACGCCACCACTGCACTCCAGCCAGGGCAACAGAATGAGACTCTGTCTCAAAAATAAAATAAAATGGTTCAGCTGCTGTATAAAACAGTATGGCAGTCCCTCAAAAAATTAAAAGTAGAATTATCATATAATCCAGCAGTTCCACTTCTGGATATATACTCTCCAAAACTGAAAATGGGGTCTCAAAGAGATACCTGTACACTCAGGTTCACAGCGGTATTAGTCAAAAAGCCAAAAGTTGGGAACAACCCAAGCATTCATCTGTGGATGAATAAACAAAATGTGTTCCACCCAGACAATGAAATAGTGTTCAGTCTTTTTTTTTTTTTTTTTTTTTGAGATGGAGTCTTGCTCTTTCACCCAGGCCGGAGTGCAGTGGCACTATCTAAGCTCAC += diff -Nru primer3-2.3.7/test/primer_masker_output primer3-2.4.0/test/primer_masker_output --- primer3-2.3.7/test/primer_masker_output 1970-01-01 00:00:00.000000000 +0000 +++ primer3-2.4.0/test/primer_masker_output 2017-11-03 16:29:54.000000000 +0000 @@ -0,0 +1,780 @@ +SEQUENCE_ID=masker_default +PRIMER_TASK=pick_pcr_primers_and_hyb_probe +PRIMER_NUM_RETURN=5 +PRIMER_PRODUCT_SIZE_RANGE=50-500 +PRIMER_EXPLAIN_FLAG=1 +PRIMER_MASK_TEMPLATE=1 +PRIMER_MASK_FAILURE_RATE=0.2 +PRIMER_MASK_5P_DIRECTION=1 +PRIMER_MASK_3P_DIRECTION=1 +PRIMER_WT_MASK_FAILURE_RATE=0.0 +SEQUENCE_TEMPLATE=CTGACATTTTATGCCCAAGACAATGGCTCTGCCTTCTACCTTCACATGCTCAGGGTCACTCAGCACGTCCTGGAGGATTTCTCTGGCCTGGAGTCCCTGGCCCGGGCAGCAGCGCTAGGGACCCACCGAGTGGTCACAAGGCTGTTTATGTTGGGCCTCCTGGTGGAGTCGGCATGGTACCTCCATTGCTACCTGACAGACCTGCGGTTTGACAATATCTACGCCACTCAACAGCTGACCCAGCGGTTGGCACAGGCCCAGGCTACACACCTCCTGGCCCCTCCACCCACCTGGCTGCTCCAGGCGGCTCAGCTGAGGCTGTCACAGGAGGAGCTGTTGAGTTGTCTTCTAAGGCTGGGGCTGCTTGCCCTGCTCCTCGTGGCCACTGCTGTGGCGGTGGCCACAGACCATGTAGCCTTCCTCCTGGCACAGGCGACTGTGGACTGGGCTCAGAAGTTGCCAACTGTGCCCATCACGCTCACGGTCAAGTATGATGTGGCATACACTGTCCTGGGCTTCATCCCTTTCCTCTTCAACCAGCTGGCTCCGGAGAGCCCCTTCCTCTCCGTCCACAGCTCCCTACCAATAAAGGAGGGCGCGCAGAGCGGCGCGGCGGGCCCGCCCGCGGCCGCCGCCCCGCGCCTGCGCCGGCGGGCGGATCAGCCGACATCCAGGAGCTCGTCTCCTTGTGTGACTGTAAAACCCCATTTTCGGTGTTTCTCTCTGGAGTGCTTTCCAGCCCCTTGACCCCACGTTCTCACCCCACGTGATGCCATCAGACCCCTTGTTTTTGCCCACCTGGTGAGCAGATCACAGTGTCTCCTGTCTGGCTGTTTTTTTGAGACGGAGTCTCACTCTGCCGCCCAGGCTGGAGTGCAGTGGAACGATCTCAGCTCACTGCAACCTCCACTTCCTGGGTTCAAGCCATTCTCCTGCCTCAGCCTCCCTAGTAGCTGGGATTACAGGCGCCCACCACCACACCTGGCTAATTTTTGTGTGTTTTTGGTAGAGACAGGGTTTCTCCATGTTGGCCAGGCTGGTCTCCAATTCCTGGGCTCAAGTGATCCGCCTGCCTTGGCCTCCCAAAGTGCTGAGATTACAGGCGTGAGTCACTGCACCCAGCCTTGGCTGTTTTAAATTCCTAGTTCTAAATTTACTATTACAAATGTTTAAAGTACCCCTACTGACCTGTTGCTGCTCCTTCCTCCTCCACACCCACACACCCCGTTTAGACCCGCAAGACAGAGCAGGGTGAAGTTCATGGTCACTTATGTCCACTCTGTGCAACAGCTCGCAGGGGCTCCCCAGGGAGGGCGCAGGTCGGGGACCAGGCACGGGAGCACCTAGAATGTTCCTTTACTAGACGTGGAGTAGAGCTGATTAGATGTGAGCAGTGGCTCTAGGAGTTGGTTCTATGATTCTCTGTGTTTCTGCCTTTTAAGAAATTTTATTTCTCGGCCGGGCTCGGTGGCTCATGTCTGTAATCCCAGCACTTTGGGAGGCCGAGGCAGGCAGATCGCCTGAGGTCAGGAGTTTGAGACCAGCCTGACCAACATGGAGAAACCCTGTCTCTACTAAAAATACAACATTAGCCAGGCGTGGTGGTGCATGCCTGTATTCCCAGCTACTTTGGAGGCTGAGACAGAATTGCTTGAACCCGGGAGGCGGAGGGTGCAGTGAGCCGAGATTGGGCCATTGCCCTCCAGCCTGGGCAACAAGAGTGAAATTACATCTCCAAAAAAAAAATTTTTTTTATTTCTCGAGTTTGAGTGAAAGGAGCGACCCGGAGGTGAGGCAGTGGGGCGTGTGGGTGCGCATGAGTGCGAACACACGTGGGGGTGCAAGTGCATGTGTGTATGTGCACGCAGGTTGCTCCTAGGGGTGCAAAGGCGCGCGCACGGGTGCGGGGTGCGCGCCCCCTCGCGGCGCCTTCACGGCCCTCCCGCCCCTCGCCCTGCAGAGTACAGCGGCCGCCGGCAGCCCTACCCCTTCGAGCGCATGATCTTCGGCGCCTGCGCTGGCCTCATCGGGCAGTCGGCCTCGTACCCGCTGGATGTGGTGCGGCGGCGCATGCAGACGGCCGGCGTCACGGGCTACCCGCGCGCCTCCATCGCCCGCACGCTGCGCACCATCGTGCGGGAGGAGGGCGCCGTGCGCGGCCTCTACAAAGGCTTGAGCATGAACTGGGTCAAGGGTCCCATCGCCGTGGGCATCAGCTTCACCACCTTCGACCTCATGCAGATCCTGCTGCGGCACCTGCAGAGCTAGGGGACCCTGAGCTGCTCTCAGGACGGTGGACCGGTGACCCCTTTGTATTCTGGGCCCATGGAACGGTGGGGGGGTGCGCTTGATTCTACTTCAGGAGGCACATGGGGCGCTTTATGGAACGAGCAGGTGGGCCTGAGGGGCCTGGGCTCAGAGTCCACGTCCAAACGCAAAGCTGGCAGCCCTGGAAGTGCAGTGTTGGGGCGATGGTGTGGGGGGTCCCGCAGCTCCCCTCTTCCTTCCTCTGCAGACGCTGGCGCTGTCTGCCGGAGGTGTTGCCCAAAAGGCCCTAGTGGGGCGTGGTCAGCTCCACCTCCTGATCCTGTGTGTCCTCCGACATGCTGCTGATTCTAGTGACCCCTGTCCCCACCAGGCTCAGAGCCAGACCGCGCCTGGACCTTCTTGTTCTGACTCCACGTGCCTGCCCGGCCTCCAGGGTGCGGGGGCGCCTTTCTTGCAGGCGGACCCTGCCCAGGATGGGGCCAGCCTCGTGCTCAGCTTTGGCCACAAATGCAGCCCCTGGCCCACCCCACCCTGCCGGCCCTGCCTTCTCCAGTATTTCCCACATGGCCACGACTCCTCAGTCACTAGAGCCTCCTGCTGGGAACAGTGTCCCCCAGAGCCTCATGTCTATCCTAGACCCTGCAAGCAGCTGGGTCCCCAAGAGTGCATCTCCCCCTAGAGTTGCCTGCCCATGCCCACCTGCTTTGTAACCTTCCCAGGAGATTCATGCTTGCTCTGCACAGCAGGGCTCGAGGCCCAGGCCATGACACGGAACTGCCTCAGGTTTGGGTCAGACCTGCATCCTGGGGCATCTGCTGAAATGTGAGCACACAAACCACCTCCTTTGGCCCAGAAGCCCCCCAGGCCTAGCATCTCAGTGCCCCAACCCTCTGCCCAGCTGTGGTATCCAGCAGGTCCTTGGGTCCCCACTTGAGCAGGCACTTGGCTGGGATATGGAGCAATTTAAAGCCCACAGGGGTTGTTCAGTTTCTATGAAATGGAGCATGGGGTGCCTGCTAGCCTCAATCCCCCGAAGTGGGAGCCTCATGATAGAGTATAGCTTGGGGGTGGGAGGTGAGGAAAATCTGAGGTACCCAGGGGAACCCCCAGCTAACTGGTCTCTCAGAGGAGTCCCCCAGGGCCCGCCAGCTATCACAGGGACTCAGAAACACCCATTTCCTAATGACATGGTGAGTTTCTTGATTTCTTTTTTTTGTTTGTTTTGTTTTGGTTTTCAACTTGGCTGACCCCGGGTCTATGATCTATTCACATCGAACCCCTGACTGGTCTGCCTGGTGCCAGGGTGAGCGTGACCGTGAGTGTTGCTTTCGACAGCTGGCTCAGCACACGCTGTGTGAAGGGATCTGAGCTTGTTCATCTCCAGTCGTGACTTCATTTCCCTTCCTTCTGTCCTCCTCCTGTTCTTGCCTTGGACCTGCAGGTGTGCAGACCGCTCTCTCTGCCTTCCTTGCATGTGGCCACCAGCCATCCCTGATCTTGTCCCCAGAGGCCCAGGCAGCCTGTGATGGCTGTGAGGGGCTGTCCCACTGTGTGGGTATCCCTTACCCAGCACTTAAACTTGGCAGGAGAGGCAGGGCAACCCTCACAGGGAGATGGGAGGGCACCCAACTCCCACAAGCATGCAACAGCAGTAGGAATTGGGGGTCTGCCCCAGGTGGGTGAGACCAAATGAGTGGATTTGGGGCCACAGGCTAGGCAGGAGAGACAAGGGGTAGGTGGGAGGGTCCCCCAGTCCCTGCTGACCCCAGTGTGTCTCCCCGGAGATGGCTCCTAGCTGAGTGGGACCCGGCAGGAGTTGGGGACAGTGCTGTCCCCCACCCCTGCACACAGCCAGGCCCTCAGGCTCTGCGGTCACTCGCCTCCCTGCTGGTCACTGGTCTTGGTCTGGAGTTATATTTTGATGCCATGAAGACACTGTTTATATCTAATGTTTATATATTTTAAAGATTTGTGCCAAGAGAGTATATTTAATAAAAACTTAAATGACTTCTTCTCCTGCTCCTGGCTCTTCTTTGGCTCTGACCGCCCCCCCATCTTCCCCCATGAACCCCCAAACAGGGTTGAAGTGCTTTTGACACATTTGTGATAAAAGTTCTGAATAAAAGTCTTGAATAAAGAAGTTTTTAAATGCAATTGTTGTTTGAATTAATACATACCACAATTTTCCAGAAAACACCAGCTGTCCACAAGGGTTTACAGTGAAAAGTAGGTGAACAGTTCCCTCTGCAGGGGGCCTCCTGTGACCATTTTCTCTTGTCTCCTCCCACAGAGATTCTGTGCATACACTCATCCCTTTCAGGATATATGTGGCCACCCACAAAGGCAGGAGGGGCCGTCTCTGTGCAGCCAGCACAGCCCAAAGTCTCATGGGCTTGAACATGGCCTTCCTTCCCAAGAGCCCTGCACTCTGGGGCTGGCTGAGGCTTCAGGCCTGAACGTCAGTCACCATCTGCAGGGGCAGCCACCAGAGGGTCTCCAGTGGCAATCCTGGCTCACTTCACCTGCAGCCCATTGGCCAGAGCAACTTGGAGGACCCACCCACTGCCAGGCCAGAAGTGGGAGCCTCTGCGTGCCCAGAGAGGAGGGGCGGCTGGGCCAGCACAGGCCTGGTGCTCTTGTTGGGGTGGGAGTAGGAATAAGTTCCACTGCGCTGACCCCCCACTGCTCTCCAATCTGCTCACGTGCAACAGGATTTCTTTTGAGTTGGTCTCCGTTGTGCACATTGTTCAGCAGCTGTGCGGTTTTCTCCTAGAGGATCCCCAGGATGACATTTACCAGGGTGGGTGTGGTGGCTCATGCCTGTAATCCCAGCACTTTGGAGACTGAGGCAGGTGGCTTGCTTGAGCCCAGGAGTTTGAGACCAGCCTAGGCAACACAGTAAGACCCCCCATCTCTACAAAAAAATAGAAAAATTAGGCCGGATGCAGTGGCTCACGCCTTTAATCCCATCACTTTGGGAGGCCAGGGCAGGTGGATCACTTGAGGTCAGGAGTTCAAGACCAGCCTGGCCAACATGCTGAAACCCCCATCTCTATTAAAAGTACAAAAATCCTAGCTACTCAGGAGGCTGAGGCAGGAGAATTGCTTGAACCTGGGAGGCGGAGGTTGCAGTGAGCCGCTGCACTCCAGCCTGAGTGACTGAGAAGTCTCCGTCTCAAAAAAAAATTTTTTTTTAATTAGCCAGTCTTGGAGGTGCGTGCCTGTAGTCCCAGCCACTCAGAAATTCACGCCTCCCTTATGTTACCAAACCAGGCTCGTTCTGCCCAGCAGTATGCCAACAGAGATGACAGGTTTTGCAGCAAAGAGTTTATTCACGAGGCAGCCGAGTGAGGAGACAGGAGAACAGATCTCAAATCCGCCTCCCTGAAGATGGGATTTTAGGAATATTTAAGGGATAGAGGAGCAAGGTGGTCAGAGACGTGGGGAAAAGTGGGGCAGTCGGGGAACCGTGCGTGCGTAGTCAAGCTTCATGGCTTTTCCATAGGATGTGTGTTCACAAAATGACATTGTTATCATGATCTGAGGGTGGAGTGTTTGGCCCTCTAACGTCAAAGGTCACCACCTAAATATACACAGGCCAAGGTGAAGGTTCGGCTCTCAGCCCATTTGGATTGGACAAGAACTGATCCTGTTCCTGAAGAACAACTTGAGCAACCATTACCATGGTGGCCCATACATAGAGATATTATCTATAAGGAAACTAGTGGGAGTTTTTTTGTTTGGGTTTTTTTGTTTTGTTTTGTTTCTTTGTTTTTGAGACGGAGTGTTGCTCTTTTTGCCCAGGCTGGAGTGCAATGGCATGATCTCGGCTTACTGCAACCTCCACCTCCCGGGTTCAAGCGATTCTCCTGCCTCAGCCTCCTAAGTAGCTGGGACTACAAGCGCCCGCCACCACACCCGGCTAATTTTTTGTATTTTTAGCAGAGACGGGGTTTAACCATGTTGGCCAGGCTGGTCTCAAACTCCTGACCTCAGGTGATTCACTCGCCTTAGCCTCCCAAAGTGCTGGGATTACAGGCTTGAGCCACCGTGCCCAGCCTATTTTTCTGTCTTTCTTTTCTTTTTTTTTTTTTTTTTTTTGAGACAGGGTCTCACTCTATTGCCCAGGCTGGAGTGCAGTGACACTACCATGGCTCACTGCAGCCTCCAACTCCTGGGCTCAAGCCATCCTCCCACCTCAGCCCCCCTAGGAGCTGGGACTACAGGTACATGCCACCACGCCTGGCTACTTTTTGTATTTTTTGTAGAGATGGGGTCTCACCATATTTCTCAGGCTGGTCTCTAACTCCTGGCTCAAGTGATCTGCCTGTCTTGGCCTCCCAAAGTGCTGGGATGACAGGCGTGAGCCACCACACCTGGCCTGGGAGTTTAGCTATACATTGTTTAGCTGAGTGACTTTTAACACTATGGGGTTTATAATCAACTAAAAACAAGTGAGGTAAGTTAAGATTGGTAGGTCTAATCAGGTGAGCCCTCAGTTCCCCTTATGGATGGGCAATTGTTAGGTATTGCCATGACAATGTGATAGCAATTTGGTGGGGGCTGCTGAACTCATCTGCACCCCGCCTCTGACATCCAGCCCAGATTTCTGATCTAAGTTCCACGTTTCACACCAGCCCCTGAACCTTGGTCAACCCCTCCCCTCTCCCACCCACCACTGTGGCATCTCCTAACAGTATAGAGGTGAGCCCGTGGACCTGTCTAGACTAGTGACAGTGAAGAAGATGTTTGCTAGCTGCGTCCAAGAAGAGCTTCAGGAGTCCTTTTTTTTTTGAGACGGAGTCTTGCTCTGTTGCCCAGGCTGGAGTGCAGTGGCGCGATCTCGGCTCACTGCAAGCTCCACCTCCAGGTTCAAGTGATTCTCCTGCCTCAGCCTCACAAGTAGCTGGGATTACAGATGCCCGCCACCACGCCCAGCTAATTTTTATATTTTTAGTAGAGACGGGGTTTCACCATGTTGGCCAGGCTGGTCTTGAACTCCCGACCTCAGATGATCTGAACGCTTCGGCCTCCCAAAGTGCTGGGATTACAGATGTGAGCCACCACACCTGGCCACCAAATGCTTTTTGCTATAAACAATTCCGCGCAGCCTAGGAGTGTCCTGAAGAAACACAACATGGTACCCCAGGTGCAACCGGCGGCTGATGACTGAAGGTAGGTGTGTAAGTAGCTTAACCCATGCCCGGACGTGGGATCATCCTGAGATAATTGCTCTACCCTGCCCCGCTAAGGCCCACAGCAGGACTGAGCCTGGTTGCCCACAGTGTCACCTGCTCATTGGTGCCCCCTGCAGGGCATCTTCCCTCCTCGTCTCAGCTCTCACCCGCCATGGGGGCTGCCTGGGGACACCTCCCAGGTAAACCACTAGCTCTGAGTCCTTTTGGGGTCATCTTTGGGGGAAACCTATCCAAAAAGGAATAGGAATGCCAGGTATTCCTGCAAATAGATCATATAGATTTATACCACATACTCACCCATATTTGATCTTCCATAATCTGACAAGTAAAAAATGGTATCTCAGCCGGGTGCGGTGGCTCATGCCTTTAATCTCAGCACTTTGGGAGGCCGAGGCAGCTGGATCACTTGAGCTCACGAGTTCAAGACCAGCCTGTGCAGCATGGTGAAACCTTGTCTCTACAAAAAATACCGGGCATGGTGGCACGTGCCTGTAATCCCCACTACTCAGGAGGCTGAGGTGGGAGGATGGCTTGAGTCTGGGAGGTGGAGGTTGCAGTGAGTCGAGATGGCACCACTGCATCCCAGCATGGGTGATAGAACCAGACCCTGTCGCAAAACAACAACAACAACAACAAAAACCAGTTAATTTATGGCCAGGCATGGTGGCTCACACCTGTAATCCCAGTTCTTTGGAAAGCTGAGGCAGGAGGATCACTTGAGACCTGGAGTTTGTCTCTATAAATAATTTTTTTTTTTGGTGGGACAGGGTTCTCATTCTGTCACCCAGGCTAGGGTACAGTGGCACAATCACATCTCACCGCAGCCTCAACCTCCCAGGGTCAAGTGATTCTCCCACCTCAGCCTCCCGAGTAGCTGCGACTACAGGCGTGGGCCACTATGCCTGGCTAATTTTTTATATTTTGTAGAGACGGGGTCTTGCTATGTCACCCGAGCTGATGAACTCCTGGGCTCAAGAGATCTGCCCACCTCCACTTCTCAAACTGCTGGGATTACAGGCGTGAGCCACTGCACCCAGCCCTCTACAAATAATTTTAAAAACTATTTTACTATTTTAAAAGTTGAAGGTTATATTTTGTTTTATCTATGAGTTTTATTTCCCCTTTTTATTTTGTTTCGGCTTGTCTGGAAATGGTATATTCCGTTTCTTCACCCATAGGGCTTCACAACATCAGCACTGCTGACATTTGGCGCTGATAATCCTCTGGGGTGAGGCCATCCTGGGCACCACACGGTGTTGAGCAGCATCTCTGGCCTCCATTCTTCAGACACCAAGAGCAACACCTCCACCCCTTGTGGTGACAACTAAAAGATGTCTCCAGACATCAACATGTGTTCCTTTGGAGCAGAACCACCCCGTCCTGTGAGAGGCACGGATATGGTGGTTACAATGGATACATCAACAAGAATTTAAATGTTTGGCCGGGCGCGGTGGGCGCGGTGGCTCAGGCCTGTAATCCCAGCACGTTGGGAGGCCGAGGCAGGTGAATCACTTGAAGCCAGGAGTTCCAGACCAGCCTGGCCAACATGGTGAAACCCATCTCTATTAAAAATACACACACACTGCCGGGTGCGGTGGCTCACGCCTGTAATCCCAGCACGTTGGGAGGCCAAGGAGGGCGGATCACGAGGTCAGGAGATCGAGACCATCCTGGCTAACACGGTGAAACCCCGTCTCTACTAAAAATACAAAAAATTAGCCGGGCGTAGTGGCGGGCGCCTGTAGTCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATGGCGTGCACCCGGGAGGCGGAGCTTACAGTGAGCCGAGATCGCGCCACTGCACTTCAGCCTGGGCGACAGAGCGAGACTCCATCTCAAAAAAAAAAAAAAAAAAAAAACTACACACACACACAAAAATTAAAATATTTATCTTCCCTCTGAGCCACACACAAAGACCTCAACCACCCCCTTCTATCTTTCCTATTTTTATTTATTTATTTATTTTGAGACAGAGTCTCGCTCTGTCACCCACGCTGGAGTGCAATGGCGCGATCTTGGCTCACTGCAACCTCTGCCTCTGGGGTTCAAGCGATTCTCCTGCCTCAGCCTCCTGAGTGGCTGGGATTACAGGCACCTGCCACCGCACCTGGCTGATTTTTGTATTTTTAGTAGGGATGGGGTTTCACCATGTTGGCCAGGGTGGTCTCAAACTCTTGACCTCGTGATCCACCGCCTCGGCCTCCCAAAGTGCTGGGATTACAGATGTGAGCCACCATACCCAGCCTGATGAAAATTTTAAAAAAGAAAATTCTTAAACCGTTCTAAGTCAGGGAACTGTCTGTATACATCTTACTTATACAAAAAGGTTACATATGCACCTTACATTGTTTTTGTTTTTGTTTTGAGATGGAGTCTCACTCTGTCACCCAGACTGGAGTGCAATGGCATGATCTTGGCTCACTGCAACCTCTGCCTCCCGGGTTCAAGCGATTCTCCTGTCTCAGCCTCCCGAGAGGCTGGGATTACAAGTGTGCACCACCACGCTTGGCTAATTTTTTTTGTATTTTAGTAGAGACAGGGTTTCACCATGTTGGCCAGGCTGGTCTTGAACTGCTGACCTCAGGTGATTGGCCTGCCTCGGTCTCCCAAAGTGTTGGGTTACAGGCATGAGCCACGGCACCCAGCCTGCACCTTACATTGTAACACACGTGTGGACACACCCTGGAGTCACAGCTACAGGACAATTTCAGAGTCCATGACGGCCCCACATCCCTTCCCTGGGTCACCAAGGCCTCAATATGCCCCTCCCCCCTCCCTGTGTGTGATATCTATACAAGTCACCTGCATACCTGTAGCAGACGCTGGCATCACTGTGGGCTCCCCGCCCTCCCATTCCTCAAACTGGTTTTCCTCTAAGGTTTCCCTGCCCATCTAACCTTCTCCTGGCACTCCCTCATGGTGCATTTCTCTCACCTGCCCGTCCGTCCCAGGCCACCTGCCCTCTCAGCTGGGACTCCAACTTCCCCTGATTTCTGGTCTCTTCCATCCTGCTTTTGGACTTTTCCTGGGACACTTGCATTTCTTCTTTTTCTTTTTTTTTTTTTTTGAGACAGAGTTTCACTCTGTCACCCAGGCTGGAGTGTGATGCGATCTCGGCTCACTGCAGCCTCCACCTCTCAGGTTCAAGCGACTCTTCTGGCTCATCCTTCTCAGTAGCTGGAACTACATGCATGCGCCACCATGCCTAATTTTTGTTATTTTAGTAAAGACTGGGTTTCACCATGCGTTGACCAGGCTGGTCTCAAACTGCTGGCCTCAAGTGATCTGCCCGCCTTGGCTTCCCAAAGTGCTGGGATTTGGGATTACGGGCGTGAGCCGCCGAGCCTGGCCTCCTTCTTGCTCTCCTTTCTCCTCCCAGACCTTTGCTCCCCTCTCAGTCCTGCTCCTCTCTCCCTCCCGCGCAGCCCCCACCCTGCACCCGGGCAGGTGCCACAGGGACGTGCAAGACAGCTACCACCCTGCACAAGCCCGAGTCCCAAACCACTCAGACCCTGTTTGTAAAAATCGGCATGCTCCTTTATTTGTTCAGAAGAGCAGCCAGCATCACCCTTGCCACTCAAACCTGGCACATACGCTTCGGAGACAATGGCCTCGGGACCCTCATGCTGCTGGGCCCAGGAGAGACAGTTCTGAGGCAGAAACTCGGCGTCCAAGGGGGGCCGCGGGTCAGGCACTGTGGTGAAGGGAACGCCGGGGAGTCCGGCCCCACCTTGCAGCTGGGGACACGGGGGCGCAAACAGAGGGGGCAGGCTAGTGTCCCGCTGCCCCAGGAACAGACCTCAGGGCCCCAGGAGGGTCTGCAGGCAGCTAGGAGCCTGCCAAGTGCTGGTGGAAGTAGAGGCCGAAAAGGCTGGCGAGCAGCTGGCAGGCAGCCGTCCACCAGATGAGGTAGGCCAGGACGCCACGGAGGAAGAGGGGAGTAAGCAGGCCACCCAGAGCCCCGGCAATCCGCGCTGCAGTCTGCTGGACTTCGTCCTCCCCAGAGCCGATGGGGGCAGCGCTGGCTGAGGATGGGTCGGGGGATAGTAGAGGAGCTGGGCCCAGGCCCCAGGAATAGCCTCCTAGGAGAAGAGGATGAAGCGAGGTATGAGTGGAAAAATGGGGGAGGGGGCGAGGGACAGGGCTGGCACGGGGGGCCAGGCCCATTCCTCCAGACACTCCCACCCCTGTCTCAGACTCCATCTCCAGCCCAGTCTCCACCCCCTCAGGCGCTGCCCCCTGTCCAAGGCAAACCCTACCCCAGGCCCCACCTCCTGCTCAGATCCTGCCTCAATACATGCCCTGCCCCCTCCCCAGGCCCCGCCTCCTGCCAAGACGCAACCCCTCCCCAGGCTCCACCTCCTAAGGCAAACGCCATCCCAAACTCCACCTCCTGCTCAGACCCTGCCTCACCACAGTCCCCGCCCCCTACCCAGGCCCCGCCTCCTGCTCAGATTGCACCCATCCCCAGGCTCCACTTCCTGTCCAAGGCAAGCCCCACTCCAGGCTCCGCTTCCTGCTCAGACCCTGCCTTACCACAGTCTCCGCCCCCTGCCTAGGCCCCGCCTCTCCCCCCCCACCGCGGTCCCCGCCAGAGTCCACCTCCACTCTGTTTTATCTTCCAACTCCGCCCCTCCTCCACCCCCACACCGCGGCATCTCACCCAGCGTCTTGAGCAGAAGTGTGCAGTTGAGGGTGAGGATGAGCGGCGTCAGGTACTGCAAGCTCACCACGGTCACATAGCAGTAGACTCGGACCACCTGTGGGCAGGTAGCAGGGGTGGCTGCAGCAGGAGGCCTTCTGGTTTGGGACGACTCCACGCCCAAAGGACCAGGAACCCCACCCTGAGCCCCAGGTTCCCTCTGGCCTAGGTCATCGGGGCGTCCATACCCTCTGCTGGATTTCACGGGCTTCGATGCGGCCAGCCTCCCTTCGCAGCTGCTCCACCCGGGCCTTGGCCAGGCACAGGTAGGCCTGCAGGTGGGGCCGGGTCACCGCCAGCCGCAGCAGGCACAGCACCACCAGCAACCAGAGGCGCCCAGAGTCGAAGGCAGAATCGGACAGCCTGTGCGGAGAGGGCCGGGGGCAAGGGACTAAGAAGGTCGCCCCCGACCCCCCAGGATCTTCCCCAGGCTCCTCCCTGAATCTCAGAGGCTAGGGCACCCAGGGGAGCCCCAGCTACCTCCTAGCCCCACCCAATACGCACAGGGAGAAACGCGTCTCCCCAAACGGCGGCTGGTGCAGGAAGTCCCGTGCAATGGGCTTTGTCCAGAGCCACAGGATGAACAGGGGAGACAGGAAGCTGGTGTGCAGGAGGAACCTGGGGGGTGAGGGCAGGAGGGAGTGAGGCCTGGGTACCCCCTCTCCTCGAGTCTCTCCCTTAAGCTCCCTAGTCCCCCCACCCACCAAGCGACCCACTTAACTGCAGCATGGGTCTGTCCTCCGACATGGTCAGTGCGTCCCGGTGGGTCTGGGCCAGCCGCAGGCCTGGGAAGGTGAGGAAGGCACCCAGCACAGAGCCCACCACTGCCAGTCCCACGCGGATAGCCAGCTTGGCCACAGGAAGCCTAGGAGAACACCAGGTCACGAGCCTGCCTGGGGGACCCTGGGAGGGTCCCAGCCTGCCCTTGCCTCCCTCCCCCATTCCCAGGACTCACGCCCAGTCCCAGCCCTGCTTCTTCAGAAGTGGCTCTAAGTTCTGGGTCATGCTGGCCAGACCTGGGGACGATAAGAAGAGGACCGAGTAGAGTGAATTCCTAGGGTCTCTAAGGCCACTCTGTTCCCTAACCCCCCATCCCTCAGGCATCCGTTTGCTTCCCAAGTAGGAATGAACAAGGGTCTGCCAGGCCCTGAGCCAGGCACAAGGACAATTTTGTGCTCTAGTTACACAGTACTTTTTACAAGAAACAAGATTGGAGTGGTGGTTCACGCCTGTAATCCCAGCACTTTGGGAGGCTGAGGCAGGCGGATCATCTGAGATCAGGAGTTTCAGACCAGCCTGGCCAATGCAGTGAAACCCCCGTCTCTACTAAAAATACAAAAATTAGCCAGGTGTGGTGGCAGGTGCCTGTAATCCCAGCTACTTGAGAGGCTGAGGCAGGAGAATCGCTTGAACATGGGGAGCGGAGGTTGCAGTGAGCTGAGACCGCACCATTGCACTCCAGCCTTGGGGACAAGAGTGAAACTCAGTCTCAAAGAAAACGAAACAGAATGCACCAGGCAGACACTCCTGATTGGGCTGGGAACATTCAGGGGTATCTGTTGAGCCTGAGCTCCCTAGGTTATAGAAGGAATCTAGAGGGGGATGAAGGACTCCTGCAGGAGAAAACCAAAGTCCTCCTGGAGGAAGGAATCCTCAATTCAGGACCCAAGATTTTTCAAAAATTAAGAGCAGGGCTGGGTGCAGTGGCTTGCACCTGTAAGTCTCAGCACTTTGGGAGGCCAAGGCGGGTGGATCGTTTGAGCTCACAAGTTTGAGACCAGCCTGGGCAACATGGCAAAACCCCCATCTCTACAAAAAATACAAAACCAGGGGTGGTGGTGCACGCCTATAGTCCCAGCTACTGTGAAGGCTGAGGTGGGAAGGATGGGTTGAGCCCAGGATGTGGAAGTTGCAGTGAGCTGAGATCATGCCACTGCACTCCAGCACAGAGCAAGACCTTGTCAAAAAAAAAAAAAAAAAGGAGCAAATTCATATGAGCTCACAGGCAAAATCACCAAATGCATAAGGAAACAAATCACCATAAAGGAGAGTTAACAGAAAAACAACAGTCAAGTTTAGGCCTCAAAGACTTCAGAAATTGGTGCTGTCAATTATGTGTCAAATGACTAAGGAAATGAAAGCTGTAATCACAGAACAAGTGACATGAGAATTCCTTCAGATGACTGGGTAGAGTTGCAAAGGAACCAAATTAAACTCTTCCAAAGGAAAACTGTAAGTATTGAAATAATAGGTTGTTAAACAGCACATTAGGAACAGCCAAAGGAGGAAGTGATGAACTGGAAGACAGATCTGAAGAAATCACTCAGATTCCAACTCAGAAAAACAAGTAGGTGAGAAATATGAAGAGAGGCTAAGAGATAAGGAAGACAGAACAGAGAGCCCAACGCAAATCAAATCAGAGCCCCAGAGGGAGGGAAGAGAAGGAATGAAGAATAAAAGGAATTACTGGAAGAGAATGGTTGAGAAGTTTGCAGAATGAAAGACAGACACAAAGTATATCAAACCATGTAAATAAAAAGAAATCCATACCTAGACATAATGGAGTGAAACTGCAGAACACCAAAAACAAAAAAATTACAAAGCAGCCAGGGAGTTAAGACAGATCACCTACAAAGGAACAACAATTAGGCTGACAGCCAATGTCAACTGCAACAACAGAAAAGGAACAAATAGAAAGCAAAAAAGTAAGATGGTAGAAACAAAGTCAAATATGTCAGTAATCACAATAAATGTAAGTAGACTAAACTTTAAAGTTAAATGACAAAGACTGTCAGACTACATTGAAAATATCCAGCTACATGTTTTTTAAAGGATGACATACCTTGACATAAAGTCACTGGAAGACTGAAAGTAAAGGGATGTTAAAAAGATACAGCAAATACTAATCAAAAGAAAGCAAGCTAGAAAGGCTATACTACTACCAGCCAAACTAGACTAAGAAGTAGTATTAGAATAGGCCAGGCGCGGTGGCTCACACCTGTAATCTCAGCACTTTGGGAGGCCAAGACGGGCAGATCACAAAGTCAGGAGTTCGAGACGAGCCTGGCCAACATGGTGAAACCCTGGCTCTACTAAAAATCCAAAAAATAGCTGGGCATGGTGGCGGGTAATACCAGCTACTTGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCAGGAGGTGGAGGTTGCAGTGAGCCGAGATTGCGCCACTGCACTCCAGCCTGGCCAACGAGAGCAAAACTCTGTCTCAAAAAAAAAAAAAGTAGTATTAGAAGACAGAAGGGTTCCATACATCATGATAAAATGGCTGATTCACCAGGAAAATGTAACAGTTCTAAATCTGTGAATAGAACTAATCTGTGAATTGTGAATAGGCTGCAAAATATATAAAGAAAACACTGACAGAATTGATAGGGAAATTGAGAGCTCTCTTGTCCCAGAGGGAGATTAACTTCTGCTGACTGATAAGTCACAGACAAAAGGTTAGGCAAGATGGAGATTTGAATTTATTAAACTCATAGAGCCAGGGAATATGTCCTTCAATTAGAACATGTGAAAAAAGGCAAAACAACAAAAACAGAATATGTCCTTCAAGAAAACAAGGAATAGTCACAAAATGTGATCACATTCCAGGCCATAGGGCAAATCTTACCAAATTTTAAAGAAATTATTTCAAATAGACCATCTGTGCAATTGAGCTAGAAATAAATATGTATTTTTTAAAGATCTATGTTTGAAAAATTTAAAAATATTTAATAATCCATAGGTCAAAGCATAGCAAGACCCCATCTCTACAGAAATCAGAAGGGAAATGTTAAAACACCCCAAACAGAATAATAAAAAATATCAGTCAAAACTTGGGTAAACTGCCAGGTGTGATGGCTCACACCTGTAATCCCAGCACTTTGAGAGGCCGAGGTGGGTGGATCACCTGAGGTTAGGAGTTTGAGACCAGCCTGGCCAACATGGTAAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCAGGCGTGGTGGCGTGCACCTGTAATCCCAGCTACTCAGGAGGCTGAGGCAGAAGAATTGCTTGAACCCAGGAGGCAGAGGTTGTAGTGAGCTGAGATTGCACAGTTGCACTCCAGCCTGGGTGACAAGAGCAAAACTCCATCTCAAAACAAAAACAAAAACAAAAAAAAACTTAGGTGAACAAAAGTGAGACCTGGTAAAATATATATAGCATTAAATGCTATATATGCTATAAAATTAGAAAAGATTGAAAATTTATGAGCCAAGTAGCTAACTGAGAAATTGGAAACAAGAAAAGGAGGTACGCCAGTACTGTTCTCAAATCCAGAGGTCCTAGCCACACCAAAGGGGAAGGATCAGACAGAACAAAAGAAAACCAAAAAGAATCTGCAATTCAATAAAAATATAATTGTTTAGCAAGGTTAGTCCGTGGAGACACTCAAATTTGACCCCTATATGATAACACAAAAATTAATGTCACTGTCCATCAGCAACAGTGAGTAGTTTAGGAGCTTATATGAAATGTAAAAGTTGAAATATTTTATTTATTGATTTTTAAGATGGAGTCTTGCTCTTGTCGCCCAGGCTAGAGTGCAATGGCGTGATTTCGGCTCACTGCAACCTCTGCCTCCGGGGTTCAAGTGATTCTCCTGCCTCAGCCTCCCGAGTAGCTGGGATTACAGGTGCATGCCACCTTGCCCAGCTTTTTTTTTTTTTTTTTTTTTAGACGGAGTCTCGCTCTGTTGCCCAGGCTGGAGTGCAGTGGCGCGATCTTGGCTCACTGCAAGCTCCACCTCCCGGGTTCACGCCATTCTCCTGCCTCAGCCTCCCCAGTAGCTGGGACTACAGGCGCCTGCCACCACGCCTGGCTAATTTTTTGTATTTTTAGTAGAGACGGGGTTTCACGGTGTTAGCCAGGATGGTCTCGATCTGCCGACCTCGTGATGTGCCCATCTCGGCCTCCCAAAGTGCTGGGATTACAGGCATGAGCCACCACCCCTGGCCAGTCATTCTATATTTTCTTCTAAAATATTTCAGCCAGGCGTGGTGGCAAGCGCCTGTAATCCCAGCACTTTGGGAGGCTGAGGCAGGTGGATTGCCTGAGGTCTGGAGTTCAAGACCAGCCTGGTCAACGTGGTGAAACCCCATCTCTAGTAAAAAATACAAAAAGTAGGCCGGGCACGGTGGCTCGCGCCTGTAATCCCAGCACTTTGGGAGGCTGAGGCGGGTGGATTGCCTGAGGTCTGGAGTTCAAGACCAGCCTGGTCAGCATAGTGAAACCCCATCTCTAGTAAAAAATACTAGAGATCGCCCACTGCACTCCAGCCTGGGGGAAAGAGCGAGACTCTGTCTCAAAAAAAAAAAAAAAGACAATGTAGAATGACTTTCTGATTTTAGGGAAGGATATTTTTCAAGACAAATATCAACTAAAATAATCAACTTCCATTCATCAAGACACTAGAGGTGACACTTACAACTACATTTGACGACTCAGCAAAGAAAGTGTGATGCATGTATGCAGACGGAAAATAATGCAAATAGTGGTCAAATGAAAACAAAAGAAGTATTGGCAATGAAGTGGATAAATTTGGAACACTTGTGCACTGCTGCTGGGAATATAAAATATAAAATGGGCTGAGCACAGTGGTGCACACCTGTAATCCCAGCACTTTGGAAGGCCGAGGCTGGCGATTGCTTGAGTTCAAGAGTTCAAGACTAGCCTGGGCAACATGGCAAAATCTGTCTCTATTAAAAACACAAAAATTATCTGGGTGTAGCCAGATGTGGTGGCTCACACCTGTAATCTCAGCACTTTGGGAGGCCAAGATGGGCAGGATCACCTGAGGTCAGGAGTTAAAGACCAGCCTGGCCAACATGGCAAAACCCCATCTCTACTAAAAATGCAAAAATTAGCCAGGTGTGGTGGCGCACACCTGTAATCCCAGCTACTTGGGAGGCTGAGGCAAGAGAATCACTTGAGCCTGGAAGGTGGAGGTTGCAGTGAGCCAAGATCATGCCACTGTACTCTAGCCTGGGTGACAGAGGGAGACTGTCTCAAAAAATAAAAATAAAAATAAAAAAATAAATTAGCTGGGTGTGGTGGTGGGAGCCTGTAGTCCCAGCTACTTGGGAGCCTGAGGCATGAGAATCACTTGAATCCGGGAGGCAAAGGTTGCAGTGAGTGGAGATCACGCCACCACTGCACTCCAGCCAGGGCAACAGAATGAGACTCTGTCTCAAAAATAAAATAAAATGGTTCAGCTGCTGTATAAAACAGTATGGCAGTCCCTCAAAAAATTAAAAGTAGAATTATCATATAATCCAGCAGTTCCACTTCTGGATATATACTCTCCAAAACTGAAAATGGGGTCTCAAAGAGATACCTGTACACTCAGGTTCACAGCGGTATTAGTCAAAAAGCCAAAAGTTGGGAACAACCCAAGCATTCATCTGTGGATGAATAAACAAAATGTGTTCCACCCAGACAATGAAATAGTGTTCAGTCTTTTTTTTTTTTTTTTTTTTTGAGATGGAGTCTTGCTCTTTCACCCAGGCCGGAGTGCAGTGGCACTATCTAAGCTCAC +PRIMER_LEFT_EXPLAIN=considered 180335, GC content failed 8877, low tm 34005, high tm 101808, high end compl 2, long poly-x seq 1117, lowercase masking of 3' end 530, ok 33996 +PRIMER_RIGHT_EXPLAIN=considered 180325, GC content failed 8926, low tm 33987, high tm 101882, high end compl 1, long poly-x seq 1108, lowercase masking of 3' end 480, ok 33941 +PRIMER_INTERNAL_EXPLAIN=considered 180500, GC content failed 9272, low tm 34043, high tm 102015, long poly-x seq 1142, ok 34028 +PRIMER_PAIR_EXPLAIN=considered 338, unacceptable product size 331, high any compl 1, ok 6 +PRIMER_LEFT_NUM_RETURNED=5 +PRIMER_RIGHT_NUM_RETURNED=5 +PRIMER_INTERNAL_NUM_RETURNED=5 +PRIMER_PAIR_NUM_RETURNED=5 +PRIMER_PAIR_0_PENALTY=0.005611 +PRIMER_LEFT_0_PENALTY=0.000037 +PRIMER_RIGHT_0_PENALTY=0.005574 +PRIMER_INTERNAL_0_PENALTY=0.012470 +PRIMER_LEFT_0_SEQUENCE=ATGCCCACCTGCTTTGTAAC +PRIMER_RIGHT_0_SEQUENCE=AGACCAGTTAGCTGGGGGTT +PRIMER_INTERNAL_0_SEQUENCE=GCACACAAACCACCTCCTTT +PRIMER_LEFT_0=2959,20 +PRIMER_RIGHT_0=3388,20 +PRIMER_INTERNAL_0=3094,20 +PRIMER_LEFT_0_TM=60.000 +PRIMER_RIGHT_0_TM=59.994 +PRIMER_INTERNAL_0_TM=60.012 +PRIMER_LEFT_0_GC_PERCENT=50.000 +PRIMER_RIGHT_0_GC_PERCENT=55.000 +PRIMER_INTERNAL_0_GC_PERCENT=50.000 +PRIMER_LEFT_0_SELF_ANY=3.00 +PRIMER_RIGHT_0_SELF_ANY=8.00 +PRIMER_INTERNAL_0_SELF_ANY=3.00 +PRIMER_LEFT_0_SELF_END=3.00 +PRIMER_RIGHT_0_SELF_END=0.00 +PRIMER_INTERNAL_0_SELF_END=2.00 +PRIMER_LEFT_0_END_STABILITY=5.4000 +PRIMER_RIGHT_0_END_STABILITY=9.4000 +PRIMER_PAIR_0_COMPL_ANY=5.00 +PRIMER_PAIR_0_COMPL_END=3.00 +PRIMER_PAIR_0_PRODUCT_SIZE=430 +PRIMER_PAIR_1_PENALTY=0.012524 +PRIMER_LEFT_1_PENALTY=0.010545 +PRIMER_RIGHT_1_PENALTY=0.001978 +PRIMER_INTERNAL_1_PENALTY=0.026532 +PRIMER_LEFT_1_SEQUENCE=GGTTCAAGCGACTCTTCTGG +PRIMER_RIGHT_1_SEQUENCE=ACAGGGTCTGAGTGGTTTGG +PRIMER_INTERNAL_1_SEQUENCE=AAGACTGGGTTTCACCATGC +PRIMER_LEFT_1=10633,20 +PRIMER_RIGHT_1=11008,20 +PRIMER_INTERNAL_1=10719,20 +PRIMER_LEFT_1_TM=59.989 +PRIMER_RIGHT_1_TM=60.002 +PRIMER_INTERNAL_1_TM=59.973 +PRIMER_LEFT_1_GC_PERCENT=55.000 +PRIMER_RIGHT_1_GC_PERCENT=55.000 +PRIMER_INTERNAL_1_GC_PERCENT=50.000 +PRIMER_LEFT_1_SELF_ANY=5.00 +PRIMER_RIGHT_1_SELF_ANY=3.00 +PRIMER_INTERNAL_1_SELF_ANY=4.00 +PRIMER_LEFT_1_SELF_END=1.00 +PRIMER_RIGHT_1_SELF_END=0.00 +PRIMER_INTERNAL_1_SELF_END=2.00 +PRIMER_LEFT_1_END_STABILITY=8.2000 +PRIMER_RIGHT_1_END_STABILITY=8.8000 +PRIMER_PAIR_1_COMPL_ANY=6.00 +PRIMER_PAIR_1_COMPL_END=0.00 +PRIMER_PAIR_1_PRODUCT_SIZE=376 +PRIMER_PAIR_2_PENALTY=0.016397 +PRIMER_LEFT_2_PENALTY=0.001978 +PRIMER_RIGHT_2_PENALTY=0.014419 +PRIMER_INTERNAL_2_PENALTY=0.026532 +PRIMER_LEFT_2_SEQUENCE=CCAAACCACTCAGACCCTGT +PRIMER_RIGHT_2_SEQUENCE=CAGAACTGTCTCTCCTGGGC +PRIMER_INTERNAL_2_SEQUENCE=ATCACCCTTGCCACTCAAAC +PRIMER_LEFT_2=10989,20 +PRIMER_RIGHT_2=11145,20 +PRIMER_INTERNAL_2=11056,20 +PRIMER_LEFT_2_TM=60.002 +PRIMER_RIGHT_2_TM=59.986 +PRIMER_INTERNAL_2_TM=59.973 +PRIMER_LEFT_2_GC_PERCENT=55.000 +PRIMER_RIGHT_2_GC_PERCENT=60.000 +PRIMER_INTERNAL_2_GC_PERCENT=50.000 +PRIMER_LEFT_2_SELF_ANY=3.00 +PRIMER_RIGHT_2_SELF_ANY=5.00 +PRIMER_INTERNAL_2_SELF_ANY=3.00 +PRIMER_LEFT_2_SELF_END=1.00 +PRIMER_RIGHT_2_SELF_END=2.00 +PRIMER_INTERNAL_2_SELF_END=0.00 +PRIMER_LEFT_2_END_STABILITY=7.9000 +PRIMER_RIGHT_2_END_STABILITY=11.2000 +PRIMER_PAIR_2_COMPL_ANY=4.00 +PRIMER_PAIR_2_COMPL_END=1.00 +PRIMER_PAIR_2_PRODUCT_SIZE=157 +PRIMER_PAIR_3_PENALTY=0.017482 +PRIMER_LEFT_3_PENALTY=0.010545 +PRIMER_RIGHT_3_PENALTY=0.006937 +PRIMER_INTERNAL_3_PENALTY=0.066676 +PRIMER_LEFT_3_SEQUENCE=GTTCTGAGGCAGAAACTCGG +PRIMER_RIGHT_3_SEQUENCE=GAGGACGAAGTCCAGCAGAC +PRIMER_INTERNAL_3_SEQUENCE=ACGGAGGAAGAGGGGAGTAA +PRIMER_LEFT_3=11140,20 +PRIMER_RIGHT_3=11491,20 +PRIMER_INTERNAL_3=11417,20 +PRIMER_LEFT_3_TM=59.989 +PRIMER_RIGHT_3_TM=59.993 +PRIMER_INTERNAL_3_TM=60.067 +PRIMER_LEFT_3_GC_PERCENT=55.000 +PRIMER_RIGHT_3_GC_PERCENT=60.000 +PRIMER_INTERNAL_3_GC_PERCENT=55.000 +PRIMER_LEFT_3_SELF_ANY=7.00 +PRIMER_RIGHT_3_SELF_ANY=5.00 +PRIMER_INTERNAL_3_SELF_ANY=2.00 +PRIMER_LEFT_3_SELF_END=1.00 +PRIMER_RIGHT_3_SELF_END=2.00 +PRIMER_INTERNAL_3_SELF_END=1.00 +PRIMER_LEFT_3_END_STABILITY=9.9000 +PRIMER_RIGHT_3_END_STABILITY=6.4000 +PRIMER_PAIR_3_COMPL_ANY=4.00 +PRIMER_PAIR_3_COMPL_END=1.00 +PRIMER_PAIR_3_PRODUCT_SIZE=352 +PRIMER_PAIR_4_PENALTY=0.018045 +PRIMER_LEFT_4_PENALTY=0.012470 +PRIMER_RIGHT_4_PENALTY=0.005574 +PRIMER_INTERNAL_4_PENALTY=0.042377 +PRIMER_LEFT_4_SEQUENCE=GCACACAAACCACCTCCTTT +PRIMER_RIGHT_4_SEQUENCE=AGACCAGTTAGCTGGGGGTT +PRIMER_INTERNAL_4_SEQUENCE=TGGGAGGTGAGGAAAATCTG +PRIMER_LEFT_4=3094,20 +PRIMER_RIGHT_4=3388,20 +PRIMER_INTERNAL_4=3336,20 +PRIMER_LEFT_4_TM=60.012 +PRIMER_RIGHT_4_TM=59.994 +PRIMER_INTERNAL_4_TM=60.042 +PRIMER_LEFT_4_GC_PERCENT=50.000 +PRIMER_RIGHT_4_GC_PERCENT=55.000 +PRIMER_INTERNAL_4_GC_PERCENT=50.000 +PRIMER_LEFT_4_SELF_ANY=3.00 +PRIMER_RIGHT_4_SELF_ANY=8.00 +PRIMER_INTERNAL_4_SELF_ANY=2.00 +PRIMER_LEFT_4_SELF_END=2.00 +PRIMER_RIGHT_4_SELF_END=0.00 +PRIMER_INTERNAL_4_SELF_END=1.00 +PRIMER_LEFT_4_END_STABILITY=8.5000 +PRIMER_RIGHT_4_END_STABILITY=9.4000 +PRIMER_PAIR_4_COMPL_ANY=5.00 +PRIMER_PAIR_4_COMPL_END=3.00 +PRIMER_PAIR_4_PRODUCT_SIZE=295 += +SEQUENCE_ID=masker_lc_masking +PRIMER_TASK=pick_pcr_primers_and_hyb_probe +PRIMER_NUM_RETURN=5 +PRIMER_PRODUCT_SIZE_RANGE=50-500 +PRIMER_EXPLAIN_FLAG=1 +PRIMER_MASK_TEMPLATE=1 +PRIMER_MASK_FAILURE_RATE=0.2 +PRIMER_MASK_5P_DIRECTION=1 +PRIMER_MASK_3P_DIRECTION=1 +PRIMER_WT_MASK_FAILURE_RATE=0.0 +PRIMER_LOWERCASE_MASKING=0 +SEQUENCE_TEMPLATE=TGACATTTTATGCCCAAGACAATGGCTCTGCCTTCTACCTTCACATGCTCAGGGTCACTCAGCACGTCCTGGAGGATTTCTCTGGCCTGGAGTCCCTGGCCCGGGCAGCAGCGCTAGGGACCCACCGAGTGGTCACAAGGCTGTTTATGTTGGGCCTCCTGGTGGAGTCGGCATGGTACCTCCATTGCTACCTGACAGACCTGCGGTTTGACAATATCTACGCCACTCAACAGCTGACCCAGCGGTTGGCACAGGCCCAGGCTACACACCTCCTGGCCCCTCCACCCACCTGGCTGCTCCAGGCGGCTCAGCTGAGGCTGTCACAGGAGGAGCTGTTGAGTTGTCTTCTAAGGCTGGGGCTGCTTGCCCTGCTCCTCGTGGCCACTGCTGTGGCGGTGGCCACAGACCATGTAGCCTTCCTCCTGGCACAGGCGACTGTGGACTGGGCTCAGAAGTTGCCAACTGTGCCCATCACGCTCACGGTCAAGTATGATGTGGCATACACTGTCCTGGGCTTCATCCCTTTCCTCTTCAACCAGCTGGCTCCGGAGAGCCCCTTCCTCTCCGTCCACAGCTCCCTACCAATAAAGGAGGGCGCGCAGAGCGGCGCGGCGGGCCCGCCCGCGGCCGCCGCCCCGCGCCTGCGCCGGCGGGCGGATCAGCCGACATCCAGGAGCTCGTCTCCTTGTGTGACTGTAAAACCCCATTTTCGGTGTTTCTCTCTGGAGTGCTTTCCAGCCCCTTGACCCCACGTTCTCACCCCACGTGATGCCATCAGACCCCTTGTTTTTGCCCACCTGGTGAGCAGATCACAGTGTCTCCTGTCTGGCTGTTTTTTTGAGACGGAGTCTCACTCTGCCGCCCAGGCTGGAGTGCAGTGGAACGATCTCAGCTCACTGCAACCTCCACTTCCTGGGTTCAAGCCATTCTCCTGCCTCAGCCTCCCTAGTAGCTGGGATTACAGGCGCCCACCACCACACCTGGCTAATTTTTGTGTGTTTTTGGTAGAGACAGGGTTTCTCCATGTTGGCCAGGCTGGTCTCCAATTCCTGGGCTCAAGTGATCCGCCTGCCTTGGCCTCCCAAAGTGCTGAGATTACAGGCGTGAGTCACTGCACCCAGCCTTGGCTGTTTTAAATTCCTAGTTCTAAATTTACTATTACAAATGTTTAAAGTACCCCTACTGACCTGTTGCTGCTCCTTCCTCCTCCACACCCACACACCCCGTTTAGACCCGCAAGACAGAGCAGGGTGAAGTTCATGGTCACTTATGTCCACTCTGTGCAACAGCTCGCAGGGGCTCCCCAGGGAGGGCGCAGGTCGGGGACCAGGCACGGGAGCACCTAGAATGTTCCTTTACTAGACGTGGAGTAGAGCTGATTAGATGTGAGCAGTGGCTCTAGGAGTTGGTTCTATGATTCTCTGTGTTTCTGCCTTTTAAGAAATTTTATTTCTCGGCCGGGCTCGGTGGCTCATGTCTGTAATCCCAGCACTTTGGGAGGCCGAGGCAGGCAGATCGCCTGAGGTCAGGAGTTTGAGACCAGCCTGACCAACATGGAGAAACCCTGTCTCTACTAAAAATACAACATTAGCCAGGCGTGGTGGTGCATGCCTGTATTCCCAGCTACTTTGGAGGCTGAGACAGAATTGCTTGAACCCGGGAGGCGGAGGGTGCAGTGAGCCGAGATTGGGCCATTGCCCTCCAGCCTGGGCAACAAGAGTGAAATTACATCTCCAAAAAAAAAATTTTTTTTATTTCTCGAGTTTGAGTGAAAGGAGCGACCCGGAGGTGAGGCAGTGGGGCGTGTGGGTGCGCATGAGTGCGAACACACGTGGGGGTGCAAGTGCATGTGTGTATGTGCACGCAGGTTGCTCCTAGGGGTGCAAAGGCGCGCGCACGGGTGCGGGGTGCGCGCCCCCTCGCGGCGCCTTCACGGCCCTCCCGCCCCTCGCCCTGCAGAGTACAGCGGCCGCCGGCAGCCCTACCCCTTCGAGCGCATGATCTTCGGCGCCTGCGCTGGCCTCATCGGGCAGTCGGCCTCGTACCCGCTGGATGTGGTGCGGCGGCGCATGCAGACGGCCGGCGTCACGGGCTACCCGCGCGCCTCCATCGCCCGCACGCTGCGCACCATCGTGCGGGAGGAGGGCGCCGTGCGCGGCCTCTACAAAGGCTTGAGCATGAACTGGGTCAAGGGTCCCATCGCCGTGGGCATCAGCTTCACCACCTTCGACCTCATGCAGATCCTGCTGCGGCACCTGCAGAGCTAGGGGACCCTGAGCTGCTCTCAGGACGGTGGACCGGTGACCCCTTTGTATTCTGGGCCCATGGAACGGTGGGGGGGTGCGCTTGATTCTACTTCAGGAGGCACATGGGGCGCTTTATGGAACGAGCAGGTGGGCCTGAGGGGCCTGGGCTCAGAGTCCACGTCCAAACGCAAAGCTGGCAGCCCTGGAAGTGCAGTGTTGGGGCGATGGTGTGGGGGGTCCCGCAGCTCCCCTCTTCCTTCCTCTGCAGACGCTGGCGCTGTCTGCCGGAGGTGTTGCCCAAAAGGCCCTAGTGGGGCGTGGTCAGCTCCACCTCCTGATCCTGTGTGTCCTCCGACATGCTGCTGATTCTAGTGACCCCTGTCCCCACCAGGCTCAGAGCCAGACCGCGCCTGGACCTTCTTGTTCTGACTCCACGTGCCTGCCCGGCCTCCAGGGTGCGGGGGCGCCTTTCTTGCAGGCGGACCCTGCCCAGGATGGGGCCAGCCTCGTGCTCAGCTTTGGCCACAAATGCAGCCCCTGGCCCACCCCACCCTGCCGGCCCTGCCTTCTCCAGTATTTCCCACATGGCCACGACTCCTCAGTCACTAGAGCCTCCTGCTGGGAACAGTGTCCCCCAGAGCCTCATGTCTATCCTAGACCCTGCAAGCAGCTGGGTCCCCAAGAGTGCATCTCCCCCTAGAGTTGCCTGCCCATGCCCACCTGCTTTGTAACCTTCCCAGGAGATTCATGCTTGCTCTGCACAGCAGGGCTCGAGGCCCAGGCCATGACACGGAACTGCCTCAGGTTTGGGTCAGACCTGCATCCTGGGGCATCTGCTGAAATGTGAGCACACAAACCACCTCCTTTGGCCCAGAAGCCCCCCAGGCCTAGCATCTCAGTGCCCCAACCCTCTGCCCAGCTGTGGTATCCAGCAGGTCCTTGGGTCCCCACTTGAGCAGGCACTTGGCTGGGATATGGAGCAATTTAAAGCCCACAGGGGTTGTTCAGTTTCTATGAAATGGAGCATGGGGTGCCTGCTAGCCTCAATCCCCCGAAGTGGGAGCCTCATGATAGAGTATAGCTTGGGGGTGGGAGGTGAGGAAAATCTGAGGTACCCAGGGGAACCCCCAGCTAACTGGTCTCTCAGAGGAGTCCCCCAGGGCCCGCCAGCTATCACAGGGACTCAGAAACACCCATTTCCTAATGACATGGTGAGTTTCTTGATTTCTTTTTTTTGTTTGTTTTGTTTTGGTTTTCAACTTGGCTGACCCCGGGTCTATGATCTATTCACATCGAACCCCTGACTGGTCTGCCTGGTGCCAGGGTGAGCGTGACCGTGAGTGTTGCTTTCGACAGCTGGCTCAGCACACGCTGTGTGAAGGGATCTGAGCTTGTTCATCTCCAGTCGTGACTTCATTTCCCTTCCTTCTGTCCTCCTCCTGTTCTTGCCTTGGACCTGCAGGTGTGCAGACCGCTCTCTCTGCCTTCCTTGCATGTGGCCACCAGCCATCCCTGATCTTGTCCCCAGAGGCCCAGGCAGCCTGTGATGGCTGTGAGGGGCTGTCCCACTGTGTGGGTATCCCTTACCCAGCACTTAAACTTGGCAGGAGAGGCAGGGCAACCCTCACAGGGAGATGGGAGGGCACCCAACTCCCACAAGCATGCAACAGCAGTAGGAATTGGGGGTCTGCCCCAGGTGGGTGAGACCAAATGAGTGGATTTGGGGCCACAGGCTAGGCAGGAGAGACAAGGGGTAGGTGGGAGGGTCCCCCAGTCCCTGCTGACCCCAGTGTGTCTCCCCGGAGATGGCTCCTAGCTGAGTGGGACCCGGCAGGAGTTGGGGACAGTGCTGTCCCCCACCCCTGCACACAGCCAGGCCCTCAGGCTCTGCGGTCACTCGCCTCCCTGCTGGTCACTGGTCTTGGTCTGGAGTTATATTTTGATGCCATGAAGACACTGTTTATATCTAATGTTTATATATTTTAAAGATTTGTGCCAAGAGAGTATATTTAATAAAAACTTAAATGACTTCTTCTCCTGCTCCTGGCTCTTCTTTGGCTCTGACCGCCCCCCCATCTTCCCCCATGAACCCCCAAACAGGGTTGAAGTGCTTTTGACACATTTGTGATAAAAGTTCTGAATAAAAGTCTTGAATAAAGAAGTTTTTAAATGCAATTGTTGTTTGAATTAATACATACCACAATTTTCCAGAAAACACCAGCTGTCCACAAGGGTTTACAGTGAAAAGTAGGTGAACAGTTCCCTCTGCAGGGGGCCTCCTGTGACCATTTTCTCTTGTCTCCTCCCACAGAGATTCTGTGCATACACTCATCCCTTTCAGGATATATGTGGCCACCCACAAAGGCAGGAGGGGCCGTCTCTGTGCAGCCAGCACAGCCCAAAGTCTCATGGGCTTGAACATGGCCTTCCTTCCCAAGAGCCCTGCACTCTGGGGCTGGCTGAGGCTTCAGGCCTGAACGTCAGTCACCATCTGCAGGGGCAGCCACCAGAGGGTCTCCAGTGGCAATCCTGGCTCACTTCACCTGCAGCCCATTGGCCAGAGCAACTTGGAGGACCCACCCACTGCCAGGCCAGAAGTGGGAGCCTCTGCGTGCCCAGAGAGGAGGGGCGGCTGGGCCAGCACAGGCCTGGTGCTCTTGTTGGGGTGGGAGTAGGAATAAGTTCCACTGCGCTGACCCCCCACTGCTCTCCAATCTGCTCACGTGCAACAGGATTTCTTTTGAGTTGGTCTCCGTTGTGCACATTGTTCAGCAGCTGTGCGGTTTTCTCCTAGAGGATCCCCAGGATGACATTTACCAGGGTGGGTGTGGTGGCTCATGCCTGTAATCCCAGCACTTTGGAGACTGAGGCAGGTGGCTTGCTTGAGCCCAGGAGTTTGAGACCAGCCTAGGCAACACAGTAAGACCCCCCATCTCTACAAAAAAATAGAAAAATTAGGCCGGATGCAGTGGCTCACGCCTTTAATCCCATCACTTTGGGAGGCCAGGGCAGGTGGATCACTTGAGGTCAGGAGTTCAAGACCAGCCTGGCCAACATGCTGAAACCCCCATCTCTATTAAAAGTACAAAAATCCTAGCTACTCAGGAGGCTGAGGCAGGAGAATTGCTTGAACCTGGGAGGCGGAGGTTGCAGTGAGCCGCTGCACTCCAGCCTGAGTGACTGAGAAGTCTCCGTCTCAAAAAAAAATTTTTTTTTAATTAGCCAGTCTTGGAGGTGCGTGCCTGTAGTCCCAGCCACTCAGAAATTCACGCCTCCCTTATGTTACCAAACCAGGCTCGTTCTGCCCAGCAGTATGCCAACAGAGATGACAGGTTTTGCAGCAAAGAGTTTATTCACGAGGCAGCCGAGTGAGGAGACAGGAGAACAGATCTCAAATCCGCCTCCCTGAAGATGGGATTTTAGGAATATTTAAGGGATAGAGGAGCAAGGTGGTCAGAGACGTGGGGAAAAGTGGGGCAGTCGGGGAACCGTGCGTGCGTAGTCAAGCTTCATGGCTTTTCCATAGGATGTGTGTTCACAAAATGACATTGTTATCATGATCTGAGGGTGGAGTGTTTGGCCCTCTAACGTCAAAGGTCACCACCTAAATATACACAGGCCAAGGTGAAGGTTCGGCTCTCAGCCCATTTGGATTGGACAAGAACTGATCCTGTTCCTGAAGAACAACTTGAGCAACCATTACCATGGTGGCCCATACATAGAGATATTATCTATAAGGAAACTAGTGGGAGTTTTTTTGTTTGGGTTTTTTTGTTTTGTTTTGTTTCTTTGTTTTTGAGACGGAGTGTTGCTCTTTTTGCCCAGGCTGGAGTGCAATGGCATGATCTCGGCTTACTGCAACCTCCACCTCCCGGGTTCAAGCGATTCTCCTGCCTCAGCCTCCTAAGTAGCTGGGACTACAAGCGCCCGCCACCACACCCGGCTAATTTTTTGTATTTTTAGCAGAGACGGGGTTTAACCATGTTGGCCAGGCTGGTCTCAAACTCCTGACCTCAGGTGATTCACTCGCCTTAGCCTCCCAAAGTGCTGGGATTACAGGCTTGAGCCACCGTGCCCAGCCTATTTTTCTGTCTTTCTTTTCTTTTTTTTTTTTTTTTTTTTGAGACAGGGTCTCACTCTATTGCCCAGGCTGGAGTGCAGTGACACTACCATGGCTCACTGCAGCCTCCAACTCCTGGGCTCAAGCCATCCTCCCACCTCAGCCCCCCTAGGAGCTGGGACTACAGGTACATGCCACCACGCCTGGCTACTTTTTGTATTTTTTGTAGAGATGGGGTCTCACCATATTTCTCAGGCTGGTCTCTAACTCCTGGCTCAAGTGATCTGCCTGTCTTGGCCTCCCAAAGTGCTGGGATGACAGGCGTGAGCCACCACACCTGGCCTGGGAGTTTAGCTATACATTGTTTAGCTGAGTGACTTTTAACACTATGGGGTTTATAATCAACTAAAAACAAGTGAGGTAAGTTAAGATTGGTAGGTCTAATCAGGTGAGCCCTCAGTTCCCCTTATGGATGGGCAATTGTTAGGTATTGCCATGACAATGTGATAGCAATTTGGTGGGGGCTGCTGAACTCATCTGCACCCCGCCTCTGACATCCAGCCCAGATTTCTGATCTAAGTTCCACGTTTCACACCAGCCCCTGAACCTTGGTCAACCCCTCCCCTCTCCCACCCACCACTGTGGCATCTCCTAACAGTATAGAGGTGAGCCCGTGGACCTGTCTAGACTAGTGACAGTGAAGAAGATGTTTGCTAGCTGCGTCCAAGAAGAGCTTCAGGAGTCCTTTTTTTTTTGAGACGGAGTCTTGCTCTGTTGCCCAGGCTGGAGTGCAGTGGCGCGATCTCGGCTCACTGCAAGCTCCACCTCCAGGTTCAAGTGATTCTCCTGCCTCAGCCTCACAAGTAGCTGGGATTACAGATGCCCGCCACCACGCCCAGCTAATTTTTATATTTTTAGTAGAGACGGGGTTTCACCATGTTGGCCAGGCTGGTCTTGAACTCCCGACCTCAGATGATCTGAACGCTTCGGCCTCCCAAAGTGCTGGGATTACAGATGTGAGCCACCACACCTGGCCACCAAATGCTTTTTGCTATAAACAATTCCGCGCAGCCTAGGAGTGTCCTGAAGAAACACAACATGGTACCCCAGGTGCAACCGGCGGCTGATGACTGAAGGTAGGTGTGTAAGTAGCTTAACCCATGCCCGGACGTGGGATCATCCTGAGATAATTGCTCTACCCTGCCCCGCTAAGGCCCACAGCAGGACTGAGCCTGGTTGCCCACAGTGTCACCTGCTCATTGGTGCCCCCTGCAGGGCATCTTCCCTCCTCGTCTCAGCTCTCACCCGCCATGGGGGCTGCCTGGGGACACCTCCCAGGTAAACCACTAGCTCTGAGTCCTTTTGGGGTCATCTTTGGGGGAAACCTATCCAAAAAGGAATAGGAATGCCAGGTATTCCTGCAAATAGATCATATAGATTTATACCACATACTCACCCATATTTGATCTTCCATAATCTGACAAGTAAAAAATGGTATCTCAGCCGGGTGCGGTGGCTCATGCCTTTAATCTCAGCACTTTGGGAGGCCGAGGCAGCTGGATCACTTGAGCTCACGAGTTCAAGACCAGCCTGTGCAGCATGGTGAAACCTTGTCTCTACAAAAAATACCGGGCATGGTGGCACGTGCCTGTAATCCCCACTACTCAGGAGGCTGAGGTGGGAGGATGGCTTGAGTCTGGGAGGTGGAGGTTGCAGTGAGTCGAGATGGCACCACTGCATCCCAGCATGGGTGATAGAACCAGACCCTGTCGCAAAACAACAACAACAACAACAAAAACCAGTTAATTTATGGCCAGGCATGGTGGCTCACACCTGTAATCCCAGTTCTTTGGAAAGCTGAGGCAGGAGGATCACTTGAGACCTGGAGTTTGTCTCTATAAATAATTTTTTTTTTTGGTGGGACAGGGTTCTCATTCTGTCACCCAGGCTAGGGTACAGTGGCACAATCACATCTCACCGCAGCCTCAACCTCCCAGGGTCAAGTGATTCTCCCACCTCAGCCTCCCGAGTAGCTGCGACTACAGGCGTGGGCCACTATGCCTGGCTAATTTTTTATATTTTGTAGAGACGGGGTCTTGCTATGTCACCCGAGCTGATGAACTCCTGGGCTCAAGAGATCTGCCCACCTCCACTTCTCAAACTGCTGGGATTACAGGCGTGAGCCACTGCACCCAGCCCTCTACAAATAATTTTAAAAACTATTTTACTATTTTAAAAGTTGAAGGTTATATTTTGTTTTATCTATGAGTTTTATTTCCCCTTTTTATTTTGTTTCGGCTTGTCTGGAAATGGTATATTCCGTTTCTTCACCCATAGGGCTTCACAACATCAGCACTGCTGACATTTGGCGCTGATAATCCTCTGGGGTGAGGCCATCCTGGGCACCACACGGTGTTGAGCAGCATCTCTGGCCTCCATTCTTCAGACACCAAGAGCAACACCTCCACCCCTTGTGGTGACAACTAAAAGATGTCTCCAGACATCAACATGTGTTCCTTTGGAGCAGAACCACCCCGTCCTGTGAGAGGCACGGATATGGTGGTTACAATGGATACATCAACAAGAATTTAAATGTTTGGCCGGGCGCGGTGGGCGCGGTGGCTCAGGCCTGTAATCCCAGCACGTTGGGAGGCCGAGGCAGGTGAATCACTTGAAGCCAGGAGTTCCAGACCAGCCTGGCCAACATGGTGAAACCCATCTCTATTAAAAATACACACACACTGCCGGGTGCGGTGGCTCACGCCTGTAATCCCAGCACGTTGGGAGGCCAAGGAGGGCGGATCACGAGGTCAGGAGATCGAGACCATCCTGGCTAACACGGTGAAACCCCGTCTCTACTAAAAATACAAAAAATTAGCCGGGCGTAGTGGCGGGCGCCTGTAGTCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATGGCGTGCACCCGGGAGGCGGAGCTTACAGTGAGCCGAGATCGCGCCACTGCACTTCAGCCTGGGCGACAGAGCGAGACTCCATCTCAAAAAAAAAAAAAAAAAAAAAACTACACACACACACAAAAATTAAAATATTTATCTTCCCTCTGAGCCACACACAAAGACCTCAACCACCCCCTTCTATCTTTCCTATTTTTATTTATTTATTTATTTTGAGACAGAGTCTCGCTCTGTCACCCACGCTGGAGTGCAATGGCGCGATCTTGGCTCACTGCAACCTCTGCCTCTGGGGTTCAAGCGATTCTCCTGCCTCAGCCTCCTGAGTGGCTGGGATTACAGGCACCTGCCACCGCACCTGGCTGATTTTTGTATTTTTAGTAGGGATGGGGTTTCACCATGTTGGCCAGGGTGGTCTCAAACTCTTGACCTCGTGATCCACCGCCTCGGCCTCCCAAAGTGCTGGGATTACAGATGTGAGCCACCATACCCAGCCTGATGAAAATTTTAAAAAAGAAAATTCTTAAACCGTTCTAAGTCAGGGAACTGTCTGTATACATCTTACTTATACAAAAAGGTTACATATGCACCTTACATTGTTTTTGTTTTTGTTTTGAGATGGAGTCTCACTCTGTCACCCAGACTGGAGTGCAATGGCATGATCTTGGCTCACTGCAACCTCTGCCTCCCGGGTTCAAGCGATTCTCCTGTCTCAGCCTCCCGAGAGGCTGGGATTACAAGTGTGCACCACCACGCTTGGCTAATTTTTTTTGTATTTTAGTAGAGACAGGGTTTCACCATGTTGGCCAGGCTGGTCTTGAACTGCTGACCTCAGGTGATTGGCCTGCCTCGGTCTCCCAAAGTGTTGGGTTACAGGCATGAGCCACGGCACCCAGCCTGCACCTTACATTGTAACACACGTGTGGACACACCCTGGAGTCACAGCTACAGGACAATTTCAGAGTCCATGACGGCCCCACATCCCTTCCCTGGGTCACCAAGGCCTCAATATGCCCCTCCCCCCTCCCTGTGTGTGATATCTATACAAGTCACCTGCATACCTGTAGCAGACGCTGGCATCACTGTGGGCTCCCCGCCCTCCCATTCCTCAAACTGGTTTTCCTCTAAGGTTTCCCTGCCCATCTAACCTTCTCCTGGCACTCCCTCATGGTGCATTTCTCTCACCTGCCCGTCCGTCCCAGGCCACCTGCCCTCTCAGCTGGGACTCCAACTTCCCCTGATTTCTGGTCTCTTCCATCCTGCTTTTGGACTTTTCCTGGGACACTTGCATTTCTTCTTTTTCTTTTTTTTTTTTTTTGAGACAGAGTTTCACTCTGTCACCCAGGCTGGAGTGTGATGCGATCTCGGCTCACTGCAGCCTCCACCTCTCAGGTTCAAGCGACTCTTCTGGCTCATCCTTCTCAGTAGCTGGAACTACATGCATGCGCCACCATGCCTAATTTTTGTTATTTTAGTAAAGACTGGGTTTCACCATGCGTTGACCAGGCTGGTCTCAAACTGCTGGCCTCAAGTGATCTGCCCGCCTTGGCTTCCCAAAGTGCTGGGATTTGGGATTACGGGCGTGAGCCGCCGAGCCTGGCCTCCTTCTTGCTCTCCTTTCTCCTCCCAGACCTTTGCTCCCCTCTCAGTCCTGCTCCTCTCTCCCTCCCGCGCAGCCCCCACCCTGCACCCGGGCAGGTGCCACAGGGACGTGCAAGACAGCTACCACCCTGCACAAGCCCGAGTCCCAAACCACTCAGACCCTGTTTGTAAAAATCGGCATGCTCCTTTATTTGTTCAGAAGAGCAGCCAGCATCACCCTTGCCACTCAAACCTGGCACATACGCTTCGGAGACAATGGCCTCGGGACCCTCATGCTGCTGGGCCCAGGAGAGACAGTTCTGAGGCAGAAACTCGGCGTCCAAGGGGGGCCGCGGGTCAGGCACTGTGGTGAAGGGAACGCCGGGGAGTCCGGCCCCACCTTGCAGCTGGGGACACGGGGGCGCAAACAGAGGGGGCAGGCTAGTGTCCCGCTGCCCCAGGAACAGACCTCAGGGCCCCAGGAGGGTCTGCAGGCAGCTAGGAGCCTGCCAAGTGCTGGTGGAAGTAGAGGCCGAAAAGGCTGGCGAGCAGCTGGCAGGCAGCCGTCCACCAGATGAGGTAGGCCAGGACGCCACGGAGGAAGAGGGGAGTAAGCAGGCCACCCAGAGCCCCGGCAATCCGCGCTGCAGTCTGCTGGACTTCGTCCTCCCCAGAGCCGATGGGGGCAGCGCTGGCTGAGGATGGGTCGGGGGATAGTAGAGGAGCTGGGCCCAGGCCCCAGGAATAGCCTCCTAGGAGAAGAGGATGAAGCGAGGTATGAGTGGAAAAATGGGGGAGGGGGCGAGGGACAGGGCTGGCACGGGGGGCCAGGCCCATTCCTCCAGACACTCCCACCCCTGTCTCAGACTCCATCTCCAGCCCAGTCTCCACCCCCTCAGGCGCTGCCCCCTGTCCAAGGCAAACCCTACCCCAGGCCCCACCTCCTGCTCAGATCCTGCCTCAATACATGCCCTGCCCCCTCCCCAGGCCCCGCCTCCTGCCAAGACGCAACCCCTCCCCAGGCTCCACCTCCTAAGGCAAACGCCATCCCAAACTCCACCTCCTGCTCAGACCCTGCCTCACCACAGTCCCCGCCCCCTACCCAGGCCCCGCCTCCTGCTCAGATTGCACCCATCCCCAGGCTCCACTTCCTGTCCAAGGCAAGCCCCACTCCAGGCTCCGCTTCCTGCTCAGACCCTGCCTTACCACAGTCTCCGCCCCCTGCCTAGGCCCCGCCTCTCCCCCCCCACCGCGGTCCCCGCCAGAGTCCACCTCCACTCTGTTTTATCTTCCAACTCCGCCCCTCCTCCACCCCCACACCGCGGCATCTCACCCAGCGTCTTGAGCAGAAGTGTGCAGTTGAGGGTGAGGATGAGCGGCGTCAGGTACTGCAAGCTCACCACGGTCACATAGCAGTAGACTCGGACCACCTGTGGGCAGGTAGCAGGGGTGGCTGCAGCAGGAGGCCTTCTGGTTTGGGACGACTCCACGCCCAAAGGACCAGGAACCCCACCCTGAGCCCCAGGTTCCCTCTGGCCTAGGTCATCGGGGCGTCCATACCCTCTGCTGGATTTCACGGGCTTCGATGCGGCCAGCCTCCCTTCGCAGCTGCTCCACCCGGGCCTTGGCCAGGCACAGGTAGGCCTGCAGGTGGGGCCGGGTCACCGCCAGCCGCAGCAGGCACAGCACCACCAGCAACCAGAGGCGCCCAGAGTCGAAGGCAGAATCGGACAGCCTGTGCGGAGAGGGCCGGGGGCAAGGGACTAAGAAGGTCGCCCCCGACCCCCCAGGATCTTCCCCAGGCTCCTCCCTGAATCTCAGAGGCTAGGGCACCCAGGGGAGCCCCAGCTACCTCCTAGCCCCACCCAATACGCACAGGGAGAAACGCGTCTCCCCAAACGGCGGCTGGTGCAGGAAGTCCCGTGCAATGGGCTTTGTCCAGAGCCACAGGATGAACAGGGGAGACAGGAAGCTGGTGTGCAGGAGGAACCTGGGGGGTGAGGGCAGGAGGGAGTGAGGCCTGGGTACCCCCTCTCCTCGAGTCTCTCCCTTAAGCTCCCTAGTCCCCCCACCCACCAAGCGACCCACTTAACTGCAGCATGGGTCTGTCCTCCGACATGGTCAGTGCGTCCCGGTGGGTCTGGGCCAGCCGCAGGCCTGGGAAGGTGAGGAAGGCACCCAGCACAGAGCCCACCACTGCCAGTCCCACGCGGATAGCCAGCTTGGCCACAGGAAGCCTAGGAGAACACCAGGTCACGAGCCTGCCTGGGGGACCCTGGGAGGGTCCCAGCCTGCCCTTGCCTCCCTCCCCCATTCCCAGGACTCACGCCCAGTCCCAGCCCTGCTTCTTCAGAAGTGGCTCTAAGTTCTGGGTCATGCTGGCCAGACCTGGGGACGATAAGAAGAGGACCGAGTAGAGTGAATTCCTAGGGTCTCTAAGGCCACTCTGTTCCCTAACCCCCCATCCCTCAGGCATCCGTTTGCTTCCCAAGTAGGAATGAACAAGGGTCTGCCAGGCCCTGAGCCAGGCACAAGGACAATTTTGTGCTCTAGTTACACAGTACTTTTTACAAGAAACAAGATTGGAGTGGTGGTTCACGCCTGTAATCCCAGCACTTTGGGAGGCTGAGGCAGGCGGATCATCTGAGATCAGGAGTTTCAGACCAGCCTGGCCAATGCAGTGAAACCCCCGTCTCTACTAAAAATACAAAAATTAGCCAGGTGTGGTGGCAGGTGCCTGTAATCCCAGCTACTTGAGAGGCTGAGGCAGGAGAATCGCTTGAACATGGGGAGCGGAGGTTGCAGTGAGCTGAGACCGCACCATTGCACTCCAGCCTTGGGGACAAGAGTGAAACTCAGTCTCAAAGAAAACGAAACAGAATGCACCAGGCAGACACTCCTGATTGGGCTGGGAACATTCAGGGGTATCTGTTGAGCCTGAGCTCCCTAGGTTATAGAAGGAATCTAGAGGGGGATGAAGGACTCCTGCAGGAGAAAACCAAAGTCCTCCTGGAGGAAGGAATCCTCAATTCAGGACCCAAGATTTTTCAAAAATTAAGAGCAGGGCTGGGTGCAGTGGCTTGCACCTGTAAGTCTCAGCACTTTGGGAGGCCAAGGCGGGTGGATCGTTTGAGCTCACAAGTTTGAGACCAGCCTGGGCAACATGGCAAAACCCCCATCTCTACAAAAAATACAAAACCAGGGGTGGTGGTGCACGCCTATAGTCCCAGCTACTGTGAAGGCTGAGGTGGGAAGGATGGGTTGAGCCCAGGATGTGGAAGTTGCAGTGAGCTGAGATCATGCCACTGCACTCCAGCACAGAGCAAGACCTTGTCAAAAAAAAAAAAAAAAAGGAGCAAATTCATATGAGCTCACAGGCAAAATCACCAAATGCATAAGGAAACAAATCACCATAAAGGAGAGTTAACAGAAAAACAACAGTCAAGTTTAGGCCTCAAAGACTTCAGAAATTGGTGCTGTCAATTATGTGTCAAATGACTAAGGAAATGAAAGCTGTAATCACAGAACAAGTGACATGAGAATTCCTTCAGATGACTGGGTAGAGTTGCAAAGGAACCAAATTAAACTCTTCCAAAGGAAAACTGTAAGTATTGAAATAATAGGTTGTTAAACAGCACATTAGGAACAGCCAAAGGAGGAAGTGATGAACTGGAAGACAGATCTGAAGAAATCACTCAGATTCCAACTCAGAAAAACAAGTAGGTGAGAAATATGAAGAGAGGCTAAGAGATAAGGAAGACAGAACAGAGAGCCCAACGCAAATCAAATCAGAGCCCCAGAGGGAGGGAAGAGAAGGAATGAAGAATAAAAGGAATTACTGGAAGAGAATGGTTGAGAAGTTTGCAGAATGAAAGACAGACACAAAGTATATCAAACCATGTAAATAAAAAGAAATCCATACCTAGACATAATGGAGTGAAACTGCAGAACACCAAAAACAAAAAAATTACAAAGCAGCCAGGGAGTTAAGACAGATCACCTACAAAGGAACAACAATTAGGCTGACAGCCAATGTCAACTGCAACAACAGAAAAGGAACAAATAGAAAGCAAAAAAGTAAGATGGTAGAAACAAAGTCAAATATGTCAGTAATCACAATAAATGTAAGTAGACTAAACTTTAAAGTTAAATGACAAAGACTGTCAGACTACATTGAAAATATCCAGCTACATGTTTTTTAAAGGATGACATACCTTGACATAAAGTCACTGGAAGACTGAAAGTAAAGGGATGTTAAAAAGATACAGCAAATACTAATCAAAAGAAAGCAAGCTAGAAAGGCTATACTACTACCAGCCAAACTAGACTAAGAAGTAGTATTAGAATAGGCCAGGCGCGGTGGCTCACACCTGTAATCTCAGCACTTTGGGAGGCCAAGACGGGCAGATCACAAAGTCAGGAGTTCGAGACGAGCCTGGCCAACATGGTGAAACCCTGGCTCTACTAAAAATCCAAAAAATAGCTGGGCATGGTGGCGGGTAATACCAGCTACTTGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCAGGAGGTGGAGGTTGCAGTGAGCCGAGATTGCGCCACTGCACTCCAGCCTGGCCAACGAGAGCAAAACTCTGTCTCAAAAAAAAAAAAAGTAGTATTAGAAGACAGAAGGGTTCCATACATCATGATAAAATGGCTGATTCACCAGGAAAATGTAACAGTTCTAAATCTGTGAATAGAACTAATCTGTGAATTGTGAATAGGCTGCAAAATATATAAAGAAAACACTGACAGAATTGATAGGGAAATTGAGAGCTCTCTTGTCCCAGAGGGAGATTAACTTCTGCTGACTGATAAGTCACAGACAAAAGGTTAGGCAAGATGGAGATTTGAATTTATTAAACTCATAGAGCCAGGGAATATGTCCTTCAATTAGAACATGTGAAAAAAGGCAAAACAACAAAAACAGAATATGTCCTTCAAGAAAACAAGGAATAGTCACAAAATGTGATCACATTCCAGGCCATAGGGCAAATCTTACCAAATTTTAAAGAAATTATTTCAAATAGACCATCTGTGCAATTGAGCTAGAAATAAATATGTATTTTTTAAAGATCTATGTTTGAAAAATTTAAAAATATTTAATAATCCATAGGTCAAAGCATAGCAAGACCCCATCTCTACAGAAATCAGAAGGGAAATGTTAAAACACCCCAAACAGAATAATAAAAAATATCAGTCAAAACTTGGGTAAACTGCCAGGTGTGATGGCTCACACCTGTAATCCCAGCACTTTGAGAGGCCGAGGTGGGTGGATCACCTGAGGTTAGGAGTTTGAGACCAGCCTGGCCAACATGGTAAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCAGGCGTGGTGGCGTGCACCTGTAATCCCAGCTACTCAGGAGGCTGAGGCAGAAGAATTGCTTGAACCCAGGAGGCAGAGGTTGTAGTGAGCTGAGATTGCACAGTTGCACTCCAGCCTGGGTGACAAGAGCAAAACTCCATCTCAAAACAAAAACAAAAACAAAAAAAAACTTAGGTGAACAAAAGTGAGACCTGGTAAAATATATATAGCATTAAATGCTATATATGCTATAAAATTAGAAAAGATTGAAAATTTATGAGCCAAGTAGCTAACTGAGAAATTGGAAACAAGAAAAGGAGGTACGCCAGTACTGTTCTCAAATCCAGAGGTCCTAGCCACACCAAAGGGGAAGGATCAGACAGAACAAAAGAAAACCAAAAAGAATCTGCAATTCAATAAAAATATAATTGTTTAGCAAGGTTAGTCCGTGGAGACACTCAAATTTGACCCCTATATGATAACACAAAAATTAATGTCACTGTCCATCAGCAACAGTGAGTAGTTTAGGAGCTTATATGAAATGTAAAAGTTGAAATATTTTATTTATTGATTTTTAAGATGGAGTCTTGCTCTTGTCGCCCAGGCTAGAGTGCAATGGCGTGATTTCGGCTCACTGCAACCTCTGCCTCCGGGGTTCAAGTGATTCTCCTGCCTCAGCCTCCCGAGTAGCTGGGATTACAGGTGCATGCCACCTTGCCCAGCTTTTTTTTTTTTTTTTTTTTTAGACGGAGTCTCGCTCTGTTGCCCAGGCTGGAGTGCAGTGGCGCGATCTTGGCTCACTGCAAGCTCCACCTCCCGGGTTCACGCCATTCTCCTGCCTCAGCCTCCCCAGTAGCTGGGACTACAGGCGCCTGCCACCACGCCTGGCTAATTTTTTGTATTTTTAGTAGAGACGGGGTTTCACGGTGTTAGCCAGGATGGTCTCGATCTGCCGACCTCGTGATGTGCCCATCTCGGCCTCCCAAAGTGCTGGGATTACAGGCATGAGCCACCACCCCTGGCCAGTCATTCTATATTTTCTTCTAAAATATTTCAGCCAGGCGTGGTGGCAAGCGCCTGTAATCCCAGCACTTTGGGAGGCTGAGGCAGGTGGATTGCCTGAGGTCTGGAGTTCAAGACCAGCCTGGTCAACGTGGTGAAACCCCATCTCTAGTAAAAAATACAAAAAGTAGGCCGGGCACGGTGGCTCGCGCCTGTAATCCCAGCACTTTGGGAGGCTGAGGCGGGTGGATTGCCTGAGGTCTGGAGTTCAAGACCAGCCTGGTCAGCATAGTGAAACCCCATCTCTAGTAAAAAATACTAGAGATCGCCCACTGCACTCCAGCCTGGGGGAAAGAGCGAGACTCTGTCTCAAAAAAAAAAAAAAAGACAATGTAGAATGACTTTCTGATTTTAGGGAAGGATATTTTTCAAGACAAATATCAACTAAAATAATCAACTTCCATTCATCAAGACACTAGAGGTGACACTTACAACTACATTTGACGACTCAGCAAAGAAAGTGTGATGCATGTATGCAGACGGAAAATAATGCAAATAGTGGTCAAATGAAAACAAAAGAAGTATTGGCAATGAAGTGGATAAATTTGGAACACTTGTGCACTGCTGCTGGGAATATAAAATATAAAATGGGCTGAGCACAGTGGTGCACACCTGTAATCCCAGCACTTTGGAAGGCCGAGGCTGGCGATTGCTTGAGTTCAAGAGTTCAAGACTAGCCTGGGCAACATGGCAAAATCTGTCTCTATTAAAAACACAAAAATTATCTGGGTGTAGCCAGATGTGGTGGCTCACACCTGTAATCTCAGCACTTTGGGAGGCCAAGATGGGCAGGATCACCTGAGGTCAGGAGTTAAAGACCAGCCTGGCCAACATGGCAAAACCCCATCTCTACTAAAAATGCAAAAATTAGCCAGGTGTGGTGGCGCACACCTGTAATCCCAGCTACTTGGGAGGCTGAGGCAAGAGAATCACTTGAGCCTGGAAGGTGGAGGTTGCAGTGAGCCAAGATCATGCCACTGTACTCTAGCCTGGGTGACAGAGGGAGACTGTCTCAAAAAATAAAAATAAAAATAAAAAAATAAATTAGCTGGGTGTGGTGGTGGGAGCCTGTAGTCCCAGCTACTTGGGAGCCTGAGGCATGAGAATCACTTGAATCCGGGAGGCAAAGGTTGCAGTGAGTGGAGATCACGCCACCACTGCACTCCAGCCAGGGCAACAGAATGAGACTCTGTCTCAAAAATAAAATAAAATGGTTCAGCTGCTGTATAAAACAGTATGGCAGTCCCTCAAAAAATTAAAAGTAGAATTATCATATAATCCAGCAGTTCCACTTCTGGATATATACTCTCCAAAACTGAAAATGGGGTCTCAAAGAGATACCTGTACACTCAGGTTCACAGCGGTATTAGTCAAAAAGCCAAAAGTTGGGAACAACCCAAGCATTCATCTGTGGATGAATAAACAAAATGTGTTCCACCCAGACAATGAAATAGTGTTCAGTCTTTTTTTTTTTTTTTTTTTTTGAGATGGAGTCTTGCTCTTTCACCCAGGCCGGAGTGCAGTGGCACTATCTAAGCTCAC +PRIMER_LEFT_EXPLAIN=considered 180325, GC content failed 8877, low tm 34002, high tm 101805, high end compl 2, long poly-x seq 1117, lowercase masking of 3' end 530, ok 33992 +PRIMER_RIGHT_EXPLAIN=considered 180315, GC content failed 8926, low tm 33985, high tm 101878, high end compl 1, long poly-x seq 1108, lowercase masking of 3' end 480, ok 33937 +PRIMER_INTERNAL_EXPLAIN=considered 180490, GC content failed 9272, low tm 34040, high tm 102012, long poly-x seq 1142, ok 34024 +PRIMER_PAIR_EXPLAIN=considered 338, unacceptable product size 331, high any compl 1, ok 6 +PRIMER_LEFT_NUM_RETURNED=5 +PRIMER_RIGHT_NUM_RETURNED=5 +PRIMER_INTERNAL_NUM_RETURNED=5 +PRIMER_PAIR_NUM_RETURNED=5 +PRIMER_PAIR_0_PENALTY=0.005611 +PRIMER_LEFT_0_PENALTY=0.000037 +PRIMER_RIGHT_0_PENALTY=0.005574 +PRIMER_INTERNAL_0_PENALTY=0.012470 +PRIMER_LEFT_0_SEQUENCE=ATGCCCACCTGCTTTGTAAC +PRIMER_RIGHT_0_SEQUENCE=AGACCAGTTAGCTGGGGGTT +PRIMER_INTERNAL_0_SEQUENCE=GCACACAAACCACCTCCTTT +PRIMER_LEFT_0=2958,20 +PRIMER_RIGHT_0=3387,20 +PRIMER_INTERNAL_0=3093,20 +PRIMER_LEFT_0_TM=60.000 +PRIMER_RIGHT_0_TM=59.994 +PRIMER_INTERNAL_0_TM=60.012 +PRIMER_LEFT_0_GC_PERCENT=50.000 +PRIMER_RIGHT_0_GC_PERCENT=55.000 +PRIMER_INTERNAL_0_GC_PERCENT=50.000 +PRIMER_LEFT_0_SELF_ANY=3.00 +PRIMER_RIGHT_0_SELF_ANY=8.00 +PRIMER_INTERNAL_0_SELF_ANY=3.00 +PRIMER_LEFT_0_SELF_END=3.00 +PRIMER_RIGHT_0_SELF_END=0.00 +PRIMER_INTERNAL_0_SELF_END=2.00 +PRIMER_LEFT_0_END_STABILITY=5.4000 +PRIMER_RIGHT_0_END_STABILITY=9.4000 +PRIMER_PAIR_0_COMPL_ANY=5.00 +PRIMER_PAIR_0_COMPL_END=3.00 +PRIMER_PAIR_0_PRODUCT_SIZE=430 +PRIMER_PAIR_1_PENALTY=0.012524 +PRIMER_LEFT_1_PENALTY=0.010545 +PRIMER_RIGHT_1_PENALTY=0.001978 +PRIMER_INTERNAL_1_PENALTY=0.026532 +PRIMER_LEFT_1_SEQUENCE=GGTTCAAGCGACTCTTCTGG +PRIMER_RIGHT_1_SEQUENCE=ACAGGGTCTGAGTGGTTTGG +PRIMER_INTERNAL_1_SEQUENCE=AAGACTGGGTTTCACCATGC +PRIMER_LEFT_1=10632,20 +PRIMER_RIGHT_1=11007,20 +PRIMER_INTERNAL_1=10718,20 +PRIMER_LEFT_1_TM=59.989 +PRIMER_RIGHT_1_TM=60.002 +PRIMER_INTERNAL_1_TM=59.973 +PRIMER_LEFT_1_GC_PERCENT=55.000 +PRIMER_RIGHT_1_GC_PERCENT=55.000 +PRIMER_INTERNAL_1_GC_PERCENT=50.000 +PRIMER_LEFT_1_SELF_ANY=5.00 +PRIMER_RIGHT_1_SELF_ANY=3.00 +PRIMER_INTERNAL_1_SELF_ANY=4.00 +PRIMER_LEFT_1_SELF_END=1.00 +PRIMER_RIGHT_1_SELF_END=0.00 +PRIMER_INTERNAL_1_SELF_END=2.00 +PRIMER_LEFT_1_END_STABILITY=8.2000 +PRIMER_RIGHT_1_END_STABILITY=8.8000 +PRIMER_PAIR_1_COMPL_ANY=6.00 +PRIMER_PAIR_1_COMPL_END=0.00 +PRIMER_PAIR_1_PRODUCT_SIZE=376 +PRIMER_PAIR_2_PENALTY=0.016397 +PRIMER_LEFT_2_PENALTY=0.001978 +PRIMER_RIGHT_2_PENALTY=0.014419 +PRIMER_INTERNAL_2_PENALTY=0.026532 +PRIMER_LEFT_2_SEQUENCE=CCAAACCACTCAGACCCTGT +PRIMER_RIGHT_2_SEQUENCE=CAGAACTGTCTCTCCTGGGC +PRIMER_INTERNAL_2_SEQUENCE=ATCACCCTTGCCACTCAAAC +PRIMER_LEFT_2=10988,20 +PRIMER_RIGHT_2=11144,20 +PRIMER_INTERNAL_2=11055,20 +PRIMER_LEFT_2_TM=60.002 +PRIMER_RIGHT_2_TM=59.986 +PRIMER_INTERNAL_2_TM=59.973 +PRIMER_LEFT_2_GC_PERCENT=55.000 +PRIMER_RIGHT_2_GC_PERCENT=60.000 +PRIMER_INTERNAL_2_GC_PERCENT=50.000 +PRIMER_LEFT_2_SELF_ANY=3.00 +PRIMER_RIGHT_2_SELF_ANY=5.00 +PRIMER_INTERNAL_2_SELF_ANY=3.00 +PRIMER_LEFT_2_SELF_END=1.00 +PRIMER_RIGHT_2_SELF_END=2.00 +PRIMER_INTERNAL_2_SELF_END=0.00 +PRIMER_LEFT_2_END_STABILITY=7.9000 +PRIMER_RIGHT_2_END_STABILITY=11.2000 +PRIMER_PAIR_2_COMPL_ANY=4.00 +PRIMER_PAIR_2_COMPL_END=1.00 +PRIMER_PAIR_2_PRODUCT_SIZE=157 +PRIMER_PAIR_3_PENALTY=0.017482 +PRIMER_LEFT_3_PENALTY=0.010545 +PRIMER_RIGHT_3_PENALTY=0.006937 +PRIMER_INTERNAL_3_PENALTY=0.066676 +PRIMER_LEFT_3_SEQUENCE=GTTCTGAGGCAGAAACTCGG +PRIMER_RIGHT_3_SEQUENCE=GAGGACGAAGTCCAGCAGAC +PRIMER_INTERNAL_3_SEQUENCE=ACGGAGGAAGAGGGGAGTAA +PRIMER_LEFT_3=11139,20 +PRIMER_RIGHT_3=11490,20 +PRIMER_INTERNAL_3=11416,20 +PRIMER_LEFT_3_TM=59.989 +PRIMER_RIGHT_3_TM=59.993 +PRIMER_INTERNAL_3_TM=60.067 +PRIMER_LEFT_3_GC_PERCENT=55.000 +PRIMER_RIGHT_3_GC_PERCENT=60.000 +PRIMER_INTERNAL_3_GC_PERCENT=55.000 +PRIMER_LEFT_3_SELF_ANY=7.00 +PRIMER_RIGHT_3_SELF_ANY=5.00 +PRIMER_INTERNAL_3_SELF_ANY=2.00 +PRIMER_LEFT_3_SELF_END=1.00 +PRIMER_RIGHT_3_SELF_END=2.00 +PRIMER_INTERNAL_3_SELF_END=1.00 +PRIMER_LEFT_3_END_STABILITY=9.9000 +PRIMER_RIGHT_3_END_STABILITY=6.4000 +PRIMER_PAIR_3_COMPL_ANY=4.00 +PRIMER_PAIR_3_COMPL_END=1.00 +PRIMER_PAIR_3_PRODUCT_SIZE=352 +PRIMER_PAIR_4_PENALTY=0.018045 +PRIMER_LEFT_4_PENALTY=0.012470 +PRIMER_RIGHT_4_PENALTY=0.005574 +PRIMER_INTERNAL_4_PENALTY=0.042377 +PRIMER_LEFT_4_SEQUENCE=GCACACAAACCACCTCCTTT +PRIMER_RIGHT_4_SEQUENCE=AGACCAGTTAGCTGGGGGTT +PRIMER_INTERNAL_4_SEQUENCE=TGGGAGGTGAGGAAAATCTG +PRIMER_LEFT_4=3093,20 +PRIMER_RIGHT_4=3387,20 +PRIMER_INTERNAL_4=3335,20 +PRIMER_LEFT_4_TM=60.012 +PRIMER_RIGHT_4_TM=59.994 +PRIMER_INTERNAL_4_TM=60.042 +PRIMER_LEFT_4_GC_PERCENT=50.000 +PRIMER_RIGHT_4_GC_PERCENT=55.000 +PRIMER_INTERNAL_4_GC_PERCENT=50.000 +PRIMER_LEFT_4_SELF_ANY=3.00 +PRIMER_RIGHT_4_SELF_ANY=8.00 +PRIMER_INTERNAL_4_SELF_ANY=2.00 +PRIMER_LEFT_4_SELF_END=2.00 +PRIMER_RIGHT_4_SELF_END=0.00 +PRIMER_INTERNAL_4_SELF_END=1.00 +PRIMER_LEFT_4_END_STABILITY=8.5000 +PRIMER_RIGHT_4_END_STABILITY=9.4000 +PRIMER_PAIR_4_COMPL_ANY=5.00 +PRIMER_PAIR_4_COMPL_END=3.00 +PRIMER_PAIR_4_PRODUCT_SIZE=295 += +SEQUENCE_ID=masker_prefix1 +PRIMER_TASK=pick_pcr_primers_and_hyb_probe +PRIMER_NUM_RETURN=5 +PRIMER_PRODUCT_SIZE_RANGE=50-500 +PRIMER_EXPLAIN_FLAG=1 +PRIMER_MASK_TEMPLATE=1 +PRIMER_MASK_FAILURE_RATE=0.2 +PRIMER_MASK_5P_DIRECTION=1 +PRIMER_MASK_3P_DIRECTION=1 +PRIMER_WT_MASK_FAILURE_RATE=0.0 +PRIMER_MASK_KMERLIST_PREFIX=homo_sapiens +SEQUENCE_TEMPLATE=CTGACATTTTATGCCCAAGACAATGGCTCTGCCTTCTACCTTCACATGCTCAGGGTCACTCAGCACGTCCTGGAGGATTTCTCTGGCCTGGAGTCCCTGGCCCGGGCAGCAGCGCTAGGGACCCACCGAGTGGTCACAAGGCTGTTTATGTTGGGCCTCCTGGTGGAGTCGGCATGGTACCTCCATTGCTACCTGACAGACCTGCGGTTTGACAATATCTACGCCACTCAACAGCTGACCCAGCGGTTGGCACAGGCCCAGGCTACACACCTCCTGGCCCCTCCACCCACCTGGCTGCTCCAGGCGGCTCAGCTGAGGCTGTCACAGGAGGAGCTGTTGAGTTGTCTTCTAAGGCTGGGGCTGCTTGCCCTGCTCCTCGTGGCCACTGCTGTGGCGGTGGCCACAGACCATGTAGCCTTCCTCCTGGCACAGGCGACTGTGGACTGGGCTCAGAAGTTGCCAACTGTGCCCATCACGCTCACGGTCAAGTATGATGTGGCATACACTGTCCTGGGCTTCATCCCTTTCCTCTTCAACCAGCTGGCTCCGGAGAGCCCCTTCCTCTCCGTCCACAGCTCCCTACCAATAAAGGAGGGCGCGCAGAGCGGCGCGGCGGGCCCGCCCGCGGCCGCCGCCCCGCGCCTGCGCCGGCGGGCGGATCAGCCGACATCCAGGAGCTCGTCTCCTTGTGTGACTGTAAAACCCCATTTTCGGTGTTTCTCTCTGGAGTGCTTTCCAGCCCCTTGACCCCACGTTCTCACCCCACGTGATGCCATCAGACCCCTTGTTTTTGCCCACCTGGTGAGCAGATCACAGTGTCTCCTGTCTGGCTGTTTTTTTGAGACGGAGTCTCACTCTGCCGCCCAGGCTGGAGTGCAGTGGAACGATCTCAGCTCACTGCAACCTCCACTTCCTGGGTTCAAGCCATTCTCCTGCCTCAGCCTCCCTAGTAGCTGGGATTACAGGCGCCCACCACCACACCTGGCTAATTTTTGTGTGTTTTTGGTAGAGACAGGGTTTCTCCATGTTGGCCAGGCTGGTCTCCAATTCCTGGGCTCAAGTGATCCGCCTGCCTTGGCCTCCCAAAGTGCTGAGATTACAGGCGTGAGTCACTGCACCCAGCCTTGGCTGTTTTAAATTCCTAGTTCTAAATTTACTATTACAAATGTTTAAAGTACCCCTACTGACCTGTTGCTGCTCCTTCCTCCTCCACACCCACACACCCCGTTTAGACCCGCAAGACAGAGCAGGGTGAAGTTCATGGTCACTTATGTCCACTCTGTGCAACAGCTCGCAGGGGCTCCCCAGGGAGGGCGCAGGTCGGGGACCAGGCACGGGAGCACCTAGAATGTTCCTTTACTAGACGTGGAGTAGAGCTGATTAGATGTGAGCAGTGGCTCTAGGAGTTGGTTCTATGATTCTCTGTGTTTCTGCCTTTTAAGAAATTTTATTTCTCGGCCGGGCTCGGTGGCTCATGTCTGTAATCCCAGCACTTTGGGAGGCCGAGGCAGGCAGATCGCCTGAGGTCAGGAGTTTGAGACCAGCCTGACCAACATGGAGAAACCCTGTCTCTACTAAAAATACAACATTAGCCAGGCGTGGTGGTGCATGCCTGTATTCCCAGCTACTTTGGAGGCTGAGACAGAATTGCTTGAACCCGGGAGGCGGAGGGTGCAGTGAGCCGAGATTGGGCCATTGCCCTCCAGCCTGGGCAACAAGAGTGAAATTACATCTCCAAAAAAAAAATTTTTTTTATTTCTCGAGTTTGAGTGAAAGGAGCGACCCGGAGGTGAGGCAGTGGGGCGTGTGGGTGCGCATGAGTGCGAACACACGTGGGGGTGCAAGTGCATGTGTGTATGTGCACGCAGGTTGCTCCTAGGGGTGCAAAGGCGCGCGCACGGGTGCGGGGTGCGCGCCCCCTCGCGGCGCCTTCACGGCCCTCCCGCCCCTCGCCCTGCAGAGTACAGCGGCCGCCGGCAGCCCTACCCCTTCGAGCGCATGATCTTCGGCGCCTGCGCTGGCCTCATCGGGCAGTCGGCCTCGTACCCGCTGGATGTGGTGCGGCGGCGCATGCAGACGGCCGGCGTCACGGGCTACCCGCGCGCCTCCATCGCCCGCACGCTGCGCACCATCGTGCGGGAGGAGGGCGCCGTGCGCGGCCTCTACAAAGGCTTGAGCATGAACTGGGTCAAGGGTCCCATCGCCGTGGGCATCAGCTTCACCACCTTCGACCTCATGCAGATCCTGCTGCGGCACCTGCAGAGCTAGGGGACCCTGAGCTGCTCTCAGGACGGTGGACCGGTGACCCCTTTGTATTCTGGGCCCATGGAACGGTGGGGGGGTGCGCTTGATTCTACTTCAGGAGGCACATGGGGCGCTTTATGGAACGAGCAGGTGGGCCTGAGGGGCCTGGGCTCAGAGTCCACGTCCAAACGCAAAGCTGGCAGCCCTGGAAGTGCAGTGTTGGGGCGATGGTGTGGGGGGTCCCGCAGCTCCCCTCTTCCTTCCTCTGCAGACGCTGGCGCTGTCTGCCGGAGGTGTTGCCCAAAAGGCCCTAGTGGGGCGTGGTCAGCTCCACCTCCTGATCCTGTGTGTCCTCCGACATGCTGCTGATTCTAGTGACCCCTGTCCCCACCAGGCTCAGAGCCAGACCGCGCCTGGACCTTCTTGTTCTGACTCCACGTGCCTGCCCGGCCTCCAGGGTGCGGGGGCGCCTTTCTTGCAGGCGGACCCTGCCCAGGATGGGGCCAGCCTCGTGCTCAGCTTTGGCCACAAATGCAGCCCCTGGCCCACCCCACCCTGCCGGCCCTGCCTTCTCCAGTATTTCCCACATGGCCACGACTCCTCAGTCACTAGAGCCTCCTGCTGGGAACAGTGTCCCCCAGAGCCTCATGTCTATCCTAGACCCTGCAAGCAGCTGGGTCCCCAAGAGTGCATCTCCCCCTAGAGTTGCCTGCCCATGCCCACCTGCTTTGTAACCTTCCCAGGAGATTCATGCTTGCTCTGCACAGCAGGGCTCGAGGCCCAGGCCATGACACGGAACTGCCTCAGGTTTGGGTCAGACCTGCATCCTGGGGCATCTGCTGAAATGTGAGCACACAAACCACCTCCTTTGGCCCAGAAGCCCCCCAGGCCTAGCATCTCAGTGCCCCAACCCTCTGCCCAGCTGTGGTATCCAGCAGGTCCTTGGGTCCCCACTTGAGCAGGCACTTGGCTGGGATATGGAGCAATTTAAAGCCCACAGGGGTTGTTCAGTTTCTATGAAATGGAGCATGGGGTGCCTGCTAGCCTCAATCCCCCGAAGTGGGAGCCTCATGATAGAGTATAGCTTGGGGGTGGGAGGTGAGGAAAATCTGAGGTACCCAGGGGAACCCCCAGCTAACTGGTCTCTCAGAGGAGTCCCCCAGGGCCCGCCAGCTATCACAGGGACTCAGAAACACCCATTTCCTAATGACATGGTGAGTTTCTTGATTTCTTTTTTTTGTTTGTTTTGTTTTGGTTTTCAACTTGGCTGACCCCGGGTCTATGATCTATTCACATCGAACCCCTGACTGGTCTGCCTGGTGCCAGGGTGAGCGTGACCGTGAGTGTTGCTTTCGACAGCTGGCTCAGCACACGCTGTGTGAAGGGATCTGAGCTTGTTCATCTCCAGTCGTGACTTCATTTCCCTTCCTTCTGTCCTCCTCCTGTTCTTGCCTTGGACCTGCAGGTGTGCAGACCGCTCTCTCTGCCTTCCTTGCATGTGGCCACCAGCCATCCCTGATCTTGTCCCCAGAGGCCCAGGCAGCCTGTGATGGCTGTGAGGGGCTGTCCCACTGTGTGGGTATCCCTTACCCAGCACTTAAACTTGGCAGGAGAGGCAGGGCAACCCTCACAGGGAGATGGGAGGGCACCCAACTCCCACAAGCATGCAACAGCAGTAGGAATTGGGGGTCTGCCCCAGGTGGGTGAGACCAAATGAGTGGATTTGGGGCCACAGGCTAGGCAGGAGAGACAAGGGGTAGGTGGGAGGGTCCCCCAGTCCCTGCTGACCCCAGTGTGTCTCCCCGGAGATGGCTCCTAGCTGAGTGGGACCCGGCAGGAGTTGGGGACAGTGCTGTCCCCCACCCCTGCACACAGCCAGGCCCTCAGGCTCTGCGGTCACTCGCCTCCCTGCTGGTCACTGGTCTTGGTCTGGAGTTATATTTTGATGCCATGAAGACACTGTTTATATCTAATGTTTATATATTTTAAAGATTTGTGCCAAGAGAGTATATTTAATAAAAACTTAAATGACTTCTTCTCCTGCTCCTGGCTCTTCTTTGGCTCTGACCGCCCCCCCATCTTCCCCCATGAACCCCCAAACAGGGTTGAAGTGCTTTTGACACATTTGTGATAAAAGTTCTGAATAAAAGTCTTGAATAAAGAAGTTTTTAAATGCAATTGTTGTTTGAATTAATACATACCACAATTTTCCAGAAAACACCAGCTGTCCACAAGGGTTTACAGTGAAAAGTAGGTGAACAGTTCCCTCTGCAGGGGGCCTCCTGTGACCATTTTCTCTTGTCTCCTCCCACAGAGATTCTGTGCATACACTCATCCCTTTCAGGATATATGTGGCCACCCACAAAGGCAGGAGGGGCCGTCTCTGTGCAGCCAGCACAGCCCAAAGTCTCATGGGCTTGAACATGGCCTTCCTTCCCAAGAGCCCTGCACTCTGGGGCTGGCTGAGGCTTCAGGCCTGAACGTCAGTCACCATCTGCAGGGGCAGCCACCAGAGGGTCTCCAGTGGCAATCCTGGCTCACTTCACCTGCAGCCCATTGGCCAGAGCAACTTGGAGGACCCACCCACTGCCAGGCCAGAAGTGGGAGCCTCTGCGTGCCCAGAGAGGAGGGGCGGCTGGGCCAGCACAGGCCTGGTGCTCTTGTTGGGGTGGGAGTAGGAATAAGTTCCACTGCGCTGACCCCCCACTGCTCTCCAATCTGCTCACGTGCAACAGGATTTCTTTTGAGTTGGTCTCCGTTGTGCACATTGTTCAGCAGCTGTGCGGTTTTCTCCTAGAGGATCCCCAGGATGACATTTACCAGGGTGGGTGTGGTGGCTCATGCCTGTAATCCCAGCACTTTGGAGACTGAGGCAGGTGGCTTGCTTGAGCCCAGGAGTTTGAGACCAGCCTAGGCAACACAGTAAGACCCCCCATCTCTACAAAAAAATAGAAAAATTAGGCCGGATGCAGTGGCTCACGCCTTTAATCCCATCACTTTGGGAGGCCAGGGCAGGTGGATCACTTGAGGTCAGGAGTTCAAGACCAGCCTGGCCAACATGCTGAAACCCCCATCTCTATTAAAAGTACAAAAATCCTAGCTACTCAGGAGGCTGAGGCAGGAGAATTGCTTGAACCTGGGAGGCGGAGGTTGCAGTGAGCCGCTGCACTCCAGCCTGAGTGACTGAGAAGTCTCCGTCTCAAAAAAAAATTTTTTTTTAATTAGCCAGTCTTGGAGGTGCGTGCCTGTAGTCCCAGCCACTCAGAAATTCACGCCTCCCTTATGTTACCAAACCAGGCTCGTTCTGCCCAGCAGTATGCCAACAGAGATGACAGGTTTTGCAGCAAAGAGTTTATTCACGAGGCAGCCGAGTGAGGAGACAGGAGAACAGATCTCAAATCCGCCTCCCTGAAGATGGGATTTTAGGAATATTTAAGGGATAGAGGAGCAAGGTGGTCAGAGACGTGGGGAAAAGTGGGGCAGTCGGGGAACCGTGCGTGCGTAGTCAAGCTTCATGGCTTTTCCATAGGATGTGTGTTCACAAAATGACATTGTTATCATGATCTGAGGGTGGAGTGTTTGGCCCTCTAACGTCAAAGGTCACCACCTAAATATACACAGGCCAAGGTGAAGGTTCGGCTCTCAGCCCATTTGGATTGGACAAGAACTGATCCTGTTCCTGAAGAACAACTTGAGCAACCATTACCATGGTGGCCCATACATAGAGATATTATCTATAAGGAAACTAGTGGGAGTTTTTTTGTTTGGGTTTTTTTGTTTTGTTTTGTTTCTTTGTTTTTGAGACGGAGTGTTGCTCTTTTTGCCCAGGCTGGAGTGCAATGGCATGATCTCGGCTTACTGCAACCTCCACCTCCCGGGTTCAAGCGATTCTCCTGCCTCAGCCTCCTAAGTAGCTGGGACTACAAGCGCCCGCCACCACACCCGGCTAATTTTTTGTATTTTTAGCAGAGACGGGGTTTAACCATGTTGGCCAGGCTGGTCTCAAACTCCTGACCTCAGGTGATTCACTCGCCTTAGCCTCCCAAAGTGCTGGGATTACAGGCTTGAGCCACCGTGCCCAGCCTATTTTTCTGTCTTTCTTTTCTTTTTTTTTTTTTTTTTTTTGAGACAGGGTCTCACTCTATTGCCCAGGCTGGAGTGCAGTGACACTACCATGGCTCACTGCAGCCTCCAACTCCTGGGCTCAAGCCATCCTCCCACCTCAGCCCCCCTAGGAGCTGGGACTACAGGTACATGCCACCACGCCTGGCTACTTTTTGTATTTTTTGTAGAGATGGGGTCTCACCATATTTCTCAGGCTGGTCTCTAACTCCTGGCTCAAGTGATCTGCCTGTCTTGGCCTCCCAAAGTGCTGGGATGACAGGCGTGAGCCACCACACCTGGCCTGGGAGTTTAGCTATACATTGTTTAGCTGAGTGACTTTTAACACTATGGGGTTTATAATCAACTAAAAACAAGTGAGGTAAGTTAAGATTGGTAGGTCTAATCAGGTGAGCCCTCAGTTCCCCTTATGGATGGGCAATTGTTAGGTATTGCCATGACAATGTGATAGCAATTTGGTGGGGGCTGCTGAACTCATCTGCACCCCGCCTCTGACATCCAGCCCAGATTTCTGATCTAAGTTCCACGTTTCACACCAGCCCCTGAACCTTGGTCAACCCCTCCCCTCTCCCACCCACCACTGTGGCATCTCCTAACAGTATAGAGGTGAGCCCGTGGACCTGTCTAGACTAGTGACAGTGAAGAAGATGTTTGCTAGCTGCGTCCAAGAAGAGCTTCAGGAGTCCTTTTTTTTTTGAGACGGAGTCTTGCTCTGTTGCCCAGGCTGGAGTGCAGTGGCGCGATCTCGGCTCACTGCAAGCTCCACCTCCAGGTTCAAGTGATTCTCCTGCCTCAGCCTCACAAGTAGCTGGGATTACAGATGCCCGCCACCACGCCCAGCTAATTTTTATATTTTTAGTAGAGACGGGGTTTCACCATGTTGGCCAGGCTGGTCTTGAACTCCCGACCTCAGATGATCTGAACGCTTCGGCCTCCCAAAGTGCTGGGATTACAGATGTGAGCCACCACACCTGGCCACCAAATGCTTTTTGCTATAAACAATTCCGCGCAGCCTAGGAGTGTCCTGAAGAAACACAACATGGTACCCCAGGTGCAACCGGCGGCTGATGACTGAAGGTAGGTGTGTAAGTAGCTTAACCCATGCCCGGACGTGGGATCATCCTGAGATAATTGCTCTACCCTGCCCCGCTAAGGCCCACAGCAGGACTGAGCCTGGTTGCCCACAGTGTCACCTGCTCATTGGTGCCCCCTGCAGGGCATCTTCCCTCCTCGTCTCAGCTCTCACCCGCCATGGGGGCTGCCTGGGGACACCTCCCAGGTAAACCACTAGCTCTGAGTCCTTTTGGGGTCATCTTTGGGGGAAACCTATCCAAAAAGGAATAGGAATGCCAGGTATTCCTGCAAATAGATCATATAGATTTATACCACATACTCACCCATATTTGATCTTCCATAATCTGACAAGTAAAAAATGGTATCTCAGCCGGGTGCGGTGGCTCATGCCTTTAATCTCAGCACTTTGGGAGGCCGAGGCAGCTGGATCACTTGAGCTCACGAGTTCAAGACCAGCCTGTGCAGCATGGTGAAACCTTGTCTCTACAAAAAATACCGGGCATGGTGGCACGTGCCTGTAATCCCCACTACTCAGGAGGCTGAGGTGGGAGGATGGCTTGAGTCTGGGAGGTGGAGGTTGCAGTGAGTCGAGATGGCACCACTGCATCCCAGCATGGGTGATAGAACCAGACCCTGTCGCAAAACAACAACAACAACAACAAAAACCAGTTAATTTATGGCCAGGCATGGTGGCTCACACCTGTAATCCCAGTTCTTTGGAAAGCTGAGGCAGGAGGATCACTTGAGACCTGGAGTTTGTCTCTATAAATAATTTTTTTTTTTGGTGGGACAGGGTTCTCATTCTGTCACCCAGGCTAGGGTACAGTGGCACAATCACATCTCACCGCAGCCTCAACCTCCCAGGGTCAAGTGATTCTCCCACCTCAGCCTCCCGAGTAGCTGCGACTACAGGCGTGGGCCACTATGCCTGGCTAATTTTTTATATTTTGTAGAGACGGGGTCTTGCTATGTCACCCGAGCTGATGAACTCCTGGGCTCAAGAGATCTGCCCACCTCCACTTCTCAAACTGCTGGGATTACAGGCGTGAGCCACTGCACCCAGCCCTCTACAAATAATTTTAAAAACTATTTTACTATTTTAAAAGTTGAAGGTTATATTTTGTTTTATCTATGAGTTTTATTTCCCCTTTTTATTTTGTTTCGGCTTGTCTGGAAATGGTATATTCCGTTTCTTCACCCATAGGGCTTCACAACATCAGCACTGCTGACATTTGGCGCTGATAATCCTCTGGGGTGAGGCCATCCTGGGCACCACACGGTGTTGAGCAGCATCTCTGGCCTCCATTCTTCAGACACCAAGAGCAACACCTCCACCCCTTGTGGTGACAACTAAAAGATGTCTCCAGACATCAACATGTGTTCCTTTGGAGCAGAACCACCCCGTCCTGTGAGAGGCACGGATATGGTGGTTACAATGGATACATCAACAAGAATTTAAATGTTTGGCCGGGCGCGGTGGGCGCGGTGGCTCAGGCCTGTAATCCCAGCACGTTGGGAGGCCGAGGCAGGTGAATCACTTGAAGCCAGGAGTTCCAGACCAGCCTGGCCAACATGGTGAAACCCATCTCTATTAAAAATACACACACACTGCCGGGTGCGGTGGCTCACGCCTGTAATCCCAGCACGTTGGGAGGCCAAGGAGGGCGGATCACGAGGTCAGGAGATCGAGACCATCCTGGCTAACACGGTGAAACCCCGTCTCTACTAAAAATACAAAAAATTAGCCGGGCGTAGTGGCGGGCGCCTGTAGTCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATGGCGTGCACCCGGGAGGCGGAGCTTACAGTGAGCCGAGATCGCGCCACTGCACTTCAGCCTGGGCGACAGAGCGAGACTCCATCTCAAAAAAAAAAAAAAAAAAAAAACTACACACACACACAAAAATTAAAATATTTATCTTCCCTCTGAGCCACACACAAAGACCTCAACCACCCCCTTCTATCTTTCCTATTTTTATTTATTTATTTATTTTGAGACAGAGTCTCGCTCTGTCACCCACGCTGGAGTGCAATGGCGCGATCTTGGCTCACTGCAACCTCTGCCTCTGGGGTTCAAGCGATTCTCCTGCCTCAGCCTCCTGAGTGGCTGGGATTACAGGCACCTGCCACCGCACCTGGCTGATTTTTGTATTTTTAGTAGGGATGGGGTTTCACCATGTTGGCCAGGGTGGTCTCAAACTCTTGACCTCGTGATCCACCGCCTCGGCCTCCCAAAGTGCTGGGATTACAGATGTGAGCCACCATACCCAGCCTGATGAAAATTTTAAAAAAGAAAATTCTTAAACCGTTCTAAGTCAGGGAACTGTCTGTATACATCTTACTTATACAAAAAGGTTACATATGCACCTTACATTGTTTTTGTTTTTGTTTTGAGATGGAGTCTCACTCTGTCACCCAGACTGGAGTGCAATGGCATGATCTTGGCTCACTGCAACCTCTGCCTCCCGGGTTCAAGCGATTCTCCTGTCTCAGCCTCCCGAGAGGCTGGGATTACAAGTGTGCACCACCACGCTTGGCTAATTTTTTTTGTATTTTAGTAGAGACAGGGTTTCACCATGTTGGCCAGGCTGGTCTTGAACTGCTGACCTCAGGTGATTGGCCTGCCTCGGTCTCCCAAAGTGTTGGGTTACAGGCATGAGCCACGGCACCCAGCCTGCACCTTACATTGTAACACACGTGTGGACACACCCTGGAGTCACAGCTACAGGACAATTTCAGAGTCCATGACGGCCCCACATCCCTTCCCTGGGTCACCAAGGCCTCAATATGCCCCTCCCCCCTCCCTGTGTGTGATATCTATACAAGTCACCTGCATACCTGTAGCAGACGCTGGCATCACTGTGGGCTCCCCGCCCTCCCATTCCTCAAACTGGTTTTCCTCTAAGGTTTCCCTGCCCATCTAACCTTCTCCTGGCACTCCCTCATGGTGCATTTCTCTCACCTGCCCGTCCGTCCCAGGCCACCTGCCCTCTCAGCTGGGACTCCAACTTCCCCTGATTTCTGGTCTCTTCCATCCTGCTTTTGGACTTTTCCTGGGACACTTGCATTTCTTCTTTTTCTTTTTTTTTTTTTTTGAGACAGAGTTTCACTCTGTCACCCAGGCTGGAGTGTGATGCGATCTCGGCTCACTGCAGCCTCCACCTCTCAGGTTCAAGCGACTCTTCTGGCTCATCCTTCTCAGTAGCTGGAACTACATGCATGCGCCACCATGCCTAATTTTTGTTATTTTAGTAAAGACTGGGTTTCACCATGCGTTGACCAGGCTGGTCTCAAACTGCTGGCCTCAAGTGATCTGCCCGCCTTGGCTTCCCAAAGTGCTGGGATTTGGGATTACGGGCGTGAGCCGCCGAGCCTGGCCTCCTTCTTGCTCTCCTTTCTCCTCCCAGACCTTTGCTCCCCTCTCAGTCCTGCTCCTCTCTCCCTCCCGCGCAGCCCCCACCCTGCACCCGGGCAGGTGCCACAGGGACGTGCAAGACAGCTACCACCCTGCACAAGCCCGAGTCCCAAACCACTCAGACCCTGTTTGTAAAAATCGGCATGCTCCTTTATTTGTTCAGAAGAGCAGCCAGCATCACCCTTGCCACTCAAACCTGGCACATACGCTTCGGAGACAATGGCCTCGGGACCCTCATGCTGCTGGGCCCAGGAGAGACAGTTCTGAGGCAGAAACTCGGCGTCCAAGGGGGGCCGCGGGTCAGGCACTGTGGTGAAGGGAACGCCGGGGAGTCCGGCCCCACCTTGCAGCTGGGGACACGGGGGCGCAAACAGAGGGGGCAGGCTAGTGTCCCGCTGCCCCAGGAACAGACCTCAGGGCCCCAGGAGGGTCTGCAGGCAGCTAGGAGCCTGCCAAGTGCTGGTGGAAGTAGAGGCCGAAAAGGCTGGCGAGCAGCTGGCAGGCAGCCGTCCACCAGATGAGGTAGGCCAGGACGCCACGGAGGAAGAGGGGAGTAAGCAGGCCACCCAGAGCCCCGGCAATCCGCGCTGCAGTCTGCTGGACTTCGTCCTCCCCAGAGCCGATGGGGGCAGCGCTGGCTGAGGATGGGTCGGGGGATAGTAGAGGAGCTGGGCCCAGGCCCCAGGAATAGCCTCCTAGGAGAAGAGGATGAAGCGAGGTATGAGTGGAAAAATGGGGGAGGGGGCGAGGGACAGGGCTGGCACGGGGGGCCAGGCCCATTCCTCCAGACACTCCCACCCCTGTCTCAGACTCCATCTCCAGCCCAGTCTCCACCCCCTCAGGCGCTGCCCCCTGTCCAAGGCAAACCCTACCCCAGGCCCCACCTCCTGCTCAGATCCTGCCTCAATACATGCCCTGCCCCCTCCCCAGGCCCCGCCTCCTGCCAAGACGCAACCCCTCCCCAGGCTCCACCTCCTAAGGCAAACGCCATCCCAAACTCCACCTCCTGCTCAGACCCTGCCTCACCACAGTCCCCGCCCCCTACCCAGGCCCCGCCTCCTGCTCAGATTGCACCCATCCCCAGGCTCCACTTCCTGTCCAAGGCAAGCCCCACTCCAGGCTCCGCTTCCTGCTCAGACCCTGCCTTACCACAGTCTCCGCCCCCTGCCTAGGCCCCGCCTCTCCCCCCCCACCGCGGTCCCCGCCAGAGTCCACCTCCACTCTGTTTTATCTTCCAACTCCGCCCCTCCTCCACCCCCACACCGCGGCATCTCACCCAGCGTCTTGAGCAGAAGTGTGCAGTTGAGGGTGAGGATGAGCGGCGTCAGGTACTGCAAGCTCACCACGGTCACATAGCAGTAGACTCGGACCACCTGTGGGCAGGTAGCAGGGGTGGCTGCAGCAGGAGGCCTTCTGGTTTGGGACGACTCCACGCCCAAAGGACCAGGAACCCCACCCTGAGCCCCAGGTTCCCTCTGGCCTAGGTCATCGGGGCGTCCATACCCTCTGCTGGATTTCACGGGCTTCGATGCGGCCAGCCTCCCTTCGCAGCTGCTCCACCCGGGCCTTGGCCAGGCACAGGTAGGCCTGCAGGTGGGGCCGGGTCACCGCCAGCCGCAGCAGGCACAGCACCACCAGCAACCAGAGGCGCCCAGAGTCGAAGGCAGAATCGGACAGCCTGTGCGGAGAGGGCCGGGGGCAAGGGACTAAGAAGGTCGCCCCCGACCCCCCAGGATCTTCCCCAGGCTCCTCCCTGAATCTCAGAGGCTAGGGCACCCAGGGGAGCCCCAGCTACCTCCTAGCCCCACCCAATACGCACAGGGAGAAACGCGTCTCCCCAAACGGCGGCTGGTGCAGGAAGTCCCGTGCAATGGGCTTTGTCCAGAGCCACAGGATGAACAGGGGAGACAGGAAGCTGGTGTGCAGGAGGAACCTGGGGGGTGAGGGCAGGAGGGAGTGAGGCCTGGGTACCCCCTCTCCTCGAGTCTCTCCCTTAAGCTCCCTAGTCCCCCCACCCACCAAGCGACCCACTTAACTGCAGCATGGGTCTGTCCTCCGACATGGTCAGTGCGTCCCGGTGGGTCTGGGCCAGCCGCAGGCCTGGGAAGGTGAGGAAGGCACCCAGCACAGAGCCCACCACTGCCAGTCCCACGCGGATAGCCAGCTTGGCCACAGGAAGCCTAGGAGAACACCAGGTCACGAGCCTGCCTGGGGGACCCTGGGAGGGTCCCAGCCTGCCCTTGCCTCCCTCCCCCATTCCCAGGACTCACGCCCAGTCCCAGCCCTGCTTCTTCAGAAGTGGCTCTAAGTTCTGGGTCATGCTGGCCAGACCTGGGGACGATAAGAAGAGGACCGAGTAGAGTGAATTCCTAGGGTCTCTAAGGCCACTCTGTTCCCTAACCCCCCATCCCTCAGGCATCCGTTTGCTTCCCAAGTAGGAATGAACAAGGGTCTGCCAGGCCCTGAGCCAGGCACAAGGACAATTTTGTGCTCTAGTTACACAGTACTTTTTACAAGAAACAAGATTGGAGTGGTGGTTCACGCCTGTAATCCCAGCACTTTGGGAGGCTGAGGCAGGCGGATCATCTGAGATCAGGAGTTTCAGACCAGCCTGGCCAATGCAGTGAAACCCCCGTCTCTACTAAAAATACAAAAATTAGCCAGGTGTGGTGGCAGGTGCCTGTAATCCCAGCTACTTGAGAGGCTGAGGCAGGAGAATCGCTTGAACATGGGGAGCGGAGGTTGCAGTGAGCTGAGACCGCACCATTGCACTCCAGCCTTGGGGACAAGAGTGAAACTCAGTCTCAAAGAAAACGAAACAGAATGCACCAGGCAGACACTCCTGATTGGGCTGGGAACATTCAGGGGTATCTGTTGAGCCTGAGCTCCCTAGGTTATAGAAGGAATCTAGAGGGGGATGAAGGACTCCTGCAGGAGAAAACCAAAGTCCTCCTGGAGGAAGGAATCCTCAATTCAGGACCCAAGATTTTTCAAAAATTAAGAGCAGGGCTGGGTGCAGTGGCTTGCACCTGTAAGTCTCAGCACTTTGGGAGGCCAAGGCGGGTGGATCGTTTGAGCTCACAAGTTTGAGACCAGCCTGGGCAACATGGCAAAACCCCCATCTCTACAAAAAATACAAAACCAGGGGTGGTGGTGCACGCCTATAGTCCCAGCTACTGTGAAGGCTGAGGTGGGAAGGATGGGTTGAGCCCAGGATGTGGAAGTTGCAGTGAGCTGAGATCATGCCACTGCACTCCAGCACAGAGCAAGACCTTGTCAAAAAAAAAAAAAAAAAGGAGCAAATTCATATGAGCTCACAGGCAAAATCACCAAATGCATAAGGAAACAAATCACCATAAAGGAGAGTTAACAGAAAAACAACAGTCAAGTTTAGGCCTCAAAGACTTCAGAAATTGGTGCTGTCAATTATGTGTCAAATGACTAAGGAAATGAAAGCTGTAATCACAGAACAAGTGACATGAGAATTCCTTCAGATGACTGGGTAGAGTTGCAAAGGAACCAAATTAAACTCTTCCAAAGGAAAACTGTAAGTATTGAAATAATAGGTTGTTAAACAGCACATTAGGAACAGCCAAAGGAGGAAGTGATGAACTGGAAGACAGATCTGAAGAAATCACTCAGATTCCAACTCAGAAAAACAAGTAGGTGAGAAATATGAAGAGAGGCTAAGAGATAAGGAAGACAGAACAGAGAGCCCAACGCAAATCAAATCAGAGCCCCAGAGGGAGGGAAGAGAAGGAATGAAGAATAAAAGGAATTACTGGAAGAGAATGGTTGAGAAGTTTGCAGAATGAAAGACAGACACAAAGTATATCAAACCATGTAAATAAAAAGAAATCCATACCTAGACATAATGGAGTGAAACTGCAGAACACCAAAAACAAAAAAATTACAAAGCAGCCAGGGAGTTAAGACAGATCACCTACAAAGGAACAACAATTAGGCTGACAGCCAATGTCAACTGCAACAACAGAAAAGGAACAAATAGAAAGCAAAAAAGTAAGATGGTAGAAACAAAGTCAAATATGTCAGTAATCACAATAAATGTAAGTAGACTAAACTTTAAAGTTAAATGACAAAGACTGTCAGACTACATTGAAAATATCCAGCTACATGTTTTTTAAAGGATGACATACCTTGACATAAAGTCACTGGAAGACTGAAAGTAAAGGGATGTTAAAAAGATACAGCAAATACTAATCAAAAGAAAGCAAGCTAGAAAGGCTATACTACTACCAGCCAAACTAGACTAAGAAGTAGTATTAGAATAGGCCAGGCGCGGTGGCTCACACCTGTAATCTCAGCACTTTGGGAGGCCAAGACGGGCAGATCACAAAGTCAGGAGTTCGAGACGAGCCTGGCCAACATGGTGAAACCCTGGCTCTACTAAAAATCCAAAAAATAGCTGGGCATGGTGGCGGGTAATACCAGCTACTTGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCAGGAGGTGGAGGTTGCAGTGAGCCGAGATTGCGCCACTGCACTCCAGCCTGGCCAACGAGAGCAAAACTCTGTCTCAAAAAAAAAAAAAGTAGTATTAGAAGACAGAAGGGTTCCATACATCATGATAAAATGGCTGATTCACCAGGAAAATGTAACAGTTCTAAATCTGTGAATAGAACTAATCTGTGAATTGTGAATAGGCTGCAAAATATATAAAGAAAACACTGACAGAATTGATAGGGAAATTGAGAGCTCTCTTGTCCCAGAGGGAGATTAACTTCTGCTGACTGATAAGTCACAGACAAAAGGTTAGGCAAGATGGAGATTTGAATTTATTAAACTCATAGAGCCAGGGAATATGTCCTTCAATTAGAACATGTGAAAAAAGGCAAAACAACAAAAACAGAATATGTCCTTCAAGAAAACAAGGAATAGTCACAAAATGTGATCACATTCCAGGCCATAGGGCAAATCTTACCAAATTTTAAAGAAATTATTTCAAATAGACCATCTGTGCAATTGAGCTAGAAATAAATATGTATTTTTTAAAGATCTATGTTTGAAAAATTTAAAAATATTTAATAATCCATAGGTCAAAGCATAGCAAGACCCCATCTCTACAGAAATCAGAAGGGAAATGTTAAAACACCCCAAACAGAATAATAAAAAATATCAGTCAAAACTTGGGTAAACTGCCAGGTGTGATGGCTCACACCTGTAATCCCAGCACTTTGAGAGGCCGAGGTGGGTGGATCACCTGAGGTTAGGAGTTTGAGACCAGCCTGGCCAACATGGTAAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCAGGCGTGGTGGCGTGCACCTGTAATCCCAGCTACTCAGGAGGCTGAGGCAGAAGAATTGCTTGAACCCAGGAGGCAGAGGTTGTAGTGAGCTGAGATTGCACAGTTGCACTCCAGCCTGGGTGACAAGAGCAAAACTCCATCTCAAAACAAAAACAAAAACAAAAAAAAACTTAGGTGAACAAAAGTGAGACCTGGTAAAATATATATAGCATTAAATGCTATATATGCTATAAAATTAGAAAAGATTGAAAATTTATGAGCCAAGTAGCTAACTGAGAAATTGGAAACAAGAAAAGGAGGTACGCCAGTACTGTTCTCAAATCCAGAGGTCCTAGCCACACCAAAGGGGAAGGATCAGACAGAACAAAAGAAAACCAAAAAGAATCTGCAATTCAATAAAAATATAATTGTTTAGCAAGGTTAGTCCGTGGAGACACTCAAATTTGACCCCTATATGATAACACAAAAATTAATGTCACTGTCCATCAGCAACAGTGAGTAGTTTAGGAGCTTATATGAAATGTAAAAGTTGAAATATTTTATTTATTGATTTTTAAGATGGAGTCTTGCTCTTGTCGCCCAGGCTAGAGTGCAATGGCGTGATTTCGGCTCACTGCAACCTCTGCCTCCGGGGTTCAAGTGATTCTCCTGCCTCAGCCTCCCGAGTAGCTGGGATTACAGGTGCATGCCACCTTGCCCAGCTTTTTTTTTTTTTTTTTTTTTAGACGGAGTCTCGCTCTGTTGCCCAGGCTGGAGTGCAGTGGCGCGATCTTGGCTCACTGCAAGCTCCACCTCCCGGGTTCACGCCATTCTCCTGCCTCAGCCTCCCCAGTAGCTGGGACTACAGGCGCCTGCCACCACGCCTGGCTAATTTTTTGTATTTTTAGTAGAGACGGGGTTTCACGGTGTTAGCCAGGATGGTCTCGATCTGCCGACCTCGTGATGTGCCCATCTCGGCCTCCCAAAGTGCTGGGATTACAGGCATGAGCCACCACCCCTGGCCAGTCATTCTATATTTTCTTCTAAAATATTTCAGCCAGGCGTGGTGGCAAGCGCCTGTAATCCCAGCACTTTGGGAGGCTGAGGCAGGTGGATTGCCTGAGGTCTGGAGTTCAAGACCAGCCTGGTCAACGTGGTGAAACCCCATCTCTAGTAAAAAATACAAAAAGTAGGCCGGGCACGGTGGCTCGCGCCTGTAATCCCAGCACTTTGGGAGGCTGAGGCGGGTGGATTGCCTGAGGTCTGGAGTTCAAGACCAGCCTGGTCAGCATAGTGAAACCCCATCTCTAGTAAAAAATACTAGAGATCGCCCACTGCACTCCAGCCTGGGGGAAAGAGCGAGACTCTGTCTCAAAAAAAAAAAAAAAGACAATGTAGAATGACTTTCTGATTTTAGGGAAGGATATTTTTCAAGACAAATATCAACTAAAATAATCAACTTCCATTCATCAAGACACTAGAGGTGACACTTACAACTACATTTGACGACTCAGCAAAGAAAGTGTGATGCATGTATGCAGACGGAAAATAATGCAAATAGTGGTCAAATGAAAACAAAAGAAGTATTGGCAATGAAGTGGATAAATTTGGAACACTTGTGCACTGCTGCTGGGAATATAAAATATAAAATGGGCTGAGCACAGTGGTGCACACCTGTAATCCCAGCACTTTGGAAGGCCGAGGCTGGCGATTGCTTGAGTTCAAGAGTTCAAGACTAGCCTGGGCAACATGGCAAAATCTGTCTCTATTAAAAACACAAAAATTATCTGGGTGTAGCCAGATGTGGTGGCTCACACCTGTAATCTCAGCACTTTGGGAGGCCAAGATGGGCAGGATCACCTGAGGTCAGGAGTTAAAGACCAGCCTGGCCAACATGGCAAAACCCCATCTCTACTAAAAATGCAAAAATTAGCCAGGTGTGGTGGCGCACACCTGTAATCCCAGCTACTTGGGAGGCTGAGGCAAGAGAATCACTTGAGCCTGGAAGGTGGAGGTTGCAGTGAGCCAAGATCATGCCACTGTACTCTAGCCTGGGTGACAGAGGGAGACTGTCTCAAAAAATAAAAATAAAAATAAAAAAATAAATTAGCTGGGTGTGGTGGTGGGAGCCTGTAGTCCCAGCTACTTGGGAGCCTGAGGCATGAGAATCACTTGAATCCGGGAGGCAAAGGTTGCAGTGAGTGGAGATCACGCCACCACTGCACTCCAGCCAGGGCAACAGAATGAGACTCTGTCTCAAAAATAAAATAAAATGGTTCAGCTGCTGTATAAAACAGTATGGCAGTCCCTCAAAAAATTAAAAGTAGAATTATCATATAATCCAGCAGTTCCACTTCTGGATATATACTCTCCAAAACTGAAAATGGGGTCTCAAAGAGATACCTGTACACTCAGGTTCACAGCGGTATTAGTCAAAAAGCCAAAAGTTGGGAACAACCCAAGCATTCATCTGTGGATGAATAAACAAAATGTGTTCCACCCAGACAATGAAATAGTGTTCAGTCTTTTTTTTTTTTTTTTTTTTTGAGATGGAGTCTTGCTCTTTCACCCAGGCCGGAGTGCAGTGGCACTATCTAAGCTCAC +PRIMER_LEFT_EXPLAIN=considered 180335, GC content failed 8877, low tm 34005, high tm 101808, high end compl 2, long poly-x seq 1117, lowercase masking of 3' end 530, ok 33996 +PRIMER_RIGHT_EXPLAIN=considered 180325, GC content failed 8926, low tm 33987, high tm 101882, high end compl 1, long poly-x seq 1108, lowercase masking of 3' end 480, ok 33941 +PRIMER_INTERNAL_EXPLAIN=considered 180500, GC content failed 9272, low tm 34043, high tm 102015, long poly-x seq 1142, ok 34028 +PRIMER_PAIR_EXPLAIN=considered 338, unacceptable product size 331, high any compl 1, ok 6 +PRIMER_LEFT_NUM_RETURNED=5 +PRIMER_RIGHT_NUM_RETURNED=5 +PRIMER_INTERNAL_NUM_RETURNED=5 +PRIMER_PAIR_NUM_RETURNED=5 +PRIMER_PAIR_0_PENALTY=0.005611 +PRIMER_LEFT_0_PENALTY=0.000037 +PRIMER_RIGHT_0_PENALTY=0.005574 +PRIMER_INTERNAL_0_PENALTY=0.012470 +PRIMER_LEFT_0_SEQUENCE=ATGCCCACCTGCTTTGTAAC +PRIMER_RIGHT_0_SEQUENCE=AGACCAGTTAGCTGGGGGTT +PRIMER_INTERNAL_0_SEQUENCE=GCACACAAACCACCTCCTTT +PRIMER_LEFT_0=2959,20 +PRIMER_RIGHT_0=3388,20 +PRIMER_INTERNAL_0=3094,20 +PRIMER_LEFT_0_TM=60.000 +PRIMER_RIGHT_0_TM=59.994 +PRIMER_INTERNAL_0_TM=60.012 +PRIMER_LEFT_0_GC_PERCENT=50.000 +PRIMER_RIGHT_0_GC_PERCENT=55.000 +PRIMER_INTERNAL_0_GC_PERCENT=50.000 +PRIMER_LEFT_0_SELF_ANY=3.00 +PRIMER_RIGHT_0_SELF_ANY=8.00 +PRIMER_INTERNAL_0_SELF_ANY=3.00 +PRIMER_LEFT_0_SELF_END=3.00 +PRIMER_RIGHT_0_SELF_END=0.00 +PRIMER_INTERNAL_0_SELF_END=2.00 +PRIMER_LEFT_0_END_STABILITY=5.4000 +PRIMER_RIGHT_0_END_STABILITY=9.4000 +PRIMER_PAIR_0_COMPL_ANY=5.00 +PRIMER_PAIR_0_COMPL_END=3.00 +PRIMER_PAIR_0_PRODUCT_SIZE=430 +PRIMER_PAIR_1_PENALTY=0.012524 +PRIMER_LEFT_1_PENALTY=0.010545 +PRIMER_RIGHT_1_PENALTY=0.001978 +PRIMER_INTERNAL_1_PENALTY=0.026532 +PRIMER_LEFT_1_SEQUENCE=GGTTCAAGCGACTCTTCTGG +PRIMER_RIGHT_1_SEQUENCE=ACAGGGTCTGAGTGGTTTGG +PRIMER_INTERNAL_1_SEQUENCE=AAGACTGGGTTTCACCATGC +PRIMER_LEFT_1=10633,20 +PRIMER_RIGHT_1=11008,20 +PRIMER_INTERNAL_1=10719,20 +PRIMER_LEFT_1_TM=59.989 +PRIMER_RIGHT_1_TM=60.002 +PRIMER_INTERNAL_1_TM=59.973 +PRIMER_LEFT_1_GC_PERCENT=55.000 +PRIMER_RIGHT_1_GC_PERCENT=55.000 +PRIMER_INTERNAL_1_GC_PERCENT=50.000 +PRIMER_LEFT_1_SELF_ANY=5.00 +PRIMER_RIGHT_1_SELF_ANY=3.00 +PRIMER_INTERNAL_1_SELF_ANY=4.00 +PRIMER_LEFT_1_SELF_END=1.00 +PRIMER_RIGHT_1_SELF_END=0.00 +PRIMER_INTERNAL_1_SELF_END=2.00 +PRIMER_LEFT_1_END_STABILITY=8.2000 +PRIMER_RIGHT_1_END_STABILITY=8.8000 +PRIMER_PAIR_1_COMPL_ANY=6.00 +PRIMER_PAIR_1_COMPL_END=0.00 +PRIMER_PAIR_1_PRODUCT_SIZE=376 +PRIMER_PAIR_2_PENALTY=0.016397 +PRIMER_LEFT_2_PENALTY=0.001978 +PRIMER_RIGHT_2_PENALTY=0.014419 +PRIMER_INTERNAL_2_PENALTY=0.026532 +PRIMER_LEFT_2_SEQUENCE=CCAAACCACTCAGACCCTGT +PRIMER_RIGHT_2_SEQUENCE=CAGAACTGTCTCTCCTGGGC +PRIMER_INTERNAL_2_SEQUENCE=ATCACCCTTGCCACTCAAAC +PRIMER_LEFT_2=10989,20 +PRIMER_RIGHT_2=11145,20 +PRIMER_INTERNAL_2=11056,20 +PRIMER_LEFT_2_TM=60.002 +PRIMER_RIGHT_2_TM=59.986 +PRIMER_INTERNAL_2_TM=59.973 +PRIMER_LEFT_2_GC_PERCENT=55.000 +PRIMER_RIGHT_2_GC_PERCENT=60.000 +PRIMER_INTERNAL_2_GC_PERCENT=50.000 +PRIMER_LEFT_2_SELF_ANY=3.00 +PRIMER_RIGHT_2_SELF_ANY=5.00 +PRIMER_INTERNAL_2_SELF_ANY=3.00 +PRIMER_LEFT_2_SELF_END=1.00 +PRIMER_RIGHT_2_SELF_END=2.00 +PRIMER_INTERNAL_2_SELF_END=0.00 +PRIMER_LEFT_2_END_STABILITY=7.9000 +PRIMER_RIGHT_2_END_STABILITY=11.2000 +PRIMER_PAIR_2_COMPL_ANY=4.00 +PRIMER_PAIR_2_COMPL_END=1.00 +PRIMER_PAIR_2_PRODUCT_SIZE=157 +PRIMER_PAIR_3_PENALTY=0.017482 +PRIMER_LEFT_3_PENALTY=0.010545 +PRIMER_RIGHT_3_PENALTY=0.006937 +PRIMER_INTERNAL_3_PENALTY=0.066676 +PRIMER_LEFT_3_SEQUENCE=GTTCTGAGGCAGAAACTCGG +PRIMER_RIGHT_3_SEQUENCE=GAGGACGAAGTCCAGCAGAC +PRIMER_INTERNAL_3_SEQUENCE=ACGGAGGAAGAGGGGAGTAA +PRIMER_LEFT_3=11140,20 +PRIMER_RIGHT_3=11491,20 +PRIMER_INTERNAL_3=11417,20 +PRIMER_LEFT_3_TM=59.989 +PRIMER_RIGHT_3_TM=59.993 +PRIMER_INTERNAL_3_TM=60.067 +PRIMER_LEFT_3_GC_PERCENT=55.000 +PRIMER_RIGHT_3_GC_PERCENT=60.000 +PRIMER_INTERNAL_3_GC_PERCENT=55.000 +PRIMER_LEFT_3_SELF_ANY=7.00 +PRIMER_RIGHT_3_SELF_ANY=5.00 +PRIMER_INTERNAL_3_SELF_ANY=2.00 +PRIMER_LEFT_3_SELF_END=1.00 +PRIMER_RIGHT_3_SELF_END=2.00 +PRIMER_INTERNAL_3_SELF_END=1.00 +PRIMER_LEFT_3_END_STABILITY=9.9000 +PRIMER_RIGHT_3_END_STABILITY=6.4000 +PRIMER_PAIR_3_COMPL_ANY=4.00 +PRIMER_PAIR_3_COMPL_END=1.00 +PRIMER_PAIR_3_PRODUCT_SIZE=352 +PRIMER_PAIR_4_PENALTY=0.018045 +PRIMER_LEFT_4_PENALTY=0.012470 +PRIMER_RIGHT_4_PENALTY=0.005574 +PRIMER_INTERNAL_4_PENALTY=0.042377 +PRIMER_LEFT_4_SEQUENCE=GCACACAAACCACCTCCTTT +PRIMER_RIGHT_4_SEQUENCE=AGACCAGTTAGCTGGGGGTT +PRIMER_INTERNAL_4_SEQUENCE=TGGGAGGTGAGGAAAATCTG +PRIMER_LEFT_4=3094,20 +PRIMER_RIGHT_4=3388,20 +PRIMER_INTERNAL_4=3336,20 +PRIMER_LEFT_4_TM=60.012 +PRIMER_RIGHT_4_TM=59.994 +PRIMER_INTERNAL_4_TM=60.042 +PRIMER_LEFT_4_GC_PERCENT=50.000 +PRIMER_RIGHT_4_GC_PERCENT=55.000 +PRIMER_INTERNAL_4_GC_PERCENT=50.000 +PRIMER_LEFT_4_SELF_ANY=3.00 +PRIMER_RIGHT_4_SELF_ANY=8.00 +PRIMER_INTERNAL_4_SELF_ANY=2.00 +PRIMER_LEFT_4_SELF_END=2.00 +PRIMER_RIGHT_4_SELF_END=0.00 +PRIMER_INTERNAL_4_SELF_END=1.00 +PRIMER_LEFT_4_END_STABILITY=8.5000 +PRIMER_RIGHT_4_END_STABILITY=9.4000 +PRIMER_PAIR_4_COMPL_ANY=5.00 +PRIMER_PAIR_4_COMPL_END=3.00 +PRIMER_PAIR_4_PRODUCT_SIZE=295 += +SEQUENCE_ID=masker_prefix2 +PRIMER_TASK=pick_pcr_primers_and_hyb_probe +PRIMER_NUM_RETURN=5 +PRIMER_PRODUCT_SIZE_RANGE=50-500 +PRIMER_EXPLAIN_FLAG=1 +PRIMER_MASK_TEMPLATE=1 +PRIMER_MASK_FAILURE_RATE=0.2 +PRIMER_MASK_5P_DIRECTION=1 +PRIMER_MASK_3P_DIRECTION=1 +PRIMER_WT_MASK_FAILURE_RATE=0.0 +PRIMER_MASK_KMERLIST_PREFIX=mus_musculus +SEQUENCE_TEMPLATE=CTGACATTTTATGCCCAAGACAATGGCTCTGCCTTCTACCTTCACATGCTCAGGGTCACTCAGCACGTCCTGGAGGATTTCTCTGGCCTGGAGTCCCTGGCCCGGGCAGCAGCGCTAGGGACCCACCGAGTGGTCACAAGGCTGTTTATGTTGGGCCTCCTGGTGGAGTCGGCATGGTACCTCCATTGCTACCTGACAGACCTGCGGTTTGACAATATCTACGCCACTCAACAGCTGACCCAGCGGTTGGCACAGGCCCAGGCTACACACCTCCTGGCCCCTCCACCCACCTGGCTGCTCCAGGCGGCTCAGCTGAGGCTGTCACAGGAGGAGCTGTTGAGTTGTCTTCTAAGGCTGGGGCTGCTTGCCCTGCTCCTCGTGGCCACTGCTGTGGCGGTGGCCACAGACCATGTAGCCTTCCTCCTGGCACAGGCGACTGTGGACTGGGCTCAGAAGTTGCCAACTGTGCCCATCACGCTCACGGTCAAGTATGATGTGGCATACACTGTCCTGGGCTTCATCCCTTTCCTCTTCAACCAGCTGGCTCCGGAGAGCCCCTTCCTCTCCGTCCACAGCTCCCTACCAATAAAGGAGGGCGCGCAGAGCGGCGCGGCGGGCCCGCCCGCGGCCGCCGCCCCGCGCCTGCGCCGGCGGGCGGATCAGCCGACATCCAGGAGCTCGTCTCCTTGTGTGACTGTAAAACCCCATTTTCGGTGTTTCTCTCTGGAGTGCTTTCCAGCCCCTTGACCCCACGTTCTCACCCCACGTGATGCCATCAGACCCCTTGTTTTTGCCCACCTGGTGAGCAGATCACAGTGTCTCCTGTCTGGCTGTTTTTTTGAGACGGAGTCTCACTCTGCCGCCCAGGCTGGAGTGCAGTGGAACGATCTCAGCTCACTGCAACCTCCACTTCCTGGGTTCAAGCCATTCTCCTGCCTCAGCCTCCCTAGTAGCTGGGATTACAGGCGCCCACCACCACACCTGGCTAATTTTTGTGTGTTTTTGGTAGAGACAGGGTTTCTCCATGTTGGCCAGGCTGGTCTCCAATTCCTGGGCTCAAGTGATCCGCCTGCCTTGGCCTCCCAAAGTGCTGAGATTACAGGCGTGAGTCACTGCACCCAGCCTTGGCTGTTTTAAATTCCTAGTTCTAAATTTACTATTACAAATGTTTAAAGTACCCCTACTGACCTGTTGCTGCTCCTTCCTCCTCCACACCCACACACCCCGTTTAGACCCGCAAGACAGAGCAGGGTGAAGTTCATGGTCACTTATGTCCACTCTGTGCAACAGCTCGCAGGGGCTCCCCAGGGAGGGCGCAGGTCGGGGACCAGGCACGGGAGCACCTAGAATGTTCCTTTACTAGACGTGGAGTAGAGCTGATTAGATGTGAGCAGTGGCTCTAGGAGTTGGTTCTATGATTCTCTGTGTTTCTGCCTTTTAAGAAATTTTATTTCTCGGCCGGGCTCGGTGGCTCATGTCTGTAATCCCAGCACTTTGGGAGGCCGAGGCAGGCAGATCGCCTGAGGTCAGGAGTTTGAGACCAGCCTGACCAACATGGAGAAACCCTGTCTCTACTAAAAATACAACATTAGCCAGGCGTGGTGGTGCATGCCTGTATTCCCAGCTACTTTGGAGGCTGAGACAGAATTGCTTGAACCCGGGAGGCGGAGGGTGCAGTGAGCCGAGATTGGGCCATTGCCCTCCAGCCTGGGCAACAAGAGTGAAATTACATCTCCAAAAAAAAAATTTTTTTTATTTCTCGAGTTTGAGTGAAAGGAGCGACCCGGAGGTGAGGCAGTGGGGCGTGTGGGTGCGCATGAGTGCGAACACACGTGGGGGTGCAAGTGCATGTGTGTATGTGCACGCAGGTTGCTCCTAGGGGTGCAAAGGCGCGCGCACGGGTGCGGGGTGCGCGCCCCCTCGCGGCGCCTTCACGGCCCTCCCGCCCCTCGCCCTGCAGAGTACAGCGGCCGCCGGCAGCCCTACCCCTTCGAGCGCATGATCTTCGGCGCCTGCGCTGGCCTCATCGGGCAGTCGGCCTCGTACCCGCTGGATGTGGTGCGGCGGCGCATGCAGACGGCCGGCGTCACGGGCTACCCGCGCGCCTCCATCGCCCGCACGCTGCGCACCATCGTGCGGGAGGAGGGCGCCGTGCGCGGCCTCTACAAAGGCTTGAGCATGAACTGGGTCAAGGGTCCCATCGCCGTGGGCATCAGCTTCACCACCTTCGACCTCATGCAGATCCTGCTGCGGCACCTGCAGAGCTAGGGGACCCTGAGCTGCTCTCAGGACGGTGGACCGGTGACCCCTTTGTATTCTGGGCCCATGGAACGGTGGGGGGGTGCGCTTGATTCTACTTCAGGAGGCACATGGGGCGCTTTATGGAACGAGCAGGTGGGCCTGAGGGGCCTGGGCTCAGAGTCCACGTCCAAACGCAAAGCTGGCAGCCCTGGAAGTGCAGTGTTGGGGCGATGGTGTGGGGGGTCCCGCAGCTCCCCTCTTCCTTCCTCTGCAGACGCTGGCGCTGTCTGCCGGAGGTGTTGCCCAAAAGGCCCTAGTGGGGCGTGGTCAGCTCCACCTCCTGATCCTGTGTGTCCTCCGACATGCTGCTGATTCTAGTGACCCCTGTCCCCACCAGGCTCAGAGCCAGACCGCGCCTGGACCTTCTTGTTCTGACTCCACGTGCCTGCCCGGCCTCCAGGGTGCGGGGGCGCCTTTCTTGCAGGCGGACCCTGCCCAGGATGGGGCCAGCCTCGTGCTCAGCTTTGGCCACAAATGCAGCCCCTGGCCCACCCCACCCTGCCGGCCCTGCCTTCTCCAGTATTTCCCACATGGCCACGACTCCTCAGTCACTAGAGCCTCCTGCTGGGAACAGTGTCCCCCAGAGCCTCATGTCTATCCTAGACCCTGCAAGCAGCTGGGTCCCCAAGAGTGCATCTCCCCCTAGAGTTGCCTGCCCATGCCCACCTGCTTTGTAACCTTCCCAGGAGATTCATGCTTGCTCTGCACAGCAGGGCTCGAGGCCCAGGCCATGACACGGAACTGCCTCAGGTTTGGGTCAGACCTGCATCCTGGGGCATCTGCTGAAATGTGAGCACACAAACCACCTCCTTTGGCCCAGAAGCCCCCCAGGCCTAGCATCTCAGTGCCCCAACCCTCTGCCCAGCTGTGGTATCCAGCAGGTCCTTGGGTCCCCACTTGAGCAGGCACTTGGCTGGGATATGGAGCAATTTAAAGCCCACAGGGGTTGTTCAGTTTCTATGAAATGGAGCATGGGGTGCCTGCTAGCCTCAATCCCCCGAAGTGGGAGCCTCATGATAGAGTATAGCTTGGGGGTGGGAGGTGAGGAAAATCTGAGGTACCCAGGGGAACCCCCAGCTAACTGGTCTCTCAGAGGAGTCCCCCAGGGCCCGCCAGCTATCACAGGGACTCAGAAACACCCATTTCCTAATGACATGGTGAGTTTCTTGATTTCTTTTTTTTGTTTGTTTTGTTTTGGTTTTCAACTTGGCTGACCCCGGGTCTATGATCTATTCACATCGAACCCCTGACTGGTCTGCCTGGTGCCAGGGTGAGCGTGACCGTGAGTGTTGCTTTCGACAGCTGGCTCAGCACACGCTGTGTGAAGGGATCTGAGCTTGTTCATCTCCAGTCGTGACTTCATTTCCCTTCCTTCTGTCCTCCTCCTGTTCTTGCCTTGGACCTGCAGGTGTGCAGACCGCTCTCTCTGCCTTCCTTGCATGTGGCCACCAGCCATCCCTGATCTTGTCCCCAGAGGCCCAGGCAGCCTGTGATGGCTGTGAGGGGCTGTCCCACTGTGTGGGTATCCCTTACCCAGCACTTAAACTTGGCAGGAGAGGCAGGGCAACCCTCACAGGGAGATGGGAGGGCACCCAACTCCCACAAGCATGCAACAGCAGTAGGAATTGGGGGTCTGCCCCAGGTGGGTGAGACCAAATGAGTGGATTTGGGGCCACAGGCTAGGCAGGAGAGACAAGGGGTAGGTGGGAGGGTCCCCCAGTCCCTGCTGACCCCAGTGTGTCTCCCCGGAGATGGCTCCTAGCTGAGTGGGACCCGGCAGGAGTTGGGGACAGTGCTGTCCCCCACCCCTGCACACAGCCAGGCCCTCAGGCTCTGCGGTCACTCGCCTCCCTGCTGGTCACTGGTCTTGGTCTGGAGTTATATTTTGATGCCATGAAGACACTGTTTATATCTAATGTTTATATATTTTAAAGATTTGTGCCAAGAGAGTATATTTAATAAAAACTTAAATGACTTCTTCTCCTGCTCCTGGCTCTTCTTTGGCTCTGACCGCCCCCCCATCTTCCCCCATGAACCCCCAAACAGGGTTGAAGTGCTTTTGACACATTTGTGATAAAAGTTCTGAATAAAAGTCTTGAATAAAGAAGTTTTTAAATGCAATTGTTGTTTGAATTAATACATACCACAATTTTCCAGAAAACACCAGCTGTCCACAAGGGTTTACAGTGAAAAGTAGGTGAACAGTTCCCTCTGCAGGGGGCCTCCTGTGACCATTTTCTCTTGTCTCCTCCCACAGAGATTCTGTGCATACACTCATCCCTTTCAGGATATATGTGGCCACCCACAAAGGCAGGAGGGGCCGTCTCTGTGCAGCCAGCACAGCCCAAAGTCTCATGGGCTTGAACATGGCCTTCCTTCCCAAGAGCCCTGCACTCTGGGGCTGGCTGAGGCTTCAGGCCTGAACGTCAGTCACCATCTGCAGGGGCAGCCACCAGAGGGTCTCCAGTGGCAATCCTGGCTCACTTCACCTGCAGCCCATTGGCCAGAGCAACTTGGAGGACCCACCCACTGCCAGGCCAGAAGTGGGAGCCTCTGCGTGCCCAGAGAGGAGGGGCGGCTGGGCCAGCACAGGCCTGGTGCTCTTGTTGGGGTGGGAGTAGGAATAAGTTCCACTGCGCTGACCCCCCACTGCTCTCCAATCTGCTCACGTGCAACAGGATTTCTTTTGAGTTGGTCTCCGTTGTGCACATTGTTCAGCAGCTGTGCGGTTTTCTCCTAGAGGATCCCCAGGATGACATTTACCAGGGTGGGTGTGGTGGCTCATGCCTGTAATCCCAGCACTTTGGAGACTGAGGCAGGTGGCTTGCTTGAGCCCAGGAGTTTGAGACCAGCCTAGGCAACACAGTAAGACCCCCCATCTCTACAAAAAAATAGAAAAATTAGGCCGGATGCAGTGGCTCACGCCTTTAATCCCATCACTTTGGGAGGCCAGGGCAGGTGGATCACTTGAGGTCAGGAGTTCAAGACCAGCCTGGCCAACATGCTGAAACCCCCATCTCTATTAAAAGTACAAAAATCCTAGCTACTCAGGAGGCTGAGGCAGGAGAATTGCTTGAACCTGGGAGGCGGAGGTTGCAGTGAGCCGCTGCACTCCAGCCTGAGTGACTGAGAAGTCTCCGTCTCAAAAAAAAATTTTTTTTTAATTAGCCAGTCTTGGAGGTGCGTGCCTGTAGTCCCAGCCACTCAGAAATTCACGCCTCCCTTATGTTACCAAACCAGGCTCGTTCTGCCCAGCAGTATGCCAACAGAGATGACAGGTTTTGCAGCAAAGAGTTTATTCACGAGGCAGCCGAGTGAGGAGACAGGAGAACAGATCTCAAATCCGCCTCCCTGAAGATGGGATTTTAGGAATATTTAAGGGATAGAGGAGCAAGGTGGTCAGAGACGTGGGGAAAAGTGGGGCAGTCGGGGAACCGTGCGTGCGTAGTCAAGCTTCATGGCTTTTCCATAGGATGTGTGTTCACAAAATGACATTGTTATCATGATCTGAGGGTGGAGTGTTTGGCCCTCTAACGTCAAAGGTCACCACCTAAATATACACAGGCCAAGGTGAAGGTTCGGCTCTCAGCCCATTTGGATTGGACAAGAACTGATCCTGTTCCTGAAGAACAACTTGAGCAACCATTACCATGGTGGCCCATACATAGAGATATTATCTATAAGGAAACTAGTGGGAGTTTTTTTGTTTGGGTTTTTTTGTTTTGTTTTGTTTCTTTGTTTTTGAGACGGAGTGTTGCTCTTTTTGCCCAGGCTGGAGTGCAATGGCATGATCTCGGCTTACTGCAACCTCCACCTCCCGGGTTCAAGCGATTCTCCTGCCTCAGCCTCCTAAGTAGCTGGGACTACAAGCGCCCGCCACCACACCCGGCTAATTTTTTGTATTTTTAGCAGAGACGGGGTTTAACCATGTTGGCCAGGCTGGTCTCAAACTCCTGACCTCAGGTGATTCACTCGCCTTAGCCTCCCAAAGTGCTGGGATTACAGGCTTGAGCCACCGTGCCCAGCCTATTTTTCTGTCTTTCTTTTCTTTTTTTTTTTTTTTTTTTTGAGACAGGGTCTCACTCTATTGCCCAGGCTGGAGTGCAGTGACACTACCATGGCTCACTGCAGCCTCCAACTCCTGGGCTCAAGCCATCCTCCCACCTCAGCCCCCCTAGGAGCTGGGACTACAGGTACATGCCACCACGCCTGGCTACTTTTTGTATTTTTTGTAGAGATGGGGTCTCACCATATTTCTCAGGCTGGTCTCTAACTCCTGGCTCAAGTGATCTGCCTGTCTTGGCCTCCCAAAGTGCTGGGATGACAGGCGTGAGCCACCACACCTGGCCTGGGAGTTTAGCTATACATTGTTTAGCTGAGTGACTTTTAACACTATGGGGTTTATAATCAACTAAAAACAAGTGAGGTAAGTTAAGATTGGTAGGTCTAATCAGGTGAGCCCTCAGTTCCCCTTATGGATGGGCAATTGTTAGGTATTGCCATGACAATGTGATAGCAATTTGGTGGGGGCTGCTGAACTCATCTGCACCCCGCCTCTGACATCCAGCCCAGATTTCTGATCTAAGTTCCACGTTTCACACCAGCCCCTGAACCTTGGTCAACCCCTCCCCTCTCCCACCCACCACTGTGGCATCTCCTAACAGTATAGAGGTGAGCCCGTGGACCTGTCTAGACTAGTGACAGTGAAGAAGATGTTTGCTAGCTGCGTCCAAGAAGAGCTTCAGGAGTCCTTTTTTTTTTGAGACGGAGTCTTGCTCTGTTGCCCAGGCTGGAGTGCAGTGGCGCGATCTCGGCTCACTGCAAGCTCCACCTCCAGGTTCAAGTGATTCTCCTGCCTCAGCCTCACAAGTAGCTGGGATTACAGATGCCCGCCACCACGCCCAGCTAATTTTTATATTTTTAGTAGAGACGGGGTTTCACCATGTTGGCCAGGCTGGTCTTGAACTCCCGACCTCAGATGATCTGAACGCTTCGGCCTCCCAAAGTGCTGGGATTACAGATGTGAGCCACCACACCTGGCCACCAAATGCTTTTTGCTATAAACAATTCCGCGCAGCCTAGGAGTGTCCTGAAGAAACACAACATGGTACCCCAGGTGCAACCGGCGGCTGATGACTGAAGGTAGGTGTGTAAGTAGCTTAACCCATGCCCGGACGTGGGATCATCCTGAGATAATTGCTCTACCCTGCCCCGCTAAGGCCCACAGCAGGACTGAGCCTGGTTGCCCACAGTGTCACCTGCTCATTGGTGCCCCCTGCAGGGCATCTTCCCTCCTCGTCTCAGCTCTCACCCGCCATGGGGGCTGCCTGGGGACACCTCCCAGGTAAACCACTAGCTCTGAGTCCTTTTGGGGTCATCTTTGGGGGAAACCTATCCAAAAAGGAATAGGAATGCCAGGTATTCCTGCAAATAGATCATATAGATTTATACCACATACTCACCCATATTTGATCTTCCATAATCTGACAAGTAAAAAATGGTATCTCAGCCGGGTGCGGTGGCTCATGCCTTTAATCTCAGCACTTTGGGAGGCCGAGGCAGCTGGATCACTTGAGCTCACGAGTTCAAGACCAGCCTGTGCAGCATGGTGAAACCTTGTCTCTACAAAAAATACCGGGCATGGTGGCACGTGCCTGTAATCCCCACTACTCAGGAGGCTGAGGTGGGAGGATGGCTTGAGTCTGGGAGGTGGAGGTTGCAGTGAGTCGAGATGGCACCACTGCATCCCAGCATGGGTGATAGAACCAGACCCTGTCGCAAAACAACAACAACAACAACAAAAACCAGTTAATTTATGGCCAGGCATGGTGGCTCACACCTGTAATCCCAGTTCTTTGGAAAGCTGAGGCAGGAGGATCACTTGAGACCTGGAGTTTGTCTCTATAAATAATTTTTTTTTTTGGTGGGACAGGGTTCTCATTCTGTCACCCAGGCTAGGGTACAGTGGCACAATCACATCTCACCGCAGCCTCAACCTCCCAGGGTCAAGTGATTCTCCCACCTCAGCCTCCCGAGTAGCTGCGACTACAGGCGTGGGCCACTATGCCTGGCTAATTTTTTATATTTTGTAGAGACGGGGTCTTGCTATGTCACCCGAGCTGATGAACTCCTGGGCTCAAGAGATCTGCCCACCTCCACTTCTCAAACTGCTGGGATTACAGGCGTGAGCCACTGCACCCAGCCCTCTACAAATAATTTTAAAAACTATTTTACTATTTTAAAAGTTGAAGGTTATATTTTGTTTTATCTATGAGTTTTATTTCCCCTTTTTATTTTGTTTCGGCTTGTCTGGAAATGGTATATTCCGTTTCTTCACCCATAGGGCTTCACAACATCAGCACTGCTGACATTTGGCGCTGATAATCCTCTGGGGTGAGGCCATCCTGGGCACCACACGGTGTTGAGCAGCATCTCTGGCCTCCATTCTTCAGACACCAAGAGCAACACCTCCACCCCTTGTGGTGACAACTAAAAGATGTCTCCAGACATCAACATGTGTTCCTTTGGAGCAGAACCACCCCGTCCTGTGAGAGGCACGGATATGGTGGTTACAATGGATACATCAACAAGAATTTAAATGTTTGGCCGGGCGCGGTGGGCGCGGTGGCTCAGGCCTGTAATCCCAGCACGTTGGGAGGCCGAGGCAGGTGAATCACTTGAAGCCAGGAGTTCCAGACCAGCCTGGCCAACATGGTGAAACCCATCTCTATTAAAAATACACACACACTGCCGGGTGCGGTGGCTCACGCCTGTAATCCCAGCACGTTGGGAGGCCAAGGAGGGCGGATCACGAGGTCAGGAGATCGAGACCATCCTGGCTAACACGGTGAAACCCCGTCTCTACTAAAAATACAAAAAATTAGCCGGGCGTAGTGGCGGGCGCCTGTAGTCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATGGCGTGCACCCGGGAGGCGGAGCTTACAGTGAGCCGAGATCGCGCCACTGCACTTCAGCCTGGGCGACAGAGCGAGACTCCATCTCAAAAAAAAAAAAAAAAAAAAAACTACACACACACACAAAAATTAAAATATTTATCTTCCCTCTGAGCCACACACAAAGACCTCAACCACCCCCTTCTATCTTTCCTATTTTTATTTATTTATTTATTTTGAGACAGAGTCTCGCTCTGTCACCCACGCTGGAGTGCAATGGCGCGATCTTGGCTCACTGCAACCTCTGCCTCTGGGGTTCAAGCGATTCTCCTGCCTCAGCCTCCTGAGTGGCTGGGATTACAGGCACCTGCCACCGCACCTGGCTGATTTTTGTATTTTTAGTAGGGATGGGGTTTCACCATGTTGGCCAGGGTGGTCTCAAACTCTTGACCTCGTGATCCACCGCCTCGGCCTCCCAAAGTGCTGGGATTACAGATGTGAGCCACCATACCCAGCCTGATGAAAATTTTAAAAAAGAAAATTCTTAAACCGTTCTAAGTCAGGGAACTGTCTGTATACATCTTACTTATACAAAAAGGTTACATATGCACCTTACATTGTTTTTGTTTTTGTTTTGAGATGGAGTCTCACTCTGTCACCCAGACTGGAGTGCAATGGCATGATCTTGGCTCACTGCAACCTCTGCCTCCCGGGTTCAAGCGATTCTCCTGTCTCAGCCTCCCGAGAGGCTGGGATTACAAGTGTGCACCACCACGCTTGGCTAATTTTTTTTGTATTTTAGTAGAGACAGGGTTTCACCATGTTGGCCAGGCTGGTCTTGAACTGCTGACCTCAGGTGATTGGCCTGCCTCGGTCTCCCAAAGTGTTGGGTTACAGGCATGAGCCACGGCACCCAGCCTGCACCTTACATTGTAACACACGTGTGGACACACCCTGGAGTCACAGCTACAGGACAATTTCAGAGTCCATGACGGCCCCACATCCCTTCCCTGGGTCACCAAGGCCTCAATATGCCCCTCCCCCCTCCCTGTGTGTGATATCTATACAAGTCACCTGCATACCTGTAGCAGACGCTGGCATCACTGTGGGCTCCCCGCCCTCCCATTCCTCAAACTGGTTTTCCTCTAAGGTTTCCCTGCCCATCTAACCTTCTCCTGGCACTCCCTCATGGTGCATTTCTCTCACCTGCCCGTCCGTCCCAGGCCACCTGCCCTCTCAGCTGGGACTCCAACTTCCCCTGATTTCTGGTCTCTTCCATCCTGCTTTTGGACTTTTCCTGGGACACTTGCATTTCTTCTTTTTCTTTTTTTTTTTTTTTGAGACAGAGTTTCACTCTGTCACCCAGGCTGGAGTGTGATGCGATCTCGGCTCACTGCAGCCTCCACCTCTCAGGTTCAAGCGACTCTTCTGGCTCATCCTTCTCAGTAGCTGGAACTACATGCATGCGCCACCATGCCTAATTTTTGTTATTTTAGTAAAGACTGGGTTTCACCATGCGTTGACCAGGCTGGTCTCAAACTGCTGGCCTCAAGTGATCTGCCCGCCTTGGCTTCCCAAAGTGCTGGGATTTGGGATTACGGGCGTGAGCCGCCGAGCCTGGCCTCCTTCTTGCTCTCCTTTCTCCTCCCAGACCTTTGCTCCCCTCTCAGTCCTGCTCCTCTCTCCCTCCCGCGCAGCCCCCACCCTGCACCCGGGCAGGTGCCACAGGGACGTGCAAGACAGCTACCACCCTGCACAAGCCCGAGTCCCAAACCACTCAGACCCTGTTTGTAAAAATCGGCATGCTCCTTTATTTGTTCAGAAGAGCAGCCAGCATCACCCTTGCCACTCAAACCTGGCACATACGCTTCGGAGACAATGGCCTCGGGACCCTCATGCTGCTGGGCCCAGGAGAGACAGTTCTGAGGCAGAAACTCGGCGTCCAAGGGGGGCCGCGGGTCAGGCACTGTGGTGAAGGGAACGCCGGGGAGTCCGGCCCCACCTTGCAGCTGGGGACACGGGGGCGCAAACAGAGGGGGCAGGCTAGTGTCCCGCTGCCCCAGGAACAGACCTCAGGGCCCCAGGAGGGTCTGCAGGCAGCTAGGAGCCTGCCAAGTGCTGGTGGAAGTAGAGGCCGAAAAGGCTGGCGAGCAGCTGGCAGGCAGCCGTCCACCAGATGAGGTAGGCCAGGACGCCACGGAGGAAGAGGGGAGTAAGCAGGCCACCCAGAGCCCCGGCAATCCGCGCTGCAGTCTGCTGGACTTCGTCCTCCCCAGAGCCGATGGGGGCAGCGCTGGCTGAGGATGGGTCGGGGGATAGTAGAGGAGCTGGGCCCAGGCCCCAGGAATAGCCTCCTAGGAGAAGAGGATGAAGCGAGGTATGAGTGGAAAAATGGGGGAGGGGGCGAGGGACAGGGCTGGCACGGGGGGCCAGGCCCATTCCTCCAGACACTCCCACCCCTGTCTCAGACTCCATCTCCAGCCCAGTCTCCACCCCCTCAGGCGCTGCCCCCTGTCCAAGGCAAACCCTACCCCAGGCCCCACCTCCTGCTCAGATCCTGCCTCAATACATGCCCTGCCCCCTCCCCAGGCCCCGCCTCCTGCCAAGACGCAACCCCTCCCCAGGCTCCACCTCCTAAGGCAAACGCCATCCCAAACTCCACCTCCTGCTCAGACCCTGCCTCACCACAGTCCCCGCCCCCTACCCAGGCCCCGCCTCCTGCTCAGATTGCACCCATCCCCAGGCTCCACTTCCTGTCCAAGGCAAGCCCCACTCCAGGCTCCGCTTCCTGCTCAGACCCTGCCTTACCACAGTCTCCGCCCCCTGCCTAGGCCCCGCCTCTCCCCCCCCACCGCGGTCCCCGCCAGAGTCCACCTCCACTCTGTTTTATCTTCCAACTCCGCCCCTCCTCCACCCCCACACCGCGGCATCTCACCCAGCGTCTTGAGCAGAAGTGTGCAGTTGAGGGTGAGGATGAGCGGCGTCAGGTACTGCAAGCTCACCACGGTCACATAGCAGTAGACTCGGACCACCTGTGGGCAGGTAGCAGGGGTGGCTGCAGCAGGAGGCCTTCTGGTTTGGGACGACTCCACGCCCAAAGGACCAGGAACCCCACCCTGAGCCCCAGGTTCCCTCTGGCCTAGGTCATCGGGGCGTCCATACCCTCTGCTGGATTTCACGGGCTTCGATGCGGCCAGCCTCCCTTCGCAGCTGCTCCACCCGGGCCTTGGCCAGGCACAGGTAGGCCTGCAGGTGGGGCCGGGTCACCGCCAGCCGCAGCAGGCACAGCACCACCAGCAACCAGAGGCGCCCAGAGTCGAAGGCAGAATCGGACAGCCTGTGCGGAGAGGGCCGGGGGCAAGGGACTAAGAAGGTCGCCCCCGACCCCCCAGGATCTTCCCCAGGCTCCTCCCTGAATCTCAGAGGCTAGGGCACCCAGGGGAGCCCCAGCTACCTCCTAGCCCCACCCAATACGCACAGGGAGAAACGCGTCTCCCCAAACGGCGGCTGGTGCAGGAAGTCCCGTGCAATGGGCTTTGTCCAGAGCCACAGGATGAACAGGGGAGACAGGAAGCTGGTGTGCAGGAGGAACCTGGGGGGTGAGGGCAGGAGGGAGTGAGGCCTGGGTACCCCCTCTCCTCGAGTCTCTCCCTTAAGCTCCCTAGTCCCCCCACCCACCAAGCGACCCACTTAACTGCAGCATGGGTCTGTCCTCCGACATGGTCAGTGCGTCCCGGTGGGTCTGGGCCAGCCGCAGGCCTGGGAAGGTGAGGAAGGCACCCAGCACAGAGCCCACCACTGCCAGTCCCACGCGGATAGCCAGCTTGGCCACAGGAAGCCTAGGAGAACACCAGGTCACGAGCCTGCCTGGGGGACCCTGGGAGGGTCCCAGCCTGCCCTTGCCTCCCTCCCCCATTCCCAGGACTCACGCCCAGTCCCAGCCCTGCTTCTTCAGAAGTGGCTCTAAGTTCTGGGTCATGCTGGCCAGACCTGGGGACGATAAGAAGAGGACCGAGTAGAGTGAATTCCTAGGGTCTCTAAGGCCACTCTGTTCCCTAACCCCCCATCCCTCAGGCATCCGTTTGCTTCCCAAGTAGGAATGAACAAGGGTCTGCCAGGCCCTGAGCCAGGCACAAGGACAATTTTGTGCTCTAGTTACACAGTACTTTTTACAAGAAACAAGATTGGAGTGGTGGTTCACGCCTGTAATCCCAGCACTTTGGGAGGCTGAGGCAGGCGGATCATCTGAGATCAGGAGTTTCAGACCAGCCTGGCCAATGCAGTGAAACCCCCGTCTCTACTAAAAATACAAAAATTAGCCAGGTGTGGTGGCAGGTGCCTGTAATCCCAGCTACTTGAGAGGCTGAGGCAGGAGAATCGCTTGAACATGGGGAGCGGAGGTTGCAGTGAGCTGAGACCGCACCATTGCACTCCAGCCTTGGGGACAAGAGTGAAACTCAGTCTCAAAGAAAACGAAACAGAATGCACCAGGCAGACACTCCTGATTGGGCTGGGAACATTCAGGGGTATCTGTTGAGCCTGAGCTCCCTAGGTTATAGAAGGAATCTAGAGGGGGATGAAGGACTCCTGCAGGAGAAAACCAAAGTCCTCCTGGAGGAAGGAATCCTCAATTCAGGACCCAAGATTTTTCAAAAATTAAGAGCAGGGCTGGGTGCAGTGGCTTGCACCTGTAAGTCTCAGCACTTTGGGAGGCCAAGGCGGGTGGATCGTTTGAGCTCACAAGTTTGAGACCAGCCTGGGCAACATGGCAAAACCCCCATCTCTACAAAAAATACAAAACCAGGGGTGGTGGTGCACGCCTATAGTCCCAGCTACTGTGAAGGCTGAGGTGGGAAGGATGGGTTGAGCCCAGGATGTGGAAGTTGCAGTGAGCTGAGATCATGCCACTGCACTCCAGCACAGAGCAAGACCTTGTCAAAAAAAAAAAAAAAAAGGAGCAAATTCATATGAGCTCACAGGCAAAATCACCAAATGCATAAGGAAACAAATCACCATAAAGGAGAGTTAACAGAAAAACAACAGTCAAGTTTAGGCCTCAAAGACTTCAGAAATTGGTGCTGTCAATTATGTGTCAAATGACTAAGGAAATGAAAGCTGTAATCACAGAACAAGTGACATGAGAATTCCTTCAGATGACTGGGTAGAGTTGCAAAGGAACCAAATTAAACTCTTCCAAAGGAAAACTGTAAGTATTGAAATAATAGGTTGTTAAACAGCACATTAGGAACAGCCAAAGGAGGAAGTGATGAACTGGAAGACAGATCTGAAGAAATCACTCAGATTCCAACTCAGAAAAACAAGTAGGTGAGAAATATGAAGAGAGGCTAAGAGATAAGGAAGACAGAACAGAGAGCCCAACGCAAATCAAATCAGAGCCCCAGAGGGAGGGAAGAGAAGGAATGAAGAATAAAAGGAATTACTGGAAGAGAATGGTTGAGAAGTTTGCAGAATGAAAGACAGACACAAAGTATATCAAACCATGTAAATAAAAAGAAATCCATACCTAGACATAATGGAGTGAAACTGCAGAACACCAAAAACAAAAAAATTACAAAGCAGCCAGGGAGTTAAGACAGATCACCTACAAAGGAACAACAATTAGGCTGACAGCCAATGTCAACTGCAACAACAGAAAAGGAACAAATAGAAAGCAAAAAAGTAAGATGGTAGAAACAAAGTCAAATATGTCAGTAATCACAATAAATGTAAGTAGACTAAACTTTAAAGTTAAATGACAAAGACTGTCAGACTACATTGAAAATATCCAGCTACATGTTTTTTAAAGGATGACATACCTTGACATAAAGTCACTGGAAGACTGAAAGTAAAGGGATGTTAAAAAGATACAGCAAATACTAATCAAAAGAAAGCAAGCTAGAAAGGCTATACTACTACCAGCCAAACTAGACTAAGAAGTAGTATTAGAATAGGCCAGGCGCGGTGGCTCACACCTGTAATCTCAGCACTTTGGGAGGCCAAGACGGGCAGATCACAAAGTCAGGAGTTCGAGACGAGCCTGGCCAACATGGTGAAACCCTGGCTCTACTAAAAATCCAAAAAATAGCTGGGCATGGTGGCGGGTAATACCAGCTACTTGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCAGGAGGTGGAGGTTGCAGTGAGCCGAGATTGCGCCACTGCACTCCAGCCTGGCCAACGAGAGCAAAACTCTGTCTCAAAAAAAAAAAAAGTAGTATTAGAAGACAGAAGGGTTCCATACATCATGATAAAATGGCTGATTCACCAGGAAAATGTAACAGTTCTAAATCTGTGAATAGAACTAATCTGTGAATTGTGAATAGGCTGCAAAATATATAAAGAAAACACTGACAGAATTGATAGGGAAATTGAGAGCTCTCTTGTCCCAGAGGGAGATTAACTTCTGCTGACTGATAAGTCACAGACAAAAGGTTAGGCAAGATGGAGATTTGAATTTATTAAACTCATAGAGCCAGGGAATATGTCCTTCAATTAGAACATGTGAAAAAAGGCAAAACAACAAAAACAGAATATGTCCTTCAAGAAAACAAGGAATAGTCACAAAATGTGATCACATTCCAGGCCATAGGGCAAATCTTACCAAATTTTAAAGAAATTATTTCAAATAGACCATCTGTGCAATTGAGCTAGAAATAAATATGTATTTTTTAAAGATCTATGTTTGAAAAATTTAAAAATATTTAATAATCCATAGGTCAAAGCATAGCAAGACCCCATCTCTACAGAAATCAGAAGGGAAATGTTAAAACACCCCAAACAGAATAATAAAAAATATCAGTCAAAACTTGGGTAAACTGCCAGGTGTGATGGCTCACACCTGTAATCCCAGCACTTTGAGAGGCCGAGGTGGGTGGATCACCTGAGGTTAGGAGTTTGAGACCAGCCTGGCCAACATGGTAAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCAGGCGTGGTGGCGTGCACCTGTAATCCCAGCTACTCAGGAGGCTGAGGCAGAAGAATTGCTTGAACCCAGGAGGCAGAGGTTGTAGTGAGCTGAGATTGCACAGTTGCACTCCAGCCTGGGTGACAAGAGCAAAACTCCATCTCAAAACAAAAACAAAAACAAAAAAAAACTTAGGTGAACAAAAGTGAGACCTGGTAAAATATATATAGCATTAAATGCTATATATGCTATAAAATTAGAAAAGATTGAAAATTTATGAGCCAAGTAGCTAACTGAGAAATTGGAAACAAGAAAAGGAGGTACGCCAGTACTGTTCTCAAATCCAGAGGTCCTAGCCACACCAAAGGGGAAGGATCAGACAGAACAAAAGAAAACCAAAAAGAATCTGCAATTCAATAAAAATATAATTGTTTAGCAAGGTTAGTCCGTGGAGACACTCAAATTTGACCCCTATATGATAACACAAAAATTAATGTCACTGTCCATCAGCAACAGTGAGTAGTTTAGGAGCTTATATGAAATGTAAAAGTTGAAATATTTTATTTATTGATTTTTAAGATGGAGTCTTGCTCTTGTCGCCCAGGCTAGAGTGCAATGGCGTGATTTCGGCTCACTGCAACCTCTGCCTCCGGGGTTCAAGTGATTCTCCTGCCTCAGCCTCCCGAGTAGCTGGGATTACAGGTGCATGCCACCTTGCCCAGCTTTTTTTTTTTTTTTTTTTTTAGACGGAGTCTCGCTCTGTTGCCCAGGCTGGAGTGCAGTGGCGCGATCTTGGCTCACTGCAAGCTCCACCTCCCGGGTTCACGCCATTCTCCTGCCTCAGCCTCCCCAGTAGCTGGGACTACAGGCGCCTGCCACCACGCCTGGCTAATTTTTTGTATTTTTAGTAGAGACGGGGTTTCACGGTGTTAGCCAGGATGGTCTCGATCTGCCGACCTCGTGATGTGCCCATCTCGGCCTCCCAAAGTGCTGGGATTACAGGCATGAGCCACCACCCCTGGCCAGTCATTCTATATTTTCTTCTAAAATATTTCAGCCAGGCGTGGTGGCAAGCGCCTGTAATCCCAGCACTTTGGGAGGCTGAGGCAGGTGGATTGCCTGAGGTCTGGAGTTCAAGACCAGCCTGGTCAACGTGGTGAAACCCCATCTCTAGTAAAAAATACAAAAAGTAGGCCGGGCACGGTGGCTCGCGCCTGTAATCCCAGCACTTTGGGAGGCTGAGGCGGGTGGATTGCCTGAGGTCTGGAGTTCAAGACCAGCCTGGTCAGCATAGTGAAACCCCATCTCTAGTAAAAAATACTAGAGATCGCCCACTGCACTCCAGCCTGGGGGAAAGAGCGAGACTCTGTCTCAAAAAAAAAAAAAAAGACAATGTAGAATGACTTTCTGATTTTAGGGAAGGATATTTTTCAAGACAAATATCAACTAAAATAATCAACTTCCATTCATCAAGACACTAGAGGTGACACTTACAACTACATTTGACGACTCAGCAAAGAAAGTGTGATGCATGTATGCAGACGGAAAATAATGCAAATAGTGGTCAAATGAAAACAAAAGAAGTATTGGCAATGAAGTGGATAAATTTGGAACACTTGTGCACTGCTGCTGGGAATATAAAATATAAAATGGGCTGAGCACAGTGGTGCACACCTGTAATCCCAGCACTTTGGAAGGCCGAGGCTGGCGATTGCTTGAGTTCAAGAGTTCAAGACTAGCCTGGGCAACATGGCAAAATCTGTCTCTATTAAAAACACAAAAATTATCTGGGTGTAGCCAGATGTGGTGGCTCACACCTGTAATCTCAGCACTTTGGGAGGCCAAGATGGGCAGGATCACCTGAGGTCAGGAGTTAAAGACCAGCCTGGCCAACATGGCAAAACCCCATCTCTACTAAAAATGCAAAAATTAGCCAGGTGTGGTGGCGCACACCTGTAATCCCAGCTACTTGGGAGGCTGAGGCAAGAGAATCACTTGAGCCTGGAAGGTGGAGGTTGCAGTGAGCCAAGATCATGCCACTGTACTCTAGCCTGGGTGACAGAGGGAGACTGTCTCAAAAAATAAAAATAAAAATAAAAAAATAAATTAGCTGGGTGTGGTGGTGGGAGCCTGTAGTCCCAGCTACTTGGGAGCCTGAGGCATGAGAATCACTTGAATCCGGGAGGCAAAGGTTGCAGTGAGTGGAGATCACGCCACCACTGCACTCCAGCCAGGGCAACAGAATGAGACTCTGTCTCAAAAATAAAATAAAATGGTTCAGCTGCTGTATAAAACAGTATGGCAGTCCCTCAAAAAATTAAAAGTAGAATTATCATATAATCCAGCAGTTCCACTTCTGGATATATACTCTCCAAAACTGAAAATGGGGTCTCAAAGAGATACCTGTACACTCAGGTTCACAGCGGTATTAGTCAAAAAGCCAAAAGTTGGGAACAACCCAAGCATTCATCTGTGGATGAATAAACAAAATGTGTTCCACCCAGACAATGAAATAGTGTTCAGTCTTTTTTTTTTTTTTTTTTTTTGAGATGGAGTCTTGCTCTTTCACCCAGGCCGGAGTGCAGTGGCACTATCTAAGCTCAC +PRIMER_LEFT_EXPLAIN=considered 180225, GC content failed 9272, low tm 34005, high tm 101808, high end compl 2, long poly-x seq 1142, ok 33996 +PRIMER_RIGHT_EXPLAIN=considered 180230, GC content failed 9290, low tm 33987, high tm 101882, high end compl 1, long poly-x seq 1129, ok 33941 +PRIMER_INTERNAL_EXPLAIN=considered 180500, GC content failed 9272, low tm 34043, high tm 102015, long poly-x seq 1142, ok 34028 +PRIMER_PAIR_EXPLAIN=considered 338, unacceptable product size 331, high any compl 1, ok 6 +PRIMER_LEFT_NUM_RETURNED=5 +PRIMER_RIGHT_NUM_RETURNED=5 +PRIMER_INTERNAL_NUM_RETURNED=5 +PRIMER_PAIR_NUM_RETURNED=5 +PRIMER_PAIR_0_PENALTY=0.005611 +PRIMER_LEFT_0_PENALTY=0.000037 +PRIMER_RIGHT_0_PENALTY=0.005574 +PRIMER_INTERNAL_0_PENALTY=0.012470 +PRIMER_LEFT_0_SEQUENCE=ATGCCCACCTGCTTTGTAAC +PRIMER_RIGHT_0_SEQUENCE=AGACCAGTTAGCTGGGGGTT +PRIMER_INTERNAL_0_SEQUENCE=GCACACAAACCACCTCCTTT +PRIMER_LEFT_0=2959,20 +PRIMER_RIGHT_0=3388,20 +PRIMER_INTERNAL_0=3094,20 +PRIMER_LEFT_0_TM=60.000 +PRIMER_RIGHT_0_TM=59.994 +PRIMER_INTERNAL_0_TM=60.012 +PRIMER_LEFT_0_GC_PERCENT=50.000 +PRIMER_RIGHT_0_GC_PERCENT=55.000 +PRIMER_INTERNAL_0_GC_PERCENT=50.000 +PRIMER_LEFT_0_SELF_ANY=3.00 +PRIMER_RIGHT_0_SELF_ANY=8.00 +PRIMER_INTERNAL_0_SELF_ANY=3.00 +PRIMER_LEFT_0_SELF_END=3.00 +PRIMER_RIGHT_0_SELF_END=0.00 +PRIMER_INTERNAL_0_SELF_END=2.00 +PRIMER_LEFT_0_END_STABILITY=5.4000 +PRIMER_RIGHT_0_END_STABILITY=9.4000 +PRIMER_PAIR_0_COMPL_ANY=5.00 +PRIMER_PAIR_0_COMPL_END=3.00 +PRIMER_PAIR_0_PRODUCT_SIZE=430 +PRIMER_PAIR_1_PENALTY=0.012524 +PRIMER_LEFT_1_PENALTY=0.010545 +PRIMER_RIGHT_1_PENALTY=0.001978 +PRIMER_INTERNAL_1_PENALTY=0.026532 +PRIMER_LEFT_1_SEQUENCE=GGTTCAAGCGACTCTTCTGG +PRIMER_RIGHT_1_SEQUENCE=ACAGGGTCTGAGTGGTTTGG +PRIMER_INTERNAL_1_SEQUENCE=AAGACTGGGTTTCACCATGC +PRIMER_LEFT_1=10633,20 +PRIMER_RIGHT_1=11008,20 +PRIMER_INTERNAL_1=10719,20 +PRIMER_LEFT_1_TM=59.989 +PRIMER_RIGHT_1_TM=60.002 +PRIMER_INTERNAL_1_TM=59.973 +PRIMER_LEFT_1_GC_PERCENT=55.000 +PRIMER_RIGHT_1_GC_PERCENT=55.000 +PRIMER_INTERNAL_1_GC_PERCENT=50.000 +PRIMER_LEFT_1_SELF_ANY=5.00 +PRIMER_RIGHT_1_SELF_ANY=3.00 +PRIMER_INTERNAL_1_SELF_ANY=4.00 +PRIMER_LEFT_1_SELF_END=1.00 +PRIMER_RIGHT_1_SELF_END=0.00 +PRIMER_INTERNAL_1_SELF_END=2.00 +PRIMER_LEFT_1_END_STABILITY=8.2000 +PRIMER_RIGHT_1_END_STABILITY=8.8000 +PRIMER_PAIR_1_COMPL_ANY=6.00 +PRIMER_PAIR_1_COMPL_END=0.00 +PRIMER_PAIR_1_PRODUCT_SIZE=376 +PRIMER_PAIR_2_PENALTY=0.016397 +PRIMER_LEFT_2_PENALTY=0.001978 +PRIMER_RIGHT_2_PENALTY=0.014419 +PRIMER_INTERNAL_2_PENALTY=0.026532 +PRIMER_LEFT_2_SEQUENCE=CCAAACCACTCAGACCCTGT +PRIMER_RIGHT_2_SEQUENCE=CAGAACTGTCTCTCCTGGGC +PRIMER_INTERNAL_2_SEQUENCE=ATCACCCTTGCCACTCAAAC +PRIMER_LEFT_2=10989,20 +PRIMER_RIGHT_2=11145,20 +PRIMER_INTERNAL_2=11056,20 +PRIMER_LEFT_2_TM=60.002 +PRIMER_RIGHT_2_TM=59.986 +PRIMER_INTERNAL_2_TM=59.973 +PRIMER_LEFT_2_GC_PERCENT=55.000 +PRIMER_RIGHT_2_GC_PERCENT=60.000 +PRIMER_INTERNAL_2_GC_PERCENT=50.000 +PRIMER_LEFT_2_SELF_ANY=3.00 +PRIMER_RIGHT_2_SELF_ANY=5.00 +PRIMER_INTERNAL_2_SELF_ANY=3.00 +PRIMER_LEFT_2_SELF_END=1.00 +PRIMER_RIGHT_2_SELF_END=2.00 +PRIMER_INTERNAL_2_SELF_END=0.00 +PRIMER_LEFT_2_END_STABILITY=7.9000 +PRIMER_RIGHT_2_END_STABILITY=11.2000 +PRIMER_PAIR_2_COMPL_ANY=4.00 +PRIMER_PAIR_2_COMPL_END=1.00 +PRIMER_PAIR_2_PRODUCT_SIZE=157 +PRIMER_PAIR_3_PENALTY=0.017482 +PRIMER_LEFT_3_PENALTY=0.010545 +PRIMER_RIGHT_3_PENALTY=0.006937 +PRIMER_INTERNAL_3_PENALTY=0.066676 +PRIMER_LEFT_3_SEQUENCE=GTTCTGAGGCAGAAACTCGG +PRIMER_RIGHT_3_SEQUENCE=GAGGACGAAGTCCAGCAGAC +PRIMER_INTERNAL_3_SEQUENCE=ACGGAGGAAGAGGGGAGTAA +PRIMER_LEFT_3=11140,20 +PRIMER_RIGHT_3=11491,20 +PRIMER_INTERNAL_3=11417,20 +PRIMER_LEFT_3_TM=59.989 +PRIMER_RIGHT_3_TM=59.993 +PRIMER_INTERNAL_3_TM=60.067 +PRIMER_LEFT_3_GC_PERCENT=55.000 +PRIMER_RIGHT_3_GC_PERCENT=60.000 +PRIMER_INTERNAL_3_GC_PERCENT=55.000 +PRIMER_LEFT_3_SELF_ANY=7.00 +PRIMER_RIGHT_3_SELF_ANY=5.00 +PRIMER_INTERNAL_3_SELF_ANY=2.00 +PRIMER_LEFT_3_SELF_END=1.00 +PRIMER_RIGHT_3_SELF_END=2.00 +PRIMER_INTERNAL_3_SELF_END=1.00 +PRIMER_LEFT_3_END_STABILITY=9.9000 +PRIMER_RIGHT_3_END_STABILITY=6.4000 +PRIMER_PAIR_3_COMPL_ANY=4.00 +PRIMER_PAIR_3_COMPL_END=1.00 +PRIMER_PAIR_3_PRODUCT_SIZE=352 +PRIMER_PAIR_4_PENALTY=0.018045 +PRIMER_LEFT_4_PENALTY=0.012470 +PRIMER_RIGHT_4_PENALTY=0.005574 +PRIMER_INTERNAL_4_PENALTY=0.042377 +PRIMER_LEFT_4_SEQUENCE=GCACACAAACCACCTCCTTT +PRIMER_RIGHT_4_SEQUENCE=AGACCAGTTAGCTGGGGGTT +PRIMER_INTERNAL_4_SEQUENCE=TGGGAGGTGAGGAAAATCTG +PRIMER_LEFT_4=3094,20 +PRIMER_RIGHT_4=3388,20 +PRIMER_INTERNAL_4=3336,20 +PRIMER_LEFT_4_TM=60.012 +PRIMER_RIGHT_4_TM=59.994 +PRIMER_INTERNAL_4_TM=60.042 +PRIMER_LEFT_4_GC_PERCENT=50.000 +PRIMER_RIGHT_4_GC_PERCENT=55.000 +PRIMER_INTERNAL_4_GC_PERCENT=50.000 +PRIMER_LEFT_4_SELF_ANY=3.00 +PRIMER_RIGHT_4_SELF_ANY=8.00 +PRIMER_INTERNAL_4_SELF_ANY=2.00 +PRIMER_LEFT_4_SELF_END=2.00 +PRIMER_RIGHT_4_SELF_END=0.00 +PRIMER_INTERNAL_4_SELF_END=1.00 +PRIMER_LEFT_4_END_STABILITY=8.5000 +PRIMER_RIGHT_4_END_STABILITY=9.4000 +PRIMER_PAIR_4_COMPL_ANY=5.00 +PRIMER_PAIR_4_COMPL_END=3.00 +PRIMER_PAIR_4_PRODUCT_SIZE=295 += +SEQUENCE_ID=masker_path1 +PRIMER_TASK=pick_pcr_primers_and_hyb_probe +PRIMER_NUM_RETURN=5 +PRIMER_PRODUCT_SIZE_RANGE=50-500 +PRIMER_EXPLAIN_FLAG=1 +PRIMER_MASK_TEMPLATE=1 +PRIMER_MASK_FAILURE_RATE=0.2 +PRIMER_MASK_5P_DIRECTION=1 +PRIMER_MASK_3P_DIRECTION=1 +PRIMER_WT_MASK_FAILURE_RATE=0.0 +PRIMER_LOWERCASE_MASKING=0 +PRIMER_MASK_KMERLIST_PATH=../kmer_lists/ +SEQUENCE_TEMPLATE=CTGACATTTTATGCCCAAGACAATGGCTCTGCCTTCTACCTTCACATGCTCAGGGTCACTCAGCACGTCCTGGAGGATTTCTCTGGCCTGGAGTCCCTGGCCCGGGCAGCAGCGCTAGGGACCCACCGAGTGGTCACAAGGCTGTTTATGTTGGGCCTCCTGGTGGAGTCGGCATGGTACCTCCATTGCTACCTGACAGACCTGCGGTTTGACAATATCTACGCCACTCAACAGCTGACCCAGCGGTTGGCACAGGCCCAGGCTACACACCTCCTGGCCCCTCCACCCACCTGGCTGCTCCAGGCGGCTCAGCTGAGGCTGTCACAGGAGGAGCTGTTGAGTTGTCTTCTAAGGCTGGGGCTGCTTGCCCTGCTCCTCGTGGCCACTGCTGTGGCGGTGGCCACAGACCATGTAGCCTTCCTCCTGGCACAGGCGACTGTGGACTGGGCTCAGAAGTTGCCAACTGTGCCCATCACGCTCACGGTCAAGTATGATGTGGCATACACTGTCCTGGGCTTCATCCCTTTCCTCTTCAACCAGCTGGCTCCGGAGAGCCCCTTCCTCTCCGTCCACAGCTCCCTACCAATAAAGGAGGGCGCGCAGAGCGGCGCGGCGGGCCCGCCCGCGGCCGCCGCCCCGCGCCTGCGCCGGCGGGCGGATCAGCCGACATCCAGGAGCTCGTCTCCTTGTGTGACTGTAAAACCCCATTTTCGGTGTTTCTCTCTGGAGTGCTTTCCAGCCCCTTGACCCCACGTTCTCACCCCACGTGATGCCATCAGACCCCTTGTTTTTGCCCACCTGGTGAGCAGATCACAGTGTCTCCTGTCTGGCTGTTTTTTTGAGACGGAGTCTCACTCTGCCGCCCAGGCTGGAGTGCAGTGGAACGATCTCAGCTCACTGCAACCTCCACTTCCTGGGTTCAAGCCATTCTCCTGCCTCAGCCTCCCTAGTAGCTGGGATTACAGGCGCCCACCACCACACCTGGCTAATTTTTGTGTGTTTTTGGTAGAGACAGGGTTTCTCCATGTTGGCCAGGCTGGTCTCCAATTCCTGGGCTCAAGTGATCCGCCTGCCTTGGCCTCCCAAAGTGCTGAGATTACAGGCGTGAGTCACTGCACCCAGCCTTGGCTGTTTTAAATTCCTAGTTCTAAATTTACTATTACAAATGTTTAAAGTACCCCTACTGACCTGTTGCTGCTCCTTCCTCCTCCACACCCACACACCCCGTTTAGACCCGCAAGACAGAGCAGGGTGAAGTTCATGGTCACTTATGTCCACTCTGTGCAACAGCTCGCAGGGGCTCCCCAGGGAGGGCGCAGGTCGGGGACCAGGCACGGGAGCACCTAGAATGTTCCTTTACTAGACGTGGAGTAGAGCTGATTAGATGTGAGCAGTGGCTCTAGGAGTTGGTTCTATGATTCTCTGTGTTTCTGCCTTTTAAGAAATTTTATTTCTCGGCCGGGCTCGGTGGCTCATGTCTGTAATCCCAGCACTTTGGGAGGCCGAGGCAGGCAGATCGCCTGAGGTCAGGAGTTTGAGACCAGCCTGACCAACATGGAGAAACCCTGTCTCTACTAAAAATACAACATTAGCCAGGCGTGGTGGTGCATGCCTGTATTCCCAGCTACTTTGGAGGCTGAGACAGAATTGCTTGAACCCGGGAGGCGGAGGGTGCAGTGAGCCGAGATTGGGCCATTGCCCTCCAGCCTGGGCAACAAGAGTGAAATTACATCTCCAAAAAAAAAATTTTTTTTATTTCTCGAGTTTGAGTGAAAGGAGCGACCCGGAGGTGAGGCAGTGGGGCGTGTGGGTGCGCATGAGTGCGAACACACGTGGGGGTGCAAGTGCATGTGTGTATGTGCACGCAGGTTGCTCCTAGGGGTGCAAAGGCGCGCGCACGGGTGCGGGGTGCGCGCCCCCTCGCGGCGCCTTCACGGCCCTCCCGCCCCTCGCCCTGCAGAGTACAGCGGCCGCCGGCAGCCCTACCCCTTCGAGCGCATGATCTTCGGCGCCTGCGCTGGCCTCATCGGGCAGTCGGCCTCGTACCCGCTGGATGTGGTGCGGCGGCGCATGCAGACGGCCGGCGTCACGGGCTACCCGCGCGCCTCCATCGCCCGCACGCTGCGCACCATCGTGCGGGAGGAGGGCGCCGTGCGCGGCCTCTACAAAGGCTTGAGCATGAACTGGGTCAAGGGTCCCATCGCCGTGGGCATCAGCTTCACCACCTTCGACCTCATGCAGATCCTGCTGCGGCACCTGCAGAGCTAGGGGACCCTGAGCTGCTCTCAGGACGGTGGACCGGTGACCCCTTTGTATTCTGGGCCCATGGAACGGTGGGGGGGTGCGCTTGATTCTACTTCAGGAGGCACATGGGGCGCTTTATGGAACGAGCAGGTGGGCCTGAGGGGCCTGGGCTCAGAGTCCACGTCCAAACGCAAAGCTGGCAGCCCTGGAAGTGCAGTGTTGGGGCGATGGTGTGGGGGGTCCCGCAGCTCCCCTCTTCCTTCCTCTGCAGACGCTGGCGCTGTCTGCCGGAGGTGTTGCCCAAAAGGCCCTAGTGGGGCGTGGTCAGCTCCACCTCCTGATCCTGTGTGTCCTCCGACATGCTGCTGATTCTAGTGACCCCTGTCCCCACCAGGCTCAGAGCCAGACCGCGCCTGGACCTTCTTGTTCTGACTCCACGTGCCTGCCCGGCCTCCAGGGTGCGGGGGCGCCTTTCTTGCAGGCGGACCCTGCCCAGGATGGGGCCAGCCTCGTGCTCAGCTTTGGCCACAAATGCAGCCCCTGGCCCACCCCACCCTGCCGGCCCTGCCTTCTCCAGTATTTCCCACATGGCCACGACTCCTCAGTCACTAGAGCCTCCTGCTGGGAACAGTGTCCCCCAGAGCCTCATGTCTATCCTAGACCCTGCAAGCAGCTGGGTCCCCAAGAGTGCATCTCCCCCTAGAGTTGCCTGCCCATGCCCACCTGCTTTGTAACCTTCCCAGGAGATTCATGCTTGCTCTGCACAGCAGGGCTCGAGGCCCAGGCCATGACACGGAACTGCCTCAGGTTTGGGTCAGACCTGCATCCTGGGGCATCTGCTGAAATGTGAGCACACAAACCACCTCCTTTGGCCCAGAAGCCCCCCAGGCCTAGCATCTCAGTGCCCCAACCCTCTGCCCAGCTGTGGTATCCAGCAGGTCCTTGGGTCCCCACTTGAGCAGGCACTTGGCTGGGATATGGAGCAATTTAAAGCCCACAGGGGTTGTTCAGTTTCTATGAAATGGAGCATGGGGTGCCTGCTAGCCTCAATCCCCCGAAGTGGGAGCCTCATGATAGAGTATAGCTTGGGGGTGGGAGGTGAGGAAAATCTGAGGTACCCAGGGGAACCCCCAGCTAACTGGTCTCTCAGAGGAGTCCCCCAGGGCCCGCCAGCTATCACAGGGACTCAGAAACACCCATTTCCTAATGACATGGTGAGTTTCTTGATTTCTTTTTTTTGTTTGTTTTGTTTTGGTTTTCAACTTGGCTGACCCCGGGTCTATGATCTATTCACATCGAACCCCTGACTGGTCTGCCTGGTGCCAGGGTGAGCGTGACCGTGAGTGTTGCTTTCGACAGCTGGCTCAGCACACGCTGTGTGAAGGGATCTGAGCTTGTTCATCTCCAGTCGTGACTTCATTTCCCTTCCTTCTGTCCTCCTCCTGTTCTTGCCTTGGACCTGCAGGTGTGCAGACCGCTCTCTCTGCCTTCCTTGCATGTGGCCACCAGCCATCCCTGATCTTGTCCCCAGAGGCCCAGGCAGCCTGTGATGGCTGTGAGGGGCTGTCCCACTGTGTGGGTATCCCTTACCCAGCACTTAAACTTGGCAGGAGAGGCAGGGCAACCCTCACAGGGAGATGGGAGGGCACCCAACTCCCACAAGCATGCAACAGCAGTAGGAATTGGGGGTCTGCCCCAGGTGGGTGAGACCAAATGAGTGGATTTGGGGCCACAGGCTAGGCAGGAGAGACAAGGGGTAGGTGGGAGGGTCCCCCAGTCCCTGCTGACCCCAGTGTGTCTCCCCGGAGATGGCTCCTAGCTGAGTGGGACCCGGCAGGAGTTGGGGACAGTGCTGTCCCCCACCCCTGCACACAGCCAGGCCCTCAGGCTCTGCGGTCACTCGCCTCCCTGCTGGTCACTGGTCTTGGTCTGGAGTTATATTTTGATGCCATGAAGACACTGTTTATATCTAATGTTTATATATTTTAAAGATTTGTGCCAAGAGAGTATATTTAATAAAAACTTAAATGACTTCTTCTCCTGCTCCTGGCTCTTCTTTGGCTCTGACCGCCCCCCCATCTTCCCCCATGAACCCCCAAACAGGGTTGAAGTGCTTTTGACACATTTGTGATAAAAGTTCTGAATAAAAGTCTTGAATAAAGAAGTTTTTAAATGCAATTGTTGTTTGAATTAATACATACCACAATTTTCCAGAAAACACCAGCTGTCCACAAGGGTTTACAGTGAAAAGTAGGTGAACAGTTCCCTCTGCAGGGGGCCTCCTGTGACCATTTTCTCTTGTCTCCTCCCACAGAGATTCTGTGCATACACTCATCCCTTTCAGGATATATGTGGCCACCCACAAAGGCAGGAGGGGCCGTCTCTGTGCAGCCAGCACAGCCCAAAGTCTCATGGGCTTGAACATGGCCTTCCTTCCCAAGAGCCCTGCACTCTGGGGCTGGCTGAGGCTTCAGGCCTGAACGTCAGTCACCATCTGCAGGGGCAGCCACCAGAGGGTCTCCAGTGGCAATCCTGGCTCACTTCACCTGCAGCCCATTGGCCAGAGCAACTTGGAGGACCCACCCACTGCCAGGCCAGAAGTGGGAGCCTCTGCGTGCCCAGAGAGGAGGGGCGGCTGGGCCAGCACAGGCCTGGTGCTCTTGTTGGGGTGGGAGTAGGAATAAGTTCCACTGCGCTGACCCCCCACTGCTCTCCAATCTGCTCACGTGCAACAGGATTTCTTTTGAGTTGGTCTCCGTTGTGCACATTGTTCAGCAGCTGTGCGGTTTTCTCCTAGAGGATCCCCAGGATGACATTTACCAGGGTGGGTGTGGTGGCTCATGCCTGTAATCCCAGCACTTTGGAGACTGAGGCAGGTGGCTTGCTTGAGCCCAGGAGTTTGAGACCAGCCTAGGCAACACAGTAAGACCCCCCATCTCTACAAAAAAATAGAAAAATTAGGCCGGATGCAGTGGCTCACGCCTTTAATCCCATCACTTTGGGAGGCCAGGGCAGGTGGATCACTTGAGGTCAGGAGTTCAAGACCAGCCTGGCCAACATGCTGAAACCCCCATCTCTATTAAAAGTACAAAAATCCTAGCTACTCAGGAGGCTGAGGCAGGAGAATTGCTTGAACCTGGGAGGCGGAGGTTGCAGTGAGCCGCTGCACTCCAGCCTGAGTGACTGAGAAGTCTCCGTCTCAAAAAAAAATTTTTTTTTAATTAGCCAGTCTTGGAGGTGCGTGCCTGTAGTCCCAGCCACTCAGAAATTCACGCCTCCCTTATGTTACCAAACCAGGCTCGTTCTGCCCAGCAGTATGCCAACAGAGATGACAGGTTTTGCAGCAAAGAGTTTATTCACGAGGCAGCCGAGTGAGGAGACAGGAGAACAGATCTCAAATCCGCCTCCCTGAAGATGGGATTTTAGGAATATTTAAGGGATAGAGGAGCAAGGTGGTCAGAGACGTGGGGAAAAGTGGGGCAGTCGGGGAACCGTGCGTGCGTAGTCAAGCTTCATGGCTTTTCCATAGGATGTGTGTTCACAAAATGACATTGTTATCATGATCTGAGGGTGGAGTGTTTGGCCCTCTAACGTCAAAGGTCACCACCTAAATATACACAGGCCAAGGTGAAGGTTCGGCTCTCAGCCCATTTGGATTGGACAAGAACTGATCCTGTTCCTGAAGAACAACTTGAGCAACCATTACCATGGTGGCCCATACATAGAGATATTATCTATAAGGAAACTAGTGGGAGTTTTTTTGTTTGGGTTTTTTTGTTTTGTTTTGTTTCTTTGTTTTTGAGACGGAGTGTTGCTCTTTTTGCCCAGGCTGGAGTGCAATGGCATGATCTCGGCTTACTGCAACCTCCACCTCCCGGGTTCAAGCGATTCTCCTGCCTCAGCCTCCTAAGTAGCTGGGACTACAAGCGCCCGCCACCACACCCGGCTAATTTTTTGTATTTTTAGCAGAGACGGGGTTTAACCATGTTGGCCAGGCTGGTCTCAAACTCCTGACCTCAGGTGATTCACTCGCCTTAGCCTCCCAAAGTGCTGGGATTACAGGCTTGAGCCACCGTGCCCAGCCTATTTTTCTGTCTTTCTTTTCTTTTTTTTTTTTTTTTTTTTGAGACAGGGTCTCACTCTATTGCCCAGGCTGGAGTGCAGTGACACTACCATGGCTCACTGCAGCCTCCAACTCCTGGGCTCAAGCCATCCTCCCACCTCAGCCCCCCTAGGAGCTGGGACTACAGGTACATGCCACCACGCCTGGCTACTTTTTGTATTTTTTGTAGAGATGGGGTCTCACCATATTTCTCAGGCTGGTCTCTAACTCCTGGCTCAAGTGATCTGCCTGTCTTGGCCTCCCAAAGTGCTGGGATGACAGGCGTGAGCCACCACACCTGGCCTGGGAGTTTAGCTATACATTGTTTAGCTGAGTGACTTTTAACACTATGGGGTTTATAATCAACTAAAAACAAGTGAGGTAAGTTAAGATTGGTAGGTCTAATCAGGTGAGCCCTCAGTTCCCCTTATGGATGGGCAATTGTTAGGTATTGCCATGACAATGTGATAGCAATTTGGTGGGGGCTGCTGAACTCATCTGCACCCCGCCTCTGACATCCAGCCCAGATTTCTGATCTAAGTTCCACGTTTCACACCAGCCCCTGAACCTTGGTCAACCCCTCCCCTCTCCCACCCACCACTGTGGCATCTCCTAACAGTATAGAGGTGAGCCCGTGGACCTGTCTAGACTAGTGACAGTGAAGAAGATGTTTGCTAGCTGCGTCCAAGAAGAGCTTCAGGAGTCCTTTTTTTTTTGAGACGGAGTCTTGCTCTGTTGCCCAGGCTGGAGTGCAGTGGCGCGATCTCGGCTCACTGCAAGCTCCACCTCCAGGTTCAAGTGATTCTCCTGCCTCAGCCTCACAAGTAGCTGGGATTACAGATGCCCGCCACCACGCCCAGCTAATTTTTATATTTTTAGTAGAGACGGGGTTTCACCATGTTGGCCAGGCTGGTCTTGAACTCCCGACCTCAGATGATCTGAACGCTTCGGCCTCCCAAAGTGCTGGGATTACAGATGTGAGCCACCACACCTGGCCACCAAATGCTTTTTGCTATAAACAATTCCGCGCAGCCTAGGAGTGTCCTGAAGAAACACAACATGGTACCCCAGGTGCAACCGGCGGCTGATGACTGAAGGTAGGTGTGTAAGTAGCTTAACCCATGCCCGGACGTGGGATCATCCTGAGATAATTGCTCTACCCTGCCCCGCTAAGGCCCACAGCAGGACTGAGCCTGGTTGCCCACAGTGTCACCTGCTCATTGGTGCCCCCTGCAGGGCATCTTCCCTCCTCGTCTCAGCTCTCACCCGCCATGGGGGCTGCCTGGGGACACCTCCCAGGTAAACCACTAGCTCTGAGTCCTTTTGGGGTCATCTTTGGGGGAAACCTATCCAAAAAGGAATAGGAATGCCAGGTATTCCTGCAAATAGATCATATAGATTTATACCACATACTCACCCATATTTGATCTTCCATAATCTGACAAGTAAAAAATGGTATCTCAGCCGGGTGCGGTGGCTCATGCCTTTAATCTCAGCACTTTGGGAGGCCGAGGCAGCTGGATCACTTGAGCTCACGAGTTCAAGACCAGCCTGTGCAGCATGGTGAAACCTTGTCTCTACAAAAAATACCGGGCATGGTGGCACGTGCCTGTAATCCCCACTACTCAGGAGGCTGAGGTGGGAGGATGGCTTGAGTCTGGGAGGTGGAGGTTGCAGTGAGTCGAGATGGCACCACTGCATCCCAGCATGGGTGATAGAACCAGACCCTGTCGCAAAACAACAACAACAACAACAAAAACCAGTTAATTTATGGCCAGGCATGGTGGCTCACACCTGTAATCCCAGTTCTTTGGAAAGCTGAGGCAGGAGGATCACTTGAGACCTGGAGTTTGTCTCTATAAATAATTTTTTTTTTTGGTGGGACAGGGTTCTCATTCTGTCACCCAGGCTAGGGTACAGTGGCACAATCACATCTCACCGCAGCCTCAACCTCCCAGGGTCAAGTGATTCTCCCACCTCAGCCTCCCGAGTAGCTGCGACTACAGGCGTGGGCCACTATGCCTGGCTAATTTTTTATATTTTGTAGAGACGGGGTCTTGCTATGTCACCCGAGCTGATGAACTCCTGGGCTCAAGAGATCTGCCCACCTCCACTTCTCAAACTGCTGGGATTACAGGCGTGAGCCACTGCACCCAGCCCTCTACAAATAATTTTAAAAACTATTTTACTATTTTAAAAGTTGAAGGTTATATTTTGTTTTATCTATGAGTTTTATTTCCCCTTTTTATTTTGTTTCGGCTTGTCTGGAAATGGTATATTCCGTTTCTTCACCCATAGGGCTTCACAACATCAGCACTGCTGACATTTGGCGCTGATAATCCTCTGGGGTGAGGCCATCCTGGGCACCACACGGTGTTGAGCAGCATCTCTGGCCTCCATTCTTCAGACACCAAGAGCAACACCTCCACCCCTTGTGGTGACAACTAAAAGATGTCTCCAGACATCAACATGTGTTCCTTTGGAGCAGAACCACCCCGTCCTGTGAGAGGCACGGATATGGTGGTTACAATGGATACATCAACAAGAATTTAAATGTTTGGCCGGGCGCGGTGGGCGCGGTGGCTCAGGCCTGTAATCCCAGCACGTTGGGAGGCCGAGGCAGGTGAATCACTTGAAGCCAGGAGTTCCAGACCAGCCTGGCCAACATGGTGAAACCCATCTCTATTAAAAATACACACACACTGCCGGGTGCGGTGGCTCACGCCTGTAATCCCAGCACGTTGGGAGGCCAAGGAGGGCGGATCACGAGGTCAGGAGATCGAGACCATCCTGGCTAACACGGTGAAACCCCGTCTCTACTAAAAATACAAAAAATTAGCCGGGCGTAGTGGCGGGCGCCTGTAGTCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATGGCGTGCACCCGGGAGGCGGAGCTTACAGTGAGCCGAGATCGCGCCACTGCACTTCAGCCTGGGCGACAGAGCGAGACTCCATCTCAAAAAAAAAAAAAAAAAAAAAACTACACACACACACAAAAATTAAAATATTTATCTTCCCTCTGAGCCACACACAAAGACCTCAACCACCCCCTTCTATCTTTCCTATTTTTATTTATTTATTTATTTTGAGACAGAGTCTCGCTCTGTCACCCACGCTGGAGTGCAATGGCGCGATCTTGGCTCACTGCAACCTCTGCCTCTGGGGTTCAAGCGATTCTCCTGCCTCAGCCTCCTGAGTGGCTGGGATTACAGGCACCTGCCACCGCACCTGGCTGATTTTTGTATTTTTAGTAGGGATGGGGTTTCACCATGTTGGCCAGGGTGGTCTCAAACTCTTGACCTCGTGATCCACCGCCTCGGCCTCCCAAAGTGCTGGGATTACAGATGTGAGCCACCATACCCAGCCTGATGAAAATTTTAAAAAAGAAAATTCTTAAACCGTTCTAAGTCAGGGAACTGTCTGTATACATCTTACTTATACAAAAAGGTTACATATGCACCTTACATTGTTTTTGTTTTTGTTTTGAGATGGAGTCTCACTCTGTCACCCAGACTGGAGTGCAATGGCATGATCTTGGCTCACTGCAACCTCTGCCTCCCGGGTTCAAGCGATTCTCCTGTCTCAGCCTCCCGAGAGGCTGGGATTACAAGTGTGCACCACCACGCTTGGCTAATTTTTTTTGTATTTTAGTAGAGACAGGGTTTCACCATGTTGGCCAGGCTGGTCTTGAACTGCTGACCTCAGGTGATTGGCCTGCCTCGGTCTCCCAAAGTGTTGGGTTACAGGCATGAGCCACGGCACCCAGCCTGCACCTTACATTGTAACACACGTGTGGACACACCCTGGAGTCACAGCTACAGGACAATTTCAGAGTCCATGACGGCCCCACATCCCTTCCCTGGGTCACCAAGGCCTCAATATGCCCCTCCCCCCTCCCTGTGTGTGATATCTATACAAGTCACCTGCATACCTGTAGCAGACGCTGGCATCACTGTGGGCTCCCCGCCCTCCCATTCCTCAAACTGGTTTTCCTCTAAGGTTTCCCTGCCCATCTAACCTTCTCCTGGCACTCCCTCATGGTGCATTTCTCTCACCTGCCCGTCCGTCCCAGGCCACCTGCCCTCTCAGCTGGGACTCCAACTTCCCCTGATTTCTGGTCTCTTCCATCCTGCTTTTGGACTTTTCCTGGGACACTTGCATTTCTTCTTTTTCTTTTTTTTTTTTTTTGAGACAGAGTTTCACTCTGTCACCCAGGCTGGAGTGTGATGCGATCTCGGCTCACTGCAGCCTCCACCTCTCAGGTTCAAGCGACTCTTCTGGCTCATCCTTCTCAGTAGCTGGAACTACATGCATGCGCCACCATGCCTAATTTTTGTTATTTTAGTAAAGACTGGGTTTCACCATGCGTTGACCAGGCTGGTCTCAAACTGCTGGCCTCAAGTGATCTGCCCGCCTTGGCTTCCCAAAGTGCTGGGATTTGGGATTACGGGCGTGAGCCGCCGAGCCTGGCCTCCTTCTTGCTCTCCTTTCTCCTCCCAGACCTTTGCTCCCCTCTCAGTCCTGCTCCTCTCTCCCTCCCGCGCAGCCCCCACCCTGCACCCGGGCAGGTGCCACAGGGACGTGCAAGACAGCTACCACCCTGCACAAGCCCGAGTCCCAAACCACTCAGACCCTGTTTGTAAAAATCGGCATGCTCCTTTATTTGTTCAGAAGAGCAGCCAGCATCACCCTTGCCACTCAAACCTGGCACATACGCTTCGGAGACAATGGCCTCGGGACCCTCATGCTGCTGGGCCCAGGAGAGACAGTTCTGAGGCAGAAACTCGGCGTCCAAGGGGGGCCGCGGGTCAGGCACTGTGGTGAAGGGAACGCCGGGGAGTCCGGCCCCACCTTGCAGCTGGGGACACGGGGGCGCAAACAGAGGGGGCAGGCTAGTGTCCCGCTGCCCCAGGAACAGACCTCAGGGCCCCAGGAGGGTCTGCAGGCAGCTAGGAGCCTGCCAAGTGCTGGTGGAAGTAGAGGCCGAAAAGGCTGGCGAGCAGCTGGCAGGCAGCCGTCCACCAGATGAGGTAGGCCAGGACGCCACGGAGGAAGAGGGGAGTAAGCAGGCCACCCAGAGCCCCGGCAATCCGCGCTGCAGTCTGCTGGACTTCGTCCTCCCCAGAGCCGATGGGGGCAGCGCTGGCTGAGGATGGGTCGGGGGATAGTAGAGGAGCTGGGCCCAGGCCCCAGGAATAGCCTCCTAGGAGAAGAGGATGAAGCGAGGTATGAGTGGAAAAATGGGGGAGGGGGCGAGGGACAGGGCTGGCACGGGGGGCCAGGCCCATTCCTCCAGACACTCCCACCCCTGTCTCAGACTCCATCTCCAGCCCAGTCTCCACCCCCTCAGGCGCTGCCCCCTGTCCAAGGCAAACCCTACCCCAGGCCCCACCTCCTGCTCAGATCCTGCCTCAATACATGCCCTGCCCCCTCCCCAGGCCCCGCCTCCTGCCAAGACGCAACCCCTCCCCAGGCTCCACCTCCTAAGGCAAACGCCATCCCAAACTCCACCTCCTGCTCAGACCCTGCCTCACCACAGTCCCCGCCCCCTACCCAGGCCCCGCCTCCTGCTCAGATTGCACCCATCCCCAGGCTCCACTTCCTGTCCAAGGCAAGCCCCACTCCAGGCTCCGCTTCCTGCTCAGACCCTGCCTTACCACAGTCTCCGCCCCCTGCCTAGGCCCCGCCTCTCCCCCCCCACCGCGGTCCCCGCCAGAGTCCACCTCCACTCTGTTTTATCTTCCAACTCCGCCCCTCCTCCACCCCCACACCGCGGCATCTCACCCAGCGTCTTGAGCAGAAGTGTGCAGTTGAGGGTGAGGATGAGCGGCGTCAGGTACTGCAAGCTCACCACGGTCACATAGCAGTAGACTCGGACCACCTGTGGGCAGGTAGCAGGGGTGGCTGCAGCAGGAGGCCTTCTGGTTTGGGACGACTCCACGCCCAAAGGACCAGGAACCCCACCCTGAGCCCCAGGTTCCCTCTGGCCTAGGTCATCGGGGCGTCCATACCCTCTGCTGGATTTCACGGGCTTCGATGCGGCCAGCCTCCCTTCGCAGCTGCTCCACCCGGGCCTTGGCCAGGCACAGGTAGGCCTGCAGGTGGGGCCGGGTCACCGCCAGCCGCAGCAGGCACAGCACCACCAGCAACCAGAGGCGCCCAGAGTCGAAGGCAGAATCGGACAGCCTGTGCGGAGAGGGCCGGGGGCAAGGGACTAAGAAGGTCGCCCCCGACCCCCCAGGATCTTCCCCAGGCTCCTCCCTGAATCTCAGAGGCTAGGGCACCCAGGGGAGCCCCAGCTACCTCCTAGCCCCACCCAATACGCACAGGGAGAAACGCGTCTCCCCAAACGGCGGCTGGTGCAGGAAGTCCCGTGCAATGGGCTTTGTCCAGAGCCACAGGATGAACAGGGGAGACAGGAAGCTGGTGTGCAGGAGGAACCTGGGGGGTGAGGGCAGGAGGGAGTGAGGCCTGGGTACCCCCTCTCCTCGAGTCTCTCCCTTAAGCTCCCTAGTCCCCCCACCCACCAAGCGACCCACTTAACTGCAGCATGGGTCTGTCCTCCGACATGGTCAGTGCGTCCCGGTGGGTCTGGGCCAGCCGCAGGCCTGGGAAGGTGAGGAAGGCACCCAGCACAGAGCCCACCACTGCCAGTCCCACGCGGATAGCCAGCTTGGCCACAGGAAGCCTAGGAGAACACCAGGTCACGAGCCTGCCTGGGGGACCCTGGGAGGGTCCCAGCCTGCCCTTGCCTCCCTCCCCCATTCCCAGGACTCACGCCCAGTCCCAGCCCTGCTTCTTCAGAAGTGGCTCTAAGTTCTGGGTCATGCTGGCCAGACCTGGGGACGATAAGAAGAGGACCGAGTAGAGTGAATTCCTAGGGTCTCTAAGGCCACTCTGTTCCCTAACCCCCCATCCCTCAGGCATCCGTTTGCTTCCCAAGTAGGAATGAACAAGGGTCTGCCAGGCCCTGAGCCAGGCACAAGGACAATTTTGTGCTCTAGTTACACAGTACTTTTTACAAGAAACAAGATTGGAGTGGTGGTTCACGCCTGTAATCCCAGCACTTTGGGAGGCTGAGGCAGGCGGATCATCTGAGATCAGGAGTTTCAGACCAGCCTGGCCAATGCAGTGAAACCCCCGTCTCTACTAAAAATACAAAAATTAGCCAGGTGTGGTGGCAGGTGCCTGTAATCCCAGCTACTTGAGAGGCTGAGGCAGGAGAATCGCTTGAACATGGGGAGCGGAGGTTGCAGTGAGCTGAGACCGCACCATTGCACTCCAGCCTTGGGGACAAGAGTGAAACTCAGTCTCAAAGAAAACGAAACAGAATGCACCAGGCAGACACTCCTGATTGGGCTGGGAACATTCAGGGGTATCTGTTGAGCCTGAGCTCCCTAGGTTATAGAAGGAATCTAGAGGGGGATGAAGGACTCCTGCAGGAGAAAACCAAAGTCCTCCTGGAGGAAGGAATCCTCAATTCAGGACCCAAGATTTTTCAAAAATTAAGAGCAGGGCTGGGTGCAGTGGCTTGCACCTGTAAGTCTCAGCACTTTGGGAGGCCAAGGCGGGTGGATCGTTTGAGCTCACAAGTTTGAGACCAGCCTGGGCAACATGGCAAAACCCCCATCTCTACAAAAAATACAAAACCAGGGGTGGTGGTGCACGCCTATAGTCCCAGCTACTGTGAAGGCTGAGGTGGGAAGGATGGGTTGAGCCCAGGATGTGGAAGTTGCAGTGAGCTGAGATCATGCCACTGCACTCCAGCACAGAGCAAGACCTTGTCAAAAAAAAAAAAAAAAAGGAGCAAATTCATATGAGCTCACAGGCAAAATCACCAAATGCATAAGGAAACAAATCACCATAAAGGAGAGTTAACAGAAAAACAACAGTCAAGTTTAGGCCTCAAAGACTTCAGAAATTGGTGCTGTCAATTATGTGTCAAATGACTAAGGAAATGAAAGCTGTAATCACAGAACAAGTGACATGAGAATTCCTTCAGATGACTGGGTAGAGTTGCAAAGGAACCAAATTAAACTCTTCCAAAGGAAAACTGTAAGTATTGAAATAATAGGTTGTTAAACAGCACATTAGGAACAGCCAAAGGAGGAAGTGATGAACTGGAAGACAGATCTGAAGAAATCACTCAGATTCCAACTCAGAAAAACAAGTAGGTGAGAAATATGAAGAGAGGCTAAGAGATAAGGAAGACAGAACAGAGAGCCCAACGCAAATCAAATCAGAGCCCCAGAGGGAGGGAAGAGAAGGAATGAAGAATAAAAGGAATTACTGGAAGAGAATGGTTGAGAAGTTTGCAGAATGAAAGACAGACACAAAGTATATCAAACCATGTAAATAAAAAGAAATCCATACCTAGACATAATGGAGTGAAACTGCAGAACACCAAAAACAAAAAAATTACAAAGCAGCCAGGGAGTTAAGACAGATCACCTACAAAGGAACAACAATTAGGCTGACAGCCAATGTCAACTGCAACAACAGAAAAGGAACAAATAGAAAGCAAAAAAGTAAGATGGTAGAAACAAAGTCAAATATGTCAGTAATCACAATAAATGTAAGTAGACTAAACTTTAAAGTTAAATGACAAAGACTGTCAGACTACATTGAAAATATCCAGCTACATGTTTTTTAAAGGATGACATACCTTGACATAAAGTCACTGGAAGACTGAAAGTAAAGGGATGTTAAAAAGATACAGCAAATACTAATCAAAAGAAAGCAAGCTAGAAAGGCTATACTACTACCAGCCAAACTAGACTAAGAAGTAGTATTAGAATAGGCCAGGCGCGGTGGCTCACACCTGTAATCTCAGCACTTTGGGAGGCCAAGACGGGCAGATCACAAAGTCAGGAGTTCGAGACGAGCCTGGCCAACATGGTGAAACCCTGGCTCTACTAAAAATCCAAAAAATAGCTGGGCATGGTGGCGGGTAATACCAGCTACTTGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCAGGAGGTGGAGGTTGCAGTGAGCCGAGATTGCGCCACTGCACTCCAGCCTGGCCAACGAGAGCAAAACTCTGTCTCAAAAAAAAAAAAAGTAGTATTAGAAGACAGAAGGGTTCCATACATCATGATAAAATGGCTGATTCACCAGGAAAATGTAACAGTTCTAAATCTGTGAATAGAACTAATCTGTGAATTGTGAATAGGCTGCAAAATATATAAAGAAAACACTGACAGAATTGATAGGGAAATTGAGAGCTCTCTTGTCCCAGAGGGAGATTAACTTCTGCTGACTGATAAGTCACAGACAAAAGGTTAGGCAAGATGGAGATTTGAATTTATTAAACTCATAGAGCCAGGGAATATGTCCTTCAATTAGAACATGTGAAAAAAGGCAAAACAACAAAAACAGAATATGTCCTTCAAGAAAACAAGGAATAGTCACAAAATGTGATCACATTCCAGGCCATAGGGCAAATCTTACCAAATTTTAAAGAAATTATTTCAAATAGACCATCTGTGCAATTGAGCTAGAAATAAATATGTATTTTTTAAAGATCTATGTTTGAAAAATTTAAAAATATTTAATAATCCATAGGTCAAAGCATAGCAAGACCCCATCTCTACAGAAATCAGAAGGGAAATGTTAAAACACCCCAAACAGAATAATAAAAAATATCAGTCAAAACTTGGGTAAACTGCCAGGTGTGATGGCTCACACCTGTAATCCCAGCACTTTGAGAGGCCGAGGTGGGTGGATCACCTGAGGTTAGGAGTTTGAGACCAGCCTGGCCAACATGGTAAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCAGGCGTGGTGGCGTGCACCTGTAATCCCAGCTACTCAGGAGGCTGAGGCAGAAGAATTGCTTGAACCCAGGAGGCAGAGGTTGTAGTGAGCTGAGATTGCACAGTTGCACTCCAGCCTGGGTGACAAGAGCAAAACTCCATCTCAAAACAAAAACAAAAACAAAAAAAAACTTAGGTGAACAAAAGTGAGACCTGGTAAAATATATATAGCATTAAATGCTATATATGCTATAAAATTAGAAAAGATTGAAAATTTATGAGCCAAGTAGCTAACTGAGAAATTGGAAACAAGAAAAGGAGGTACGCCAGTACTGTTCTCAAATCCAGAGGTCCTAGCCACACCAAAGGGGAAGGATCAGACAGAACAAAAGAAAACCAAAAAGAATCTGCAATTCAATAAAAATATAATTGTTTAGCAAGGTTAGTCCGTGGAGACACTCAAATTTGACCCCTATATGATAACACAAAAATTAATGTCACTGTCCATCAGCAACAGTGAGTAGTTTAGGAGCTTATATGAAATGTAAAAGTTGAAATATTTTATTTATTGATTTTTAAGATGGAGTCTTGCTCTTGTCGCCCAGGCTAGAGTGCAATGGCGTGATTTCGGCTCACTGCAACCTCTGCCTCCGGGGTTCAAGTGATTCTCCTGCCTCAGCCTCCCGAGTAGCTGGGATTACAGGTGCATGCCACCTTGCCCAGCTTTTTTTTTTTTTTTTTTTTTAGACGGAGTCTCGCTCTGTTGCCCAGGCTGGAGTGCAGTGGCGCGATCTTGGCTCACTGCAAGCTCCACCTCCCGGGTTCACGCCATTCTCCTGCCTCAGCCTCCCCAGTAGCTGGGACTACAGGCGCCTGCCACCACGCCTGGCTAATTTTTTGTATTTTTAGTAGAGACGGGGTTTCACGGTGTTAGCCAGGATGGTCTCGATCTGCCGACCTCGTGATGTGCCCATCTCGGCCTCCCAAAGTGCTGGGATTACAGGCATGAGCCACCACCCCTGGCCAGTCATTCTATATTTTCTTCTAAAATATTTCAGCCAGGCGTGGTGGCAAGCGCCTGTAATCCCAGCACTTTGGGAGGCTGAGGCAGGTGGATTGCCTGAGGTCTGGAGTTCAAGACCAGCCTGGTCAACGTGGTGAAACCCCATCTCTAGTAAAAAATACAAAAAGTAGGCCGGGCACGGTGGCTCGCGCCTGTAATCCCAGCACTTTGGGAGGCTGAGGCGGGTGGATTGCCTGAGGTCTGGAGTTCAAGACCAGCCTGGTCAGCATAGTGAAACCCCATCTCTAGTAAAAAATACTAGAGATCGCCCACTGCACTCCAGCCTGGGGGAAAGAGCGAGACTCTGTCTCAAAAAAAAAAAAAAAGACAATGTAGAATGACTTTCTGATTTTAGGGAAGGATATTTTTCAAGACAAATATCAACTAAAATAATCAACTTCCATTCATCAAGACACTAGAGGTGACACTTACAACTACATTTGACGACTCAGCAAAGAAAGTGTGATGCATGTATGCAGACGGAAAATAATGCAAATAGTGGTCAAATGAAAACAAAAGAAGTATTGGCAATGAAGTGGATAAATTTGGAACACTTGTGCACTGCTGCTGGGAATATAAAATATAAAATGGGCTGAGCACAGTGGTGCACACCTGTAATCCCAGCACTTTGGAAGGCCGAGGCTGGCGATTGCTTGAGTTCAAGAGTTCAAGACTAGCCTGGGCAACATGGCAAAATCTGTCTCTATTAAAAACACAAAAATTATCTGGGTGTAGCCAGATGTGGTGGCTCACACCTGTAATCTCAGCACTTTGGGAGGCCAAGATGGGCAGGATCACCTGAGGTCAGGAGTTAAAGACCAGCCTGGCCAACATGGCAAAACCCCATCTCTACTAAAAATGCAAAAATTAGCCAGGTGTGGTGGCGCACACCTGTAATCCCAGCTACTTGGGAGGCTGAGGCAAGAGAATCACTTGAGCCTGGAAGGTGGAGGTTGCAGTGAGCCAAGATCATGCCACTGTACTCTAGCCTGGGTGACAGAGGGAGACTGTCTCAAAAAATAAAAATAAAAATAAAAAAATAAATTAGCTGGGTGTGGTGGTGGGAGCCTGTAGTCCCAGCTACTTGGGAGCCTGAGGCATGAGAATCACTTGAATCCGGGAGGCAAAGGTTGCAGTGAGTGGAGATCACGCCACCACTGCACTCCAGCCAGGGCAACAGAATGAGACTCTGTCTCAAAAATAAAATAAAATGGTTCAGCTGCTGTATAAAACAGTATGGCAGTCCCTCAAAAAATTAAAAGTAGAATTATCATATAATCCAGCAGTTCCACTTCTGGATATATACTCTCCAAAACTGAAAATGGGGTCTCAAAGAGATACCTGTACACTCAGGTTCACAGCGGTATTAGTCAAAAAGCCAAAAGTTGGGAACAACCCAAGCATTCATCTGTGGATGAATAAACAAAATGTGTTCCACCCAGACAATGAAATAGTGTTCAGTCTTTTTTTTTTTTTTTTTTTTTGAGATGGAGTCTTGCTCTTTCACCCAGGCCGGAGTGCAGTGGCACTATCTAAGCTCAC +PRIMER_LEFT_EXPLAIN=considered 180225, GC content failed 9272, low tm 34005, high tm 101808, high end compl 2, long poly-x seq 1142, ok 33996 +PRIMER_RIGHT_EXPLAIN=considered 180230, GC content failed 9290, low tm 33987, high tm 101882, high end compl 1, long poly-x seq 1129, ok 33941 +PRIMER_INTERNAL_EXPLAIN=considered 180500, GC content failed 9272, low tm 34043, high tm 102015, long poly-x seq 1142, ok 34028 +PRIMER_PAIR_EXPLAIN=considered 338, unacceptable product size 331, high any compl 1, ok 6 +PRIMER_LEFT_NUM_RETURNED=5 +PRIMER_RIGHT_NUM_RETURNED=5 +PRIMER_INTERNAL_NUM_RETURNED=5 +PRIMER_PAIR_NUM_RETURNED=5 +PRIMER_PAIR_0_PENALTY=0.005611 +PRIMER_LEFT_0_PENALTY=0.000037 +PRIMER_RIGHT_0_PENALTY=0.005574 +PRIMER_INTERNAL_0_PENALTY=0.012470 +PRIMER_LEFT_0_SEQUENCE=ATGCCCACCTGCTTTGTAAC +PRIMER_RIGHT_0_SEQUENCE=AGACCAGTTAGCTGGGGGTT +PRIMER_INTERNAL_0_SEQUENCE=GCACACAAACCACCTCCTTT +PRIMER_LEFT_0=2959,20 +PRIMER_RIGHT_0=3388,20 +PRIMER_INTERNAL_0=3094,20 +PRIMER_LEFT_0_TM=60.000 +PRIMER_RIGHT_0_TM=59.994 +PRIMER_INTERNAL_0_TM=60.012 +PRIMER_LEFT_0_GC_PERCENT=50.000 +PRIMER_RIGHT_0_GC_PERCENT=55.000 +PRIMER_INTERNAL_0_GC_PERCENT=50.000 +PRIMER_LEFT_0_SELF_ANY=3.00 +PRIMER_RIGHT_0_SELF_ANY=8.00 +PRIMER_INTERNAL_0_SELF_ANY=3.00 +PRIMER_LEFT_0_SELF_END=3.00 +PRIMER_RIGHT_0_SELF_END=0.00 +PRIMER_INTERNAL_0_SELF_END=2.00 +PRIMER_LEFT_0_END_STABILITY=5.4000 +PRIMER_RIGHT_0_END_STABILITY=9.4000 +PRIMER_PAIR_0_COMPL_ANY=5.00 +PRIMER_PAIR_0_COMPL_END=3.00 +PRIMER_PAIR_0_PRODUCT_SIZE=430 +PRIMER_PAIR_1_PENALTY=0.012524 +PRIMER_LEFT_1_PENALTY=0.010545 +PRIMER_RIGHT_1_PENALTY=0.001978 +PRIMER_INTERNAL_1_PENALTY=0.026532 +PRIMER_LEFT_1_SEQUENCE=GGTTCAAGCGACTCTTCTGG +PRIMER_RIGHT_1_SEQUENCE=ACAGGGTCTGAGTGGTTTGG +PRIMER_INTERNAL_1_SEQUENCE=AAGACTGGGTTTCACCATGC +PRIMER_LEFT_1=10633,20 +PRIMER_RIGHT_1=11008,20 +PRIMER_INTERNAL_1=10719,20 +PRIMER_LEFT_1_TM=59.989 +PRIMER_RIGHT_1_TM=60.002 +PRIMER_INTERNAL_1_TM=59.973 +PRIMER_LEFT_1_GC_PERCENT=55.000 +PRIMER_RIGHT_1_GC_PERCENT=55.000 +PRIMER_INTERNAL_1_GC_PERCENT=50.000 +PRIMER_LEFT_1_SELF_ANY=5.00 +PRIMER_RIGHT_1_SELF_ANY=3.00 +PRIMER_INTERNAL_1_SELF_ANY=4.00 +PRIMER_LEFT_1_SELF_END=1.00 +PRIMER_RIGHT_1_SELF_END=0.00 +PRIMER_INTERNAL_1_SELF_END=2.00 +PRIMER_LEFT_1_END_STABILITY=8.2000 +PRIMER_RIGHT_1_END_STABILITY=8.8000 +PRIMER_PAIR_1_COMPL_ANY=6.00 +PRIMER_PAIR_1_COMPL_END=0.00 +PRIMER_PAIR_1_PRODUCT_SIZE=376 +PRIMER_PAIR_2_PENALTY=0.016397 +PRIMER_LEFT_2_PENALTY=0.001978 +PRIMER_RIGHT_2_PENALTY=0.014419 +PRIMER_INTERNAL_2_PENALTY=0.026532 +PRIMER_LEFT_2_SEQUENCE=CCAAACCACTCAGACCCTGT +PRIMER_RIGHT_2_SEQUENCE=CAGAACTGTCTCTCCTGGGC +PRIMER_INTERNAL_2_SEQUENCE=ATCACCCTTGCCACTCAAAC +PRIMER_LEFT_2=10989,20 +PRIMER_RIGHT_2=11145,20 +PRIMER_INTERNAL_2=11056,20 +PRIMER_LEFT_2_TM=60.002 +PRIMER_RIGHT_2_TM=59.986 +PRIMER_INTERNAL_2_TM=59.973 +PRIMER_LEFT_2_GC_PERCENT=55.000 +PRIMER_RIGHT_2_GC_PERCENT=60.000 +PRIMER_INTERNAL_2_GC_PERCENT=50.000 +PRIMER_LEFT_2_SELF_ANY=3.00 +PRIMER_RIGHT_2_SELF_ANY=5.00 +PRIMER_INTERNAL_2_SELF_ANY=3.00 +PRIMER_LEFT_2_SELF_END=1.00 +PRIMER_RIGHT_2_SELF_END=2.00 +PRIMER_INTERNAL_2_SELF_END=0.00 +PRIMER_LEFT_2_END_STABILITY=7.9000 +PRIMER_RIGHT_2_END_STABILITY=11.2000 +PRIMER_PAIR_2_COMPL_ANY=4.00 +PRIMER_PAIR_2_COMPL_END=1.00 +PRIMER_PAIR_2_PRODUCT_SIZE=157 +PRIMER_PAIR_3_PENALTY=0.017482 +PRIMER_LEFT_3_PENALTY=0.010545 +PRIMER_RIGHT_3_PENALTY=0.006937 +PRIMER_INTERNAL_3_PENALTY=0.066676 +PRIMER_LEFT_3_SEQUENCE=GTTCTGAGGCAGAAACTCGG +PRIMER_RIGHT_3_SEQUENCE=GAGGACGAAGTCCAGCAGAC +PRIMER_INTERNAL_3_SEQUENCE=ACGGAGGAAGAGGGGAGTAA +PRIMER_LEFT_3=11140,20 +PRIMER_RIGHT_3=11491,20 +PRIMER_INTERNAL_3=11417,20 +PRIMER_LEFT_3_TM=59.989 +PRIMER_RIGHT_3_TM=59.993 +PRIMER_INTERNAL_3_TM=60.067 +PRIMER_LEFT_3_GC_PERCENT=55.000 +PRIMER_RIGHT_3_GC_PERCENT=60.000 +PRIMER_INTERNAL_3_GC_PERCENT=55.000 +PRIMER_LEFT_3_SELF_ANY=7.00 +PRIMER_RIGHT_3_SELF_ANY=5.00 +PRIMER_INTERNAL_3_SELF_ANY=2.00 +PRIMER_LEFT_3_SELF_END=1.00 +PRIMER_RIGHT_3_SELF_END=2.00 +PRIMER_INTERNAL_3_SELF_END=1.00 +PRIMER_LEFT_3_END_STABILITY=9.9000 +PRIMER_RIGHT_3_END_STABILITY=6.4000 +PRIMER_PAIR_3_COMPL_ANY=4.00 +PRIMER_PAIR_3_COMPL_END=1.00 +PRIMER_PAIR_3_PRODUCT_SIZE=352 +PRIMER_PAIR_4_PENALTY=0.018045 +PRIMER_LEFT_4_PENALTY=0.012470 +PRIMER_RIGHT_4_PENALTY=0.005574 +PRIMER_INTERNAL_4_PENALTY=0.042377 +PRIMER_LEFT_4_SEQUENCE=GCACACAAACCACCTCCTTT +PRIMER_RIGHT_4_SEQUENCE=AGACCAGTTAGCTGGGGGTT +PRIMER_INTERNAL_4_SEQUENCE=TGGGAGGTGAGGAAAATCTG +PRIMER_LEFT_4=3094,20 +PRIMER_RIGHT_4=3388,20 +PRIMER_INTERNAL_4=3336,20 +PRIMER_LEFT_4_TM=60.012 +PRIMER_RIGHT_4_TM=59.994 +PRIMER_INTERNAL_4_TM=60.042 +PRIMER_LEFT_4_GC_PERCENT=50.000 +PRIMER_RIGHT_4_GC_PERCENT=55.000 +PRIMER_INTERNAL_4_GC_PERCENT=50.000 +PRIMER_LEFT_4_SELF_ANY=3.00 +PRIMER_RIGHT_4_SELF_ANY=8.00 +PRIMER_INTERNAL_4_SELF_ANY=2.00 +PRIMER_LEFT_4_SELF_END=2.00 +PRIMER_RIGHT_4_SELF_END=0.00 +PRIMER_INTERNAL_4_SELF_END=1.00 +PRIMER_LEFT_4_END_STABILITY=8.5000 +PRIMER_RIGHT_4_END_STABILITY=9.4000 +PRIMER_PAIR_4_COMPL_ANY=5.00 +PRIMER_PAIR_4_COMPL_END=3.00 +PRIMER_PAIR_4_PRODUCT_SIZE=295 += diff -Nru primer3-2.3.7/test/primer_new_tasks_formatted_output primer3-2.4.0/test/primer_new_tasks_formatted_output --- primer3-2.3.7/test/primer_new_tasks_formatted_output 2016-02-17 10:11:36.000000000 +0000 +++ primer3-2.4.0/test/primer_new_tasks_formatted_output 2017-11-03 16:29:54.000000000 +0000 @@ -1845,16 +1845,16 @@ No mispriming library specified Using 0-based sequence positions OLIGO start len tm gc% any 3' seq -LEFT PRIMER 16 20 61.87 50.00 7.00 6.00 tggatgccatcaatgacctc -RIGHT PRIMER 216 20 59.13 55.00 4.00 4.00 gactgagctgttcgaggaca +LEFT PRIMER 15 20 60.17 45.00 9.00 4.00 atggatgccatcaatgacct +RIGHT PRIMER 217 20 59.99 60.00 4.00 2.00 ggactgagctgttcgaggac SEQUENCE SIZE: 1527 INCLUDED REGION SIZE: 1527 -PRODUCT SIZE: 201, PAIR ANY COMPL: 5.00, PAIR 3' COMPL: 5.00 +PRODUCT SIZE: 203, PAIR ANY COMPL: 3.00, PAIR 3' COMPL: 3.00 TARGETS (start, len)*: 35,163 0 atggatttgatggacatggatgccatcaatgacctccacttctctggacacagctccctc - >>>>>>>>>>>>>>>>>>>)************************ + >>>>>>>>>>>>>>>>>>>>************************* 60 accaacacccctacttccgacgaggattatggttgcacctggaaccactggtctcccatc ************************************************************ @@ -1863,7 +1863,7 @@ ************************************************************ 180 atcgaggacagaacaactgtcctcgaacagctcagtccatctatcaccacaaccaccacc - *****************(<<<<<<<<<<<<<<<<<<< + ******************<<<<<<<<<<<<<<<<<<<< 240 accaccacaaccacggatgaggaagaagaagaaatggaaacaacaaccacaacaacaaca @@ -1939,9 +1939,9 @@ ADDITIONAL OLIGOS start len tm gc% any 3' seq - 1 LEFT PRIMER 17 19 58.82 52.63 7.00 6.00 ggatgccatcaatgacctc - RIGHT PRIMER 216 20 59.13 55.00 4.00 4.00 gactgagctgttcgaggaca - PRODUCT SIZE: 200, PAIR ANY COMPL: 5.00, PAIR 3' COMPL: 5.00 + 1 LEFT PRIMER 16 19 59.87 47.37 7.00 4.00 tggatgccatcaatgacct + RIGHT PRIMER 217 20 59.99 60.00 4.00 2.00 ggactgagctgttcgaggac + PRODUCT SIZE: 202, PAIR ANY COMPL: 3.00, PAIR 3' COMPL: 3.00 PRIMER PICKING RESULTS FOR Pick start fixed left primer unique diff -Nru primer3-2.3.7/test/primer_new_tasks_output primer3-2.4.0/test/primer_new_tasks_output --- primer3-2.3.7/test/primer_new_tasks_output 2016-02-17 10:11:36.000000000 +0000 +++ primer3-2.4.0/test/primer_new_tasks_output 2017-11-03 16:29:54.000000000 +0000 @@ -1514,50 +1514,48 @@ PRIMER_RIGHT_NUM_RETURNED=2 PRIMER_INTERNAL_NUM_RETURNED=0 PRIMER_PAIR_NUM_RETURNED=2 -PRIMER_PAIR_0_PENALTY=2.740403 -PRIMER_LEFT_0_PENALTY=1.868962 -PRIMER_RIGHT_0_PENALTY=0.871441 -PRIMER_LEFT_0_PROBLEMS= Overlaps target; Similary to 3' end of self too high; -PRIMER_RIGHT_0_PROBLEMS= Overlaps target; Similary to 3' end of self too high; -PRIMER_LEFT_0_SEQUENCE=tggatgccatcaatgacctc -PRIMER_RIGHT_0_SEQUENCE=gactgagctgttcgaggaca -PRIMER_LEFT_0=16,20 -PRIMER_RIGHT_0=216,20 -PRIMER_LEFT_0_TM=61.869 -PRIMER_RIGHT_0_TM=59.129 -PRIMER_LEFT_0_GC_PERCENT=50.000 -PRIMER_RIGHT_0_GC_PERCENT=55.000 -PRIMER_LEFT_0_SELF_ANY=7.00 +PRIMER_PAIR_0_PENALTY=0.172685 +PRIMER_LEFT_0_PENALTY=0.165748 +PRIMER_RIGHT_0_PENALTY=0.006937 +PRIMER_LEFT_0_PROBLEMS= Similarity to self too high; Similary to 3' end of self too high; +PRIMER_LEFT_0_SEQUENCE=atggatgccatcaatgacct +PRIMER_RIGHT_0_SEQUENCE=ggactgagctgttcgaggac +PRIMER_LEFT_0=15,20 +PRIMER_RIGHT_0=217,20 +PRIMER_LEFT_0_TM=60.166 +PRIMER_RIGHT_0_TM=59.993 +PRIMER_LEFT_0_GC_PERCENT=45.000 +PRIMER_RIGHT_0_GC_PERCENT=60.000 +PRIMER_LEFT_0_SELF_ANY=9.00 PRIMER_RIGHT_0_SELF_ANY=4.00 -PRIMER_LEFT_0_SELF_END=6.00 -PRIMER_RIGHT_0_SELF_END=4.00 +PRIMER_LEFT_0_SELF_END=4.00 +PRIMER_RIGHT_0_SELF_END=2.00 PRIMER_LEFT_0_END_STABILITY=7.6000 -PRIMER_RIGHT_0_END_STABILITY=7.9000 -PRIMER_PAIR_0_COMPL_ANY=5.00 -PRIMER_PAIR_0_COMPL_END=5.00 -PRIMER_PAIR_0_PRODUCT_SIZE=201 -PRIMER_PAIR_1_PENALTY=3.056129 -PRIMER_LEFT_1_PENALTY=2.184689 -PRIMER_RIGHT_1_PENALTY=0.871441 -PRIMER_LEFT_1_PROBLEMS= Overlaps target; Similary to 3' end of self too high; -PRIMER_RIGHT_1_PROBLEMS= Overlaps target; Similary to 3' end of self too high; -PRIMER_LEFT_1_SEQUENCE=ggatgccatcaatgacctc -PRIMER_RIGHT_1_SEQUENCE=gactgagctgttcgaggaca -PRIMER_LEFT_1=17,19 -PRIMER_RIGHT_1=216,20 -PRIMER_LEFT_1_TM=58.815 -PRIMER_RIGHT_1_TM=59.129 -PRIMER_LEFT_1_GC_PERCENT=52.632 -PRIMER_RIGHT_1_GC_PERCENT=55.000 +PRIMER_RIGHT_0_END_STABILITY=7.6000 +PRIMER_PAIR_0_COMPL_ANY=3.00 +PRIMER_PAIR_0_COMPL_END=3.00 +PRIMER_PAIR_0_PRODUCT_SIZE=203 +PRIMER_PAIR_1_PENALTY=1.140948 +PRIMER_LEFT_1_PENALTY=1.134011 +PRIMER_RIGHT_1_PENALTY=0.006937 +PRIMER_LEFT_1_PROBLEMS= Similary to 3' end of self too high; +PRIMER_LEFT_1_SEQUENCE=tggatgccatcaatgacct +PRIMER_RIGHT_1_SEQUENCE=ggactgagctgttcgaggac +PRIMER_LEFT_1=16,19 +PRIMER_RIGHT_1=217,20 +PRIMER_LEFT_1_TM=59.866 +PRIMER_RIGHT_1_TM=59.993 +PRIMER_LEFT_1_GC_PERCENT=47.368 +PRIMER_RIGHT_1_GC_PERCENT=60.000 PRIMER_LEFT_1_SELF_ANY=7.00 PRIMER_RIGHT_1_SELF_ANY=4.00 -PRIMER_LEFT_1_SELF_END=6.00 -PRIMER_RIGHT_1_SELF_END=4.00 +PRIMER_LEFT_1_SELF_END=4.00 +PRIMER_RIGHT_1_SELF_END=2.00 PRIMER_LEFT_1_END_STABILITY=7.6000 -PRIMER_RIGHT_1_END_STABILITY=7.9000 -PRIMER_PAIR_1_COMPL_ANY=5.00 -PRIMER_PAIR_1_COMPL_END=5.00 -PRIMER_PAIR_1_PRODUCT_SIZE=200 +PRIMER_RIGHT_1_END_STABILITY=7.6000 +PRIMER_PAIR_1_COMPL_ANY=3.00 +PRIMER_PAIR_1_COMPL_END=3.00 +PRIMER_PAIR_1_PRODUCT_SIZE=202 = SEQUENCE_ID=Pick start fixed left primer unique SEQUENCE_TEMPLATE=atggatttgatggacatggatgccatcaatgacctccacttctctggacacagctccctcaccaacacccctacttccgacgaggattatggttgcacctggaaccactggtctcccatcgtcaactgggacacctttacaggtgccccagatgactttcaccacctcatggacaccatcatcgaggacagaacaactgtcctcgaacagctcagtccatctatcaccacaaccaccaccaccaccacaaccacggatgaggaagaagaagaaatggaaacaacaaccacaacaacaacaacggcaataaaaacgcatgaagttggtgatgattcaaaagggctaaaactagtgcacctattgatggctggcgcggaagccttaaccggttcaaccaaaaaccgtgacttagctcgagtgatattgatccggctcaaggaattagtctcacaacatgctaacggctccaacatggagagacttgccgctcatttcaccgaagcccttcatggactactagaaggtgctgggggtgcgcataataaccaccatcaccacaacaacaacaaacattacctcaccacaaatggtccccacgacaaccaaaacgacacacttgctgctttccaactacttcaagacatgtcaccttacgtcaaattcggccacttcacagccaatcaagccatcatcgaagccgtggcccacgaacgccgcgtccatgtcatcgactacgatatcatggaaggggtccaatgggcctcattaatccaatcacttgcttccaacaacaacggtccacatcttcggataaccgcattatcgcggacaggaaccggccggaggtcaatcgccaccgtacaagaaaccggcaggcgattaacctcctttgccgcttccctcggacaaccattttcttttcatcactgcagattagactccgatgaaactttccgtccttctgcattaaagcttgtacgtggagaggctttggttttcaactgcatgctgaatttacctcaccttagttaccgtgcaccggaatcagttgcttcgtttttaaacggagcaaaaacgttgaatccaaagcttgtgacgttggttgaagaagaagttggttctgttattggtgggtttgtggaaaggttcatggactcacttcatcattattcagcggtttttgattcattggaggctggttttccgatgcagaaccgggcccggactttggtggagagggtattttttgggcctagaattgcaggctcgttgggccggatatatagaacgggtggtgaagaggagagaaggtcatggggggagtggttaggtgaggtagggtttaggggagttccggtgagctttgcaaatcattgtcaagcaaagctgttgttagggctttttaatgatgggtatagggttgaagaggtgggtgtgggtagtaataagttggtgttggattggaaatcaagacgtttgctttctgcttccctttggacttgttcttcttcagattctgatttatag diff -Nru primer3-2.3.7/test/primer_new_tasks_th_output primer3-2.4.0/test/primer_new_tasks_th_output --- primer3-2.3.7/test/primer_new_tasks_th_output 2016-02-17 10:11:36.000000000 +0000 +++ primer3-2.4.0/test/primer_new_tasks_th_output 2017-11-03 16:29:54.000000000 +0000 @@ -1666,43 +1666,39 @@ PRIMER_RIGHT_NUM_RETURNED=2 PRIMER_INTERNAL_NUM_RETURNED=0 PRIMER_PAIR_NUM_RETURNED=2 -PRIMER_PAIR_0_PENALTY=1.738307 -PRIMER_LEFT_0_PENALTY=1.426280 -PRIMER_RIGHT_0_PENALTY=0.312027 -PRIMER_LEFT_0_PROBLEMS= Overlaps target; -PRIMER_RIGHT_0_PROBLEMS= Overlaps target; -PRIMER_LEFT_0_SEQUENCE=tggatgccatcaatgacctc -PRIMER_RIGHT_0_SEQUENCE=gactgagctgttcgaggaca -PRIMER_LEFT_0=16,20 -PRIMER_RIGHT_0=216,20 -PRIMER_LEFT_0_TM=58.574 -PRIMER_RIGHT_0_TM=60.312 -PRIMER_LEFT_0_GC_PERCENT=50.000 -PRIMER_RIGHT_0_GC_PERCENT=55.000 -PRIMER_LEFT_0_SELF_ANY_TH=7.69 +PRIMER_PAIR_0_PENALTY=2.673422 +PRIMER_LEFT_0_PENALTY=1.659744 +PRIMER_RIGHT_0_PENALTY=1.013677 +PRIMER_LEFT_0_SEQUENCE=catggatgccatcaatgacct +PRIMER_RIGHT_0_SEQUENCE=ggactgagctgttcgaggac +PRIMER_LEFT_0=14,21 +PRIMER_RIGHT_0=217,20 +PRIMER_LEFT_0_TM=59.340 +PRIMER_RIGHT_0_TM=61.014 +PRIMER_LEFT_0_GC_PERCENT=47.619 +PRIMER_RIGHT_0_GC_PERCENT=60.000 +PRIMER_LEFT_0_SELF_ANY_TH=16.82 PRIMER_RIGHT_0_SELF_ANY_TH=0.00 PRIMER_LEFT_0_SELF_END_TH=0.00 PRIMER_RIGHT_0_SELF_END_TH=0.00 -PRIMER_LEFT_0_HAIRPIN_TH=0.00 +PRIMER_LEFT_0_HAIRPIN_TH=44.12 PRIMER_RIGHT_0_HAIRPIN_TH=0.00 PRIMER_LEFT_0_END_STABILITY=3.8500 -PRIMER_RIGHT_0_END_STABILITY=4.0200 +PRIMER_RIGHT_0_END_STABILITY=3.8500 PRIMER_PAIR_0_COMPL_ANY_TH=0.00 PRIMER_PAIR_0_COMPL_END_TH=0.00 -PRIMER_PAIR_0_PRODUCT_SIZE=201 -PRIMER_PAIR_1_PENALTY=2.250186 -PRIMER_LEFT_1_PENALTY=1.938159 -PRIMER_RIGHT_1_PENALTY=0.312027 -PRIMER_LEFT_1_PROBLEMS= Overlaps target; -PRIMER_RIGHT_1_PROBLEMS= Overlaps target; -PRIMER_LEFT_1_SEQUENCE=atggatgccatcaatgacctc -PRIMER_RIGHT_1_SEQUENCE=gactgagctgttcgaggaca -PRIMER_LEFT_1=15,21 -PRIMER_RIGHT_1=216,20 -PRIMER_LEFT_1_TM=59.062 -PRIMER_RIGHT_1_TM=60.312 -PRIMER_LEFT_1_GC_PERCENT=47.619 -PRIMER_RIGHT_1_GC_PERCENT=55.000 +PRIMER_PAIR_0_PRODUCT_SIZE=204 +PRIMER_PAIR_1_PENALTY=3.136630 +PRIMER_LEFT_1_PENALTY=2.122953 +PRIMER_RIGHT_1_PENALTY=1.013677 +PRIMER_LEFT_1_SEQUENCE=atggatgccatcaatgacct +PRIMER_RIGHT_1_SEQUENCE=ggactgagctgttcgaggac +PRIMER_LEFT_1=15,20 +PRIMER_RIGHT_1=217,20 +PRIMER_LEFT_1_TM=57.877 +PRIMER_RIGHT_1_TM=61.014 +PRIMER_LEFT_1_GC_PERCENT=45.000 +PRIMER_RIGHT_1_GC_PERCENT=60.000 PRIMER_LEFT_1_SELF_ANY_TH=7.69 PRIMER_RIGHT_1_SELF_ANY_TH=0.00 PRIMER_LEFT_1_SELF_END_TH=0.00 @@ -1710,10 +1706,10 @@ PRIMER_LEFT_1_HAIRPIN_TH=41.92 PRIMER_RIGHT_1_HAIRPIN_TH=0.00 PRIMER_LEFT_1_END_STABILITY=3.8500 -PRIMER_RIGHT_1_END_STABILITY=4.0200 +PRIMER_RIGHT_1_END_STABILITY=3.8500 PRIMER_PAIR_1_COMPL_ANY_TH=0.00 PRIMER_PAIR_1_COMPL_END_TH=0.00 -PRIMER_PAIR_1_PRODUCT_SIZE=202 +PRIMER_PAIR_1_PRODUCT_SIZE=203 = SEQUENCE_ID=Pick start fixed left primer unique SEQUENCE_TEMPLATE=atggatttgatggacatggatgccatcaatgacctccacttctctggacacagctccctcaccaacacccctacttccgacgaggattatggttgcacctggaaccactggtctcccatcgtcaactgggacacctttacaggtgccccagatgactttcaccacctcatggacaccatcatcgaggacagaacaactgtcctcgaacagctcagtccatctatcaccacaaccaccaccaccaccacaaccacggatgaggaagaagaagaaatggaaacaacaaccacaacaacaacaacggcaataaaaacgcatgaagttggtgatgattcaaaagggctaaaactagtgcacctattgatggctggcgcggaagccttaaccggttcaaccaaaaaccgtgacttagctcgagtgatattgatccggctcaaggaattagtctcacaacatgctaacggctccaacatggagagacttgccgctcatttcaccgaagcccttcatggactactagaaggtgctgggggtgcgcataataaccaccatcaccacaacaacaacaaacattacctcaccacaaatggtccccacgacaaccaaaacgacacacttgctgctttccaactacttcaagacatgtcaccttacgtcaaattcggccacttcacagccaatcaagccatcatcgaagccgtggcccacgaacgccgcgtccatgtcatcgactacgatatcatggaaggggtccaatgggcctcattaatccaatcacttgcttccaacaacaacggtccacatcttcggataaccgcattatcgcggacaggaaccggccggaggtcaatcgccaccgtacaagaaaccggcaggcgattaacctcctttgccgcttccctcggacaaccattttcttttcatcactgcagattagactccgatgaaactttccgtccttctgcattaaagcttgtacgtggagaggctttggttttcaactgcatgctgaatttacctcaccttagttaccgtgcaccggaatcagttgcttcgtttttaaacggagcaaaaacgttgaatccaaagcttgtgacgttggttgaagaagaagttggttctgttattggtgggtttgtggaaaggttcatggactcacttcatcattattcagcggtttttgattcattggaggctggttttccgatgcagaaccgggcccggactttggtggagagggtattttttgggcctagaattgcaggctcgttgggccggatatatagaacgggtggtgaagaggagagaaggtcatggggggagtggttaggtgaggtagggtttaggggagttccggtgagctttgcaaatcattgtcaagcaaagctgttgttagggctttttaatgatgggtatagggttgaagaggtgggtgtgggtagtaataagttggtgttggattggaaatcaagacgtttgctttctgcttccctttggacttgttcttcttcagattctgatttatag diff -Nru primer3-2.3.7/test/thal_test.pl primer3-2.4.0/test/thal_test.pl --- primer3-2.3.7/test/thal_test.pl 2016-02-17 10:11:35.000000000 +0000 +++ primer3-2.4.0/test/thal_test.pl 2017-11-03 16:29:54.000000000 +0000 @@ -53,7 +53,7 @@ our %signo; -our $valgrind_exe = "/usr/local/bin/valgrind"; +our $valgrind_exe = "/usr/bin/valgrind"; our $valgrind_format; our $winFlag; our $exe = '../src/ntthal'; @@ -118,12 +118,18 @@ exit -1; } - if ((!-x $valgrind_exe) && ($do_valgrind)) { - warn "Cannot find $valgrind_exe; will try `which valgrind`\n"; - $valgrind_exe= `which valgrind`; - chomp($valgrind_exe); - if (!$valgrind_exe || ! -x $valgrind_exe) { - die "Cannot execute $valgrind_exe"; + if ($do_valgrind) { + if (!-x $valgrind_exe) { + print "Cannot find $valgrind_exe; will try `/usr/local/bin/valgrind`\n"; + $valgrind_exe = "/usr/local/bin/valgrind"; + } + if (!-x $valgrind_exe) { + warn "Cannot find $valgrind_exe; will try `which valgrind`\n"; + $valgrind_exe= `which valgrind`; + chomp($valgrind_exe); + if (!$valgrind_exe || ! -x $valgrind_exe) { + die "Cannot execute $valgrind_exe"; + } } } diff -Nru primer3-2.3.7/test/th-w-other-tasks_output primer3-2.4.0/test/th-w-other-tasks_output --- primer3-2.3.7/test/th-w-other-tasks_output 2016-02-17 10:11:37.000000000 +0000 +++ primer3-2.4.0/test/th-w-other-tasks_output 2017-11-03 16:29:54.000000000 +0000 @@ -10310,8 +10310,8 @@ SEQUENCE_TEMPLATE=GTAGTCAGTAGACATGACACTGACGATGCAGACNACACACACACACACAGCACACAGGTATTAGTGGGCCATTCGATCCCGACCCAAATCGATAGCTACGATGACG SEQUENCE_TARGET=37,21 PRIMER_PICK_ANYWAY=1 -PRIMER_LEFT_EXPLAIN=considered 3, too many Ns 3, overlap target 3, low tm 2, ok 3 -PRIMER_RIGHT_EXPLAIN=considered 3, overlap target 3, low tm 1, ok 3 +PRIMER_LEFT_EXPLAIN=considered 3, too many Ns 3, low tm 2, ok 3 +PRIMER_RIGHT_EXPLAIN=considered 3, low tm 3, ok 3 PRIMER_PAIR_EXPLAIN=considered 1, unacceptable product size 1, ok 0 PRIMER_LEFT_NUM_RETURNED=0 PRIMER_RIGHT_NUM_RETURNED=0 @@ -10322,8 +10322,8 @@ SEQUENCE_ID=pick_disc_primer_th_2 SEQUENCE_TEMPLATE=GANAATGCAGTAATGAGTTGGCAAATTATGAATCGCAATCAAATTTTTTCTATGACCTGATAGAAACGCCAACTCACTGTATGAGTCTGTTGTCAAAGTCTAACGTTGTCAAAGTCTATTCCAAAACGCAAAGCACGCTCCCGATC SEQUENCE_TARGET=37,21 -PRIMER_LEFT_EXPLAIN=considered 3, overlap target 3, low tm 3, ok 3 -PRIMER_RIGHT_EXPLAIN=considered 3, overlap target 3, low tm 2, ok 3 +PRIMER_LEFT_EXPLAIN=considered 3, low tm 3, ok 3 +PRIMER_RIGHT_EXPLAIN=considered 3, low tm 2, ok 3 PRIMER_PAIR_EXPLAIN=considered 1, unacceptable product size 1, ok 0 PRIMER_LEFT_NUM_RETURNED=0 PRIMER_RIGHT_NUM_RETURNED=0 diff -Nru primer3-2.3.7/test/th-w-other-tasks-settings.txt primer3-2.4.0/test/th-w-other-tasks-settings.txt --- primer3-2.3.7/test/th-w-other-tasks-settings.txt 2016-02-17 10:11:35.000000000 +0000 +++ primer3-2.4.0/test/th-w-other-tasks-settings.txt 2017-11-03 16:29:54.000000000 +0000 @@ -1,4 +1,4 @@ -Primer3 File - http://primer3.sourceforge.net +Primer3 File - http://primer3.org P3_FILE_TYPE=settings PRIMER_FIRST_BASE_INDEX=1