| primersearch

## Wiki

The master copies of EMBOSS documentation are available at http://emboss.open-bio.org/wiki/Appdocs on the EMBOSS Wiki.

Please help by correcting and extending the Wiki pages.

## Function

Search DNA sequences for matches with primer pairs

## Description

primersearch reads in primer pairs from an input file and searches them against DNA sequence(s) specified by the user. Each of the primers in a pair is searched against the sequence and potential amplimers are reported. The output file is in the format of Whitehead primer3_core program. The user can specify a maximum percent mismatch level; for example, 10% mismatch on a primer of length 20bp means that the program will classify a primer as matching a sequence if 18 of the 20 base pairs matches. It will only report matches if both primers in the pair have a match in opposite orientations.

## Algorithm

Each primer pair is specified in the input file by a name, followed by two primer sequences, primerA and primerB. The program first compares primerA to the forward strand and if it matches, primerB is compared to the reverse strand. The approach is then reversed, with the primerB being compared to the forward strand and primerA to the reverse. In this way all possible amplimers are reported.

## Usage

Here is a sample session with primersearch

    % primersearch tembl:z52466
    Search DNA sequences for matches with primer pairs
    Primer pairs file: primers
    Allowed percent mismatch [0]:
    Whitehead primer3_core program output file [z52466.primersearch]:

Go to the input files for this example
Go to the output files for this example

Example 2

Here we run the same example but allowing 20% mismatch between the primers and the sequence:

    % primersearch tembl:z52466
    Search DNA sequences for matches with primer pairs
    Primer pairs file: primers
    Allowed percent mismatch [0]: 20
    Whitehead primer3_core program output file [z52466.primersearch]:

Go to the output files for this example

## Command line arguments

    Search DNA sequences for matches with primer pairs
    Version: EMBOSS:6.6.0.0

       Standard (Mandatory) qualifiers:
      [-seqall]            seqall     Nucleotide sequence(s) filename and optional
                                      format, or reference (input USA)
      [-infile]            infile     Primer pairs file
      [-mismatchpercent]   integer    [0] Allowed percent mismatch (Any integer
                                      value)
      [-outfile]           outfile    [*.primersearch] Whitehead primer3_core
                                      program output file

       Additional (Optional) qualifiers: (none)
       Advanced (Unprompted) qualifiers: (none)
       Associated qualifiers:

       "-seqall" associated qualifiers
       -sbegin1            integer    Start of each sequence to be used
       -send1              integer    End of each sequence to be used
       -sreverse1          boolean    Reverse (if DNA)
       -sask1              boolean    Ask for begin/end/reverse
       -snucleotide1       boolean    Sequence is nucleotide
       -sprotein1          boolean    Sequence is protein
       -slower1            boolean    Make lower case
       -supper1            boolean    Make upper case
       -scircular1         boolean    Sequence is circular
       -squick1            boolean    Read id and sequence only
       -sformat1           string     Input sequence format
       -iquery1            string     Input query fields or ID list
       -ioffset1           integer    Input start position offset
       -sdbname1           string     Database name
       -sid1               string     Entryname
       -ufo1               string     UFO features
       -fformat1           string     Features format
       -fopenfile1         string     Features file name

       "-outfile" associated qualifiers
       -odirectory4        string     Output directory

       General qualifiers:
       -auto               boolean    Turn off prompts
       -stdout             boolean    Write first file to standard output
       -filter             boolean    Read first file from standard input, write
                                      first file to standard output
       -options            boolean    Prompt for standard and additional values
       -debug              boolean    Write debug output to program.dbg
       -verbose            boolean    Report some/full command line options
       -help               boolean    Report command line options and exit. More
                                      information on associated and general
                                      qualifiers can be found with -help -verbose
       -warning            boolean    Report warnings
       -error              boolean    Report errors
       -fatal              boolean    Report fatal errors
       -die                boolean    Report dying program messages
       -version            boolean    Report version number and exit

