From: danj@WELCHGATE.WELCH.JHU.EDU (Dan Jacobson)
Newsgroups: bionet.software
Subject: Primer summary
Date: 13 Apr 92 15:52:43 GMT
Article-I.D.: welchgat.9204131552.AA11190
Distribution: bionet


I have had enough requests for information on the primer programs to warrant
a repost.  The string can pretty much be boiled down to what I`ve included here.  
The first two parts are descriptions of the two Primer programs that I know
one can obtain by ftp.  Most of the string was about the program available
from the Whitehead Institute (WI).  Note that this program is ftp`able only
as the C source code, last I checked there were not any execs on the WI server
(I checked Friday).  There are instructions on getting execs on a disk from
WI included in the first article.  Also included is a summary dealing with
the compilation of PRIMER on a Mac,  Bruce Roe was working with the authors
to make a Mac exec available by ftp but as of yet I haven't seen one so I
assume that it's still being worked on.

Hope this helps,

Dan Jacobson

danj@welchgate.welch.jhu.edu



--------------------------------------------------------------------------------

 
A request was made for a program which will design PCR primers.
I have included the README file from the PRIMER program available via anonymous
ftp from genome.wi.edu.  Instructions for obtaining the program on disks are
included in the appended information.  PRIMER comes with a pretty extensive man
ual and is pretty user friendly.  I'll leave the rest to the following file.

SIncerely,

Dan Jacobson
danj@jhuhyg.sph.jhu.edu

==========================================================================


PRIMER 0.5:   Questions and Answers

What exactly is PRIMER?

PRIMER is a computer program for automatically selecting PCR primers.  PRIMER te

PRIMER was written by Steve Lincoln, Mark Daly, and Eric Lander at the MIT Cente


What types of computers does PRIMER run on?

In short: just about anything which supports a standard C language compiler, inc

(1) IBM PC and compatibles.  A PC/AT (286) class machine or better with 640K of

(2) Apple Macintosh computers.  A Mac II series or SE/30 with a math coprocessor

(3) Most Unix workstations including Sun SPARCStation and DEC DECStation systems

(4) DEC VAX/VMS computers under VMS Version 5 with VAX C.

How do I get PRIMER?

PRIMER is available from a number of sources:

(A) You can get PRIMER from another user, provided you strictly follow the terms

(B) You can download the most recent version off the Internet via anonymous FTP

(C) You can send a request to:

"PRIMER c/o The Lander Lab,
Whitehead Institute/MIT
9 Cambridge Center, Cambridge, MA 02142.

Email to "primer@genome.wi.edu" (Internet),  or  FAX to 617-258-6505

Request a copy of PRIMER, specifying a 3 1/2" floppy disk for either SPARCStatio


Do I really need to compile PRIMER myself, and if so, how?

If you receive a ready-to-run version from us or another user, then you do not.

The C source code we distribute may be compiled using:

(1) Microsoft C 4.0 on IBM PC compatibles.  The file MAKEPC.BAT included execute

(2) Apple Macintosh computers with ThinkC 4.0.1.  A ThinkC project file has been

(3) DEC VAX/VMS computers under VAX C with VMS 5.x.  The file MAKEVAX.COM includ

may have to change the linking procedure depending on your system's configuratio

(4) Unix workstations including Sun SPARCStation and DEC DECStation Systems with

Before compiling the program, you may need to modify configuration information i


What's the fine print?

PRIMER and its documentation are copyright 1991 by the Whitehead Institute for B

PRIMER is available for free use for non-commercial purposes by basic research l

PRIMER may be freely redistributed to other scientists, provided that all of the

Primer is designed to select primers for PCR applications, although it may may a

PRIMER is supplied without any warranty or guaranteed support whatsoever.  The W



WHAT ARE ALL THESE FILES WHICH CAME WITH PRIMER?

They are:

