| edialign

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

Local multiple alignment of sequences

## Description

edialign is an EMBOSS version of the program DIALIGN2 by B. Morgenstern. It takes as input nucleic acid or protein sequences and produces as output a multiple sequence alignment. The sequences need not be similar over their complete length, since the program constructs alignments from gapfree pairs of similar segments of the sequences. Such segment pairs are referred to as "diagonals". If (possibly) coding nucleic acid sequences are to be aligned, edialign can optionally translate the compared "nucleic acid segments" to "peptide segments", or even perform comparisons at both nucleic acid and protein levels, so as to increase the sensitivity of the comparison.

## Algorithm

For a complete explanation of the algorithm, see the references. In short :

As described in our papers, the program DIALIGN constructs alignments from gapfree pairs of similar segments of the sequences. Such segment pairs are referred to as "diagonals". Every possible diagonal is given a so-called weight reflecting the degree of similarity among the two segments involved. The overall score of an alignment is then defined as the sum of weights of the diagonals it consists of and the program tries to find an alignment with maximum score -- in other words : the program tries to find a consistent collection of diagonals with maximum sum of weights. This novel scoring scheme for alignments is the basic difference between DIALIGN and other global or local alignment methods. Note that DIALIGN does not employ any kind of gap penalty.

It is possible to use a threshold T for the quality of the diagonals. In this case, a diagonal is considered for alignment only if its "weight" exceeds this threshold. Regions of lower similarity are ignored. In the first version of the program (DIALIGN 1), this threshold was in many situations absolutely necessary to obtain meaningful alignments. By contrast, DIALIGN 2 should produce reasonable alignments without a threshold, i.e. with T = 0. This is the most important difference between DIALIGN 2 and the first version of the program. Nevertheless, it is still possible to use a positive threshold T to filter out regions of lower significance and to include only high scoring diagonals into the alignment.

The use of overlap weights improves the sensitivity of the program if multiple sequences are aligned but it also increases the running time, especially if large numbers of sequences are aligned. By default, "overlap weights" are used if up to 35 sequences are aligned but switched off for larger data sets.

If (possibly) coding nucleic acid sequences are to be aligned, DIALIGN optionally translates the compared "nucleic acid segments" to "peptide segments" according to the genetic code -- without presupposing any of the three possible reading frames, so all combinations of reading frames get checked for significant similarity. If this option is used, the similarity among segments will be assessed on the "peptide level" rather than on the "nucleic acid level".

For the levels of sequence similarity, release 2.2 of DIALIGN has two additional options:

- It can measure the similarity among segment pairs at both levels of similarity (nucleotide-level and peptide-level similarity). The score of a fragment is based on whatever similarity is stronger. As a result, the program can now produce mixed alignments that contain both types of fragments. Fragments with stronger similarity at the "nucleotide level" are referred to as N-fragments whereas fragments with stronger similarity a the peptide level are called P-fragments.
- If the translation or mixed alignment option is used, it is possible to consider the reverse complements of segments, too. In this case, both the original segments and their reverse complements are translated and both pairs of implied "peptide segments" are compared. This option is useful if DNA sequences contain coding regions not only on the "Watson strand" but also on the "Crick strand".

The score that DIALIGN assigns to a fragment is based on the probability to find a fragment of the same respective length and number of matches (or BLOSUM values, if the translation option is used) in random sequences of the same length as the input sequences. If long genomic sequences are aligned, an iterative procedure can be applied where the program first looks for fragments with strong similarity. In subsequent steps, regions between these fragments are realigned. Here, the score of a fragment is based on random occurrence in these regions between the previously aligned segment pairs.

## Usage

Here is a sample session with edialign

    % edialign
    Local multiple alignment of sequences
    Input sequence set: vtest.seq
    Output file [vtest.edialign]:
    (gapped) output sequence(s) [vtest.fasta]:

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