Qualifier | Type | Description | Allowed values | Default
--- | --- | --- | --- | ---
Standard (Mandatory) qualifiers
[-seqall] (Parameter 1) | seqall | Nucleotide sequence(s) filename and optional format, or reference (input USA) | Readable sequence(s) | Required
[-infile] (Parameter 2) | infile | Primer pairs file | Input file | Required
[-mismatchpercent] (Parameter 3) | integer | Allowed percent mismatch | Any integer value | 0
[-outfile] (Parameter 4) | outfile | Whitehead primer3_core program output file | Output file | <*>.primersearch
Additional (Optional) qualifiers
(none)
Advanced (Unprompted) qualifiers
(none)
Associated qualifiers
"-seqall" associated seqall qualifiers
-sbegin1 -sbegin_seqall | integer | Start of each sequence to be used | Any integer value | 0
-send1 -send_seqall | integer | End of each sequence to be used | Any integer value | 0
-sreverse1 -sreverse_seqall | boolean | Reverse (if DNA) | Boolean value Yes/No | N
-sask1 -sask_seqall | boolean | Ask for begin/end/reverse | Boolean value Yes/No | N
-snucleotide1 -snucleotide_seqall | boolean | Sequence is nucleotide | Boolean value Yes/No | N
-sprotein1 -sprotein_seqall | boolean | Sequence is protein | Boolean value Yes/No | N
-slower1 -slower_seqall | boolean | Make lower case | Boolean value Yes/No | N
-supper1 -supper_seqall | boolean | Make upper case | Boolean value Yes/No | N
-scircular1 -scircular_seqall | boolean | Sequence is circular | Boolean value Yes/No | N
-squick1 -squick_seqall | boolean | Read id and sequence only | Boolean value Yes/No | N
-sformat1 -sformat_seqall | string | Input sequence format | Any string |
-iquery1 -iquery_seqall | string | Input query fields or ID list | Any string |
-ioffset1 -ioffset_seqall | integer | Input start position offset | Any integer value | 0
-sdbname1 -sdbname_seqall | string | Database name | Any string |
-sid1 -sid_seqall | string | Entryname | Any string |
-ufo1 -ufo_seqall | string | UFO features | Any string |
-fformat1 -fformat_seqall | string | Features format | Any string |
-fopenfile1 -fopenfile_seqall | string | Features file name | Any string |
"-outfile" associated outfile qualifiers
-odirectory4 -odirectory_outfile | string | Output directory | Any string |
General qualifiers
-auto | boolean | Turn off prompts | Boolean value Yes/No | N
-stdout | boolean | Write first file to standard output | Boolean value Yes/No | N
-filter | boolean | Read first file from standard input, write first file to standard output | Boolean value Yes/No | N
-options | boolean | Prompt for standard and additional values | Boolean value Yes/No | N
-debug | boolean | Write debug output to program.dbg | Boolean value Yes/No | N
-verbose | boolean | Report some/full command line options | Boolean value Yes/No | Y
-help | boolean | Report command line options and exit. More information on associated and general qualifiers can be found with -help -verbose | Boolean value Yes/No | N
-warning | boolean | Report warnings | Boolean value Yes/No | Y
-error | boolean | Report errors | Boolean value Yes/No | Y
-fatal | boolean | Report fatal errors | Boolean value Yes/No | Y
-die | boolean | Report dying program messages | Boolean value Yes/No | Y
-version | boolean | Report version number and exit | Boolean value Yes/No | N

## Input file format

primersearch reads in one or more nucleotide sequences.

The input is a standard EMBOSS sequence query (also known as a 'USA').

Major sequence database sources defined as standard in EMBOSS installations include srs:embl, srs:uniprot and ensembl

Data can also be read from sequence output in any supported format written by an EMBOSS or third-party application.

The input format can be specified by using the command-line qualifier `-sformat xxx`, where 'xxx' is replaced by the name of the required format. The available format names are: gff (gff3), gff2, embl (em), genbank (gb, refseq), ddbj, refseqp, pir (nbrf), swissprot (swiss, sw), dasgff and debug.

See: http://emboss.sf.net/docs/themes/SequenceFormats.html for further information on sequence formats.

### Input files for usage example

'tembl:z52466' is a sequence entry in the example nucleic acid database 'tembl'

### File: primers

    # This is my primer file
    D1S243  cacacaggctcacatgcc      gctccagcgtcatggact
    D1S468 aattaaccgttttggtcct     gcgacacacacttccc
    D1S2845 ccaaagggtgcttctc        gtggcattccaacctc
    D1S1608 gatggcttttggggactatt    cactgagccaagtgacacag
    D1S2893 aaaacatcaactctcccctg    ctcaaaccccaataagcctt
    D1S2660 cacacatgcacatgcac       agtgacaccagcaggg

