| est2genome

## 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

Align EST sequences to genomic DNA sequence

## Description

est2genome aids the prediction of genes by sequence homology. It aligns a set of spliced nucleotide sequences (ESTs cDNAs or mRNAs) to an unspliced genomic DNA sequence, inserting introns of arbitrary length when needed. Where feasible introns start and stop at the splice consensus dinucleotides GT and AG.

By default, est2genome makes three alignments: First it compares both strands of the spliced sequence against the forward strand of the genomic sequence, assuming the splice consensus GT/AG (ie in the forward gene direction). The maximum-scoring orientation is then realigned assuming the splice consensus CT/AC (ie in the reversed gene direction). By default, only the overall maximum-scoring alignment is reported, and then if it scores higher than a specific minimum threshold score. Optionally, all comparisons may be reported.

The program outputs a list of the exons and introns it has found. The format is like that of MSPcrunch, ie a list of matching segments. This format is easy to parse into other software. The program also indicates, based on the splice site information, the gene's predicted direction of transcription. Optionally the full sequence alignment is printed as well.

## Algorithm

The program uses a linear-space divide-and-conquer strategy (Myers and Miller, 1988; Huang, 1994) to limit memory use: 1. A first pass Smith-Waterman local alignment scan is done to find the start, end and score of the maximally scoring segments (including introns of course). No other alignment information is retained. 2. Subsequences corresponding to these segments are extracted 3a. If the product of the subsequences' lengths is less than a user-defined threshold (`-space` parameter), i.e. they will fit in memory, the segments are realigned using the Needleman-Wunsch global alignment algorithm, which will give the same result as the Smith-Waterman since the subsequences are guaranteed to align end-to-end. 3b. If the product of the lengths exceeds the threshold (a full alignment will not fit in memory) the alignment is made recursively by splitting the spliced (EST) sequence in half and finding the genome sequence position which aligns with the EST mid-point. The process is repeated until the product of the lengths is less than the threshold. The problem reduces to aligning the left-hand and right-hand portions of the sequences separately and merging the result. 4. The genome sequence is searched against the forward and reverse strands of the spliced (EST) sequence, assuming a forward gene splicing direction (i.e. `GT/AG` consensus). 5. Then the best-scoring orientation is realigned assuming reverse splicing (`CT/AC` consensus). The overall best alignment is reported. The worst-case run-time for the algorithm is about 3 times as long as would be taken to align using a quadratic-space program. In practice the maximal-scoring segment is often much shorter than the full genome length so the program runs only about 1.5 times slower.

The algorithm has the following steps:

1. A first-pass Smith-Waterman scan is done to locate the score, start and end of the maximal scoring segment (including introns of course). No other alignment information is retained.
2. Subsequences corresponding to the maximal-scoring segments are extracted. If the product of these subsequences' lengths is less than the area parameter then the segments are re-aligned using the Needleman-Wunsch algorithm, which in this instance will give the same result as the Smith-Waterman since they are guaranteed to align end-to-end.
3. If the product of lengths exceeds the area threshold then the alignment is recursively broken down by splitting the EST in half and finding the genome position which aligns with the EST mid-point. The problem then reduces to aligning the left-hand and right-hand portions of the sequences separately and merging the result.

The worst-case run-time for the algorithm is about 3 times as long as would be taken to align using a quadratic-space program. In practice the maximal-scoring segment is often much shorter than the full genome length so the program runs only about 1.5 times slower.

## Usage

Here is a sample session with est2genome

    % est2genome
    Align EST sequences to genomic DNA sequence
    Spliced EST nucleotide sequence(s): tembl:h45989
    Unspliced genomic nucleotide sequence: tembl:z69719
    Output file [h45989.est2genome]:

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

