Files
SimurgArray/CLAUDE.md
T
kemal 336a6b8226 Add functional specification (416 items) and link it from plan/docs
SIMURGARRAY_FUNCTIONAL_SPEC.md defines externally visible behaviour:
CLI, inputs, genotyping outputs, QC and report, cytogenetics CNV/LOH,
targeted PGx copy number, star alleles, methylation control QC, edge-case
catalogue, performance targets, open questions and a traceability table.
2026-09-27 16:13:40 +01:00

1.3 KiB

SimurgArray

Personal research toolkit for Illumina Infinium genotyping arrays (IDAT→GTC→VCF, QC, CN, PGx). The full spec and roadmap is SIMURGARRAY_MASTER_PLAN.md — read the relevant section before changing code. Externally visible behaviour (CLI options, file schemas, QC semantics, messages, edge cases) is defined item-by-item in SIMURGARRAY_FUNCTIONAL_SPEC.md (IDs like CLI-021, OUT-031); cite item IDs in commits and tests.

Rules

  • Work phase by phase (§18). Don't start a phase until the previous gate passes.
  • Science modules (signal/, genotype/, cn/, qc/, pgx/) are pure functions; no I/O inside them.
  • Every algorithm cites its source (§7 tags) in its docstring.
  • MIT/BSD/Apache/Unlicense code may be ported with attribution in THIRD_PARTY_NOTICES.md. GPL tools (plink2, illuminaio, verifyIDintensity) = subprocess oracles only; never copy their code.
  • Never commit vendor data (BPM/CSV/EGT/IDAT) — only tests/fixtures/ (Artistic-2.0 Bioconductor files, synthetic data).
  • Never hide oracle discrepancies; record them in docs/known_unknowns.md.
  • Default mode is bit-exact vs Illumina-produced GTCs; keep a clean-math mode too.

Commands

  • uv sync ; uv run pytest -q ; uv run ruff check . ; uv run mypy src
  • bash scripts/fetch_data.sh p0|p1|p2 ; bash scripts/bootstrap_refs.sh