# SimurgArray Personal research toolkit for Illumina Infinium genotyping BeadChip data (IDAT → normalization → genotype calling → BAF/LRR → QC → VCF/PLINK; later CN/LOH, PGx, cluster training). - **SIMURGARRAY_MASTER_PLAN.md** — architecture, algorithms, roadmap - **SIMURGARRAY_FUNCTIONAL_SPEC.md** — 416 itemised requirements (CLI, inputs, outputs, QC, CN, PGx, methylation, edge cases) - `docs/validation/` — per-phase validation reports · `docs/known_unknowns.md` — findings log · `docs/research/` — background ## Status Phases **P0 (setup)**, **P1 (file parsers)**, **P2 (canonical model, raw X/Y)**, **P3 (normalization)** and **P4 (genotype calling, GTC output)** are complete — see `docs/validation/`. Each is validated on 2141 vendor GTCs of the 1000 Genomes Omni2.5 set (normalization bit-identical; genotypes/scores identical in 2138/2141 samples). Available commands: `simurg version`, `simurg inspect [--json]`, `simurg ingest`, `simurg normalize`, `simurg genotype`. ## Quick start ```bash uv venv && uv pip install -e ".[dev]" uv run pytest tests/unit # no downloads needed bash scripts/bootstrap_refs.sh # reference open-source repos → refs/ (oracles) bash scripts/fetch_data.sh p0 # ~1.4 GB of public test data → data/ bash scripts/make_oracle_gtcs.sh # builds gtc2vcf, writes oracle GTCs uv run pytest tests/oracle # real-data acceptance tests (add -m "not slow" to skip the long ones) uv run simurg inspect data/p0/gsa_v4_pgx/idats_Demo_36/idats_Demo_36/207895980019/207895980019_R03C01_Grn.idat ``` Vendor data files are downloaded for personal research use only and are never committed. See `THIRD_PARTY_NOTICES.md`.