Commit 152a5d35 authored by Dylan Aïssi's avatar Dylan Aïssi
Browse files

New upstream version 1.90~b6.13-191130

parent f1257bee
Loading
Loading
Loading
Loading
+16 −16
Original line number Diff line number Diff line
@@ -93,7 +93,7 @@
static const char ver_str[] =
#ifdef STABLE_BUILD
  "PLINK v1.90b6.12"
  "PLINK v1.90b6.13"
#else
  "PLINK v1.90p"
#endif
@@ -105,7 +105,7 @@ static const char ver_str[] =
#else
  " 32-bit"
#endif
  " (28 Oct 2019)";
  " (30 Nov 2019)";
static const char ver_str2[] =
  // include leading space if day < 10, so character length stays the same
  ""
@@ -4720,7 +4720,7 @@ int32_t main(int32_t argc, char** argv) {
	for (uii = 1; uii <= param_ct; uii++) {
	  if (!strcmp(argv[cur_arg + uii], "perm")) {
	    if (cluster.modifier & CLUSTER_CMH_MPERM) {
	      logerrprint("Error: --bd 'mperm' and 'perm{,-bd}' cannot be used together.\n");
	      logerrprint("Error: --bd 'mperm' and 'perm[-bd]' cannot be used together.\n");
	      goto main_ret_INVALID_CMDLINE_A;
	    } else if (cluster.modifier & CLUSTER_CMH_PERM_BD) {
	      logerrprint("Error: --bd 'perm' and 'perm-bd' modifiers cannot be used together.\n");
@@ -4729,7 +4729,7 @@ int32_t main(int32_t argc, char** argv) {
	    cluster.modifier |= CLUSTER_CMH_PERM;
	  } else if (!strcmp(argv[cur_arg + uii], "perm-bd")) {
	    if (cluster.modifier & CLUSTER_CMH_MPERM) {
	      logerrprint("Error: --bd 'mperm' and 'perm{,-bd}' cannot be used together.\n");
	      logerrprint("Error: --bd 'mperm' and 'perm[-bd]' cannot be used together.\n");
	      goto main_ret_INVALID_CMDLINE_A;
	    } else if ((cluster.modifier & (CLUSTER_CMH_PERM | CLUSTER_CMH_PERM_BD)) == CLUSTER_CMH_PERM) {
	      logerrprint("Error: --bd 'perm' and 'perm-bd' modifiers cannot be used together.\n");
@@ -4741,7 +4741,7 @@ int32_t main(int32_t argc, char** argv) {
	    cluster.modifier |= CLUSTER_CMH_PERM_BD;
	  } else if ((strlen(argv[cur_arg + uii]) > 6) && (!memcmp(argv[cur_arg + uii], "mperm=", 6))) {
	    if (cluster.modifier & CLUSTER_CMH_PERM) {
	      logerrprint("Error: --bd 'mperm' and 'perm{,-bd}' cannot be used together.\n");
	      logerrprint("Error: --bd 'mperm' and 'perm[-bd]' cannot be used together.\n");
	      goto main_ret_INVALID_CMDLINE_A;
	    } else if (cluster.modifier & CLUSTER_CMH_MPERM) {
	      logerrprint("Error: Duplicate --bd 'mperm' modifier.\n");
@@ -4959,7 +4959,7 @@ int32_t main(int32_t argc, char** argv) {
    case 'c':
      if (!memcmp(argptr2, "hr", 3)) {
	if (chrom_flag_present) {
	  logerrprint("Error: --chr cannot be used with --autosome{,-xy}.\n");
	  logerrprint("Error: --chr cannot be used with --autosome[-xy].\n");
	  goto main_ret_INVALID_CMDLINE_A;
	}
        retval = parse_chrom_ranges(param_ct, '-', &(argv[cur_arg]), chrom_info.chrom_mask, &chrom_info, (misc_flags / MISC_ALLOW_EXTRA_CHROMS) & 1, argptr);
@@ -6680,7 +6680,7 @@ int32_t main(int32_t argc, char** argv) {
	misc_flags |= MISC_FREQX;
      } else if (!memcmp(argptr2, "rom", 4)) {
	if (chrom_flag_present) {
	  logerrprint("Error: --from cannot be used with --autosome{,-xy} or --{,not-}chr.\n");
	  logerrprint("Error: --from cannot be used with --autosome[-xy] or --[not-]chr.\n");
	  goto main_ret_INVALID_CMDLINE_A;
	}
        if (enforce_param_ct_range(param_ct, argv[cur_arg], 1, 1)) {
@@ -9593,7 +9593,7 @@ int32_t main(int32_t argc, char** argv) {
        calculation_type |= CALC_NEIGHBOR;
      } else if (!memcmp(argptr2, "ot-chr", 7)) {
	if (markername_from) {
	  logerrprint("Error: --from cannot be used with --autosome{,-xy} or --{,not-}chr.\n");
	  logerrprint("Error: --from cannot be used with --autosome[-xy] or --[not-]chr.\n");
	  goto main_ret_INVALID_CMDLINE_A;
	}
	// allowed:
@@ -9603,7 +9603,7 @@ int32_t main(int32_t argc, char** argv) {
	// does not make sense, disallowed:
	//   --allow-extra-chr --chr 5-22 --not-chr bobs_chrom
	// --allow-extra-chr present, --chr/--autosome{,-xy} not present
	// --allow-extra-chr present, --chr/--autosome[-xy] not present
	uii = ((misc_flags / MISC_ALLOW_EXTRA_CHROMS) & 1) && (!chrom_info.is_include_stack);
	retval = parse_chrom_ranges(param_ct, '-', &(argv[cur_arg]), chrom_exclude, &chrom_info, uii, argptr);
	if (retval) {
@@ -9870,13 +9870,13 @@ int32_t main(int32_t argc, char** argv) {
	  logerrprint("Error: --parallel cannot be used with \"--distance square\".  Use \"--distance\nsquare0\" or plain --distance instead.\n");
	  goto main_ret_INVALID_CMDLINE_A;
	} else if ((dist_calc_type & (DISTANCE_BIN | DISTANCE_BIN4)) && (!(dist_calc_type & DISTANCE_SHAPEMASK))) {
	  logerrprint("Error: --parallel cannot be used with plain \"--distance bin{,4}\".  Use e.g.\n\"--distance bin square0\" or \"--distance bin triangle\" instead.\n");
	  logerrprint("Error: --parallel cannot be used with plain \"--distance bin[4]\".  Use e.g.\n\"--distance bin square0\" or \"--distance bin triangle\" instead.\n");
	  goto main_ret_INVALID_CMDLINE_A;
	} else if ((rel_info.modifier & REL_CALC_SHAPEMASK) == REL_CALC_SQ) {
	  logerrprint("Error: --parallel cannot be used with \"--make-rel square\".  Use \"--make-rel\nsquare0\" or plain --make-rel instead.\n");
	  goto main_ret_INVALID_CMDLINE_A;
	} else if ((rel_info.modifier & (REL_CALC_BIN | REL_CALC_BIN4)) && (!(rel_info.modifier & (REL_CALC_SHAPEMASK | REL_CALC_GRM_BIN)))) {
	  logerrprint("Error: --parallel cannot be used with plain \"--make-rel bin{,4}\".  Use e.g.\n\"--make-rel bin square0\" or \"--make-rel bin triangle\" instead.\n");
	  logerrprint("Error: --parallel cannot be used with plain \"--make-rel bin[4]\".  Use e.g.\n\"--make-rel bin square0\" or \"--make-rel bin triangle\" instead.\n");
	  goto main_ret_INVALID_CMDLINE_A;
	} else if (calculation_type & CALC_PLINK1_DISTANCE_MATRIX) {
	  logerrprint("Error: --parallel and --distance-matrix cannot be used together.  Use\n--distance instead.\n");
@@ -10828,7 +10828,7 @@ int32_t main(int32_t argc, char** argv) {
	      logerrprint("Error: Conflicting --r/--r2 modifiers.\n");
	      goto main_ret_INVALID_CMDLINE;
	    } else if (ld_info.modifier & LD_MATRIX_SPACES) {
	      logerrprint("Error: --r/--r2 'bin{,4}' and 'spaces' modifiers cannot be used together.\n");
	      logerrprint("Error: --r/--r2 'bin[4]' and 'spaces' modifiers cannot be used together.\n");
	      goto main_ret_INVALID_CMDLINE;
	    }
	    ld_info.modifier |= LD_MATRIX_BIN;
@@ -10839,7 +10839,7 @@ int32_t main(int32_t argc, char** argv) {
	      logerrprint("Error: Conflicting --r/--r2 modifiers.\n");
	      goto main_ret_INVALID_CMDLINE;
	    } else if (ld_info.modifier & LD_MATRIX_SPACES) {
	      logerrprint("Error: --r/--r2 'bin{,4}' and 'spaces' modifiers cannot be used together.\n");
	      logerrprint("Error: --r/--r2 'bin[4]' and 'spaces' modifiers cannot be used together.\n");
	      goto main_ret_INVALID_CMDLINE;
	    }
	    ld_info.modifier |= LD_MATRIX_BIN4;
@@ -10850,7 +10850,7 @@ int32_t main(int32_t argc, char** argv) {
	    if (ld_info.modifier & (LD_INTER_CHR | LD_INPHASE | LD_DX | LD_WITH_FREQS)) {
	      goto main_r2_matrix_conflict;
	    } else if (ld_info.modifier & (LD_MATRIX_BIN | LD_MATRIX_BIN4)) {
	      logerrprint("Error: --r/--r2 'bin{,4}' and 'spaces' modifiers cannot be used together.\n");
	      logerrprint("Error: --r/--r2 'bin[4]' and 'spaces' modifiers cannot be used together.\n");
	      goto main_ret_INVALID_CMDLINE;
	    }
	    ld_info.modifier |= LD_MATRIX_SPACES;
@@ -10974,7 +10974,7 @@ int32_t main(int32_t argc, char** argv) {
	  logerrprint("Error: --snp cannot be used with --from-bp/-kb/-mb.\n");
	  goto main_ret_INVALID_CMDLINE_A;
	} else if ((!are_all_words_zero(chrom_info.chrom_mask, CHROM_MASK_INITIAL_WORDS)) || chrom_info.incl_excl_name_stack) {
	  logerrprint("Error: --snp cannot be used with --autosome{,-xy} or --{,not-}chr.\n");
	  logerrprint("Error: --snp cannot be used with --autosome[-xy] or --[not-]chr.\n");
	  goto main_ret_INVALID_CMDLINE_A;
	} else if (markername_snp) {
          logerrprint("Error: --snp cannot be used with --exclude-snp.\n");
@@ -11704,7 +11704,7 @@ int32_t main(int32_t argc, char** argv) {
	load_rare |= LOAD_RARE_TPED;
      } else if (!memcmp(argptr2, "o", 2)) {
	if ((!are_all_words_zero(chrom_info.chrom_mask, CHROM_MASK_INITIAL_WORDS)) || chrom_info.incl_excl_name_stack) {
	  logerrprint("Error: --to cannot be used with --autosome{,-xy} or --{,not-}chr.\n");
	  logerrprint("Error: --to cannot be used with --autosome[-xy] or --[not-]chr.\n");
	  goto main_ret_INVALID_CMDLINE_A;
	} else if (markername_snp) {
	  logerrprint("Error: --to cannot be used with --snp.\n");
+1 −1
Original line number Diff line number Diff line
@@ -14221,7 +14221,7 @@ int32_t recode(uint32_t recode_modifier, FILE* bedfile, uintptr_t bed_offset, ch
  }
  // bugfix: stop generating a .map file when Oxford-format requested
  if (recode_modifier & (RECODE_COMPOUND | RECODE_LGEN | RECODE_LGEN_REF | RECODE_PED)) {
  if (recode_modifier & (RECODE_COMPOUND | RECODE_LGEN | RECODE_LGEN_REF | RECODE_PED | RECODE_RLIST)) {
    strcpy(outname_end, ".map");
    retval = write_map_or_bim(outname, marker_exclude, marker_ct, marker_ids, max_marker_id_len, marker_cms, marker_pos, nullptr, ((recode_modifier & (RECODE_TAB | RECODE_DELIMX)) == RECODE_DELIMX)? ' ' : '\t', chrom_info_ptr);
    if (retval) {
+9 −9
Original line number Diff line number Diff line
@@ -833,9 +833,9 @@ int32_t disp_help(uint32_t param_ct, char** argv) {
"    * If you're satisfied with all the default settings described below, just\n"
"      use --homozyg with no modifiers.  Otherwise, --homozyg lets you change a\n"
"      few binary settings:\n"
"      * 'group{,-verbose}' adds a report on pools of overlapping runs of\n"
"      * 'group[-verbose]' adds a report on pools of overlapping runs of\n"
"        homozygosity.  (Automatically set when --homozyg-match is present.)\n"
"      * With 'group{,-verbose}', 'consensus-match' causes pairwise segmental\n"
"      * With 'group[-verbose]', 'consensus-match' causes pairwise segmental\n"
"        matches to be called based on the variants in the pool's consensus\n"
"        segment, rather than the variants in the pairwise intersection.\n"
"      * Due to how the scanning window algorithm works, it is possible for a\n"
@@ -1253,7 +1253,7 @@ int32_t disp_help(uint32_t param_ct, char** argv) {
"    * 'nop' strips p-values from the main report.\n"
"    * These computations can be subdivided with --parallel; however...\n"
"  --epistasis-summary-merge <common file prefix> <ct>\n"
"    When a --{,fast-}epistasis job is subdivided with --parallel, the main\n"
"    When a --[fast-]epistasis job is subdivided with --parallel, the main\n"
"    report can be assembled at the end by applying Unix 'cat' in the usual\n"
"    manner, but the .summary.1, .summary.2, ... files may require a specialized\n"
"    merge.  --epistasis-summary-merge takes care of the latter.\n\n"
@@ -1407,8 +1407,8 @@ int32_t disp_help(uint32_t param_ct, char** argv) {
"  --simulate-n <num>        : Set --simulate-qt sample count (default 1000).\n"
	       );
    help_print("simulate\tsimulate-qt\tsimulate-label\tsimulate-missing", &help_ctrl, 0,
"  --simulate-label <prefix> : Set --simulate{,-qt} FID/IID name prefix.\n"
"  --simulate-missing <freq> : Set --simulate{,-qt} missing genotype frequency.\n"
"  --simulate-label <prefix> : Set --simulate[-qt] FID/IID name prefix.\n"
"  --simulate-missing <freq> : Set --simulate[-qt] missing genotype frequency.\n"
	       );
    help_print("allow-extra-chr\taec", &help_ctrl, 0,
"  --allow-extra-chr ['0']   : Permit unrecognized chromosome codes.  The '0'\n"
@@ -1638,7 +1638,7 @@ int32_t disp_help(uint32_t param_ct, char** argv) {
	       );
    help_print("read-freq\tupdate-freq", &help_ctrl, 0,
"  --read-freq <fn> : Estimate MAFs and heterozygote frequencies from the given\n"
"                     --freq{,x} report, instead of the input fileset.\n"
"                     --freq[x] report, instead of the input fileset.\n"
	       );
    help_print("hwe\thwe-all\thwe2", &help_ctrl, 0,
"  --hwe <p> ['midp'] ['include-nonctrl'] : Exclude variants with Hardy-Weinberg\n"
@@ -1813,7 +1813,7 @@ int32_t disp_help(uint32_t param_ct, char** argv) {
"                                    covariate file.\n"
	       );
    help_print("merge\tbmerge\tmerge-list\tmerge-mode", &help_ctrl, 0,
"  --merge-mode <n>   : Adjust --{,b}merge/--merge-list behavior based on a\n"
"  --merge-mode <n>   : Adjust --[b]merge/--merge-list behavior based on a\n"
"                       numeric code.\n"
"                       1 (default) = ignore missing calls, otherwise difference\n"
"                                     -> missing\n"
@@ -1853,7 +1853,7 @@ int32_t disp_help(uint32_t param_ct, char** argv) {
"  --tag-mode2        : Use two-column --show-tags (file mode) I/O format.\n"
	       );
    help_print("indep\tindep-pairwise\tr\tr2\tflip-scan\tflipscan\tshow-tags\tld-xchr", &help_ctrl, 0,
"  --ld-xchr <code>   : Set chrX model for --indep{,-pairwise}, --r/--r2,\n"
"  --ld-xchr <code>   : Set chrX model for --indep[-pairwise], --r/--r2,\n"
"                       --flip-scan, and --show-tags.\n"
"                       1 (default) = males coded 0/1, females 0/1/2 (A1 dosage)\n"
"                       2 = males coded 0/2\n"
@@ -2090,7 +2090,7 @@ int32_t disp_help(uint32_t param_ct, char** argv) {
	       );
    help_print("fast-epistasis\tepistasis\tgap\tepi1\tepi2", &help_ctrl, 0,
"  --gap <kbs>      : Set \"--fast-epistasis case-only\" min. gap (default 1000).\n"
"  --epi1 <p-value> : Set --{,fast-}epistasis reporting threshold (default\n"
"  --epi1 <p-value> : Set --[fast-]epistasis reporting threshold (default\n"
"                     5e-6 for 'boost', 1e-4 otherwise).\n"
"  --epi2 <p-value> : Set threshold for contributing to SIG_E count (def. 0.01).\n"
	       );