Skip to content

Releases: JamesKane/decodingus-navigator

v0.1.0-alpha.15

v0.1.0-alpha.15 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 01 Aug 12:38
906b9ee

Decoding-Us Navigator — v0.1.0-alpha.15 (prerelease)

⚡ CRAM files analyse in seconds, not hours

If your data is a .cram — most public datasets are, and so are many lab exports — every analysis that reads a region of your genome has been paying an enormous hidden cost. Reading one position took 21 seconds on chromosome 21 and nearly two minutes on chromosome 1. The same read from a .bam took four milliseconds.

Fixed. The measured difference on a real 30× genome:

before after
one position, chr21 20.9 s 8 ms
one position, chr1 116 s 113 ms
variant calling, one chromosome over 96 minutes (abandoned) 44 seconds

The cause: every region query was decoding the entire chromosome and then throwing away everything outside the region you asked for, even though the file's own index says exactly which pieces to read. It now reads only those pieces. Nothing about your results changes — the records returned are byte-for-byte identical, which is tested against the previous behaviour on a real 11 GB file.

BAM files were never affected. This is why it went unnoticed: the reference genome we test against most is a BAM.

🧬 Neanderthal segments, rebuilt

Alpha.14 could show where Neanderthal DNA sits on your chromosomes. That feature was wrong, and this release replaces it.

Checked against an independent published callset for the same 20 people, the old version's tract locations matched no better than chance, and the amount it reported did not track the individual at all. It reproduced the right average for a population while telling you nothing about you. It was switched off, rebuilt on a different principle, and switched back on.

What changed. The old method looked for stretches of your genome with slightly more mutations than average — a technique designed for researchers who don't have Neanderthal genomes to compare against. We do have them. The new method asks the direct question: does this stretch of your DNA actually match an archaic genome? That turns out to be about thirty times more evidence per segment.

How well it works now, measured on whole genomes against the same independent callset:

old new
finds the same tracts as the reference no better than chance 40–43 % of them
of what it reports, how much is corroborated 1.5 % ~46 %
does the amount track the individual? no (r = −0.02) yes (r = +0.71)

Every individual tested, across two continents, scores far above what random guessing would produce.

Compare this number only with people of similar ancestry. It is measured against the four archaic genomes that have been sequenced, and they resemble some ancestries more closely than others — so it under-counts East Asians relative to Europeans. The app says so on the card itself. This is a limitation of which ancient genomes exist, not something we can tune away.

Still deliberately withheld: which archaic lineage a segment came from. Neanderthal-versus-Denisovan attribution is not reliable enough to report, and reporting it would manufacture Denisovan findings for people who have none.

Needs whole-genome data and a completed variant-calling run. The card tells you if it can't proceed.

📦 Smaller download — about 55 MB less

alpha.14 alpha.15
macOS .dmg 199 MB 142 MB
Windows -setup.exe 163 MB 109 MB
Linux .AppImage 186 MB 130 MB

Three large reference files that only the archaic-segment feature uses are now fetched on demand the first time you use it, rather than shipping with the app — the same treatment the chromosome painter's reference already had. If you never open that feature, you never download them.

Under the hood

  • The Neanderthal marker count (the 23andMe-style headline number, and what Simple mode shows) is unaffected throughout. It is a different measurement on a different dataset and has been correct all along.
  • Results cached from the previous archaic method are automatically recomputed rather than shown. The same applies if you analysed a single chromosome and later ran the whole genome — a case that previously kept showing the single-chromosome answer.
  • navigator-analysis gains five diagnostic tools, and scripts/archaic-validation/ the harness that produced every number above, so the claims can be re-checked rather than taken on trust.

Prerelease build. Installers below: macOS .dmg (universal), Windows -setup.exe, Linux .AppImage / .deb. Verify against SHA256SUMS.

Full changelog: v0.1.0-alpha.14...v0.1.0-alpha.15

v0.1.0-alpha.14

v0.1.0-alpha.14 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 30 Jul 16:08
b2ea8a4

Decoding-Us Navigator — v0.1.0-alpha.14 (prerelease)

✨ Neanderthal ancestry

