- --glm linear: p-values of joint tests (genotypic/hethom, --tests) now use the residual degrees of freedom (sample count minus predictor count) instead of the sample count.
- --glm on multiallelic variants: when an allele is absent from the analyzed samples, linear regression did not subtract from the t-test df and logistic regression could report the wrong coefficients.
- --glm --tests/--parameters on chrX/chrY: when a covariate was dropped only on that chromosome (e.g. constant among males on chrY), the joint test or parameter subset could select the wrong predictors there.
- --glm local covariates: interaction terms for ordinary covariates were built from the wrong covariate column, and 1-based 'local-cats=' failed to omit the last category (producing NA results). Also fixed: row duplication and pre-first-position handling with 'local-pos-cols='.
- t/F-test p-values: one incomplete-beta-function branch lost precision for some small-degrees-of-freedom cases.
- --adjust/--adjust-file with 'log10': -log10(p) columns printed the --output-min-p value (or 2147483647) for very small p-values.
- --score: --xchr-model 0 could crash. --q-score-range with several ranges added the sparse-variant correction to the wrong ranges. Mean imputation of sparsely-stored missing calls ignored the centering/standardization intercept. Missing haploid calls under --q-score-range used the wrong counter.
- --keep-if/--remove-if: '!=' on a binary phenotype behaved like '=='.
- --filter-females now keeps only females (it previously also kept unknown-sex samples). --remove-founders and --remove-nonfounders had their meanings swapped.
- --snps/--extract ranges: a range end that shared a prefix with an earlier ID (e.g. "rs115,rs1-rs11") was rejected as a duplicate.
- --read-freq with a biallelic-only format (e.g. PLINK 1.x .frq) skipped every variant when the dataset contained any multiallelic variant.
- --geno 'dosage' on chrX with a sample subset counted excluded samples' missing calls.
- --fst block jackknife: SE was wrong when the block size divided the variant count exactly.
- --het small-sample: founder allele frequencies were wrong on sparsely-stored variants when nonfounders were present, slightly shifting E(HOM) and F.
- --make-king-table: NSNP (and proportion columns derived from it) was too high for some pairs on variants with very few non-common calls.
- --sample-diff: variants where every call was missing were counted as observed and identical; missing calls also incremented IBS counts, and haploid dosage comparisons miscounted IBS-missing.
- --geno-counts: mixed-allele counts are now reported on chrM.
- --hardy/--freq on multiallelic chrX variants: the founder male count could include out-of-range bits.
- --make-pgen/--make-bed with --indiv-sort: --set-invalid-haploid-missing masked the wrong samples.
- --set-invalid-haploid-missing/--set-mixed-mt-missing with dosages: after the first cleared call, later dosages were attached to the wrong samples.
- --make-pgen fixed-width output ('format=2') after variant filtering wrote provisional-REF flags for the wrong variants.
- --pmerge-list: a fileset left empty by filtering caused the next fileset to be dropped. .psam merging: a mother-ID conflict locked the father instead of the mother, the missing-category name corrupted categorical phenotypes, and a 0 seen before a conflict resurrected the conflicted value as 0.
- --normalize: when an allele was entirely right-trimmed and the variant was then left-shifted, the padding base came from the wrong position.
- --fa + VCF/BCF export: the last contig's length was missing from ##contig lines.
- VCF/BCF export: ##contig lines whose ID was not the first key lost a comma or kept a stray one. BCF export: haploid male GP values had REF/ALT probabilities swapped, 'HDS-force' gave non-male haploid calls diploid HDS on chrY/chrM, and chromosomes exported as "0" got inconsistent contig indices.
- --export A-transpose 'spaces': the header's FID_IID names were garbled.
- --export bgen-1.2 or -1.3 .sample file: when no females were present, unknown-sex samples' missing rates counted chrY missing calls (rates could exceed 1).
- --output-chr two-character codes: chrY was written as "XY".
- --recover-var-ids: when a filter applied before it (e.g. --exclude-snps) removed a chromosome's last variant(s), that variant's record could also be matched to the next chromosome's first variant, failing the run with a spurious "conflicting matching-position-and-alleles records" error.
- --gwas-ssf rsid=infer: on large inputs, the retry after a late rsID read from the end of the file instead of the beginning.
- --import-dosage with --import-dosage-certainty: calls below the certainty threshold were overwritten with a dosage instead of staying missing.
- --vcf: --idspace-to was ignored unless an --id-delim was in effect.
- --bcf with --vcf-min-gq/--vcf-min-dp: the trailing samples (beyond the last full vector) were filtered using the wrong values; ploidy>2 detection stepped through GT values incorrectly.
- --bgen without a .sample file: embedded sample IDs were split incorrectly under --id-delim. BGEN v1.2-1.3 import could crash if very small chromosomes (fewer variants than threads) were present.
- --gen: the second pass now repeats the first pass's skip tests (--chr with --oxford-single-chr, overlong variant IDs), keeping variants aligned.
- .map import: whether to keep the CM column was decided by the last variant alone.
- Multipass .ped import did not flip the correct alleles.
- --script crashed due to an off-by-one error.
- --pheno-col-nums could fail on very wide headerless files.