USEARCH uses the BLAST definition of identity, which is the number of identities divided by the number of alignment columns. This is the definition used by most bioinformatics programs.
See -id option for rules that determine when a pair of letters match.
With a global alignment, columns containing terminal gaps are discarded before calculating identity. Internal gaps always count as differences.
Different programs may report different identities for the same sequences
The pair-wise identity between two sequences depends on the alignment and the definition of identity. Alignments vary due to the use of different parameters such as gap penalties and substitution scores. Definitions of identity used by different programs may vary depending on the treatment of gaps and detailed rules for deciding whether letters match (e.g., upper- and lower-case and wildcards).
USEARCH, BLAST and CD-HIT definitions of %id
An "identity" is a column with two matching letters.
USEARCH and BLAST = Identities / Columns
CD-HIT = Identities / (Length of shorter sequence)
Problems with the CD-HIT definition
For historical reasons, versions 5 and earlier of USEARCH used the CD-HIT definition of identity. In versions 6 and later, the BLAST definition is used. I made the change because I felt the CD-HIT definition had several important weaknesses. The CD-HIT definition is not symmetrical between the longer and shorter sequence. Gaps in the longer sequence reduce %id but gaps in the shorter sequence do not. Gappier alignments therefore tend to have higher identities according to CD-HIT compared to other methods, and the CD-HIT %id correlates less well with evolutionary distance. A measure of %id that counts gaps as differences is more robust against the choice of alignment parameters (gap penalties and substitution matrices).
Example where CD-HIT id is 97% and USEARCH id is 86%