Everyone whose ancestry is partly outside Africa carries a little Neanderthal DNA, from interbreeding roughly 50,000 years ago. Navigator now measures yours — in Ancestry for the full picture, and in plain language in Simple mode.

  • A count, not a percentage. You get the number of archaic marker copies you carry, out of the number your test could actually check, split into Neanderthal-diagnostic and shared-archaic — plus how that ranks against reference samples of similar ancestry ("more than X% of European samples"). It is deliberately not phrased as "you are N% Neanderthal". The measurement doesn't support that claim.
  • Not comparable to another company's number. Every test counts against its own marker panel and its own denominator, so two "Neanderthal variant" counts are not the same measurement even when they use the same words. Navigator's panel holds 299,958 sites.
  • No Denisovan result. Outside Oceania that signal sits at the noise floor, so printing one would be inventing a finding. The app says nothing rather than something confident and wrong.
  • Where it sits on your chromosomes. A separate Archaic segments card locates the introgressed tracts themselves and draws them per chromosome. Whole-genome data only, and it needs de-novo variant calling to have been run first — that pass takes hours, so the card asks you to run it rather than starting one behind a button click and looking like it has hung.
  • Ask what it means. The per-signal Explain this button covers the archaic result, and the results chat and HTML export both carry it.

How much does it find? — measured against a published callset

The segment caller was calibrated and then checked against hmmix's own 1000 Genomes archaic calls, not against a target we picked. On the ground-truth European genome:

Archaic sequence located 91.5 Mb across 2,084 tracts
Share of the callable genome 5.04%
Published European average (hmmix, n=633) 90.9 Mb (p10 84.6 – p90 97.2)

That lands at 1.01× the published mean, comfortably inside the normal range — on one genome. That is a calibration check, not a validation across people.

What is deliberately withheld. The machinery to label each tract Neanderthal or Denisovan is built, tested, and switched off. On this genome the two lineages' signals differ by a ratio of 1.10 — barely distinguishable — and forcing a call produced 0 Mb Neanderthal against 0.48 Mb Denisovan, the exact inverse of the known pattern for a European. Shipping that would have manufactured a Denisovan finding out of noise. Segments are shown simply as archaic, and the card says so.

✨ Simple mode, rebuilt around a section rail

Simple mode is what new users land in, and it had become a single scroll several screens tall — ancestry, ancient ancestry, Neanderthal markers, shared ancestry, chromosome painting, relatives and the chat all stacked in one column. Nothing in it was findable.

  • Six panels behind a rail: Your story · Paternal line · Maternal line · Ancestry · Relatives · Your test. The rail carries each panel's headline value — your terminal haplogroup, your top ancestry, your match count — so it answers most questions before you click anything.
  • Ancestry now reads forwards in time. Deep origins (ancient source populations) → Neanderthal traces → continent → detailed populations → your two parental sides → shared ancestry. Top to bottom is oldest to most recent.
  • Relatives are grouped by closeness — close family, extended family, distant relatives — and every row states what its grouping is based on: measured shared DNA where you've actually exchanged segments with someone, or an estimate from shared signals where you haven't. Those are very different claims and the list no longer blurs them.
  • The AI story replaces the one-line summary instead of sitting on top of it, with the plain version one click away.

Also new

  • Settings is split into sub-tabs — General, Connection, Ancestry, AI, References, Tools, Advanced — instead of one long dialog.
  • Pick your reference genome during first-run setup, so a first import doesn't have to guess or stall on a multi-gigabyte download you didn't choose.

Fixed

  • The Simple-mode subject list took half the window. All five left panels shared one saved width, so the wide Advanced subjects table dictated how much room a plain list of names got. Each now remembers its own.
  • Missing-glyph boxes in the navigation. Several icons — including the one on "My DNA" — had no glyph in the app's font and rendered as empty squares. Replaced, and there's now a test that fails if anyone adds another.

Under the hood

  • The download is bigger this time — roughly 60 MB more than alpha.13. Five new reference assets back the archaic report (the marker panel, the percentile reference, an African-outgroup track, diagnostic-site classification, and a callability mask), and they currently ship inside the installer rather than downloading on first use. Trimming that back is on the list.
  • New CLI subcommand navigator archaic-segments.
  • A simplification pass over the app and UI: the largest files split by domain, duplicated logic given one home, and per-frame view caches added.

Prerelease build. Installers below: macOS .dmg (universal), Windows -setup.exe, Linux .AppImage / .deb. Verify against SHA256SUMS.

Full changelog: v0.1.0-alpha.13...v0.1.0-alpha.14

v0.1.0-alpha.13

v0.1.0-alpha.13 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 25 Jul 12:50
5e09eb8

Decoding-Us Navigator — v0.1.0-alpha.13 (prerelease)