## Command line arguments

    Local multiple alignment of sequences
    Version: EMBOSS:6.6.0.0

       Standard (Mandatory) qualifiers:
      [-sequences]         seqset     Sequence set filename and optional format,
                                      or reference (input USA)
      [-outfile]           outfile    [*.edialign] Output file name
      [-outseq]            seqoutall  [.] (Aligned) sequence
                                      set(s) filename and optional format (output
                                      USA)

       Additional (Optional) qualifiers (* if not always prompted):
    *  -nucmode            menu       [n] Nucleic acid sequence alignment mode
                                      (simple, translated or mixed) (Values: n
                                      (simple); nt (translation); ma (mixed
                                      alignments))
    *  -revcomp            boolean    [N] Also consider the reverse complement
       -overlapw           selection  [default (when Nseq =< 35)] By default
                                      overlap weights are used when Nseq =<35 but
                                      you can set this to 'yes' or 'no'
       -linkage            menu       [UPGMA] Clustering method to construct
                                      sequence tree (UPGMA, minimum linkage or
                                      maximum linkage) (Values: UPGMA (UPGMA); max
                                      (maximum linkage); min (minimum linkage))
       -maxfragl           integer    [40] Maximum fragment length (Integer 0 or
                                      more)
    *  -fragmat            boolean    [N] Consider only N-fragment pairs that
                                      start with two matches
    *  -fragsim            integer    [4] Consider only P-fragment pairs if first
                                      amino acid or codon pair has similarity
                                      score of at least n (Integer 0 or more)
       -itscore            boolean    [N] Use iterative score
       -threshold          float      [0.0] Threshold for considering diagonal for
                                      alignment (Number 0.000 or more)

       Advanced (Unprompted) qualifiers:
       -mask               boolean    [N] Replace unaligned characters by stars
                                      '*' rather then putting them in lowercase
       -dostars            boolean    [N] Activate writing of stars instead of
                                      numbers
       -starnum            integer    [4] Put up to n stars '*' instead of digits
                                      0-9 to indicate level of conservation
                                      (Integer 0 or more)

       Associated qualifiers:

       "-sequences" 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
       -odirectory2        string     Output directory

       "-outseq" associated qualifiers
       -osformat3          string     Output seq format
       -osextension3       string     File name extension
       -osname3            string     Base file name
       -osdirectory3       string     Output directory
       -osdbname3          string     Database name to add
       -ossingle3          boolean    Separate file for each entry
       -oufo3              string     UFO features
       -offormat3          string     Features format
       -ofname3            string     Features file name
       -ofdirectory3       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
[-sequences] (Parameter 1) | seqset | Sequence set filename and optional format, or reference (input USA) | Readable set of sequences | Required
[-outfile] (Parameter 2) | outfile | Output file name | Output file | <*>.edialign
[-outseq] (Parameter 3) | seqoutall | (Aligned) sequence set(s) filename and optional format (output USA) | Writeable sequence(s) | <*>.format
Additional (Optional) qualifiers
-nucmode | list | Nucleic acid sequence alignment mode (simple, translated or mixed) |
n | (simple)
nt | (translation)
ma | (mixed alignments)
| n
-revcomp | boolean | Also consider the reverse complement | Boolean value Yes/No | No
-overlapw | selection | By default overlap weights are used when Nseq =<35 but you can set this to 'yes' or 'no' | Choose from selection list of values | default (when Nseq =< 35)
-linkage | list | Clustering method to construct sequence tree (UPGMA, minimum linkage or maximum linkage) |
UPGMA | (UPGMA)
max | (maximum linkage)
min | (minimum linkage)
| UPGMA
-maxfragl | integer | Maximum fragment length | Integer 0 or more | 40
-fragmat | boolean | Consider only N-fragment pairs that start with two matches | Boolean value Yes/No | No
-fragsim | integer | Consider only P-fragment pairs if first amino acid or codon pair has similarity score of at least n | Integer 0 or more | 4
-itscore | boolean | Use iterative score | Boolean value Yes/No | No
-threshold | float | Threshold for considering diagonal for alignment | Number 0.000 or more | 0.0
Advanced (Unprompted) qualifiers
-mask | boolean | Replace unaligned characters by stars '*' rather then putting them in lowercase | Boolean value Yes/No | No
-dostars | boolean | Activate writing of stars instead of numbers | Boolean value Yes/No | No
-starnum | integer | Put up to n stars '*' instead of digits 0-9 to indicate level of conservation | Integer 0 or more | 4
Associated qualifiers
"-sequences" associated seqset qualifiers
-sbegin1 -sbegin_sequences | integer | Start of each sequence to be used | Any integer value | 0
-send1 -send_sequences | integer | End of each sequence to be used | Any integer value | 0
-sreverse1 -sreverse_sequences | boolean | Reverse (if DNA) | Boolean value Yes/No | N
-sask1 -sask_sequences | boolean | Ask for begin/end/reverse | Boolean value Yes/No | N
-snucleotide1 -snucleotide_sequences | boolean | Sequence is nucleotide | Boolean value Yes/No | N
-sprotein1 -sprotein_sequences | boolean | Sequence is protein | Boolean value Yes/No | N
-slower1 -slower_sequences | boolean | Make lower case | Boolean value Yes/No | N
-supper1 -supper_sequences | boolean | Make upper case | Boolean value Yes/No | N
-scircular1 -scircular_sequences | boolean | Sequence is circular | Boolean value Yes/No | N
-squick1 -squick_sequences | boolean | Read id and sequence only | Boolean value Yes/No | N
-sformat1 -sformat_sequences | string | Input sequence format | Any string |
-iquery1 -iquery_sequences | string | Input query fields or ID list | Any string |
-ioffset1 -ioffset_sequences | integer | Input start position offset | Any integer value | 0
-sdbname1 -sdbname_sequences | string | Database name | Any string |
-sid1 -sid_sequences | string | Entryname | Any string |
-ufo1 -ufo_sequences | string | UFO features | Any string |
-fformat1 -fformat_sequences | string | Features format | Any string |
-fopenfile1 -fopenfile_sequences | string | Features file name | Any string |
"-outfile" associated outfile qualifiers
-odirectory2 -odirectory_outfile | string | Output directory | Any string |
"-outseq" associated seqoutall qualifiers
-osformat3 -osformat_outseq | string | Output seq format | Any string |
-osextension3 -osextension_outseq | string | File name extension | Any string |
-osname3 -osname_outseq | string | Base file name | Any string |
-osdirectory3 -osdirectory_outseq | string | Output directory | Any string |
-osdbname3 -osdbname_outseq | string | Database name to add | Any string |
-ossingle3 -ossingle_outseq | boolean | Separate file for each entry | Boolean value Yes/No | N
-oufo3 -oufo_outseq | string | UFO features | Any string |
-offormat3 -offormat_outseq | string | Features format | Any string |
-ofname3 -ofname_outseq | string | Features file name | Any string |
-ofdirectory3 -ofdirectory_outseq | 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