## Command line arguments

    Align EST sequences to genomic DNA sequence
    Version: EMBOSS:6.6.0.0

       Standard (Mandatory) qualifiers:
      [-estsequence]       seqall     Spliced EST nucleotide sequence(s)
      [-genomesequence]    sequence   Unspliced genomic nucleotide sequence
      [-outfile]           outfile    [*.est2genome] Output file name

       Additional (Optional) qualifiers:
       -match              integer    [1] Score for matching two bases (Any
                                      integer value)
       -mismatch           integer    [1] Cost for mismatching two bases (Any
                                      integer value)
       -gappenalty         integer    [2] Cost for deleting a single base in
                                      either sequence, excluding introns (Any
                                      integer value)
       -intronpenalty      integer    [40] Cost for an intron, independent of
                                      length. (Any integer value)
       -splicepenalty      integer    [20] Cost for an intron, independent of
                                      length and starting/ending on donor-acceptor
                                      sites (Any integer value)
       -minscore           integer    [30] Exclude alignments with scores below
                                      this threshold score. (Any integer value)

       Advanced (Unprompted) qualifiers:
       -reverse            boolean    Reverse the orientation of the EST sequence
       -[no]usesplice      boolean    [Y] Use donor and acceptor splice sites. If
                                      you want to ignore donor-acceptor sites then
                                      set this to be false.
       -mode               menu       [both] This determines the comparison mode.
                                      The default value is 'both', in which case
                                      both strands of the est are compared
                                      assuming a forward gene direction (ie GT/AG
                                      splice sites), and the best comparison
                                      redone assuming a reversed (CT/AC) gene
                                      splicing direction. The other allowed modes
                                      are 'forward', when just the forward strand
                                      is searched, and 'reverse', ditto for the
                                      reverse strand. (Values: both (Both
                                      strands); forward (Forward strand only);
                                      reverse (Reverse strand only))
       -[no]best           boolean    [Y] You can print out all comparisons
                                      instead of just the best one by setting this
                                      to be false.
       -space              float      [10.0] For linear-space recursion. If
                                      product of sequence lengths divided by 4
                                      exceeds this then a divide-and-conquer
                                      strategy is used to control the memory
                                      requirements. In this way very long
                                      sequences can be aligned.
                                      If you have a machine with plenty of memory
                                      you can raise this parameter (but do not
                                      exceed the machine's physical RAM) (Any
                                      numeric value)
       -shuffle            integer    [0] Shuffle (Any integer value)
       -seed               integer    [20825] Random number seed (Any integer
                                      value)
       -align              boolean    Show the alignment. The alignment includes
                                      the first and last 5 bases of each intron,
                                      together with the intron width. The
                                      direction of splicing is indicated by angle
                                      brackets (forward or reverse) or ????
                                      (unknown).
       -width              integer    [50] Alignment width (Any integer value)

       Associated qualifiers:

       "-estsequence" 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

       "-genomesequence" associated qualifiers
       -sbegin2            integer    Start of the sequence to be used
       -send2              integer    End of the sequence to be used
       -sreverse2          boolean    Reverse (if DNA)
       -sask2              boolean    Ask for begin/end/reverse
       -snucleotide2       boolean    Sequence is nucleotide
       -sprotein2          boolean    Sequence is protein
       -slower2            boolean    Make lower case
       -supper2            boolean    Make upper case
       -scircular2         boolean    Sequence is circular
       -squick2            boolean    Read id and sequence only
       -sformat2           string     Input sequence format
       -iquery2            string     Input query fields or ID list
       -ioffset2           integer    Input start position offset
       -sdbname2           string     Database name
       -sid2               string     Entryname
       -ufo2               string     UFO features
       -fformat2           string     Features format
       -fopenfile2         string     Features file name

       "-outfile" associated qualifiers
       -odirectory3        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
[-estsequence] (Parameter 1) | seqall | Spliced EST nucleotide sequence(s) | Readable sequence(s) | Required
[-genomesequence] (Parameter 2) | sequence | Unspliced genomic nucleotide sequence | Readable sequence | Required
[-outfile] (Parameter 3) | outfile | Output file name | Output file | <*>.est2genome
Additional (Optional) qualifiers
-match | integer | Score for matching two bases | Any integer value | 1
-mismatch | integer | Cost for mismatching two bases | Any integer value | 1
-gappenalty | integer | Cost for deleting a single base in either sequence, excluding introns | Any integer value | 2
-intronpenalty | integer | Cost for an intron, independent of length. | Any integer value | 40
-splicepenalty | integer | Cost for an intron, independent of length and starting/ending on donor-acceptor sites | Any integer value | 20
-minscore | integer | Exclude alignments with scores below this threshold score. | Any integer value | 30
Advanced (Unprompted) qualifiers
-reverse | boolean | Reverse the orientation of the EST sequence | Boolean value Yes/No | No
-[no]usesplice | boolean | Use donor and acceptor splice sites. If you want to ignore donor-acceptor sites then set this to be false. | Boolean value Yes/No | Yes

-mode

list

This determines the comparison mode. The default value is 'both', in which case both strands of the est are compared assuming a forward gene direction (ie GT/AG splice sites), and the best comparison redone assuming a reversed (CT/AC) gene splicing direction. The other allowed modes are 'forward', when just the forward strand is searched, and 'reverse', ditto for the reverse strand.