✨ Chromosome painting, rebuilt — two parental sides, and real population names

Painting used to give you one blended picture labelled "European". It now splits your DNA into the two halves you inherited — one from each parent — and names the populations along each one.

  • Your DNA sides. Each chromosome is painted twice: once for the half you got from your mother, once for your father's. They're labelled Mother / Father when a parent is in your workspace, Side A / Side B otherwise. There's a plain-language version of this in Simple mode.
  • Sub-population names, not just a continent. The painter now matches your actual haplotypes — stretches of DNA inherited intact — against a reference of real people's chromosomes, instead of scoring each position against population averages. Averages throw away exactly the information that separates British from Tuscan; matching haplotypes keeps it.
  • A far denser reference. The reference panel was rebuilt from 15,659 markers to 164,685, chosen as common variants rather than continent-separating ones — the old set was picked for a different job and was actively poor at this one. Populations that were previously indistinguishable are now callable: Basque, Sardinian, Orcadian, Russian.
  • Hover to trace a population. Hovering a population in the legend (or any segment) highlights it across every chromosome, so you can see where one ancestry actually sits.
  • The reference downloads automatically the first time you paint (133 MB, once). Painting then takes about a minute.

How accurate is this? — measured, not asserted

The painter is now scored against known truth: real reference individuals are removed from the panel, painted, and checked against the population they actually come from. On that test:

What it's calling How often it's right
Continent 98.5%
Region (NW / Southern / NE Europe) 68%
Exact sub-population 33% (guessing would be ~10%)
Top population per side 61%

Per population, it varies a great deal: Finnish 91–96%, British 34–56%, Basque 33–37%, Sardinian 10–36%. French cannot be called at all (~3%) and Russian is weak.

How to read your painting. Treat the top population on each side as informative, not definitive. "British" and "NW European (Utah)" are not a real distinction — they're the two labels the model confuses most. And a few percent of Finnish, Tuscan or Iberian on a NW-European genome is known background noise (~10% of the genome), not a trace of recent ancestry. Continent-level results are solid; the sub-population names are a genuine signal that is right about a third of the time.

Fixed — Windows

Two problems that only affected Windows, both found by this release's testing:

  • Your settings could silently revert. If the app saved settings or reference overrides at the same moment something read them, the read failed and the app quietly fell back to defaults — including your chromosome-painting calibration.
  • App data was written to the wrong place. Your workspace database, reference genomes, panels and saved language were stored next to wherever the app happened to be launched from, rather than in your user profile — so two launches from different folders wouldn't see the same workspace. Everything now lives under %USERPROFILE%\.decodingus, matching macOS and Linux.

If you ran an earlier alpha on Windows: your existing workspace is still in that old location. Copy the .decodingus folder from there into your user profile folder to keep your subjects and analyses.

Under the hood

  • New offline tool navigator-panelbuild validate-lai scores the painter against held-out reference individuals — every calibration value above was chosen from its numbers rather than by eye, and two of the previous hand-tuned settings turned out to be backwards.
  • The painter's advanced settings (Settings → Chromosome painting) now express minimum segment length in centiMorgans rather than marker count, so the setting keeps its meaning when the reference panel changes.

v0.1.0-alpha.12

v0.1.0-alpha.12 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 23 Jul 15:10
ef5dd7b

Decoding-Us Navigator — v0.1.0-alpha.12 (prerelease)

✨ Finer European ancestry — continental populations, deeper panels

Your detailed ancestry breakdown can now place continental Western & Central Europeans, instead of collapsing them into "NW European" plus a spurious dash of Iberian and Tuscan.

  • Six new reference populationsFrench, Orcadian, Sardinian, Basque, Northern Italian, and Russian — fill the gap where the reference set previously had only British, Iberian, Tuscan, Finnish, and a single catch-all NW-European group. A continental European's ancestry now lands on real anchors (French, Orcadian, …) rather than smearing across whatever was nearest.
  • Deeper panels. The fine-population and PCA references are rebuilt at ~10× more markers (200,000 ancestry-informative sites, up from ~20,000). That sharpens the estimate and makes it agree more closely between a whole-genome file and a consumer-chip version of the same person.
  • No action needed — the updated panels download automatically the next time you open the Ancestry tab, the same way reference genomes do.

A note on limits: frequency-based ancestry can't tell German from French or Northern Italian the way a haplotype service can — those national reference panels don't exist in open datasets. So a continental European may still show some "southern European" a commercial test wouldn't; the new French/Orcadian/etc. bins are the honest, real gain we can extract from open data.

