aboutsummaryrefslogtreecommitdiff
path: root/src/param.cpp
diff options
context:
space:
mode:
authorPjotr Prins2018-09-06 10:25:22 +0000
committerPjotr Prins2018-09-06 10:25:22 +0000
commit6dd15bfabc5c655d18ea19c0d69b76ecc34630e2 (patch)
tree336c37cac9b105bec550405a11853277631c2810 /src/param.cpp
parent8010061e8af476d66a0ca6fb6d509b36acdb9b9a (diff)
downloadpangemma-6dd15bfabc5c655d18ea19c0d69b76ecc34630e2.tar.gz
More debugging info and raise SIGINT instead of exit
Diffstat (limited to 'src/param.cpp')
-rw-r--r--src/param.cpp25
1 files changed, 11 insertions, 14 deletions
diff --git a/src/param.cpp b/src/param.cpp
index 12f4299..6537379 100644
--- a/src/param.cpp
+++ b/src/param.cpp
@@ -35,6 +35,7 @@
#include "gsl/gsl_vector.h"
#include "eigenlib.h"
+#include "gemma.h"
#include "gemma_io.h"
#include "mathfunc.h"
#include "param.h"
@@ -311,6 +312,7 @@ void PARAM::ReadFiles(void) {
maf_level, miss_level, hwe_level, r2_level, mapRS2chr,
mapRS2bp, mapRS2cM, snpInfo, ns_test) == false) {
error = true;
+ return;
}
gsl_matrix_free(W2);
@@ -320,12 +322,7 @@ void PARAM::ReadFiles(void) {
// Read genotype file for multiple PLINK files.
if (!file_mbfile.empty()) {
igzstream infile(file_mbfile.c_str(), igzstream::in);
- if (!infile) {
- cout << "error! fail to open mbfile file: " << file_mbfile << endl;
- error = true;
- return;
- }
-
+ enforce_msg(infile,"fail to open mbfile file");
string file_name;
size_t t = 0, ns_test_tmp = 0;
gsl_matrix *W3 = NULL;
@@ -477,11 +474,7 @@ void PARAM::ReadFiles(void) {
ni_test += indicator_idv[i];
}
- if (ni_test == 0) {
- cout << "error! number of analyzed individuals equals 0. " << endl;
- error = true;
- return;
- }
+ enforce_msg(ni_test,"number of analyzed individuals equals 0.");
}
// For ridge prediction, read phenotype only.
@@ -1056,6 +1049,8 @@ void PARAM::CheckData(void) {
}
}
+ enforce_msg(ni_test,"number of analyzed individuals equals 0.");
+
if (ni_test == 0 && file_cor.empty() && file_mstudy.empty() &&
file_study.empty() && file_beta.empty() && file_bf.empty()) {
error = true;
@@ -1383,7 +1378,8 @@ size_t GetabIndex(const size_t a, const size_t b, const size_t n_cvt) {
}
size_t index = (2 * cols - a1 + 2) * (a1 - 1) / 2 + b1 - a1;
- cout << "* GetabIndx " << a1 << "," << b1 << "," << cols << ":" << index << endl;
+ // cout << "* GetabIndx " << a1 << "," << b1 << "," << cols << ":" << index << endl;
+ // FIXME: should add a contract for index range
return index;
// return ( b < a ? ((2 * cols - b + 2) * (b - 1) / 2 + a - b ): ((2 * cols - a + 2) * (a - 1) / 2 + b - a) );
@@ -2062,10 +2058,11 @@ void PARAM::ProcessCvtPhen() {
}
// Check ni_test.
- if (ni_test == 0 && a_mode != 15) {
+ if (a_mode != M_BSLMM5)
+ enforce_msg(ni_test,"number of analyzed individuals equals 0.");
+ if (ni_test == 0 && a_mode != M_BSLMM5) {
error = true;
cout << "error! number of analyzed individuals equals 0. " << endl;
- return;
}
// Check covariates to see if they are correlated with each