Skip to main content

PLINKFORMATTER

plinkformatter transforms genotype and phenotype inputs into PLINK-compatible artifacts for downstream linear mixed-model workflows (primarily PyLMM).

This repository is based on the original R workflow implemented in:

  • plinkformatter/IGNORE_misc/pyLMM_utils.R
  • tests/IGNORE_MISC/hao_v2/pyLMM_analysis_NonDO.R

The Python implementation keeps the same core workflow while improving maintainability, testability, and performance for large PED/MAP datasets.

Prerequisites

  • Python 3.8+
  • Poetry
  • PLINK 2.0 (required for PLINK integration tests and full pipeline runs)

Install dependencies:

poetry install

If plink2 is not on your PATH, set PLINK2_PATH explicitly.

PowerShell example:

$env:PLINK2_PATH = "C:\path\to\plink2.exe"

Running Tests

Run all commands from the repository root.

1) Fast test pass (no external PLINK dependency)

poetry run pytest -q tests/test_generate_pheno_plink_fast.py

2) PLINK utility tests

These include PLINK-facing behavior and may require a working plink2 binary.

poetry run pytest -q tests/test_plink_utils.py

3) Full test suite

poetry run pytest -q tests

Test output flags

  • -q: quiet output (compact summary)
  • -s: show stdout/stderr (print, logs written to console)

Example:

poetry run pytest -s -q tests/test_generate_pheno_plink_fast.py

Workflow Parity with R

The Python pipeline mirrors the same logical stages as the R scripts:

  1. Extract/normalize phenotype rows for selected measure IDs.
  2. Generate per-measure, sex-specific .ped/.map/.pheno files.
  3. Build .bed/.bim/.fam with PLINK.
  4. Align .pheno ordering to .fam and recompute rank-Z on retained samples.
  5. Compute kinship (PyLMM3 or PLINK-based path).

Performance Design (Large PED Files)

A major difference from older dataframe-heavy patterns is how PED is handled in generate_pheno_plink_fast.py:

  • It does not load the full PED into a pandas DataFrame.
  • It builds a compact byte-offset index (strain -> file position) once.
  • It seeks directly to needed PED rows and writes outputs in a streaming manner.

This avoids high memory usage and scales better for large genotype files than pandas.read_csv() on full PED content.

Publishing to PyPI

  1. Update version:
poetry version patch
  1. Build:
poetry build
  1. Configure repository and token:
poetry config repositories.pypi https://upload.pypi.org/legacy/
poetry config pypi-token.pypi pypi-YourActualTokenHere
  1. Publish:
poetry publish

Metadata

Release files for plinkformatter 0.1.83

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for plinkformatter 0.1.83
File Size Uploaded
plinkformatter-0.1.83.tar.gz 13.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for plinkformatter 0.1.83
File Interpreter ABI Platform
plinkformatter-0.1.83-py3-none-any.whl Python 3 none any Details

Total release size: 29.4 kB

Release files / plinkformatter-0.1.83.tar.gz

Download URL plinkformatter-0.1.83.tar.gz
Size 13.8 kB
Tags Source
SHA-256 checksum
How to use checksums
df613d69f4292760c4a3f376d9427b8338db38c7e11facf7df8abc055052af1d
BLAKE2b-256 checksum
How to use checksums
5cf422dd8ed8d9d94b6860d6fb2f6b1926f4125648832c82b0d8e6320db1a74b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.7.1 CPython/3.9.13 Windows/10

Release files / plinkformatter-0.1.83-py3-none-any.whl

Download URL plinkformatter-0.1.83-py3-none-any.whl
Size 15.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a32ced203155d5c101e283af77fdc904f0cab2b3eff3800a266a2e357a80e8af
BLAKE2b-256 checksum
How to use checksums
232c0b0c212a16d5cf5364dd2933088b940727fe992a3c027af56791f64c48e5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.7.1 CPython/3.9.13 Windows/10

Release history Release notifications | RSS feed

This release

0.1.83 This release

2 release files

0.1.82

2 release files

0.1.81

2 release files

0.1.80

2 release files

0.1.79

2 release files

0.1.77

2 release files

0.1.76

2 release files

0.1.75

2 release files

0.1.74

2 release files

0.1.73

2 release files

0.1.72

2 release files

0.1.71

2 release files

0.1.68

2 release files

0.1.67

2 release files

0.1.66

2 release files

0.1.65

2 release files

0.1.64

2 release files

0.1.63

2 release files

0.1.62

2 release files

0.1.61

2 release files

0.1.60

2 release files

0.1.59

2 release files

0.1.58

2 release files

0.1.57

2 release files

0.1.56

2 release files

0.1.55

2 release files

0.1.54

2 release files

0.1.53

2 release files

0.1.52

2 release files

0.1.51

2 release files

0.1.50

2 release files

0.1.49

2 release files

0.1.48

2 release files

0.1.47

2 release files

0.1.46

2 release files

0.1.45

2 release files

0.1.44

2 release files

0.1.43

2 release files

0.1.42

2 release files

0.1.41

2 release files

0.1.40

2 release files

0.1.39

2 release files

0.1.38

2 release files

0.1.37

2 release files

0.1.36

2 release files

0.1.35

2 release files

0.1.34

2 release files

0.1.33

2 release files

0.1.32

2 release files

0.1.31

2 release files

0.1.30

2 release files

0.1.29

2 release files

0.1.28

2 release files

0.1.27

2 release files

0.1.26

2 release files

0.1.25

2 release files

0.1.24

2 release files

0.1.23

2 release files

0.1.22

2 release files

0.1.21

2 release files

0.1.20

2 release files

0.1.19

2 release files

0.1.18

2 release files

0.1.17

2 release files

0.1.15

2 release files

0.1.14

2 release files

0.1.13

2 release files

0.1.12

2 release files

0.1.11

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page