File              Description
----              -----------
primer.c          PRIMER C Source Code
text.c            PRIMER C Source Code
primer.h          PRIMER C Source Code
sample.seq        Sample Input Sequence File
sample2.seq       Longer Sample Input Sequence File
standard.cri      Sample PCR Primer Criteria File
sample.rep        Sample Repeat Sequence File (Human Alu only)
mouse.rep         Sample Repeat Sequence File (Mouse Sequences)
rat.rep           Sample Repeat Sequence File (Rat Sequences)
human.rep         Sample Repeat Sequence File (Human Sequences)
manual.txt        PRIMER Manual text file (no line breaks)
manual.asc        PRIMER Manual text file (with line breaks)
readme.txt        This Document (text file, no line breaks)
readme.asc        This Document (text file, with line breaks)
makepc.bat        DOS Batch file to compile PRIMER
makevax.com       VAX/VMS Command file to compile PRIMER
makefile          Unix Makefile to compile PRIMER

Other files which may be included with specific versions include:

File              Description
----              -----------
primer            PRIMER Executable for Sun SPARCStations
primer.exe        PRIMER Executable for PC Compatibles
PRIMER            PRIMER Executable for Macintosh
PRIMER Manual     PRIMER Manual (Mac Microsoft Word 4.0 Format)
The PRIMER Manual PRIMER Manual (Macintosh Executable)
PRIMER README     This Document (Mac Microsoft Word 4.0 Format)
The PRIMER README This Document (Macintosh Executable)

Remember, to legally redistribute PRIMER to anyone else, you must give them unmo

-------------------------------------------
Steve Lincoln and Mark Daly
MIT Center for Genome Research
Whitehead Institute for Biomedical Research
9 Cambridge Center, Cambridge, MA  02142
primer@genome.wi.edu,  FAX:  617-258-6505
================================================================================
////////////////////////////////////////////////////////////////////////////////
================================================================================

A request was made for information about PCR Primer programs other than the
one from the Whitehead institute.  Well here's the readme file from the
other prgram availble over the net.  I have no information about the commercial
programs.

Sincerely,

Dan Jacobson

danj@jhuhyg.sph.jhu.edu

=======================================================================
The program 'primer' is written by Don Faulkner. It helps to find potential
mispriming sites (primer sequences should be designed before running the
program!).  The program allows to give higher weights to matches at the 3'
end of the primer, linearly decreasing them towards the 5' end (the default
is weight=10 for 3' nucleotide decreasing to 1 at nucleotide # 8 from the 3'
end). The program can be used when amplifying *long* fragments from a known
sequence.

The program is written in "C" and runs on Sun workstation (Unix).
To get the program running:
%ftp 36.45.0.126          or jmullins.stanford.edu
logon: anonymous
send your ID as a passwd
cd pub
set binary
get primer.tar
....
%tar xvf primer.tar
%make primer
%primer
... and you should get the sample run, presented below.

List of files:
-rw-rw-rw-  1 gene          532 Apr  8 18:33 Makefile
-rw-rw-rw-  1 gene         1527 Apr  8 17:25 backup.c
-rw-rw-rw-  1 gene        14226 Apr  8 17:16 clib.c
-rw-rw-rw-  1 gene         6174 May  7  1990 dynamic.c
-rw-rw-rw-  1 gene          208 May  7  1990 dynamic.h
-rw-rw-rw-  1 gene         2999 Apr  8 17:23 faulkn.h
-rw-rw-rw-  1 gene          208 May  7  1990 free.c
-rw-rw-rw-  1 gene         5328 May  7  1990 get-matrix.c
-rw-rw-rw-  1 gene          580 May  8  1990 hello.c
-rw-rw-rw-  1 gene         6679 Jun  5  1990 main.c
-rw-rw-rw-  1 gene          245 May  7  1990 matrix-test.c
-rw-rw-rw-  1 gene         8609 Apr  8 17:27 name-expander.c
-rw-rw-rw-  1 gene         1145 Apr  8 17:25 nread.c
-rw-rw-rw-  1 gene         4549 Apr  8 17:16 open_file.c
-rw-rw-rw-  1 gene         1629 May 11  1990 position-mat.c
-rw-rw-rw-  1 gene         8094 May 11  1990 rdseq.c



