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.4986501057404244,
    "chi_square_test": 20.439848879167698,
    "expected_heterozygous_population": 1132.434390136504,
    "expected_homozygous_dominant_population": 510.28280493174816,
    "expected_homozygous_recessive_population": 628.2828049317482,
    "genes": [],
    "heterozygous_population": 1025.0,
    "homozygous_dominant_population": 564.0,
    "homozygous_recessive_population": 682.0,
    "p": 0.47402025539409953,
    "p + q": 1.0,
    "p**2": 0.22469520252388733,
    "p**2 + 2*pq + q**2": 1.0,
    "q": 0.5259797446059005,
    "q**2": 0.2766546917356883,
    "total_population": 2271.0
}

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.6.zip (22.3 kB view details)

Uploaded Source

Built Distribution

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

hardyweinbergcalculator-0.3.6-py3-none-any.whl (14.8 kB view details)

Uploaded Python 3

File details

Details for the file hardyweinbergcalculator-0.3.6.zip.

File metadata

  • Download URL: hardyweinbergcalculator-0.3.6.zip
  • Upload date:
  • Size: 22.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for hardyweinbergcalculator-0.3.6.zip
Algorithm Hash digest
SHA256 b63bc340bb90ba762abda1e06d370771ed4002c6296338ac630edcea2e6ce96c
MD5 875c263fef1a980bf5fcad8365112ea7
BLAKE2b-256 3e077b6bf2056a2ddb5302fcdebd862bd82ec827d0e34d1655410383037077e4

See more details on using hashes here.

File details

Details for the file hardyweinbergcalculator-0.3.6-py3-none-any.whl.

File metadata

File hashes

Hashes for hardyweinbergcalculator-0.3.6-py3-none-any.whl
Algorithm Hash digest
SHA256 242f1130b2871a239766d270c5252a10368d27b4f4ab7a78b3b3914f48945ff2
MD5 bcfcdd234f9395e63e59651faf7a156c
BLAKE2b-256 732bb22edaff197484dabb05c69f10bba76d89b5962bfb70a20373ce987b922c

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