Fixed — ancestry charts

  • The donor-ancestry pie no longer renders broken for someone estimated at ~100% of a single continent — it was drawing a half-disc; now it's a full circle.
  • Chromosome painting no longer invents ancestry you don't have. A donor who is 99%+ one continent could be painted with East-Asian or South-Asian stretches on a chromosome arm — noise from the local-ancestry model. Painting is now anchored to your overall composition, so a continent that's absent genome-wide won't show up locally.
  • "Refresh" on the chromosome painting actually recomputes now, instead of re-displaying the cached result — so the fix above (and any future change) takes effect when you click it.

Prerelease build. Installers below: macOS .dmg (universal), Windows -setup.exe, Linux .AppImage / .deb. Verify against SHA256SUMS.

Full changelog: v0.1.0-alpha.11...v0.1.0-alpha.12

v0.1.0-alpha.11

v0.1.0-alpha.11 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 22 Jul 12:51
5636286

Decoding-Us Navigator — v0.1.0-alpha.11 (prerelease)

✨ Bring your own caller — Navigator won't overwrite it

If you run an established variant-calling workflow (GATK4, or a 1240K pipeline), Navigator now treats your calls as authoritative and stops re-deriving them behind your back.

  • The overwrite bug is fixed. Previously, re-running analysis could silently replace an imported Y or mtDNA haplogroup with Navigator's own call — most visibly on ancient-DNA samples, where post-mortem damage made the internal call worse yet it still won. Imported (external) and internal calls now coexist; the internal caller never overwrites yours, and on damaged DNA it doesn't dilute your placement either.
  • A "Prefer external caller" setting (Preferences → on by default). When on, an imported GATK4 / 1240K call wins, and Navigator skips re-walking that alignment. Turn it off to always run the internal caller.

✨ Autosomal ancestry from your own call set — no CRAM decode

You can now feed Navigator's ancestry and IBD directly from an external autosomal call set, instead of having it re-genotype your alignment. Just import the file (or navigator ingest), and it folds into your autosomal consensus — driving modern, fine, and deep (qpAdm) ancestry and IBD.

  • Supported formats: a 1240K EIGENSTRAT call set (Reich-lab / pileupCaller), a GATK4 gVCF, or a genotyped VCF (e.g. bcftools mpileup over the 1240K sites) — anything that lists genotypes at panel sites.
  • No CRAM decode. A ~1.15M-site call set resolves in under a minute, versus re-walking the whole alignment.
  • Validated on real data. From an external 1240K VCF, deep ancestry came out within 0.2% of genotyping the CRAM directly (EEF / Steppe / WHG all matched) — the external call set is a stand-in for the alignment, not an approximation.

