Was macht SMR?
Bringt KI-Codierungsagenten bei, effektiv mit der SMR (Summary-data-based Mendelian Randomization) C++-Codebasis zu arbeiten. Deckt Architektur, Datenformate, Build-System, statistische Methoden und häufige Fallstricke ab.
Architektur
Das Hauptprogramm smr steuert den Ablauf. Wichtige Module sind:
smr.h/smr.cpp: Hauptlogikbesd_data.h/besd_data.cpp: BESD-Datenformatgls_data.h/gls_data.cpp: GLS-Datenformatmendelian.h/mendelian.cpp: Statistische Kernfunktionen
Datenformate
BESD
Binary-formatierte Datei mit SNP-Informationen, Effektgrößen und Standardfehlern.
- Struktur:
loci,snp_id,effect_allele,beta,se,p_value - Parsen über Funktionen in
besd_data.cpp
GLS
Genotyp- und Phänotyp-Daten für die lineare Regression.
- Enthält
genotype_matrix,phenotype_vector,covariates - Verarbeitung in
gls_data.cpp
Build-System
Verwendet CMake und Makefile.
- CMakeLists.txt: Hauptkonfiguration
makeerzeugt das Binarysmr- Abhängigkeiten: Eigen, Boost (optional)
Statistische Methoden
- IVW (Inverse Variance Weighted): Gewichtete Metaanalyse der SNP-Effekte
- Egger-Regression: Erkennung von Pleiotropie
- HEIDI-Test: Test auf Heterogenität im Effekt
Häufige Fallstricke
- Pufferüberlauf: Bei großen Datenmengen in
besd_data.cppimmer Längen prüfen - Speicherverwaltung: Vektoren vor Zugriff initialisieren
- Fehlende Covariate: In GLS-Analysen stets alle Kovariaten angeben
- Linker-Fehler: Eigen-Bibliothek korrekt einbinden in CMakeLists.txt
Beispielaufruf
./smr --bfile test --gwas-summary test.ma --out output