### Database entry: tembl:z52466

    ID   Z52466; SV 1; linear; genomic DNA; STS; HUM; 389 BP.
    XX
    AC   Z52466;
    XX
    DT   18-MAR-1996 (Rel. 47, Created)
    DT   09-SEP-2004 (Rel. 81, Last updated, Version 4)
    XX
    DE   H.sapiens (D1S2660) DNA segment containing (CA) repeat; clone AFMa203yc1;
    DE   single read.
    XX
    KW   CA repeat; dinucleotide repeat; GT repeat; microsatellite DNA;
    KW   microsatellite marker; repeat polymorphism; STS.
    XX
    OS   Homo sapiens (human)
    OC   Eukaryota; Metazoa; Chordata; Craniata; Vertebrata; Euteleostomi; Mammalia;
    OC   Eutheria; Euarchontoglires; Primates; Haplorrhini; Catarrhini; Hominidae;
    OC   Homo.
    XX
    RN   [1]
    RP   1-389
    RA   Weissenbach J.;
    RT   ;
    RL   Submitted (01-SEP-1995) to the INSDC.
    RL   Genethon, B.P. 60, 91002 Evry Cedex France. E-mail:
    RL   Jean.Weissenbach@genethon.fr
    XX
    RN   [2]
    RP   1-389
    RX   DOI; 10.1038/380152a0.
    RX   PUBMED; 8600387.
    RA   Dib C., Faure S., Fizames C., Samson D., Drouot N., Vignal A.,
    RA   Millasseau P., Marc S., Hazan J., Seboun E., Lathrop M., Gyapay G.,
    RA   Morissette J., Weissenbach J.;
    RT   "A comprehensive genetic map of the human genome based on 5,264
    RT   microsatellites";
    RL   Nature 380(6570):152-154(1996).
    XX
    DR   GDB; 606855.
    XX
    CC   full automatic;
    XX
    FH   Key             Location/Qualifiers
    FH
    FT   source          1..389
    FT                   /organism="Homo sapiens"
    FT                   /chromosome="1"
    FT                   /mol_type="genomic DNA"
    FT                   /clone_lib="genomic DNA"
    FT                   /cell_line="CEPH 134702"
    FT                   /note="cloning vector is M13mp18"
    FT                   /db_xref="taxon:9606"
    XX
    SQ   Sequence 389 BP; 118 A; 124 C; 86 G; 57 T; 4 other;
         agctgtgtgc acacaacatg anggggcaca catgcacatg cacacatgcc cacatgcata        60
         tgcacacaca cacacacaca cacacacaca ttcatgccca agcacgccca ccctcatgtc       120
         tcaccatgtg cacataacac acagtcacat ataccctggc acacatgccc acatgcagac       180
         acgaaacaca ggcccacgnt tncatgcaca caggtatggg cacacatacc atgcacacat       240
         aangacaaat accaggccag acatgatttg cccctgctgg tgtcactgtt aagtgtgaca       300
         gacaagcaga ggacacacac ccacctggga cgcggggctt caggagagag gcagacctaa       360
         tagggcccgg attcggggct ggggaggct                                         389
    //

The input primer file has the following format:

Comment lines start with a '#'
Lines with primer information have three fields separated by spaces or TAB characters. The columns contain:

1. The name of the primer pair - this is reported in the output.
2. The sequence of the first primer.
3. The sequence of the second primer.

Empty files will cause primersearch to note that no primers have been found, and to exit.

## Output file format

### Output files for usage example

### File: z52466.primersearch

    Primer name D1S243

    Primer name D1S468

    Primer name D1S2845

    Primer name D1S1608

    Primer name D1S2893

    Primer name D1S2660
    Amplimer 1
    	Sequence: Z52466 Z52466
    	H.sapiens (D1S2660) DNA segment containing (CA) repeat; clone AFMa203yc1; single read.
    	CACACATGCACATGCAC hits forward strand at 27 with 0 mismatches
    	AGTGACACCAGCAGGG hits reverse strand at [103] with 0 mismatches
    	Amplimer length: 261 bp

### Output files for usage example 2

### File: z52466.primersearch

    Primer name D1S243

    Primer name D1S468

    Primer name D1S2845

    Primer name D1S1608

    Primer name D1S2893

    Primer name D1S2660
    Amplimer 1
    	Sequence: Z52466 Z52466
    	H.sapiens (D1S2660) DNA segment containing (CA) repeat; clone AFMa203yc1; single read.
    	CACACATGCACATGCAC hits forward strand at 49 with 2 mismatches
    	AGTGACACCAGCAGGG hits reverse strand at [103] with 0 mismatches
    	Amplimer length: 239 bp
    Amplimer 2
    	Sequence: Z52466 Z52466
    	H.sapiens (D1S2660) DNA segment containing (CA) repeat; clone AFMa203yc1; single read.
    	CACACATGCACATGCAC hits forward strand at 27 with 0 mismatches
    	AGTGACACCAGCAGGG hits reverse strand at [103] with 0 mismatches
    	Amplimer length: 261 bp

## Data files

None.

## Notes

Every potential amplimer will be reported; if one primer matches the forward strand twice and the other matches the reverse strand only once, two potential amplimers are reported. If the reverse primer matches twice, four potential amplimers are reported.

## References

None.

## Warnings

This program is processor-intensive. You should probably not use it, for example, to search the whole of EMBL or even the human section of EMBL. It will take longer with more primer pairs and if mismatches are allowed.

## Diagnostic Error Messages

"No suitable primers found - exiting" means that either the primers file was empty or there were no compilable primer pairs contained in it.

## Exit status

It always exits with status 0

## Known bugs

None.

## See also

Program name | Description
--- | ---
eprimer3 | Pick PCR primers and hybridization oligos
eprimer32 | Pick PCR primers and hybridization oligos
stssearch | Search a DNA database for matches with a set of STS primers

stssearch does something similar, but doesn't allow you to find mismatches and will report any match in any orientation and doesn't require you to have both primers matching.

## Author(s)

Val Curwen formerly at:
Sanger Institute, Wellcome Trust Genome Campus, Hinxton, Cambridge, CB10 1SA, UK.

Please report all bugs to the EMBOSS bug team (emboss-bug © emboss.open-bio.org) not to the original author.

## History

Written Aug 2000 - Val Curwen

## Target users

This program is intended to be used by everyone and everything, from naive users to embedded scripts.

## Comments

None