The file
-rw-r--r--  1 gene          229 Apr  8 18:16 matrix
has the following:
actg ; this is the character set
match = 2
close = match / 2
missm = -match
;a      c      t      g
 match  missm  missm  missm  ;a
 missm  match  missm  missm  ;c
 missm  missm  match  close  ;t
 missm  missm  close  match  ;g


These are sample files with several primer sequences and long template:
-rw-rw-rw-  1 gene           89 May 11  1990 3_primers
-rw-rw-rw-  1 gene        26769 May 11  1990 hxb-inv.seq
-rw-r--r--  1 gene           40 Apr  8 17:31 .primer

Sample run is below:

%primer
         *********************
         *                   *
         *  DYNAMIC PRIMERS  *
         *                   *
         *********************

Parameters for this search will be taken from
the previous one you made
OR you can specify new parameters.

Weighted search using the Dynamic Programming Algorighm

Gap Penalty, or <CR> for -2.000000 ->

LARGE sequence:
Enter name of file containing query
  sequence, or <CR> for hxb-inv.seq ->

Locus names in the file <hxb-inv.seq>:
                                        HXB2-INV

Enter locus name of query sequence, or <CR> for HXB2-INV ->


9719 bases found for locus HXB2-INV in file hxb-inv.seq


PRIMER sequence:
Enter name of file containing query
  sequence, or <CR> for 3_primers ->

Locus names in the file <3_primers>:
                                        sbc4
                                        sbc5
                                        sbc6

Enter locus name of query sequence, or <CR> for sbc4 ->


19 bases found for locus sbc4 in file 3_primers

Locus "HXB2-INV" (len = 9719) against "sbc4" (len = 19)

Position weighting matrix:
Default is  Val=1 from 5' end to position (length-8)
linearly increasing to Val=10 at the 3' end of the primer.
If you want to CHANGE it enter 'y'

Output file:
File to write to -> test
2391 maxima

#1 score  95.875, 1 gap
     4840 AATTTG-TTTTTGTAATTC
           ****.    *.*******
        1 CATTTTCCAATGGTAATTC

#2 score  95.125, 2 gaps
      671 CAGCTGCC--TTGTAAGTC
          **. *.**  *.****.**
        1 CATTTTCCAATGGTAATTC

#3 score  93.625, 4 gaps
     5058 GATTGT---A-GGGAATTC
           ***.*   * **.*****
        1 CATTTTCCAATGGTAATTC

#4 score  93.625, 4 gaps
     5008 AATTTT-C---TTTAATTC
           ***** *   ..******
        1 CATTTTCCAATGGTAATTC

#5 score  91.000, 3 gaps
     8876 TTTTTTCCCATCGATCTAATTC
   IT CHAR          ****** ** * . ******
        1 CATTTTCCAAT-G-G-TAATTC

#6 score  90.000, 5 gaps
     1156 CCTCGTTACAATCAAGAGTAAGTC
          * * .** ****   * ****.**
        1 CAT-TTTCCAAT---G-GTAATTC

#7 score  89.875, 3 gaps
     1493 C-TTGCCCATTTATCTAATTC
          * **. *** *. . ******
        1 CATTTTCCAATG-G-TAATTC

#8 score  89.250, 4 gaps
     6519 C-TGGT---GTGGTAAGTC
          * *..*    ******.**
        1 CATTTTCCAATGGTAATTC

#9 score  87.500, 3 gaps
     1577 C-TTGTGTAATTGTTAATTTC
          * **.*  ** **.*** ***
        1 CATTTTCCAA-TGGTAA-TTC

