CHANGELOG

All notable changes to this project are documented in this file.

Tractor v2.6.0 is now available here.

Tractor Workflow, that wraps 3 modules (phasing, local ancestry inference, and Tractor GWAS) is available here.

TractorWorkflow v1.1.0 (requires Tractor >= 2.6.0)

  • Tractor Workflow in sync with Tractor v2.6.0
  • Removed --totallines support, and added in --logistic_backend, progress_every arguments.
  • samples_excluded_from_phenotype.txt is replaced with phenotype_samples_not_in_hapdose_files.txt and hapdose_samples_not_in_phenotype_file.txt

TractorWorkflow v1.0.0

  • Tractor Workflow first release, in sync with Tractor v1.4.0

Tractor v2.6.0 (2026-07)

Added

  • Multi-phenotype mode: --phenocol accepts a comma list or a file path. Hapdose files are parsed once and reused across phenotypes saving time on I/O.
  • --logistic_backend {fastglm|glmfit}, default fastglm – faster than glm.fit. Refer to Choosing a Logistic Backend in README.md
  • --progress_every N.
  • hapdose_samples_not_in_phenotype_file.txt report.
  • Environment banner: R, platform, and all package versions logged per run.

Changed

  • BREAKING Output files are suffixed _<pheno> whenever --phenocol is given.
  • BREAKING Logistic tval_anc* renamed to zval_anc*. Values unchanged.
  • BREAKING AF_anc* and LAprop_anc* now computed on the complete-case sample, not all samples.
  • Logistic phenotypes must be coded 0/1; non-binary values are now rejected at startup.
  • Samples with any missing covariate are dropped per phenotype.
  • --nthreads above the detected core count warns instead of erroring.
  • Streaming via persistent connections; gzip is decompressed once.
  • lm.fit/glm.fit with Wald inference from the QR decomposition.
  • se_anc* rounded to 6 digits (was 4).
  • New dependency fastglm; dplyr and R.utils no longer required. conda environment is updated to include fastglm now.

Fixed

  • Ancestries are paired in numeric order. Sys.glob sorted alphabetically, mis-pairing hapcount/dosage files at 11+ ancestries.
  • No longer crashes when --phenocol X is used and the phenotype file also has a column named y.
  • Final chunk holding exactly one SNP no longer crashes (nSNP %% chunksize == 1).
  • POS is written verbatim; it was space-padded and could render in scientific notation.

Removed

  • --totallines argument was retired as files are streamed via persistent connection.

Tractor v1.4.0 (2024-05)

* Added support for compressed (gz) hapcount/dosage and phenotype files.
* Improved file reading efficiency by implementing fread in chunks, mitigating memory errors.
* Implemented parallel processing for regression, resulting in significant speed improvements with multi-core systems.
* Enhanced flexibility in organizing phenotype files:
* Users can specify sample ID column (--sampleidcol), phenotype ID column (--phenocol), and covariate column list (--covarcollist)
* Updated output summary statistics to include SE and t-val, with column names adjusted to adhere to GWAS standards.