diff options
| author | Pjotr Prins | 2025-12-05 10:55:40 +0100 |
|---|---|---|
| committer | Pjotr Prins | 2025-12-05 10:55:40 +0100 |
| commit | 3eda2c90c47f242bd1cfbc3dbe7534c08d87b529 (patch) | |
| tree | 5a356e8d40da4166aa013a4d0b2311c51d309256 /src | |
| parent | 6255a45e28b32ee8116418d849db68395ec4e096 (diff) | |
| download | pangemma-3eda2c90c47f242bd1cfbc3dbe7534c08d87b529.tar.gz | |
Replace tuple with aggregate
Diffstat (limited to 'src')
| -rw-r--r-- | src/lmm.cpp | 10 | ||||
| -rw-r--r-- | src/lmm.h | 7 |
2 files changed, 11 insertions, 6 deletions
diff --git a/src/lmm.cpp b/src/lmm.cpp index 66b8e37..44f2a55 100644 --- a/src/lmm.cpp +++ b/src/lmm.cpp @@ -2100,10 +2100,10 @@ void LMM::mdb_analyze(std::function< SnpNameValues2(size_t) >& fetch_snp, auto sumstats = [&] (SUMSTAT2 st) { outfile << scientific << setprecision(6); - auto tup = st.markerinfo; - auto name = get<0>(tup); - auto chr = get<1>(tup); - auto pos = get<2>(tup); + auto m = st.markerinfo; + auto name = m.name; + auto chr = m.chr; + auto pos = m.pos; outfile << chr << "\t"; outfile << name << "\t"; @@ -2255,7 +2255,7 @@ void LMM::mdb_calc_gwa(const gsl_matrix *U, const gsl_vector *eval, size_t n_miss = 0; // count NAs: FIXME double maf = compute_maf(ni_total, ni_test, n_miss, gs.data()); - markerinfo = make_tuple(marker,chr,pos,num); + markerinfo = MarkerChrPos { .name=marker,.chr=chr,.pos=pos,.line_no=num }; // cout << "!!!!" << size << marker << ": af" << maf << " " << gs[0] << "," << gs[1] << "," << gs[2] << "," << gs[3] << endl; } diff --git a/src/lmm.h b/src/lmm.h index 715b9c0..d382e48 100644 --- a/src/lmm.h +++ b/src/lmm.h @@ -45,7 +45,12 @@ public: size_t e_mode; }; -typedef tuple< string, uint16_t, uint32_t, uint32_t > MarkerChrPos; // name, chr, pos, line +// typedef tuple< string, uint16_t, uint32_t, uint32_t > MarkerChrPos; // name, chr, pos, line +struct MarkerChrPos { + string name; + size_t chr, pos, line_no; +} ; + typedef vector<MarkerChrPos> Markers; typedef tuple< string,vector<double> > SnpNameValues; typedef tuple< bool,MarkerChrPos,vector<double> > SnpNameValues2; // success, markerinfo (maf and n_miss are computed) |
