Skip to content
Commits on Source (2)
......@@ -31,9 +31,6 @@ CC ?= gcc
CXX ?= g++
CFLAGS ?= -Wall -O2
CXXFLAGS ?= -Wall -O2
BLASFLAGS ?= -L/usr/lib64/atlas -llapack -lblas -lcblas -latlas
LDFLAGS ?= -lm -lpthread -ldl
ZLIB ?= ../zlib-1.2.11/libz.so.1.2.11
PREFIX ?= /usr/local
DESTDIR ?= .
......@@ -61,6 +58,11 @@ ifeq ($(SYS), WIN)
ZLIB ?= ../zlib-1.2.11/libz.a
endif
# These must appear after the MAC/WIN-specific ?= statements.
BLASFLAGS ?= -L/usr/lib64/atlas -llapack -lblas -lcblas -latlas
LDFLAGS ?= -lm -lpthread -ldl
ZLIB ?= ../zlib-1.2.11/libz.so.1.2.11
ifdef NO_LAPACK
BLASFLAGS=
endif
......
......@@ -31,9 +31,6 @@ CC ?= gcc
CXX ?= g++
CFLAGS ?= -Wall -O2
CXXFLAGS ?= -Wall -O2
BLASFLAGS ?= -L/usr/lib64/atlas -llapack -lblas -lcblas -latlas
LDFLAGS ?= -lm -lpthread -ldl
ZLIB ?= ../zlib-1.2.11/libz.so.1.2.11
PREFIX ?= /usr/local
DESTDIR ?= .
......@@ -61,6 +58,11 @@ ifeq ($(SYS), WIN)
ZLIB ?= ../zlib-1.2.11/libz.a
endif
# These must appear after the MAC/WIN-specific ?= statements.
BLASFLAGS ?= -L/usr/lib64/atlas -llapack -lblas -lcblas -latlas
LDFLAGS ?= -lm -lpthread -ldl
ZLIB ?= ../zlib-1.2.11/libz.so.1.2.11
ifdef NO_LAPACK
BLASFLAGS=
endif
......
......@@ -93,7 +93,7 @@
 
static const char ver_str[] =
#ifdef STABLE_BUILD
"PLINK v1.90b6.10"
"PLINK v1.90b6.11"
#else
"PLINK v1.90p"
#endif
......@@ -105,7 +105,7 @@ static const char ver_str[] =
#else
" 32-bit"
#endif
" (17 Jun 2019)";
" (24 Oct 2019)";
static const char ver_str2[] =
// include leading space if day < 10, so character length stays the same
""
......@@ -7531,7 +7531,7 @@ int32_t main(int32_t argc, char** argv) {
goto main_ret_INVALID_CMDLINE_2A;
}
// may want to permit decimal here
if (scan_posint_defcapx(argv[cur_arg + 1], &ld_info.prune_window_size) || ((ld_info.prune_window_size == 1) && (param_ct == 3))) {
if (scan_posint_defcap(argv[cur_arg + 1], &ld_info.prune_window_size) || ((ld_info.prune_window_size == 1) && (param_ct == 3))) {
sprintf(g_logbuf, "Error: Invalid --%s window size '%s'.\n", argptr, argv[cur_arg + 1]);
goto main_ret_INVALID_CMDLINE_WWA;
}
......@@ -8218,6 +8218,10 @@ int32_t main(int32_t argc, char** argv) {
goto main_ret_NOMEM;
}
} else if (!memcmp(argptr2, "d-snps", 7)) {
if (ld_info.snpstr) {
logerrprint("Error: --ld-snps cannot be used with --ld-snp or --ld-snp-list.\n");
goto main_ret_INVALID_CMDLINE_A;
}
if (enforce_param_ct_range(param_ct, argv[cur_arg], 1, 0x7fffffff)) {
goto main_ret_INVALID_CMDLINE_2A;
}
......@@ -8226,6 +8230,10 @@ int32_t main(int32_t argc, char** argv) {
goto main_ret_1;
}
} else if (!memcmp(argptr2, "d-snp-list", 11)) {
if (ld_info.snpstr) {
logerrprint("Error: --ld-snp cannot be used with --ld-snp-list.\n");
goto main_ret_INVALID_CMDLINE_A;
}
if (enforce_param_ct_range(param_ct, argv[cur_arg], 1, 1)) {
goto main_ret_INVALID_CMDLINE_2A;
}
......@@ -10756,6 +10764,7 @@ int32_t main(int32_t argc, char** argv) {
ld_info.modifier |= LD_R2;
} else if (ld_info.window_r2 != 0.2) {
logerrprint("Error: --ld-window-r2 flag cannot be used with --r.\n");
goto main_ret_INVALID_CMDLINE_A;
}
if (matrix_flag_state) {
matrix_flag_state = 2;
......
......@@ -7121,6 +7121,11 @@ int32_t calc_pca(FILE* bedfile, uintptr_t bed_offset, char* outname, char* outna
}
fill_int_zero(liwork * (sizeof(__CLPK_integer) / sizeof(int32_t)), (int32_t*)iwork);
dsyevr_(&jobz, &range, &uplo, &mdim, main_matrix, &mdim, &nz, &nz, &i1, &i2, &zz, &out_m, out_w, out_z, &ldz, isuppz, work, &lwork, iwork, &liwork, &info);
if ((info != 0) || (out_w[0] != out_w[0])) {
logprint("\n");
logerrprint("Error: Failed to extract eigenvector(s) from GRM.\n");
goto calc_pca_ret_DEGENERATE_DATA;
}
// * out_w[0..(pc_ct-1)] contains eigenvalues
// * out_z[(ii*ulii)..(ii*ulii + ulii - 1)] is eigenvector corresponding to
......@@ -7437,6 +7442,9 @@ int32_t calc_pca(FILE* bedfile, uintptr_t bed_offset, char* outname, char* outna
calc_pca_ret_WRITE_FAIL:
retval = RET_WRITE_FAIL;
break;
calc_pca_ret_DEGENERATE_DATA:
retval = RET_DEGENERATE_DATA;
break;
}
return retval;
}
......
......@@ -319,6 +319,7 @@
#define RET_ALL_SAMPLES_EXCLUDED 11
#define RET_ALL_MARKERS_EXCLUDED 12
#define RET_NETWORK 13
#define RET_DEGENERATE_DATA 14
#define LOAD_PHENO_LAST_COL 127
// for 2.0 -> 1.9 backports
......
......@@ -1135,10 +1135,12 @@ int32_t plink1_dosage(Dosage_info* doip, char* famname, char* mapname, char* out
goto plink1_dosage_ret_1;
}
if (qrange_ct) {
// bugfix (24 Oct 2019): score_range_obs_cts and score_miss_cts need to
// be zero-initialized
if (bigstack_calloc_d(sample_ct * qrange_ct, &cur_scores) ||
bigstack_calloc_d(qrange_ct, &score_bases) ||
bigstack_alloc_ui(qrange_ct, &score_range_obs_cts) ||
bigstack_alloc_ui(sample_ct * qrange_ct, &score_miss_cts)) {
bigstack_calloc_ui(qrange_ct, &score_range_obs_cts) ||
bigstack_calloc_ui(sample_ct * qrange_ct, &score_miss_cts)) {
goto plink1_dosage_ret_NOMEM;
}
*outname_end = '.';
......