Cross-Platform FM Biomarker Research Pipeline by Kyle BeanCross-Platform FM Biomarker Research Pipeline by Kyle Bean

Cross-Platform FM Biomarker Research Pipeline

Kyle Bean

Kyle Bean

Maturity

Field Value Status Research prototype Maturity Low Field-ready No — not clinical, not field-certified Last reviewed 2026-08-07
Fibro phenotype work in progress. Research only.

FM Pheno

Cross-platform Fibromyalgia (FM) biomarker research pipeline using public GEO transcriptomic data.
This repository trains and evaluates gene-expression classifiers for FM versus control under a deliberately hard setting: RNA-seq PBMC training → microarray whole-blood external validation. Results are modest and reported honestly. The primary finding is that a published three-gene signature remains competitive with larger expanded models under platform shift.

Research use only. This is not a medical device, diagnostic tool, or clinical decision system. Outputs must not be used for diagnosis, treatment, or patient care. External validation performance is limited by cross-platform and tissue differences.

Key Findings

Validated on GSE67311 (microarray whole blood) after training on GSE221921 (RNA-seq PBMC):
Model Validation AUC Notes 3-gene baseline (primary) 0.688 DYRK3, RGS17, ARHGEF37; Brier 0.229; Youden threshold 0.545 Multi-gene (replicated + Optuna) 0.674 53 features (3 core + 50 replicated); nested CV train AUC 0.781 ± 0.063 Train-only expansion (no replication) ~0.57 Failed under platform shift — documented negative result
Interpretation: The 3-gene model remains the recommended primary classifier. Multi-gene modeling improved over naive expansion (≈0.57 → 0.67) but did not beat the published trio on external validation. Top SHAP feature for the baseline: ARHGEF37. Bootstrap 95% CI for baseline AUC: 0.61–0.77. Cross-cohort replicated DEGs found: 611.

Limitations

Please read these before using or citing this work:
Not diagnostic. Research prototype only; not cleared or intended for clinical use.
Cross-platform shift. RNA-seq → microarray and PBMC → whole blood constrain external AUC; same-platform numbers elsewhere are not comparable.
Modest discrimination. AUC ≈ 0.69 is informative for research, not clinical readiness.
Count-data caveats. True raw integer counts for GSE221921 may be unavailable; PyDESeq2 may fall back to Welch analysis on FPKM-derived values (flagged in outputs).
Exploratory layers. Subtype clustering, severity proxies, and advanced research modules are hypothesis-generating, not validated clinical subtypes.
No clinical symptom integration. FIQ, pain, sleep, and related scores are not modeled unless present in GEO metadata text.

Quick Start


Equivalent without Make/shell helpers:

Using This for Research

This codebase is meant to be reused and extended by other FM / omics researchers.
Goal Where to start Change train/validation GEO IDs config.py (TRAIN_GSE, VAL_GSE, ORTHO_GSE) Re-run DEG + replication src/deg_analysis.py, src/replicated_genes.py Alter feature construction src/expanded_features.py, src/batch_correction.py Compare models src/model_comparison.pyoutputs/model_comparison.json Explore subtypes / severity src/subtype_models.py, src/severity_modeling.py Run advanced research layers ./run.sh advanced → modules under src/research/ See all entry points scripts/README.md
Suggested workflow for a new cohort
Ingest or adapt parsing in src/data_ingestion.py.
Keep the replication filter before expanding beyond the core genes.
Report external validation separately from training CV.
Prefer the simpler model when validation AUC does not improve.
Outputs of interest: outputs/metrics.json, outputs/model_comparison.json, outputs/replicated_genes.csv, outputs/v2_pipeline_report.json, and (after advanced) outputs/advanced_research_report.json.

Datasets

GSE Platform Role Samples GSE221921 RNA-seq PBMC Train 96 FM / 93 Control GSE67311 Microarray whole blood External validation 67 FM / 75 Control GSE229750 Neutrophil RNA-seq Orthogonal / exploratory varies
Core signature (Zhao et al. 2025): DYRK3, RGS17, ARHGEF37.

Pipeline Overview


Optional: ./run.sh advanced adds causal/GRN, robustness, conformal prediction, literature benchmarking, decision curves, and automated technical report generation.

Gradio app

After a successful pipeline run (outputs/fibro_3gene_xgboost_v1.1.joblib present):

3-Gene Baseline — score DYRK3 / RGS17 / ARHGEF37
Multi-Gene Expanded — upload a CSV with all trained feature columns
What-If Explorer — perturb core genes and inspect probability change
All tabs display a research-only disclaimer.

Reproducibility

Random seed: 42 (config.py)
Pinned dependencies: requirements.txt
Version file: VERSION (2.0.0)
CI: install → compileall → synthetic smoke train when CI=true and GEO data are absent
One-command reproduction (after ingest): ./run.sh reproduce
Generated data/ and outputs/ are gitignored; regenerate locally with the commands above.

Methodology Notes

Replicated genes: Features must show directional signal in both train and validation cohorts before expansion.
DEG: PyDESeq2 when integer counts exist; Welch + BH-FDR for microarray / fallback.
Batch correction: ComBat when available; otherwise reference harmonization (recorded in metadata JSON).
Primary decision metric: External validation AUC on GSE67311, not training CV alone.

Citation

If you use this repository in academic work, please cite the GEO accessions above, the Zhao et al. 2025 core signature where applicable, and link to this repository. A formal paper citation will be added when available.
Built for scientific rigor and reuse. Every reported metric should be reviewable from the artifacts in outputs/.
Like this project

Posted Aug 11, 2026

Developed a cross-platform FM biomarker research pipeline using GEO data.