--- license: mit tags: - icml2026 - open-reproductions - time-series - medical --- # TS-Fingerprint — independent reproduction code (ICML 2026 #7348) Independent re-implementation of **"Learning Fingerprints for Medical Time Series with Redundancy-Constrained Information Maximization"** (arXiv [2605.00130](https://arxiv.org/abs/2605.00130), OpenReview [`lrRBHFIgaK`](https://openreview.net/forum?id=lrRBHFIgaK)). **The paper released no code.** A GitHub code search for `TS-Fingerprint` returns zero repositories and the paper carries no code link, so every component here was derived from the paper text (Sec. 3.2 architecture, Sec. 3.3 losses, Sec. 3.4 head, Sec. 4.1 hyperparameters). Data preprocessing follows the paper's own stated protocol reference, [DL4mHealth/Medformer](https://github.com/DL4mHealth/Medformer/tree/891f65b8a7e77188508fd8c56e10ccdba7fc1e18). Full write-up, per-claim evidence and the agent session trace: **[the Trackio reproduction logbook](https://huggingface.co/spaces/riteshhf/repro-learning-fingerprints-for-medical-time-series-with-redundancy-constrained-information-maxi)**. ## Files | File | Purpose | |---|---| | `model.py` | `TSFingerprint` (Perceiver-style cross-attention bottleneck, masked F′-only decoder, TCR diversity loss, attention-pooling head) + `TiMAE` and `SimMTM` baselines | | `train.py` | pre-train → fine-tune harness; subject-wise splits, Adam 1e-3/1e-4, ≤100 epochs, early stopping on val F1 (patience 10), macro Acc/P/R/F1/AUROC | | `schedule.py` | small GPU-slot scheduler for running the config grids locally | | `prep_adftd.py` | ADFTD (OpenNeuro ds004504) → 69,752 windows, reproducing Medformer's notebook | | `prep_ptbxl.py` | PTB-XL (PhysioNet) → 213,880 windows, 5 diagnostic superclasses | | `audit_claim1.py` | Claim 1: fixed k×d output, learnable Q, k ≪ T, strict X → F′ → X̂ chain | | `audit_theorem31.py` | Claim 2: numerical audit of Theorem 3.1, both legs, with controls | | `audit_table1_rank.py` | Claim 5: re-parses all 420 Table-1 values and recomputes the average rank | | `analyze_adftd.py`, `analyze_sweep.py` | Claims 3/4 and Claim 6 summaries + figures | | `jobs_*.json` | the exact config grids that were run | ## Data Processed ADFTD arrays: [`riteshhf/tsfp-repro-adftd-processed`](https://huggingface.co/datasets/riteshhf/tsfp-repro-adftd-processed). PTB-XL must be fetched from PhysioNet (see `prep_ptbxl.py`; the `physionet-open` S3 mirror works without credentials). ## Reproducing ```bash python prep_adftd.py --root data/ADFTD --out data/ADFTD/processed python train.py --data-dir data/ADFTD/processed --model tsfp --mode pretrain_ft \ --use-div 1 --k 8 --mask-ratio 0.6 --seeds 41 42 43 --out rec_div.json ```