#10 score  87.375, 4 gaps
     6575 CTATGCTGCCCTATTTCTAAGTC
          * **. *. ** **.. ***.**
        1 C-ATT-TT-CCAATGG-TAATTC

#11 score  87.000, 5 gaps
     2724 GAGTTGATACTACTGGCCTAATTC
           * **. * * * ***  ******
        1 CA-TTT-T-CCAATGG--TAATTC

If you want to continue press 'y'
10 scores above threshold, 11 unique paths printed

Another PRIMER with sequence 'HXB2-INV' - press 'y'
If you want to INVERT the LARGE sequence - press 'i' i
Sequence 'HXB2-INV' has been inverted


PRIMER sequence:
Enter name of file containing query
  sequence, or <CR> for 3_primers ->

Locus names in the file <3_primers>:
                                        sbc4
                                        sbc5
                                        sbc6

Enter locus name of query sequence, or <CR> for sbc4 ->


19 bases found for locus sbc4 in file 3_primers

Locus "HXB2-INV_INVERTED" (len = 9719) against "sbc4" (len = 19)

Position weighting matrix:
Default is  Val=1 from 5' end to position (length-8)
linearly increasing to Val=10 at the 3' end of the primer.
If you want to CHANGE it enter 'y'

Output file: test
File exists: Overwrite, Append, Reenter,
    or Backup, or <CR> for Append ->
2372 maxima

#1 score 100.875, 0 gaps
     7365 AATTTTTCTACTGTAATTC
           ***** * * .*******
        1 CATTTTCCAATGGTAATTC

#2 score  93.500, 3 gaps
     9082 GACTGG--AAGGGCTAATTC
           * *..  **.** ******
        1 CATTTTCCAATGG-TAATTC

#3 score  92.500, 5 gaps
     4637 CA--GG--AATTTGGAATTC
          **  ..  ** *.*.*****
        1 CATTTTCCAA-TGGTAATTC

#4 score  89.625, 3 gaps
     8043 C-TGTGCC--TTGGAATGC
          * *.*.**  *.*.***.*
        1 CATTTTCCAATGGTAATTC

#5 score  89.500, 3 gaps
        1 ---TGG--AAGGGCTAATTC
             *..  **.** ******
        1 CATTTTCCAATGG-TAATTC

#6 score  83.625, 4 gaps
     8343 GAGTTAGGC-A-GGGATATTC
           *.** . * * **.* ****
        1 CATTT-TCCAATGGTA-ATTC

#7 score  81.375, 6 gaps
     2235 C-TGTATCC---TTTAACTTC
          * *.* ***   ..*** ***
        1 CATTT-TCCAATGGTAA-TTC

#8 score  80.500, 4 gaps
     5347 CA--GACCAA--CTAATTC
          **  . ****   ******
        1 CATTTTCCAATGGTAATTC

#9 score  80.375, 6 gaps
     2801 CAAGACTT-C--TGGGAAGTTC
          * *.  ** *  ***.** ***
        1 C-AT-TTTCCAATGGTAA-TTC

#10 score  80.000, 4 gaps
     2099 CTGGCCTTCCTACAAGGGAAGGC
          * ..  **** * * **.**..*
        1 CATT--TTCC-A-ATGGTAATTC

#11 score  79.125, 4 gaps
     3335 AAATTG--AATTGGGCAAGTC
           * **.  ** ***. **.**
        1 CATTTTCCAA-TGGT-AATTC

If you want to continue press 'y'
10 scores above threshold, 11 unique paths printed

Another PRIMER with sequence 'HXB2-INV_INVERTED' - press 'y'
If you want to INVERT the LARGE sequence - press 'i'
-------------- end of sample run ----------------------------
================================================================================
///////////////////////////////////////////////////////////////////////////////
================================================================================

G'day netfolk,

Recently, I asked if anybody could compile PRIMER with Turbo C++,
because I couldn't.  Thank you to those kind folk who answered.  I'll
summarize the responses here, for those who are interested.  For those
who aren't, it's "hit the N key time".

