TREMER is a blazing-fast, privacy-first phylogenetic tree program designed to analyze genetic and genealogical data (such as Y-DNA STR and SNP data) and construct hierarchical trees detailing the relationships among various kits.
TREMER runs locally on your machine or directly in your browser via WebAssembly, ensuring your genetic data remains entirely private and is never uploaded to third-party clustering servers.
- Strict Biological Skeletons: Builds robust biological trees by evaluating shared STR mutations against established SNP hierarchies, preventing predictive clustering from pulling kits away from known paper-trail ancestors.
- Heuristic Discovery Mode (Relaxed): Optionally bypass strict paper-trail locks to cluster kits based on overall STR similarity, bridging the gap with visual "eyeball test" clustering tools like SAPP.
- Automated Data Pipelines: Includes utilities for merging raw FTDNA CSV exports and automatically fetching live SNP age estimates directly from FTDNA Discover.
- WebAssembly UI: An interactive web interface to generate and view trees directly in your browser without installing command-line tools.
The easiest way to use TREMER is via the included web interface.
- Open
admin/index.htmlin your web browser. - Upload your project
.txtfile. - Check the "Heuristic Discovery Mode" box if you want relaxed SAPP-style clustering.
- Click "Generate Tree" to instantly calculate and visualize your phylogenetic tree!
The core engine is written in C for maximum performance.
makeThis compiles the tremer_rewrite executable and the utilities in the tools/ directory (strmerge and strdata).
You can run the program against a specific input file or a project directory.
./tremer_rewrite Neely_projectTo run in Relaxed Mode (SAPP-style heuristic clustering):
./tremer_rewrite -relaxed Neely_projectFor project maintainers, TREMER includes an automated pipeline:
make build: Automatically merges new FTDNA STR.csvexports placed in your../YSTRdirectory and securely injects them into your project files without overwriting manual edits.make update: Runs thetools/update_tremer_ages.pyscript to fetch live SNP age updates from FTDNA for all SNPs listed in your project files. The script is protected against race conditions and will safely preserve any manual edits you make while it is running.
To see exactly how TREMER formats its inputs and handles multiple CSVs, check out the samples/ directory! It contains mock 111-STR exports, merged STR data, and a full sample project input.
TREMER generates multiple outputs:
trees.txt: A plain-text representation of the phylogenetic tree.*.svg: Scalable Vector Graphic visualizations of the trees.*.html: HTML wrappers for viewing the generated SVGs in a browser.