Skip to main content

Hardy-Weinberg Equilibrium Calculator. Calculates the expected genotype frequencies based on the allele frequencies of a population in Hardy-Weinberg equilibrium.

Project description

Build test and deploy to package repository


Hardy Weinberg Equilibrium

Hardy-Weinberg Equilibrium Calculator. Calculates the expected genotype frequencies based on the allele frequencies of a population in Hardy-Weinberg equilibrium.

Installation

pip install hardyweinbergcalculator

Usage

usage: hwc [-h] [--version] [--verbose] [--debug] [--samples SAMPLES] [--p P] [--q Q] [--tpop TPOP] [--ppop PPOP] [--qpop QPOP] [--pq2pop PQ2POP] [--genes GENES [GENES ...]] [--json JSON [JSON ...]]

Hardy-Weinberg Equilibrium Calculator. Calculates the expected genotype frequencies based on the allele frequencies of a population in Hardy-Weinberg equilibrium. See: https://en.wikipedia.org/wiki/Hardy%E2%80%93Weinberg_principle


optional arguments:
  -h, --help         show this help message and exit
  --version          show program's version number and exit
  --verbose          Enable verbose logging. (default: False)
  --debug            Enable debug logging. (default: False)
  --samples SAMPLES  Number of samples to generate, if using random data generator. (default: None)
  --p P              Frequency of dominant allele. (default: None)
  --q Q              Frequency of recessive allele. (default: None)
  --tpop TPOP        Total population. (default: None)
  --ppop PPOP        Original population of dominant allele. (default: None)
  --qpop QPOP        Original population of recessive allele. (default: None)
  --pq2pop PQ2POP    Original population of heterozygous allele. (default: None)

Example: python3 -m hwc --ppop 10 --qpop 10 --pq2pop 200 --verbose

Generate random data

python3 -m hwc --samples 1000 --verbose

Calculate from known data

python3 -m hwc --ppop 10 --qpop 10 --pq2pop 200 --verbose

In your code

Test for Hard-Weinberg Equilibrium from generated data

from hwc import generate_population, HardyWeinberg

# Generate random data
population = generate_population(n=1000)
res = HardyWeinberg(genes=population)
print(res)

Test for Hardy-Weinberg Equilibrium from known data

from hwc import HardyWeinberg

# Known data
res = HardyWeinberg(
            homozygous_dominant_population=20,
            homozygous_recessive_population=44,
            heterozygous_population=95
            )
print(res)

Results Data Object

The results returned from the Hardyweinberg test will ultimately look like this, in json format:

{
    "2*pq": 0.375,
    "@genes": [],
    "chi_square_test": 1.1111111111111112,
    "expected_heterozygous_population": 3.75,
    "expected_homozygous_dominant_population": 5.625,
    "expected_homozygous_recessive_population": 0.625,
    "heterozygous_population": 5,
    "homozygous_dominant_population": 5,
    "homozygous_recessive_population": 0,
    "p": 0.75,
    "p + q": 1.0,
    "p**2": 0.5625,
    "p**2 + 2*pq + q**2": 1.0,
    "q": 0.25,
    "q**2": 0.0625,
    "total_population": 10
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hardyweinbergcalculator-0.3.0.post20230614.zip (22.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file hardyweinbergcalculator-0.3.0.post20230614.zip.

File metadata

File hashes

Hashes for hardyweinbergcalculator-0.3.0.post20230614.zip
Algorithm Hash digest
SHA256 917fcec86d504e80316f3be402b8c1c4129d9e7a864cafb2f38d7c45f3d11876
MD5 07824245ddc0b8332e6735a6829fc767
BLAKE2b-256 e74f48e79f1538331b427af1eb286b00e6f57a5e8f6b153f7b789577e7d35a17

See more details on using hashes here.

File details

Details for the file hardyweinbergcalculator-0.3.0.post20230614-py3-none-any.whl.

File metadata

File hashes

Hashes for hardyweinbergcalculator-0.3.0.post20230614-py3-none-any.whl
Algorithm Hash digest
SHA256 dcdaabbf9ca3c8be27bd3310fe6fe328ba5477a6ad214192c8ac57bc436e4129
MD5 0cd7063e6f24faf711504b4d3fcfb891
BLAKE2b-256 0e1ad80f5fe37b64b2d76bc36f1fe1052cc5d3db24427888dc9cb5d3ef625e9e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page