The general consensus is that the problem is with MS-DOS' 640 K RAM
limit, and PRIMER assuming that either the memory was there or
virtual.  I verified this by getting PRIMER to compile and work on our
microVAX.

========
Dr Ernst Molitor (UMT602@DBNRHRZ1.bitnet) writes...

Investigating into the source code, I found that the calls to malloc() 
(memory allocation) are done without checking the result (that is, without 
checking if the memory requested could really be allocated at run time). This 
seems to be a common habit of programmers who are lucky enough to use 
operating systems with virtual memory, which really cannot run out of RAM 
(because swapping of RAM pages to disk, controlled by the operating system, 
prevents this).

I have introduced some checks (malloc() will return NULL in case the RAM 
requested could not be found) and could run the program - only to receive the 
"OUT OF RAM" message I had prepared in the checks introduced. Obviously, 
PRIMER needs quite a lot of RAM to work properly.

As a remedy, I can offer two alternatives:

Either use ZORTECH's C++ compiler V. 3.0, which comes with a DOS extender 
providing access to RAM above 640k without too much pain (works with 80286 or 
above, only), or use DJ Delorie's port of GNU gcc/gpp to MS-DOS (or DR-DOS) 
(works with 80386 or above, only). The latter compiler is free and offers 
support for up to 128MByte of RAM AND 128MByte of virtual memory (by swapping 
to disk as soon as necessary - automatically, without any work by the 
programmer).

=========
Carl-Georg Meinhoff (meinhoff@sun1.ruf.uni-freiburg.de) writes:

I had the same problem. The reason for the crash is that PRIMER
mallocs memory without checking if it got what it asked for. It then
proceeds to write into this presumed memory, which of course is 
asking for trouble. 
If you fiddle with the #defines in the header file (NUM_GLOBAL_STRINGS 
for instance) so that not to much memory is allocated, you can get it to 
run without modifying anything else in the source. It might be easier
though to introduce checks for valid pointers before the program attempts 
to write to them. That is how I found the optimal settings for the
#defines without having to go through a lot of crashes.

========
David R Pratt (an88003@mdacc.mda.uth.tmc.edu) writes:

I've been able to get primer to compile under Borland turboC++ by defining
SMALL and by cutting some of the global arrays in half.It basically only runs
from a dos prompt w/o any tsr's loaded(I have about 629k w/ DOS 5.0).It won't
run from inside the IDE at all (only have 350K free here).I think the use of
memory in this program is needs some adjustments!There are many mallacs w/o
any checks to see if the memory is really available.It may be marching right
over the operating system.Hope this helps some.My real challenge is to get it
running under windows...no luck yet.

=========

Thanks, again folks,


cheers,  John.

Dr. John Nash,                       | 
Cell Systems Section,                | Email:
Institute for Biological Sciences,   | Preferred: John.Nash@NRC.CA
National Research Council of Canada, | or       : num208jn@mbds.nrc.ca
Ottawa, Ontario, Canada.             |
      ==>  Disclaimer:  All opinions are mine, not NRC's!  <==
================================================================================
///////////////////////////////////////////////////////////////////////////////
================================================================================

To follow up and keep everyone informed as to what's going
on with the Mac executables for the Whitehead Institute's 
Primer program,  I've contacted them (Steve Lincoln) and
have ftp's my compiled executables and slightly modified
source to him.  He's going to check them out for System7
compatability, because I compiled the programs using ThinkC
version 4.02, and once everything is fine he'll place the
primer_sit.hqx file on genome.wi.edu for anonymous ftp.

 /o o\   \ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\
   o      X  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X
  \O/    / \/ \/ \/ \/ Bruce Roe, Dept. Chem & Biochem, Univ. Oklahoma
 	 	                        BROE@aardvark.ucs.uoknor.edu
Newsgroups: bionet.software