Arte SheetsLearn. Try. Understand.

Statistical & Clinical Analysis

Morisita-Horn Overlap Index Formula: Sample-Size-Robust Community Similarity & Dissimilarity

Compare two ecological assemblages, immune TCR repertoires, or dietary niches using Henry S. Horn’s (1966) Morisita-Horn Overlap Index C_MH = 2 * SUM(p_i * q_i) / (SUM(p_i^2) + SUM(q_i^2)) on [0, 1].

Why Morisita-Horn dominates Jaccard and Bray-Curtis when sequencing depths or sample sizes differ!

Presence-absence indices like Jaccard/Sørensen get whipsawed by rare singletons whenever Sample A has 10,000 reads and Sample B has 500 reads! Derived by Masaaki Morisita (1959) and simplified by Henry S. Horn (1966, American Naturalist), the Morisita-Horn Similarity Index C_MH = (2 * SUM_{i=1..S} p_i * q_i) / (SUM_{i=1..S} p_i^2 + SUM_{i=1..S} q_i^2) (where p_i = x_i / N_X and q_i = y_i / N_Y are relative abundances) weights dominant species quadratically, making it remarkably invariant to unequal sample totals and missed rare taxa!

Bounded strictly between 0.0000 (zero shared taxa) and 1.0000 (identical relative abundance vectors p_i = q_i for all i), its complement D_MH = 1 - C_MH is the standard Morisita-Horn beta-diversity distance across ecology and T-cell/B-cell receptor repertoire immunology!

Taxon / ClonotypeSite A Count x_i (N_A = 100)Site B Count y_i (N_B = 200)Share p_iShare q_iProduct p_i * q_i
Taxon 150800.500.400.2000
Taxon 230600.300.300.0900
Taxon 315500.150.250.0375
Taxon 45100.050.050.0025

Morisita-Horn Community Overlap Similarity Index C_MH (0 to 1)

Evaluates 2 * SUMPRODUCT(p, q) / (SUMPRODUCT(p^2) + SUMPRODUCT(q^2)) across Site A counts B2:B5 and Site B counts C2:C5.

=IF(OR(MIN(B2:C5) < 0, SUM(B2:B5) <= 0, SUM(C2:C5) <= 0), "Requires Non-Negative Counts & Positive Sample Totals", ROUND((2 * SUMPRODUCT(B2:B5 / SUM(B2:B5), C2:C5 / SUM(C2:C5))) / (SUMPRODUCT((B2:B5 / SUM(B2:B5)) ^ 2) + SUMPRODUCT((C2:C5 / SUM(C2:C5)) ^ 2)), 4))

Morisita-Horn Beta-Diversity Dissimilarity 1 - C_MH

Returns 1 - C_MH (equal to 0.0000 when proportional compositions match identically, even at 10x different total counts).

=IF(OR(MIN(B2:C5) < 0, SUM(B2:B5) <= 0, SUM(C2:C5) <= 0), "Requires Non-Negative Counts & Positive Sample Totals", ROUND(1 - (2 * SUMPRODUCT(B2:B5 / SUM(B2:B5), C2:C5 / SUM(C2:C5))) / (SUMPRODUCT((B2:B5 / SUM(B2:B5)) ^ 2) + SUMPRODUCT((C2:C5 / SUM(C2:C5)) ^ 2)), 4))

Try the example

Use the original values or change them to test your understanding.

Further reading