edialign reads nucleotide or protein sequences to be aligned.

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

### File: vtest.seq

    >HTL2
    LDTAPCLFSDGSPQKAAYVLWDQTILQQDITPLPSHETHSAQKGELLALICGLRAAKPWP
    SLNIFLDSKY
    >MMLV
    GKKLNVYTDSRYAFATAHIHGEIYRRRGLLTSEGKEIKNKDEILALLKALFLPKRLSIIH
    CPGHQKGHSAEARGNRMADQAARKAAITETPDTSTLL
    >HEPB
    RPGLCQVFADATPTGWGLVMGHQRMRGTFSAPLPIHTAELLAACFARSRSGANIIGTDNS
    GRTSLYADSPSVPSHLPDRVH

## Output file format

edialign produces two output files with a multiple sequence alignment. The first one is a file in DIALIGN format and the second one is a sequence file in any format you choose (by default fastA).

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.

Capital letters denote aligned residues, i.e. residues involved in at least one of the "diagonals" in the alignment. Lower-case letters denote residues not belonging to any of these selected "diagonals". They are not considered to be aligned by DIALIGN. Thus, if a lower-case letter is standing in the same column with other letters, this is pure chance ; these residues are not considered to be homologous.

Numbers below the alignment reflect the degree of local similarity among sequences. More precisely, they represent the sum of weights of fragments connecting residues at the respective position. These numbers are normalized such that regions of maximum similarity always get a score of 9 - no matter how strong this maximum simliarity is. In previous verions of the program, '*' characters were used instead of numbers ; with the -stars=n option, '*' characters can be used as previously.

At the bottom of the file you can find the "guide tree" used to make the alignment, written in "nested parentheses" format.

### Output files for usage example

### File: vtest.fasta

    >HTL2
    ldtapC-LFSDGSPQKAAYVLWDQTILQQDITPLPSHethsaqkgELLAliCglraAKPW
    PSLNIFLDSKY-------------------------------------------------
    -----------------------------------------
    >MMLV
    gkk---------------------------------------------------------
    --LNVYTDSRYafatahihgeiyrrrglltsegkeiknkdeilallkalflpkrlsiihc
    pghqkghsaeargnrmADQAARKAAITETPDTSTLL-----
    >HEPB
    rpgl-CqVFADATPTGWGLVMGHQRMRGTFSAPLPIHta------ELLAa-Cf---ARSR
    SGANIIg-----------------------------------------------------
    ----------------TDNSGRTSLYADSPSVPSHLpdrvh