Fixed — the panel no longer needs building (#26)

  • Ancestry/IBD panels download themselves. Building the autosomal consensus used to fail with "IBD panel asset not found — build it with panelbuild ibd-panel" if your install didn't ship the panel. The panels (and the qpAdm/fine assets) now download automatically from the assets release the first time a feature needs them, the same way reference genomes do — you never run panelbuild.

Fixed — settings corruption and a surprise genome download (#26)

  • Saving reference settings could corrupt them. Because settings were written one row at a time from concurrent tasks, saving the References table could scramble reference_sources.json — which then silently discarded your custom local-reference path and made the app re-download the default genome (e.g. GRCh37 even with hs37d5.fa set). Config files are now written atomically, in a single save, so this can't happen.
  • An invalid config is reported, not ignored. If your config file is ever unreadable, Navigator now tells you it's falling back to auto-download instead of dropping your overrides in silence.

Prerelease build. Installers below: macOS .dmg (universal), Windows -setup.exe, Linux .AppImage / .deb. Verify against SHA256SUMS.

Full changelog: v0.1.0-alpha.10...v0.1.0-alpha.11

v0.1.0-alpha.10

v0.1.0-alpha.10 Pre-release
Pre-release

Choose a tag to compare

@JamesKane JamesKane released this 21 Jul 12:53
261e1e9

Decoding-Us Navigator — v0.1.0-alpha.10 (prerelease)

✨ Ancient ancestry is back — rebuilt properly

In alpha.9 we turned ancient ancestry off because the old reference data was unusable and the numbers couldn't be trusted. It now returns, rebuilt from the ground up on a real method and a real ancient-genome reference.

  • A genuine admixture model. We replaced the old "which single population are you?" classifier with qpAdm (f4-statistics), the same approach used in the population-genetics literature. It answers the right question: what mixture of ancient sources are you? — reported as Hunter-Gatherer (WHG) / Early European Farmer (EEF) / Steppe.
  • Real ancient references. The estimate is anchored to the AADR 1240K ancient-genome panel, using a source/outgroup configuration drawn from Patterson et al. 2022 (Nature).
  • It's validated. Our estimator reproduces the published admixtools2 package, the same person gets the same answer from a chip and from a WGS (stable to ~0.3% — the failure that sank the old version), and genotyping agreement is 99.84%.

Deep ancestry is off by default until you build your autosomal consensus (on the Autosomal tab); the app will tell you when it's ready. You can run it from Simple mode, the Advanced view, or the deep-ancestry CLI command.

Improved

  • Ancient ancestry now works on all three references. Like modern ancestry, deep ancestry runs on GRCh37, GRCh38, and CHM13/T2T alignments — and on chip data — not just CHM13.
  • Progressive consensus. Your autosomal consensus now builds up incrementally as you import data, instead of being recomputed from scratch each time. Batch imports fold in the panel sites as they go, so deep ancestry is ready sooner.
  • Ancestry cards redesigned. Modern and ancient breakdowns now sit side by side instead of stacked, populations are shown with friendly names (e.g. "British", "NW European"), and every chart is a clean pie — the odd hollow wedge is gone.
  • Faster. Deep ancestry went from 3+ hours to about 100 seconds, and it now picks your best sample by callable/alignment quality rather than raw depth.
  • The reference download now explains itself — the app tells you which genome it's fetching and why.

Diagnostics for the "Assign Y haplogroup fails" report (#20)

We have not been able to reproduce the macOS failure in #20 on any of our own Macs, and the reporter still hits it after rebuilding the CRAM index with samtools index — so the cause is not yet known. This build adds instrumentation to pin down the failure mode the next time it happens, plus fixes for the adjacent problems that were making any such failure hard to read.

  • A failed alignment command now opens a diagnostic modal with a "Copy report" button that probes each participating file separately and names the actual file at fault — distinguishing the three look-alike macOS failures: file missing (ENOENT), Unix permission bits (EACCES), and the OS privacy layer (EPERM/TCC). Previously all of these collapsed into one generic I/O error pointing at the .cram.
  • New navigator doctor --file <path> CLI command prints the same pasteable diagnosis for any alignment, even one that can't be imported.
  • The .crai index is now built automatically before every random-access command, and CRAM index-build failures name the real cause instead of guessing — ruling those out as candidates.
  • Batch analysis preflights each sample once, reporting a single actionable line naming the real file instead of repeating a misattributed error per step.

If you hit #20, please try alpha.10 and paste the Copy report output (or navigator doctor --file <your.cram>) into the issue — that report is what we need to identify the failure.

Fixed

  • The modern ancestry card no longer accidentally shows the ancient breakdown.
  • Cancel actually stops a running analysis now.
  • Structural variants are called on CRAM, not only BAM.

Prerelease build. Installers below: macOS .dmg (universal), Windows -setup.exe, Linux .AppImage / .deb. Verify against SHA256SUMS.

What's Changed

  • Fix/20 alignment preflight diagnosis by @JamesKane in #21
  • Wip/ancient ancestry rebuild by @JamesKane in #22
  • Progressive autosomal consensus + panel batch mode by @JamesKane in #23
  • Fix ancestry cards: modern donor regression, pie charts, friendly names by @JamesKane in #24

Full Changelog: v0.1.0-alpha.9...v0.1.0-alpha.10

v0.1.0-alpha.9

v0.1.0-alpha.9 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 13 Jul 16:28

Decoding-Us Navigator — v0.1.0-alpha.9 (prerelease)

⚠️ Ancient ancestry has been removed

The Ancient ancestry breakdown (Hunter-Gatherer / Steppe / Anatolian Farmer) is disabled in this build. If you saw it in alpha.8 or earlier, those numbers were not trustworthy and should be disregarded.

We found the ancient reference data itself was unusable, so the percentages it produced were not a real measurement of your DNA. Three problems, which compounded:

  • The "ancient" reference set was mostly modern populations with only five ancient ones appended — so modern groups (e.g. Colombian, Puerto Rican) could show up as "ancient sources".
  • The estimator was a classification model ("which single population are you?") rather than an admixture model ("what mixture are you?"). Those are different questions, and only the second one is meaningful here.
  • Most seriously, the five ancient reference populations were indistinguishable from modern Europeans in the underlying model — carrying essentially no ancient signal. As a result the same person could get wildly different answers from the same data (Hunter-Gatherer 72.6% from one source, 7.4% from another).

Rather than show numbers we can't stand behind, we've turned the feature off — in the app, in the exported DNA story, in the AI narration, and in anything published to your PDS. Previously computed ancient results are no longer displayed or shared.

This does not affect anything else. Your input data is fine — we verified chip-vs-WGS genotype agreement at 97.7% with zero orientation errors. And your modern ancestry breakdown is sound and stays enabled.

We're rebuilding ancient ancestry properly, on a real ancient-genome reference with a genuine admixture model, and it won't return until it passes validation (including: the same person must get the same answer from a chip and from a WGS). Design notes: docs/design/ancient-ancestry-rebuild.md.

Improved

  • The AI DNA story now covers your modern populations. Previously the narration only ever discussed continental ancestry and ancient components, so the story came out "all ancient" — it never mentioned the present-day populations you most resemble, even though the app had already computed them. The story now works through both layers.

From alpha.8 (also included)

  • Ancestry now works on GRCh37 and GRCh38 alignments, not just CHM13/T2T.
  • One-click "Analyze my DNA" in Simple mode — coverage, paternal/maternal lines, and ancestry in a single step.
  • Import no longer silently drops data; delete/re-import cycles work cleanly.
  • Automatic BAM/CRAM index building, installer update checks, and compressed reference downloads (~875 MB vs ~3.2 GB).

Prerelease build. Installers below: macOS .dmg (universal), Windows -setup.exe, Linux .AppImage / .deb. Verify against SHA256SUMS.

v0.1.0-alpha.8

v0.1.0-alpha.8 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 13 Jul 12:54

Decoding-Us Navigator — v0.1.0-alpha.8 (prerelease)

This alpha focuses on the Simple ("My DNA") experience and broadens ancestry support, driven by macOS alpha-tester feedback.

New

  • Ancestry now works on GRCh37 and GRCh38 alignments, not just CHM13/T2T. A b37/b38 WGS is genotyped at that build's panel loci and re-keyed to the canonical CHM13 coordinate space (the reference panel already ships every build's coordinates from an offline allele-aware liftover — no runtime liftover needed). Verified at 100% dosage concordance against the same person's CHM13 alignment.
  • One-click "Analyze my DNA" in Simple mode. The not-yet-analyzed view now shows a clear Analyze button (previously the only path was a buried "See the data" link into Advanced mode). It runs the full pipeline — coverage, paternal/maternal haplogroups, and ancestry — in a single step.

Fixed

  • Analyze button reliability. The button is now tied directly to the "sequencing depth not yet measured" state, so it appears consistently after import, and after Add Data / delete-and-reimport cycles.
  • Import no longer silently drops data. Importing a file was deduped globally and could produce an empty subject with a misleading "imported" message; dedup is now per-subject. Deleting/clearing a subject no longer leaves orphaned sequence-file records that blocked re-importing the same file.
  • "Your test" card no longer surfaces a Y-only test when broader whole-genome data exists — the representative test is chosen by breadth, then depth.
  • Infinite "Building your brief…" spinner after deleting the last subject.
  • UI scale slider (macOS/HiDPI): opening Settings no longer snaps the scale to a bound, and the slider now moves smoothly across its full range instead of jumping to 0.8 / 2.5.

From alpha.7 (also included)

  • Missing BAM/CRAM coordinate indexes (.bai/.crai) are built automatically, with visible progress, before any region-query analysis.
  • Startup check for a newer installer, with a dismissible notification (Download / Skip this version / Later). Never auto-updates.
  • Reference genomes for GRCh38/GRCh37 now download as compressed analysis sets (~875 MB vs ~3.2 GB), with the download surfaced in the status bar and Simple view.

Prerelease build. Installers below: macOS .dmg (universal), Windows -setup.exe, Linux .AppImage / .deb. Verify against SHA256SUMS.

v0.1.0-alpha.7

v0.1.0-alpha.7 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Jul 14:27

Ancestry/IBD + STR assets (chm13v2.0)

Choose a tag to compare

@JamesKane JamesKane released this 11 Jul 17:53

Reference assets bundled into the offline installer; consumed by packaging/stage-assets.sh (ancestry/IBD .bin + manifest, plus HipSTR references). Regenerable — not source.