File Exchange

image thumbnail


version (63.5 KB) by Giuseppe Cardillo
Test if a locus is under Hardy Weinberg Proportion


Updated 28 Apr 2018

View Version History

GitHub view license on GitHub

The conditional probability, under the Hardy-Weinberg equilibrium, to obtain the sample X is compute as described by:
Howard Levene - "On a matching problem arising in genetics".
Annals of Mathematical Statistics. 1949; 20:91-94.
If the locus is biallelic, the function performs an Exact test, computing the p-value of all possible tables and the summing all p-value<=p(observed table) and plots a De Finetti's Diagram.
If the locus is m-allelic (m>2), the function uses a Monte Carlo conventional method to evaluate the p-value.

Syntax: pvalue=hwetest(x,verbose,delta,alpha)

Input: X - Genotype matrix. If the locus is biallelic, X is a vector x=[AA AB BB]; else if the locus is m-allelic X is a lower triangular matrix of size=[m m]. If X is not a lower triangular matrix it will be triangularized. VERBOSE (optional)- a logical variable to display more results and comments: 0=does not display (default) 1=display DELTA and ALPHA (optional)- If Monte Carlo method is used (if locus is more than bi-allelic), it is necessary to evaluate how many times the process must be reiterated to ensure that p-value is within DELTA units of the true one with (1-ALPHA)*100% confidence. (Default DELTA=ALPHA=0.01). Output: the probability that the population is in HWP the De Finetti's Diagram if the locus is biallelic if VERBOSE: Polymorphism Information Content (PIC) Matching probability Power of discrimination Power of exclusion Typical Paternity Index

Example: Run hwedemo

Created by Giuseppe Cardillo

To cite this file, this would be an appropriate format: Cardillo G. (2007) HWtest: a routine to test if a locus is in Hardy Weinberg equilibrium (exact test).

Cite As

Giuseppe Cardillo (2020). HWEtest (, GitHub. Retrieved .

Comments and Ratings (1)

Dmitriy Fradkin

This package has a nice demo, implements useful functionality, however it cannot be used inside other programs without further modifications to hwetest.
I would suggest adding a verbose flag to turn off all the printing, and making hwetest return some values.

MATLAB Release Compatibility
Created with R2014b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Inspired by: Fisherextest

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!