P2 (WIP): raw X/Y assembly, canonical Parquet model, simurg ingest

- signal/raw_xy.py: vectorised Infinium I/II raw X/Y and control assembly
  (plan §7.1) with a per-chip address-map cache; IN-027 coverage gate
- core/schemas.py: Arrow schemas (loci, sample_intensity, controls),
  deterministic atomic Parquet writing
- pipeline/ingest.py + CLI: discovery, sheet, IN-010 naming, overwrite
  check before any work, spawn-based workers, per-sample isolation,
  --resume by input hashes, run manifest, exit codes 0/3/4
- matches gtc2vcf raw X/Y and controls exactly on 18 GSA samples;
  outputs byte-identical across thread counts and layouts
This commit is contained in:
kemal committed 2026-09-27 20:54:06 +01:00
1 parent 7bd73700b2
commit 82bb3637b4
9 files changed
+970 -2

No files matched your search

+3
View File
@@ -18,6 +18,7 @@ Generated from `src/simurg/core/errors.py` — do not edit by hand.
| `E_GTC_UNSUITABLE` | error | GTC lacks fields required by this command | IN-031 |
| `E_IDAT_ENCRYPTED` | error | Encrypted (version 1) IDATs are not supported | IN-023 |
| `E_IDAT_FORMAT` | error | IDAT file is malformed | IN-023 |
| `E_IDAT_MANIFEST_MISMATCH` | error | IDATs and manifest belong to different products | IN-027 |
| `E_IDAT_PAIR_MISMATCH` | error | Red and Grn IDATs of a sample do not match | IN-023 |
| `E_INTERNAL` | error | Internal error (bug); rerun with --debug and report | CLI-014 |
| `E_NO_INPUT` | error | Neither an input folder nor a sample sheet was given | CLI-006 |
@@ -37,6 +38,8 @@ Generated from `src/simurg/core/errors.py` — do not edit by hand.
| `W_DUP_IDAT_RESOLVED` | warning | Duplicate IDAT pair resolved by --on-duplicate-idat | IN-022 |
| `W_EGT_NAME` | warning | Cluster file name is not portable | IN-045 |
| `W_GTC_FOREIGN` | warning | GTC was produced by another tool | IN-031 |
| `W_IDAT_LOW_ADDRESS_COVERAGE` | warning | Some manifest addresses are absent from the IDAT | IN-027 |
| `W_IDAT_MANIFEST_NAME` | warning | IDAT names a different manifest than the BPM | IN-027 |
| `W_IDAT_NAME_MISMATCH` | warning | IDAT barcode/position disagrees with its file name | IN-023 |
| `W_IDAT_NO_SCAN_TIME` | warning | IDAT has no scan entry in its run info | IN-024 |
| `W_IDAT_UNPAIRED` | warning | IDAT channel file without its partner | IN-021 |