Skip to content

Commit 8c0a23b

Browse files
committed
correction for huge data fix
1 parent f938b8e commit 8c0a23b

File tree

3 files changed

+16
-28
lines changed

3 files changed

+16
-28
lines changed

src/common/version.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#pragma once
22

3-
#define SPLASH_VER "2.11.4"
3+
#define SPLASH_VER "2.11.5"
44

55
inline void SPLASH_VER_PRINT(std::ostream& oss) {
66
oss << "splash version: " << SPLASH_VER << "\n";

src/sig_anch/sig_anch.cpp

Lines changed: 14 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -289,10 +289,10 @@ bool load_tsv_stream(const string& fn, uint64_t file_id)
289289
// ************************************************************************************
290290
vector<pair<double, bool>> fdr_correction(const vector<double>& pvals, double alpha)
291291
{
292-
vector<pair<double, int>> pv_sorted;
292+
vector<pair<double, int64_t>> pv_sorted;
293293
vector<pair<double, bool>> pv_corr;
294294

295-
int size = (int)pvals.size();
295+
int64_t size = (int64_t)pvals.size();
296296

297297
pv_corr.resize(size);
298298

@@ -301,47 +301,35 @@ vector<pair<double, bool>> fdr_correction(const vector<double>& pvals, double al
301301

302302
pv_sorted.resize(size);
303303

304-
for (int i = 0; i < size; ++i)
304+
for (int64_t i = 0; i < size; ++i)
305305
pv_sorted[i] = make_pair(pvals[i], i);
306306

307307
stable_sort(pv_sorted.begin(), pv_sorted.end());
308308

309309
double cm = 0;
310-
for (int i = 1; i <= size; ++i)
310+
for (int64_t i = 1; i <= size; ++i)
311311
cm += 1.0 / i;
312312

313-
// cout << "cm: " << cm << endl;
314-
315-
// Calculate pvals_corrected_raw
316-
for (int i = 0; i < size; ++i)
313+
// Calculate pvals_corrected_raw
314+
for (int64_t i = 0; i < size; ++i)
317315
{
318316
pv_corr[i].first = pv_sorted[i].first * (size * cm) / (i + 1);
319317
pv_corr[i].second = pv_corr[i].first <= alpha;
320318
}
321319

322-
/* cout << "pvals_corrected_raw: ";
323-
for (auto x : pv_corr)
324-
cout << "[" << x.first << "," << x.second << "] ";
325-
cout << endl;*/
326-
327-
// Calculate pvals_corrected
320+
// Calculate pvals_corrected
328321
double min_pv = 1.0;
329-
for (int i = size - 1; i >= 0; --i)
322+
for (int64_t i = size - 1; i >= 0; --i)
330323
{
331324
min_pv = min(min_pv, pv_corr[i].first);
332325
pv_corr[i].first = min_pv;
333326
}
334327

335-
/* cout << "pvals_corrected: ";
336-
for (auto x : pv_corr)
337-
cout << "[" << x.first << "," << x.second << "] ";
338-
cout << endl;*/
339-
340328
vector<pair<double, bool>> pv_original_order;
341329

342330
pv_original_order.resize(size);
343331

344-
for (int i = 0; i < size; ++i)
332+
for (int64_t i = 0; i < size; ++i)
345333
pv_original_order[pv_sorted[i].second] = pv_corr[i];
346334

347335
return pv_original_order;
@@ -468,27 +456,27 @@ void correct_pvals()
468456
// ************************************************************************************
469457
void fdr_correction_stream(vector<double>& pvals, double alpha)
470458
{
471-
vector<pair<double, int>> pv_sorted;
459+
vector<pair<double, int64_t>> pv_sorted;
472460

473-
int size = (int)pvals.size();
461+
int64_t size = (int64_t)pvals.size();
474462

475463
if (size == 0)
476464
return;
477465

478466
pv_sorted.resize(size);
479467

480-
for (int i = 0; i < size; ++i)
468+
for (int64_t i = 0; i < size; ++i)
481469
pv_sorted[i] = make_pair(pvals[i], i);
482470

483471
stable_sort(pv_sorted.begin(), pv_sorted.end());
484472

485473
double cm = 0;
486-
for (int i = 1; i <= size; ++i)
474+
for (int64_t i = 1; i <= size; ++i)
487475
cm += 1.0 / i;
488476

489477
// Calculate pvals_corrected
490478
double min_pv = 1.0;
491-
for (int i = size - 1; i >= 0; --i)
479+
for (int64_t i = size - 1; i >= 0; --i)
492480
{
493481
double pv = pv_sorted[i].first * (size * cm) / (i + 1);
494482
min_pv = min(min_pv, pv);

src/splash.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ def _split_lines(self, text, width):
2323
# this is the RawTextHelpFormatter._split_lines
2424
return argparse.HelpFormatter._split_lines(self, text, width)
2525

26-
SPLASH_VERSION="2.11.4"
26+
SPLASH_VERSION="2.11.5"
2727

2828
parser = argparse.ArgumentParser(
2929
prog = "splash",

0 commit comments

Comments
 (0)