EMBOSS: distmat 
As sequence diverge so does the probability of there being multiple substitutions at any one site in the alignment increase. The distance will then be an underestimate of the true evolutionary distance between the sequences. Therefore, there are a number of methods for correcting the observed substitution rate for the occurence of multiple substutions.
For nucleotides, the "position" flag allows the user to choose base positions to analyse in each codon, i.e. 123 (all bases), 12 (the first two bases), 1, 2, or 3 individual bases.
S = m/(npos + gaps*gap_penalty) (1) m  score of matches (1 for an exact match, a fraction for partial matches and 0 for no match) npos  number of positions included in m gaps  number of gaps in the sequences gap_penalty  the score given to a gapped position
D = uncorrected distance = pdistance = 1S (2)
The score of match includes all exact matches. For nucleotides, if the flag "ambiguous" is used then partial matches are included in the score. For example, a match of M (A or C) with A will increment m by 0.5 (0.5*1.0). Gaps are not included in the calculation unless a non zero value is given with "gapweight". It should be noted that end gaps and internal gaps will be weighted by the same amount. So it is recommended that this be used with "sbegin"and "send" to specify the start and end of the region to calculate the distance from.
distance = b ln (1D/b) D  uncorrected distance b  constant. b= 3/4 for nucleotides and 19/20 for proteins.
Partial matches and gap positions can be taken into account in the calculation of D, by setting the "ambiguous" and "gapweight" flags (see "uncorrected distance" method).
Reference:
"Phylogenetic Inference", Swofford, Olsen, Waddell, and
Hillis, in Molecular Systematics, 2nd ed., Sinauer Ass., Inc., 1996, Ch. 11.
A = 1, T = 2, C = 3, G = 4 b = 0.5(1. Sum(i=A,G)(fraction[i]^2 + D^2/h) h = Sum(i=A,C)Sum(k=T,G) (0.5 * pair_frequency[i,k]^2/(fraction[i]*fraction[k])) distance = b ln(1.D/b) pair_frequency[i,k]  frequency of the i and k base pair at sites in the alignement of the pair of sequences. fraction[i]  average content of the base i in both sequences
Reference:
F. Tajima and M. Nei, Mol. Biol. Evol. 1984, 1, 269.
P = transitions/npos Q = transversions/npos npos  number of positions scored distance = 0.5 ln[ (12PQ)*sqrt(12Q)]
Reference:
M. kimura, J. Mol. Evol. 1980, 16, 111.
P = transitions/npos Q = transversions/npos npos  number of positions scored GC1 = GC fraction in sequence 1 GC2 = GC fraction in sequence 2 C = GC1 + GC2  2*GC1*GC2 distance = C ln(1P/CQ)  0.5(1C) ln(12Q)
Reference:
K. Tamura, Mol. Biol. Evol. 1992, 9, 678.
L = average substituition = transition_rate + 2 * transversion_rate a = (average L)^2/(variance of L) P = transitions/npos Q = transversions/npos npos  number of positions scored distance = 0.5 * a ((12PQ)^(1/a) + 0.5 (12Q)^(1/a) 3/2)
It is suggested [Jin et al.], in general, that the distance be calculated with an avalue of 1. However, the user can specify their own value, using the "parametera" option, or calculate for each pair of sequence, using "calculatea".
Reference:
L. Jin and M. Nei, Mol. Biol. Evol. 1990, 7, 82.
S = m/npos m  exact match npos  number of positions scored D = 1S distance = ln(1  D  0.2D^2)
Reference:
M. Kimura, The Neutral Theory of Molecular Evolution, Camb. Uni. Press,
Camb., 1983.
% distmat pax.align Creates a distance matrix from multiple alignments Multiple substitution correction methods for proteins 0 : Uncorrected 1 : JukesCantor 2 : Kimura Protein Method to use [0]: 2 Output file [outfile.distmat]:
Mandatory qualifiers (* if not always prompted): [msf] seqset File containing a sequence alignment. * nucmethod list Multiple substitution correction methods for nucleotides. * protmethod list Multiple substitution correction methods for proteins. [outf] outfile Enter a name for the distance matrix Optional qualifiers (* if not always prompted): * ambiguous bool Option to use the abiguous codes in the calculation of the JukesCantor method or if the sequences are proteins. * gapweight float Option to weight gaps in the uncorrected (nucleotide) and JukesCantor distance methods. * position integer Choose base positions to analyse in each codon i.e. 123 (all bases), 12 (the first two bases), 1, 2, or 3 individual bases. * calculatea bool This will force the calculation of the aparameter in the JinNei Gamma distance calculation, otherwise the default is 1.0 (see parametera option). * parametera float User defined a parameter to be use in the JinNei Gamma distance calculation. The suggested value to be used is 1.0 [Jin et al.] and this is the default. Advanced qualifiers: (none) General qualifiers: help bool report command line options. More information on associated and general qualifiers can be found with help verbose 
Mandatory qualifiers  Allowed values  Default  

[msf] (Parameter 1) 
File containing a sequence alignment.  Readable sequences  Required  
nucmethod  Multiple substitution correction methods for nucleotides. 

0  
protmethod  Multiple substitution correction methods for proteins. 

0  
[outf] (Parameter 2) 
Enter a name for the distance matrix  Output file  <sequence>.distmat  
Optional qualifiers  Allowed values  Default  
ambiguous  Option to use the abiguous codes in the calculation of the JukesCantor method or if the sequences are proteins.  Yes/No  No  
gapweight  Option to weight gaps in the uncorrected (nucleotide) and JukesCantor distance methods.  Any integer value  0.  
position  Choose base positions to analyse in each codon i.e. 123 (all bases), 12 (the first two bases), 1, 2, or 3 individual bases.  Any integer value  123  
calculatea  This will force the calculation of the aparameter in the JinNei Gamma distance calculation, otherwise the default is 1.0 (see parametera option).  Yes/No  No  
parametera  User defined a parameter to be use in the JinNei Gamma distance calculation. The suggested value to be used is 1.0 [Jin et al.] and this is the default.  Any integer value  1.0  
Advanced qualifiers  Allowed values  Default  
(none) 
The quality of the alignment is of paramount importance in obtaining meaningful information from this analysis.
The output from the example usage above is:
Distance Matrix  Using the Kimura correction method Gap weighting is 0.000000 1 2 3 4 5 6 7 8 9 10 0.00 96.10 137.41 128.65 161.04 160.26 157.46 154.14 164.22 152.59 PAX4_HUMAN 1 0.00 111.86 109.96 156.25 149.70 143.75 135.71 150.60 146.87 PAX6_HUMAN 2 0.00 26.21 131.54 143.54 162.95 151.39 163.56 159.78 PAX3_HUMAN 3 0.00 145.45 138.76 158.79 149.96 167.26 161.82 PAX7_HUMAN 4 0.00 44.29 120.84 123.00 131.69 130.22 PAX1_HUMAN 5 0.00 123.56 130.21 131.64 130.17 PAX9_HUMAN 6 0.00 36.43 53.12 64.32 PAX2_HUMAN 7 0.00 60.88 73.82 PAX5_HUMAN 8 0.00 20.37 PX8A_HUMAN 9