both | (Both strands)
forward | (Forward strand only)
reverse | (Reverse strand only)

both

-[no]best | boolean | You can print out all comparisons instead of just the best one by setting this to be false. | Boolean value Yes/No | Yes
-space | float | For linear-space recursion. If product of sequence lengths divided by 4 exceeds this then a divide-and-conquer strategy is used to control the memory requirements. In this way very long sequences can be aligned. If you have a machine with plenty of memory you can raise this parameter (but do not exceed the machine's physical RAM) | Any numeric value | 10.0
-shuffle | integer | Shuffle | Any integer value | 0
-seed | integer | Random number seed | Any integer value | 20825
-align | boolean | Show the alignment. The alignment includes the first and last 5 bases of each intron, together with the intron width. The direction of splicing is indicated by angle brackets (forward or reverse) or ???? (unknown). | Boolean value Yes/No | No
-width | integer | Alignment width | Any integer value | 50
Associated qualifiers
"-estsequence" associated seqall qualifiers
-sbegin1 -sbegin_estsequence | integer | Start of each sequence to be used | Any integer value | 0
-send1 -send_estsequence | integer | End of each sequence to be used | Any integer value | 0
-sreverse1 -sreverse_estsequence | boolean | Reverse (if DNA) | Boolean value Yes/No | N
-sask1 -sask_estsequence | boolean | Ask for begin/end/reverse | Boolean value Yes/No | N
-snucleotide1 -snucleotide_estsequence | boolean | Sequence is nucleotide | Boolean value Yes/No | N
-sprotein1 -sprotein_estsequence | boolean | Sequence is protein | Boolean value Yes/No | N
-slower1 -slower_estsequence | boolean | Make lower case | Boolean value Yes/No | N
-supper1 -supper_estsequence | boolean | Make upper case | Boolean value Yes/No | N
-scircular1 -scircular_estsequence | boolean | Sequence is circular | Boolean value Yes/No | N
-squick1 -squick_estsequence | boolean | Read id and sequence only | Boolean value Yes/No | N
-sformat1 -sformat_estsequence | string | Input sequence format | Any string |
-iquery1 -iquery_estsequence | string | Input query fields or ID list | Any string |
-ioffset1 -ioffset_estsequence | integer | Input start position offset | Any integer value | 0
-sdbname1 -sdbname_estsequence | string | Database name | Any string |
-sid1 -sid_estsequence | string | Entryname | Any string |
-ufo1 -ufo_estsequence | string | UFO features | Any string |
-fformat1 -fformat_estsequence | string | Features format | Any string |
-fopenfile1 -fopenfile_estsequence | string | Features file name | Any string |
"-genomesequence" associated sequence qualifiers
-sbegin2 -sbegin_genomesequence | integer | Start of the sequence to be used | Any integer value | 0
-send2 -send_genomesequence | integer | End of the sequence to be used | Any integer value | 0
-sreverse2 -sreverse_genomesequence | boolean | Reverse (if DNA) | Boolean value Yes/No | N
-sask2 -sask_genomesequence | boolean | Ask for begin/end/reverse | Boolean value Yes/No | N
-snucleotide2 -snucleotide_genomesequence | boolean | Sequence is nucleotide | Boolean value Yes/No | N
-sprotein2 -sprotein_genomesequence | boolean | Sequence is protein | Boolean value Yes/No | N
-slower2 -slower_genomesequence | boolean | Make lower case | Boolean value Yes/No | N
-supper2 -supper_genomesequence | boolean | Make upper case | Boolean value Yes/No | N
-scircular2 -scircular_genomesequence | boolean | Sequence is circular | Boolean value Yes/No | N
-squick2 -squick_genomesequence | boolean | Read id and sequence only | Boolean value Yes/No | N
-sformat2 -sformat_genomesequence | string | Input sequence format | Any string |
-iquery2 -iquery_genomesequence | string | Input query fields or ID list | Any string |
-ioffset2 -ioffset_genomesequence | integer | Input start position offset | Any integer value | 0
-sdbname2 -sdbname_genomesequence | string | Database name | Any string |
-sid2 -sid_genomesequence | string | Entryname | Any string |
-ufo2 -ufo_genomesequence | string | UFO features | Any string |
-fformat2 -fformat_genomesequence | string | Features format | Any string |
-fopenfile2 -fopenfile_genomesequence | string | Features file name | Any string |
"-outfile" associated outfile qualifiers
-odirectory3 -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

est2genome reads two nucleotide sequences. The first is an EST sequence (a single read or a finished cDNA). The second is a genomic finished sequence.

### Input files for usage example

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

### Database entry: tembl:h45989

    ID   H45989; SV 1; linear; mRNA; EST; HUM; 495 BP.
    XX
    AC   H45989;
    XX
    DT   18-NOV-1995 (Rel. 45, Created)
    DT   04-MAR-2000 (Rel. 63, Last updated, Version 2)
    XX
    DE   yo13c02.s1 Soares adult brain N2b5HB55Y Homo sapiens cDNA clone
    DE   IMAGE:177794 3', mRNA sequence.
    XX
    KW   EST.
    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-495
    RA   Hillier L., Clark N., Dubuque T., Elliston K., Hawkins M., Holman M.,
    RA   Hultman M., Kucaba T., Le M., Lennon G., Marra M., Parsons J., Rifkin L.,
    RA   Rohlfing T., Soares M., Tan F., Trevaskis E., Waterston R., Williamson A.,
    RA   Wohldmann P., Wilson R.;
    RT   "The WashU-Merck EST Project";
    RL   Unpublished.
    XX
    DR   GDB; 3839990.
    DR   GDB; 4193257.
    DR   UNILIB; 555; 300.
    XX
    CC   On May 8, 1995 this sequence version replaced gi:800819.
    CC   Contact: Wilson RK
    CC   Washington University School of Medicine
    CC   4444 Forest Park Parkway, Box 8501, St. Louis, MO 63108
    CC   Tel: 314 286 1800
    CC   Fax: 314 286 1810
    CC   Email: est@watson.wustl.edu
    CC   Insert Size: 544
    CC   High quality sequence stops: 265
    CC   Source: IMAGE Consortium, LLNL
    CC   This clone is available royalty-free through LLNL ; contact the
    CC   IMAGE Consortium (info@image.llnl.gov) for further information.
    CC   Possible reversed clone: polyT not found
    CC   Insert Length: 544   Std Error: 0.00
    CC   Seq primer: SP6
    CC   High quality sequence stop: 265.
    XX
    FH   Key             Location/Qualifiers
    FH
    FT   source          1..495
    FT                   /organism="Homo sapiens"
    FT                   /lab_host="DH10B (ampicillin resistant)"
    FT                   /mol_type="mRNA"
    FT                   /sex="Male"
    FT                   /dev_stage="55-year old"
    FT                   /clone_lib="Soares adult brain N2b5HB55Y"
    FT                   /clone="IMAGE:177794"
    FT                   /note="Organ: brain; Vector: pT7T3D (Pharmacia) with a
    FT                   modified polylinker; Site_1: Not I; Site_2: Eco RI; 1st
    FT                   strand cDNA was primed with a Not I - oligo(dT) primer [5'
    FT                   TGTTACCAATCTGAAGTGGGAGCGGCCGCGCTTTTTTTTTTTTTTTTTTT 3'],
    FT                   double-stranded cDNA was size selected, ligated to Eco RI
    FT                   adapters (Pharmacia), digested with Not I and cloned into
    FT                   the Not I and Eco RI sites of a modified pT7T3 vector
    FT                   (Pharmacia). Library went through one round of
    FT                   normalization to a Cot = 53. Library constructed by Bento
    FT                   Soares and M.Fatima Bonaldo. The adult brain RNA was
    FT                   provided by Dr. Donald H. Gilden. Tissue was acquired 17-18
    FT                   hours after death which occurred in consequence of a
    FT                   ruptured aortic aneurysm. RNA was prepared from a pool of
    FT                   tissues representing the following areas of the brain:
    FT                   frontal, parietal, temporal and occipital cortex from the
    FT                   left and right hemispheres, subcortical white matter, basal
    FT                   ganglia, thalamus, cerebellum, midbrain, pons and medulla."
    FT                   /db_xref="taxon:9606"
    FT                   /db_xref="UNILIB:555"
    XX
    SQ   Sequence 495 BP; 73 A; 135 C; 169 G; 104 T; 14 other;
         ccggnaagct cancttggac caccgactct cgantgnntc gccgcgggag ccggntggan        60
         aacctgagcg ggactggnag aaggagcaga gggaggcagc acccggcgtg acggnagtgt       120
         gtggggcact caggccttcc gcagtgtcat ctgccacacg gaaggcacgg ccacgggcag       180
         gggggtctat gatcttctgc atgcccagct ggcatggccc cacgtagagt ggnntggcgt       240
         ctcggtgctg gtcagcgaca cgttgtcctg gctgggcagg tccagctccc ggaggacctg       300
         gggcttcagc ttcccgtagc gctggctgca gtgacggatg ctcttgcgct gccatttctg       360
         ggtgctgtca ctgtccttgc tcactccaaa ccagttcggc ggtccccctg cggatggtct       420
         gtgttgatgg acgtttgggc tttgcagcac cggccgccga gttcatggtn gggtnaagag       480
         atttgggttt tttcn                                                        495
    //

### Database entry: tembl:z69719

    ID   Z69719; SV 1; linear; genomic DNA; STD; HUM; 33760 BP.
    XX
    AC   Z69719;
    XX
    DT   26-FEB-1996 (Rel. 46, Created)
    DT   13-JAN-2009 (Rel. 99, Last updated, Version 7)
    XX
    DE   Human DNA sequence from clone XX-CNFG9 on chromosome 16
    XX
    KW   C16orf33; HTG; POLR3K; RHBDF1.
    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-33760
    RA   Kershaw J.;
    RT   ;
    RL   Submitted (09-JAN-2009) to the INSDC.
    RL   Wellcome Trust Sanger Institute, Hinxton, Cambridgeshire, CB10 1SA, UK.
    RL   E-mail enquiries: vega@sanger.ac.uk Clone requests: Geneservice
    RL   (http://www.geneservice.co.uk/) and BACPAC Resources
    RL   (http://bacpac.chori.org/)
    XX
    DR   EMBL-CON; GL000124.
    DR   Ensembl-Gn; ENSG00000007384; Homo_sapiens.
    DR   Ensembl-Gn; ENSG00000161980; Homo_sapiens.
    DR   Ensembl-Gn; ENSG00000161981; Homo_sapiens.
    DR   Ensembl-Tr; ENST00000262316; Homo_sapiens.
    DR   Ensembl-Tr; ENST00000293860; Homo_sapiens.
    DR   Ensembl-Tr; ENST00000293861; Homo_sapiens.
    DR   Ensembl-Tr; ENST00000338527; Homo_sapiens.
    DR   Ensembl-Tr; ENST00000383018; Homo_sapiens.
    DR   Ensembl-Tr; ENST00000417043; Homo_sapiens.
    DR   Ensembl-Tr; ENST00000417493; Homo_sapiens.
    DR   Ensembl-Tr; ENST00000419764; Homo_sapiens.
    DR   Ensembl-Tr; ENST00000420545; Homo_sapiens.
    DR   Ensembl-Tr; ENST00000428730; Homo_sapiens.
    DR   Ensembl-Tr; ENST00000448893; Homo_sapiens.
    DR   Ensembl-Tr; ENST00000450643; Homo_sapiens.
    DR   Ensembl-Tr; ENST00000454039; Homo_sapiens.
    DR   GDB; 11502921.
    DR   GOA; E9PGJ1.
    DR   GOA; F5GWL4.
    DR   GOA; F8WBS4.
    DR   GOA; H0Y6L9.
    DR   InterPro; IPR022241; Rhomboid_SP.
    DR   InterPro; IPR022764; Peptidase_S54_rhomboid_dom.

      [Part of this file has been deleted for brevity]

         gagacagcag agtgctcagc tcatgaagga ggcaccagcc gccatgcctc tacatccagg     30840
         tctcctgggg ttcccacctc cacaaaaacc cccactgcta ggagtgcagg caggagggga     30900
         cctgagaacc gacagttata ggtcctgcgg gtgggcagtg ctgggtgttc tggtctgccc     30960
         cacccctgtg tgcctagatc cccatctggg cctcaagtgg gtgggattcc aaaggaagag     31020
         ccggagtagg cgtggggagg ggcaggccca ggctggacaa agagtctggc cagggagcgg     31080
         cacattgccc tcccagagac agtggctcag tgtccaggcc ttccccaggc gcacagtggg     31140
         ctcttgttcc cagaaagccc ctcgggggga tccaaacagt gtctccccca ccccgctgac     31200
         ccctcagtgt atggggaaac cgtggcccac ggaaggcctc actgcctggg gtcacacagc     31260
         atctgagtca ctgcagcagc ctcacagctg ccagcccagg cccagcccca tcaggagaca     31320
         cccaaagcca cagtgcatcc caggaccagc tgggggggct gcgggcagga ctctcgatga     31380
         ggctgaggga cgaggagggt caagggagcc actggcgcca tgcatgctga cgtcccctct     31440
         ggctgcctgc agagcctggt gtggaagggc tgagtggggg atggtggaga gtcctgttaa     31500
         ctcaggtttc tgctctgggg atgtctgggc acccatcaag ctggccgcgt gcacaggtgc     31560
         agggagagcc agaaagcagg agccgatgca gggaggccac tggggacagc ccaggctgat     31620
         gcttgggccc catgtgtctc caccacctac aaccctaagc aagcctcagc tttcccatct     31680
         ggaaatcagg ggtcacagca gtgcctggca cagtagcagc ggctgactcc atcacagggt     31740
         ggtgtagcct gtgggtactt ggcactctct gaggggcagg agctgggggg tgaaaggacc     31800
         ctagagcata tgcaacaaga gggcagccct ggggacacct ggggacagaa ccctccaaag     31860
         gtgtcgagtt tgggaagaga ctagagagaa gctctggcca gtccaggcat agacagtggc     31920
         cacagccagt ggagagctgc atcctcaggt gtgagcagca accacctctg tactcaggcc     31980
         tgccctgcac actcacagga ccatgctggc agggacaact ggcggcggag ttgactgcca     32040
         accccggggc cagaaccatc aagcctgggc tctgctccgc ccaaggaact gcctgctgcc     32100
         gaggtcagct ggagcaaggg gcctcacccc gggacacctt cccagacgtg tcctcagctc     32160
         acatgagcct catcccaggg ggatgtggct cctccagcat ccccacccac acgctgctct     32220
         ctgaccctca gtcttctgtt tgactcctaa tctgaagctc aatcctagat ctcccttgag     32280
         aagggggtca ccagctgtct ggcagcccag cctccaggtc ttctggatta atgaagggaa     32340
         agtcacctgg cctctctgcc ttgtctatta atggcatcat gctgagaatg atatttgcta     32400
         ggccctttgc aaaccccaaa gtgctcttca accctcccag tgaagcctct tcttttctgt     32460
         ggaagaaatg aggttcaggg tggagcaggg caggcctgag acctttgcag ggttctctcc     32520
         aggtccccag caggacagac tggcaccctg cctcccctca tcaccctaga caaggagaca     32580
         gaacaagagg ttccctgcta caggccatct gtgagggaag ccgccctagg gcctgtagac     32640
         acaggaatcc ctgaggacct gacctgtgag ggtagtgcac aaaggggcca gcacttggca     32700
         ggaggggggg gggcactgcc ccaaggctca gctagcaaat gtggcacagg ggtcaccaga     32760
         gctaaacccc tgactcagtt gggtctgaca ggggctgaca tggcagacac acccaggaat     32820
         caggggacac caagtgcagc tcagggcacc tgtccaggcc acacagtcag aaaggggatg     32880
         gcagcaagga cttagctaca ctagattctg ggggtaaact gcctggtatg ctggtcactg     32940
         ctagtcccca gtctggagtc tagctgggtc tcaggagtta ggcgaaaaca ccctccccag     33000
         gctgcaggtg ggagaggccc acatcccctg cacacgtctg gccagaggac agatgggcag     33060
         cccagtcacc agtcagagcc ctccagaggt gtccctgact gaccctacac acatgcaccc     33120
         aggtgcccag gcacccttgg gctcagcaac cctgcaaccc cctcccagga cccaccagaa     33180
         gcaggatagg actagagagg ccacaggagg gaaaccaagt cagagcagaa atggcttcgg     33240
         tcctcagcag cctggctcag cttcctcaaa ccagatcctg actgatcaca ctggtctgtc     33300
         taacccctgg gaggggtcct ctgtatccat cttacagata aggaaactga ggctcagaga     33360
         agcccatcac tgcctaaggt cccagggcct ataagggagc tcaaagcctt gggccaggtc     33420
         tgcccaggag ctgcagtgga agggaccctg tctgcagacc cccagaagac aaggcagacc     33480
         acctgggttc ttcagccttg tggctgtgga cggctgtcag acccttctaa gaccccttgc     33540
         cacctgctcc atcaggggca tctcagttga agaaggaagg actcaccccc aaaatcgtcc     33600
         aactcagaaa aaaaggcaga agccaaggaa tccaatcact gggcaaaatg tgatcctggc     33660
         acagacactg aggtggggga actggagccg gtgtggcgga ggccctcaca gccaagagca     33720
         actgggggtg ccctgggcag ggactgtagc tgggaagatc                           33760
    //

## Output file format

### Output files for usage example

### File: h45989.est2genome

    Note Best alignment is between forward est and forward genome, but splice sites imply REVERSED GENE
    Exon       163  91.8 25685 25874 Z69719           1   193 H45989        yo13c02.s1 Soares adult brain N2b5HB55Y Homo sapiens cDNA clone IMAGE:177794 3', mRNA sequence.
    -Intron    -20   0.0 25875 26278 Z69719
    Exon       207  98.1 26279 26492 Z69719         194   407 H45989        yo13c02.s1 Soares adult brain N2b5HB55Y Homo sapiens cDNA clone IMAGE:177794 3', mRNA sequence.
    -Intron    -20   0.0 26493 27390 Z69719
    Exon        63  86.4 27391 27476 Z69719         408   494 H45989        yo13c02.s1 Soares adult brain N2b5HB55Y Homo sapiens cDNA clone IMAGE:177794 3', mRNA sequence.

    Span       393  93.6 25685 27476 Z69719           1   494 H45989        yo13c02.s1 Soares adult brain N2b5HB55Y Homo sapiens cDNA clone IMAGE:177794 3', mRNA sequence.

    Segment     14  83.3 25685 25702 Z69719           1    18 H45989        yo13c02.s1 Soares adult brain N2b5HB55Y Homo sapiens cDNA clone IMAGE:177794 3', mRNA sequence.
    Segment     28  85.7 25703 25737 Z69719          20    54 H45989        yo13c02.s1 Soares adult brain N2b5HB55Y Homo sapiens cDNA clone IMAGE:177794 3', mRNA sequence.
    Segment      4 100.0 25738 25741 Z69719          56    59 H45989        yo13c02.s1 Soares adult brain N2b5HB55Y Homo sapiens cDNA clone IMAGE:177794 3', mRNA sequence.
    Segment     13 100.0 25742 25754 Z69719          61    73 H45989        yo13c02.s1 Soares adult brain N2b5HB55Y Homo sapiens cDNA clone IMAGE:177794 3', mRNA sequence.
    Segment      4 100.0 25756 25759 Z69719          74    77 H45989        yo13c02.s1 Soares adult brain N2b5HB55Y Homo sapiens cDNA clone IMAGE:177794 3', mRNA sequence.
    Segment    110  97.4 25760 25874 Z69719          79   193 H45989        yo13c02.s1 Soares adult brain N2b5HB55Y Homo sapiens cDNA clone IMAGE:177794 3', mRNA sequence.
    Segment     37 100.0 26279 26315 Z69719         194   230 H45989        yo13c02.s1 Soares adult brain N2b5HB55Y Homo sapiens cDNA clone IMAGE:177794 3', mRNA sequence.
    Segment    162  98.8 26317 26480 Z69719         231   394 H45989        yo13c02.s1 Soares adult brain N2b5HB55Y Homo sapiens cDNA clone IMAGE:177794 3', mRNA sequence.
    Segment     12 100.0 26481 26492 Z69719         396   407 H45989        yo13c02.s1 Soares adult brain N2b5HB55Y Homo sapiens cDNA clone IMAGE:177794 3', mRNA sequence.
    Segment     16 100.0 27391 27406 Z69719         408   423 H45989        yo13c02.s1 Soares adult brain N2b5HB55Y Homo sapiens cDNA clone IMAGE:177794 3', mRNA sequence.
    Segment     10  91.7 27407 27418 Z69719         425   436 H45989        yo13c02.s1 Soares adult brain N2b5HB55Y Homo sapiens cDNA clone IMAGE:177794 3', mRNA sequence.
    Segment     19  95.2 27419 27439 Z69719         438   458 H45989        yo13c02.s1 Soares adult brain N2b5HB55Y Homo sapiens cDNA clone IMAGE:177794 3', mRNA sequence.
    Segment     24  80.6 27441 27476 Z69719         459   494 H45989        yo13c02.s1 Soares adult brain N2b5HB55Y Homo sapiens cDNA clone IMAGE:177794 3', mRNA sequence.

### MSP type segments

There are four types of segment,

1. each gapped Exon
2. each Intron (marked with a ? if it does not start GT and end AG)
3. the complete alignment Span
4. individual ungapped matching Segments.

The score for Exon segments is the alignment score excluding flanking intron penalties. The Span score is the total including the intron costs.

The coordinates of the genomic sequence always refer to the positive strand, but are swapped if the est has been reversed. The splice direction of Introns are indicated as +Intron (forward, splice sites GT/AG) or -Intron (reverse, splice sites CT/AC), or ?Intron (unknown direction). Segment entries give the alignment as a series of ungapped matching segments.

### Full alignment

You get the alignment if the -align switch is set. The alignment includes the first and last 5 bases of each intron, together with the intron width. The direction of splicing is indicated by >>>> (forward) or <<<< (reverse) or ???? (unknown)

## Data files

None

## Notes

est2genome uses a linear-space dynamic-programming algorithm. It has the following parameters:

    parameter               default         description

    match                   1               score for matching two bases
    mismatch                1               cost for mismatching two bases
    gap_penalty             2               cost for deleting a single base in
                                            either sequence,
                                            excluding introns
    intron_penalty          40              cost for an intron, independent of
                                            length.
    splice_penalty          20              cost for an intron, independent of
                                            length and starting/ending on
                                            donor-acceptor sites.

    space                   10              Space threshold (in  megabytes)
                                            for linear-space recursion. If the
                                            product of the two sequence
                                            lengths divided by 4 exceeds this then
                                            a divide-and-conquer strategy is used
                                            to control the memory requirements.
                                            In this way very long sequences can
                                            be aligned.
                                            If you have a machine with plenty of
                                            memory you can raise this parameter
                                            (but do not exceed the machine's
                                            physical RAM)
                                            However, normally you should not need
                                            to change this parameter.

There is no gap initiation cost for short gaps, just a penalty proportional to the length of the gap. Thus the cost of inserting a gap of length L in the EST is

     L*gap_penalty

and the cost in the genome is

    min { L*gap_penalty, intron_penalty } or
    min { L*gap_penalty, splice_penalty } if the gap starts with GT and ends with AG
                                         (or CT/AC if splice direction reversed)

Introns are not allowed in the EST. The difference between the intron_penalty and splice_penalty allows for some slack in marking the intron end-points. It is often the case that the best intron boundaries, from the point of view of minimising mismatches, will not coincide exactly with the splice consensus, so provided the difference between the intron/splice penalties outweighs the extra mismatch/indel costs the alignment will respect the proper boundaries. If the alignment still prefers boundaries which don't start and end with the splice consensus then this may indicate errors in the sequences.

The default parameters work well, except for very short exons (length less than the splice_penalty, approx) which may be skipped. The intron penalties should not be set to less that the maximum expected random match between the sequences (typically 10-15 bp) in order to avoid spurious matches.

## References

1. Mott R. (1997) EST_GENOME: a program to align spliced DNA sequences to unspliced genomic DNA. Comput. Applic. 13:477-478
2. Huang X (1994) On global sequence alignment. Comput. Applic. Biosci. 10:227-235.
3. Myers, EW and Miller, W (1988) Optimal alignments in linear space. Comput. Applic. Biosci. 4:11-17
4. Smith, TE and Waterman, MS (1981) Identification of common molecular subsequences. J. Mol. Biol. 147:195-197

## Warnings

None.

## Diagnostic Error Messages

None.

## Exit status

It returns 0 unless an error occurs.

## Known bugs

None.

## See also

Program name | Description
--- | ---
needle | Needleman-Wunsch global alignment of two sequences
needleall | Many-to-many pairwise alignments of two sequence sets
stretcher | Needleman-Wunsch rapid global alignment of two sequences

## Author(s)

This application was modified for inclusion in EMBOSS by Peter Rice
European Bioinformatics Institute, Wellcome Trust Genome Campus, Hinxton, Cambridge CB10 1SD, UK

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

The original program was est_genome, written by Richard Mott at the Sanger Centre. The original version is available from ftp://ftp.sanger.ac.uk/pub/pmr/est_genome.4.tar.Z

## History

## Target users

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

## Comments

### Thu, 29 Mar 2001

I found est2genome having problems finding very short exons with the default parameters.

With the folowing changes it detects also a 14bp exon correctly:

    mismatch 1 -> 3
    intronpenalty 40 -> 20
    splicepenalty 20 -> 10
    minscore 30 -> 10

    Dr. David Bauer
    GenProfile AG, Max-Delbrueck-Center, Erwin-Negelein-Haus
    Robert-Roessle-Str. 10, D-13125 Berlin, Germany
    bauer@genprofile.com, Tel:49-30-94892165, FAX:49-30-94892151