### File: vtest.edialign

                               DIALIGN 2.2.1
                               *************

              Program code written by Burkhard Morgenstern and Said Abdeddaim
                 e-mail contact: dialign (at) gobics (dot) de

              Published research assisted by DIALIGN 2 should cite:

                 Burkhard Morgenstern (1999).
                 DIALIGN 2: improvement of the segment-to-segment
                 approach to multiple sequence alignment.
                 Bioinformatics 15, 211 - 218.

              For more information, please visit the DIALIGN home page at

                 http://bibiserv.techfak.uni-bielefeld.de/dialign/

             ************************************************************

       program call:  edialign

       Aligned sequences:          length:
       ==================          =======

       1) HTL2                        70
       2) MMLV                        97
       3) HEPB                        81

       Average seq. length:           82.7

       Please note that only upper-case letters are considered to be aligned.

       Alignment (DIALIGN format):
       ===========================

    HTL2               1   ldtapC-LFS DGSPQKAAYV LWDQTILQQD ITPLPSHeth saqkgELLAl
    MMLV               1   gkk------- ---------- ---------- ---------- ----------
    HEPB               1   rpgl-CqVFA DATPTGWGLV MGHQRMRGTF SAPLPIHta- -----ELLAa

                           0000000999 9999999999 9999999999 9999999000 0000000000

    HTL2              50   iCglraAKPW PSLNIFLDSK Y--------- ---------- ----------
    MMLV               4   ---------- --LNVYTDSR Yafatahihg eiyrrrgllt segkeiknkd
    HEPB              44   -Cf---ARSR SGANIIg--- ---------- ---------- ----------

                           0000000000 0077777777 7000000000 0000000000 0000000000

    HTL2              71   ---------- ---------- ---------- ---------- ----------
    MMLV              42   eilallkalf lpkrlsiihc pghqkghsae argnrmADQA ARKAAITETP
    HEPB              57   ---------- ---------- ---------- ------TDNS GRTSLYADSP

                           0000000000 0000000000 0000000000 0000001111 1111111111

    HTL2              71   ---------- -
    MMLV              92   DTSTLL---- -
    HEPB              71   SVPSHLpdrv h

                           1111110000 0

       Sequence tree:
       ==============

    Tree constructed using UPGMA based on DIALIGN fragment weight scores

    ((HTL2        :0.145587HEPB        :0.145587):0.108531MMLV        :0.254117);

## Data files

The scoring schemes are hard coded in the program and cannot be changed. For proteins edialign always uses the BLOSUM62 table.

## Notes

We strongly recommend to use the "translation" option if nucleic acid sequences are expected to contain protein coding regions, as it will significantly increase the sensitivity of the alignment procedure in such cases.

If you want to compare long genomic sequences it is recommended to speed up the algorithm by:

- setting "Nucleic acid sequence alignment mode" to "mixed alignment" (-nucmode=ma)
- setting "Maximum fragment length" to 30 (-lmax=30)
- setting "Consider only N-fragment pairs that start with two matches" to yes (-fragmat) and setting the similarity score threshold for considering P-fragment pairs to 8 (-fragsim=8) (which actually implies that you consider only fragments that start with a match).
- setting the "Threshold" T to 2.0 (-threshold=2.0)

It is also recommended to increase the chance of finding coding exons by setting "Nucleic acid sequence alignment mode" to "mixed alignment" (-nucmode=ma) and setting "Also consider the reverse complement" (-revcomp).

## References

1. B. Morgenstern, A. Dress, T. Werner. Multiple DNA and protein sequence alignment based on segment-to-segment comparison. Proc. Natl. Acad. Sci. USA 93, 12098 - 12103 (1996)
2. B. Morgenstern. DIALIGN 2: improvement of the segment-to-segment approach to multiple sequence alignment. Bioinformatics 15, 211 - 218 (1999).
3. B. Morgenstern, O. Rinner, S. Abdeddaim, D. Haase, K. F. X. Mayer, A. W. M. Dress H.-W. Mewes. Exon discovery by genomic sequence alignment. Bioinformatics 18, 777 - 787 (2002)

## Warnings

Remember that lowercase characters represent parts of the sequence that are not aligned. You should not use the dialign output as such for sequence family or phylogeny studies, but take only part of the alignment and/or remove the lowercase characters using a multiple sequence editor. The current version of the program has no provision for doing this automatically.

## Diagnostic Error Messages

None.

## Exit status

It always exits with status 0.

## Known bugs

None.

## See also

Program name | Description
--- | ---
emma | Multiple sequence alignment (ClustalW wrapper)
infoalign | Display basic information about a multiple sequence alignment
plotcon | Plot conservation of a sequence alignment
prettyplot | Draw a sequence alignment with pretty formatting
showalign | Display a multiple sequence alignment in pretty format
tranalign | Generate an alignment of nucleic coding regions from aligned proteins

## Author(s)

The EMBOSS direct port was done by Alan Bleasby
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. based on ACD written by Guy Bottu (gbottu@ben.vub.ac.be) for a wrapper written at BEN, ULB, Brussels, Belgium

The program DIALIGN itself was written by Burkhard Morgenstern, Said Abdeddaim, Klaus Hahn, Thomas Werner, Kornelie Frech and Andreas Dress. Universitaet Bielefeld (FSPM and International Graduate School in Bioinformatics and Genome Research) - GSF Research Center (ISG, IBB, MIPS/IBI) - North Carolina State University - Universite de Rouen - MPI fuer Biochemie (Martinsried) - University of Goettingen, Institute of Microbiology and Genetics - Rhone-Poulenc Rorer

For help on the original DIALIGN2, contact: dialign@gobics.de

## History

First committed on 5th December 2006.

## Target users

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

## Comments

None