Sign in

James Kane

@jameskane.blog
361 followers 362 following 213 posts

Software Engineer. Retro Computing. Genetic Genealogist. Fitness Enthusiast. TTRPG Gamer. Living the in the American Midwest.

PostsRepliesMedia
James Kane @jameskane.blog · 7h
My FreeBSD fork to add the Radxa Dragon Q8B is coming along nicely. The NeXT/SGI/AmigaMUI inspired theme for a new desktop environment written in Swift 6 is now running on it. Most of the hardware for a desktop experience is fully operating.
111
James Kane @jameskane.blog · 29/09/2026
Opus 5.5 now has finished accelerated GPU paths for the Dragon Q8B on #FreeBSD. Roughly the same FPS as Radxa's Ubuntu image. Now to get it to clean up the mess.
001
James Kane @jameskane.blog · 28/09/2026
I have pointed Claude Opus 5.5 at the #FreeBSD source and the #Radxa Dragon Q8B. It has a near feature complete driver for the two ethernet ports. Now it's iterating on more driver support via SSH. Feature branch for any interested: github.com/JamesKane/fr...
github.com
GitHub - JamesKane/freebsd-src at radxa-dragon-q8b
The FreeBSD src tree publish-only repository. Experimenting with 'simple' pull requests.... - JamesKane/freebsd-src
000
James Kane @jameskane.blog · 26/09/2026
The Geekbench 6 score for the #Radxa Dragon Q8B. It's a little faster than the Orange PI 6 Plus board using four fewer cores to do it. 1651 Single-Core, 6833 Multi-Core
000
James Kane @jameskane.blog · 25/09/2026
New SBC received: Radxa Dragon Q8B w/ 16 GB of RAM Now to find an NVMe to boot it from and get some benchmarks.
000
James Kane @jameskane.blog · 15/08/2026
Added a read remapping harness in Decoding-Us Navigator's latest Alpha build. Remap your hg37 or hg38 direct-2-consumer BAM to chm13v2.0 freely and locally on a computer with at least 16GB of RAM and a few hundred GB of disk space. #genetic #genealogy #Big-Y #Y-Elite
100
James Kane @jameskane.blog · 09/08/2026
Starting to work Block Tree aka Icicle tree rendering into decoding-us.org. Limiting these to the genealogical era as the amount of data blows up the further back you allow. ytree.net and FTDNA's render speeds are unacceptable. decoding-us.org/ytree/node/R...
decoding-us.org
Ancestral origins · R-A9005 — Decoding Us
100
James Kane @jameskane.blog · 06/08/2026
The latest feature branch for the Navigator project system is coming together: Icicle blocks derived from Alex Williamson’s ytree. Identification of shared SNPs, which may represent new branches. It should land in a new Alpha release this weekend. #YDNA #Genealogy #DataVisualization
Screenshot of the DecodingUs Navigator app showing an icicle plot of the CTS4466 Y‑DNA tree, with a highlighted candidate branch (Candidate 1) spanning roughly 1900–1800 BC on a timeline from ~2015 BC to the present.
010
James Kane @jameskane.blog · 29/07/2026
Added a new report at decoding-us.org, which displays the Y-DNA STR ranges, published mutation rates, and motif values where available. There's a job setup to calculate new mutation rates when the sample size gets larger. decoding-us.org/str-markers #Genetic #Genealogy
decoding-us.org
Y-STR Markers — Decoding Us
000
James Kane @jameskane.blog · 28/07/2026
Working on an Archaic DNA module based on Altai, Chagyrskaya8, Denisova3 and Vindija33. Mostly working and Denisovan DNA being rejected for a European sample. Need to run on some Oceanic samples to validate the rest and clean-up the final reports.
Screenshot showing archaic ancestry results: 12,126 Neanderthal/Denisovan allele copies detected across 299,932 marker sites (100% coverage). Breakdown: 9,460 Neanderthal-diagnostic, 2,412 shared-archaic. Result is higher than 7% of European reference samples. Note: Denisovan-specific markers not reported outside Oceania; counts aren’t directly comparable to other companies’ data.
000
James Kane @jameskane.blog · 25/07/2026
Latest Alpha Build for Decoding-Us Navigator. Rewrote the Chromosome Painter to better isolate the two parents. Added more populations from public datasets. Fixed all the reported issues in older releases. #OpenSource #Genetic #Genealogy
Screenshot of the Decoding-Us Navigator interface. The left sidebar lists subject IDs. The main panel displays a "Your DNA sides" section featuring a chromosome painting chart. Horizontal bars representing chromosomes 1 through 22 are filled with various shades of blue blocks. A legend below the chart identifies ancestral origins such as British, Tuscan, Finnish, and Iberian. At the bottom is an AI input box labeled "Ask about your results."
241
James Kane @jameskane.blog · 12/07/2026
🧬 Introducing Navigator Alpha: a local desktop genomics app. Process BAM/CRAM, VCF, or chip tests (23andMe/Ancestry) offline with zero cloud uploads or privacy risks. Run Y/mt haplogroups, coverage, & ancestry on your own hardware. #Genomics #Bioinformatics #GeneticGenealogy 👇
140
James Kane @jameskane.blog · 04/07/2026
The Decoding-Us AppView is now running the Rust-version and hosting my latest chm13v2-based haplogroup trees. Y-DNA is sourced from IGSR samples and YDNA Warehouse samples. mtDNA is IGSR samples.
A phylogenetic tree diagram of Y-DNA lineages from the Decoding Us project. The chart shows a branching ancestral path starting from a root "Y" node, splitting into major branches like A0-T and A1, which further divide into numerous smaller sub-clades (yellow boxes) with associated variant counts and TMRCA (Time to Most Recent Common Ancestor) dates.A phylogenetic tree diagram of mitochondrial DNA (mtDNA) from the Decoding Us project. The lineage begins with the L0a node, branching through L0a1 into further sub-groups like L0a1-A2000 and L0a1b. A list of specific biosamples is displayed on the right side of the tree.
110
James Kane @jameskane.blog · 02/07/2026
OrangePi 6 Plus running stock Ubuntu instead of the vendor image. Minimap2 alignment performance. Total Reads. Total Time Reads/Sec 615605482 3h 50m 0s 14ms 160592.571514783 Roughly the same performance as a 12-core Mac Pro 2013.
A Linux terminal window showing system information fetched via a neofetch-style tool. On the left is the Ubuntu logo in red ASCII art. On the right, the system specs read: jkane@CIX-Phecda-Board; OS: Ubuntu 26.04 LTS (Resolute R4); Host: CIX Phecda Board (1.0); Kernel: Linux 7.0.0-38-cix; Uptime: 3 mins; Shell: bash 5.3.9; DE: GNOME 50.1; WM: Mutter (Wayland); CPU: Cortex-A720*2 + Cortex-A520z; GPU: Mali-G720 MC10 [Integrated]; Memory: 5.54 GiB / 29.82 GiB. A row of color palette blocks sits at the bottom of the text.
320
James Kane @jameskane.blog · 18/06/2026
I am highly amused by Claude Code's thinking streams when dealing with FTDNA's Big Y VCF data. Everything I've muttered over the last decade when a BAM wasn't available, so I could just ignore their oddities. #genetic #genealogy
000
James Kane @jameskane.blog · 17/06/2026
What does a genotype-only pangenome callset miss, and what does it nail? I put numbers on both claims across chr20 & chr16, using 3 callers (vg, GATK, Delly) and a low-coverage PacBio HiFi long-read reality check. The trade-off is not what I expected. 🧵 (1/3)
100
James Kane @jameskane.blog · 17/06/2026
First generation of the de novo mtDNA tree is live in the Decoding Us dev region. 🧬 Built using 1K Genomes raw data realigned to CHM13v2 (T2T), processed via GATK, and structured with IQ-TREE. Native, clean rendering of the U5a1 branch subclades. Moving beyond just Y-DNA.
A web browser screenshot of the Decoding Us platform developer region displaying an interactive mitochondrial DNA (mtDNA) phylogenetic tree layout. The interface shows a horizontal tree structure focusing on haplogroup U5a1 and its nested subclades, including U5a1b1, U5a1b1a, and U5a1b1h. Internal nodes are represented by light yellow rectangular boxes labeled with haplogroups or specific variants (such as '★ chrM:15743C>T'). Terminal nodes branch out to individual sample identifiers from the 1000 Genomes project, marked by green dots (e.g., NA20515, HG00285). The top of the page includes a breadcrumb navigation path tracing the phylogenetic lineage back to root nodes, alongside controls for tree depth and orientation.
000
James Kane @jameskane.blog · 16/06/2026
Time to see how this #OrangePi 6 Plus handles minimap2. Initial impression is it's a loud boy with that stock fan.
000
James Kane @jameskane.blog · 15/06/2026
With the end of the Intel Mac era, I picked up a Late 2013 Mac Pro with dual AMD FirePro D700s. It's definitely a 13 year old machine, but still useful and an interesting desk ornament for the retro desk.
A screenshot of the "About This Mac" window. It shows a Mac Pro (Late 2013) running macOS Monterey version 12.7.6. Specifications listed include: Processor 2.7 GHz 12-Core Intel Xeon E5, Memory 64 GB 1866 MHz DDR3, and Graphics AMD FirePro D700 6 GB. The serial number is redacted with a black bar.
010
James Kane @jameskane.blog · 15/06/2026
The new Rust-base DecodingUs Navigator is coming along. Haplogroup detection and ancestry analysis working well. Still need to create the chm13v2 versions of a few panels. IBD via encrypted P2P between Navigators in progress. Then tidy up the consensus between multiple tests. #genetic #genealogy
A dark-themed desktop software interface for "DUNavigator: Decoding-Us Navigator".
On the left sidebar, a subject named "KANE-001" is selected, displaying a Y-DNA haplogroup beginning with R1b and an mtDNA haplogroup of U5a1b1g.
The main panel displays the "Ancestry" tab for this subject. A section titled "Donor ancestry (best source)" shows a blue circular graphic and states "European 100.0%" with "19023/20000 SNPs - confidence 96%". Below this, a sub-breakdown lists specific European regions: NW European (Utah) 36.8%, British 23.6%, Tuscan (Italy) 14.2%, Iberian (Spain) 13.1%, and Finnish 12.0%.
The bottom features a PCA (Principal Component Analysis) scatter plot comparing the sample against reference populations, and an error status bar at the very bottom of the window indicating a failed file fetch from a UCSC database URL.
100
James Kane @jameskane.blog · 09/06/2026
I tried to read my Y-DNA haplogroup straight out of a personal pangenome alignment. It confidently placed me in R1b, then steered me to the WRONG sub-branch. New post on what went wrong, and how I got the right answer. 🧬🌳 #bioinformatics #genomics
120
James Kane @jameskane.blog · 27/05/2026
My SpaceMit K3 dev system arrived after some adventures with DHL. Performance is about 3x faster than the K1 on GeekBench 6. Firefly's AIBOX-K3 variant is nicely trimmed. Will run it as is for a bit before reimagine with a different OS.
SpaceMit AIBox-K3 Geekbench 6 Scores:
327 Single-Core, 1594 Multi-Core
000
James Kane @jameskane.blog · 23/05/2026
New blog entry up: jameskane.blog/2026/05/23/v... Embedded Swift, Rust, and C++ have failed me for the last time. Time to write the compiler I want to use.
jameskane.blog
Vestra: a systems language you can hold in your head
An introduction to Vestra, a Swift-flavored systems language whose grammar fits on two pages, and the v0 transpiler that lowers it to C++26.
010
James Kane @jameskane.blog · 22/05/2026
Holy hell. My SpaceMit K3 board shipment was assessed nearly $150 in import fees to clear customs. So tired of "winning." SBC's as a hobby are effectively dead in the current world.
000
James Kane @jameskane.blog · 14/02/2026
Working on a rewrite of bwa-mem2 in #Swift 6 with a Metal acceleration path on Apple Silicon. Using the techniques from "Accelerating BWA-MEM Read Mapping on GPUs". hps://dl.acm.org/doi/10.1145/3577193.3593703 Early benches show 4x faster than bwa-mem2 with NEON patching with 1/3 RAM usage!
000
James Kane @jameskane.blog · 10/02/2026
After no success in finding a complete Swift binding for htslib for another project I've been planning, I had Claude whip one up. The code is reasonable so it's on Github: github.com/JamesKane/sw... Expect changes as I find and fix the clanker's bugs and omissions.
github.com
GitHub - JamesKane/swift-htslib: Swift bindings for HTSLIB
Swift bindings for HTSLIB. Contribute to JamesKane/swift-htslib development by creating an account on GitHub.
000
James Kane @jameskane.blog · 06/02/2026
One of these years I will not take a layoff from running for 2 months after race season, but this was not that year. 45 minutes of absolute destruction on the treadmill in the books.
000
James Kane @jameskane.blog · 05/02/2026
Added a forked version of bwa-mem2 to my GitHub page, which compiles on ARM with NEON. Mostly leveraging sse2neon, but also some optimizations on top. github.com/JamesKane/bw... Timings done with chm13v2.0 as the reference for 2,000,000 150 base pair reads on Apple Silicon.
000
James Kane @jameskane.blog · 20/01/2026
New SBC day. On paper the 32GB OrangePi 6 Plus should be pretty capable. I will need to setup and do some benchmarks after work tonight.
110
James Kane @jameskane.blog · 22/12/2025
Resurrecting an old project is always interesting to see how much your style and habits have evolved. Trying to get this minimal OS from the PowerPC era running on a RISC-V dev board is coming along. Almost enough POSIX here to attempt the Clang port.
020
James Kane @jameskane.blog · 18/12/2025
Playing with a new UI in the Alpha version of the Navigator. We'll see if the analysis is able to pick-up that Illumina iSeq result is really an FGC Y Elite.
New Navigator UI prototype featuring 4 different BAM/CRAM alignment files, two Chip results, and a running analysis progress bar.  Each section has  basic meta-data derived from the source files during the import process.
110
James Kane @jameskane.blog · 16/12/2025
Developing a new Bulk Merge system for the #DecodingUs tree system. Tracks the source attributions in a hierarchy with a goal of replacement for the #ISOGG Y-DNA tree which is no longer being maintained. Working a few edge-cases on the forward-seeking in recursive descent and tree grafting.
Preview of a Tree Diff in the in-progress development for Decoding Us.
020
James Kane @jameskane.blog · 11/12/2025
Last update to #DecodingUs for the year. Lot's of changes as I've rewritten all of the old site's systems on the new foundations. jameskane.blog/genomics/202... Next up for 2026 is to work on the new Haplogroup Discover System. #genetic #genealogy
jameskane.blog
DecodingUs Release Notes - December 2025
╔═══════════════════════════════════════════════════════════════╗ ║ ║ ║ HEAR YE, HEAR YE! ║ ║ ║ ║ PROCLAMATIONS FROM THE REALM OF DECODINGUS ║ ║ This Tenth Day of December, Year of Our Lord 2025 ║ ║ ║...
030
James Kane @jameskane.blog · 09/12/2025
New milestone for #DecodingUs. #ATProtocol identify login is complete, so I can use the Admin only tools for prelaunch stuff. More to follow when the Edge-compute companion is more than a buggy Alpha (also shown with some test data.)
A screen shot of the Decoding Us landing page featuring the first registered user logged in via their AT Protocol identity.Screenshot from an Alpha-build of the Edge Computing companion for Decoding Us.  Genomic data is kept secure on their local computers.  Meta-data can be shared via a custom AT-Protocol Lexicon to enable crowd-sourcing of Y-DNA and mt-DNA trees using App View orchestrations.
010
James Kane @jameskane.blog · 08/12/2025
Shipped new changes to the #DecodingUs App layer. Mostly small changes visible now: 1) Updated the FAQ. 2) Finally added a Search to the References/Papers in the curation portal. 3) Fixed a dumb bug when you share a link to a tree. Tons of enablers for connecting the Federation. decoding-us.com
decoding-us.com
Decoding Us
100
James Kane @jameskane.blog · 06/12/2025
New Blog Post up on what's coming in 2026 after spending a few months working on designs for Decoding Us. jameskane.blog/genomics/202...
jameskane.blog
Crowdsourcing the Haplogroup Tree: How Your DNA Helps Build Human History
The Y-DNA and mtDNA haplogroup trees are among the most fascinating maps in human genetics. They trace our paternal and maternal lineages back tens of thousands of years, connecting us to migrations, ...
010
James Kane @jameskane.blog · 27/11/2025
More progress on my #rust-lang port of BWA-MEM2. Now with similar samstats as the C++ version and passing GATK's ValidateSamFile tool (with the same minor INVALID_TAG_NM percentages). Last time I checked the read locations were 99% concordant. Next up NEON optimization github.com/JamesKane/Fe...
github.com
GitHub - JamesKane/FerrousAlign: A Rust port of bwa-mem2, the next-generation Burrows-Wheeler Aligner for aligning DNA sequencing reads against large reference genomes.
A Rust port of bwa-mem2, the next-generation Burrows-Wheeler Aligner for aligning DNA sequencing reads against large reference genomes. - JamesKane/FerrousAlign
100
James Kane @jameskane.blog · 20/11/2025
Making some good headway with Anthropic's CLI tool in a #rust-lang port of BWA-MEM2 over vacation. Still working towards alignment parity, so it would be a drop in replacement for my GATK workflow. Then planning to explore adding GPU acceleration.
020
James Kane @jameskane.blog · 30/10/2025
Updated the coverage module in decoding-us-tools to replicate the old ydna-warehouse.org's coverage histograms. The image is from one of DanteLab's HiFi 4x coverage WGS pilot. Next step is to add the JSON file into your PDS to participate in decoding-us.com/coverage-ben....
BAM Statistics report from decoding-us-tools's coverage module.  Shows detection of the reference, sequencing platform, and read metrics.  The dropdown provides an assessment of each contig's ability to be called.
110
James Kane @jameskane.blog · 24/10/2025
Looks like one of my four 32GB DDR4 DIMMs has decided it's going to become a flake after 4 years. Time to find out how good the Crucial "limited life-time" warranty is.
000
James Kane @jameskane.blog · 20/10/2025
Well since I can't get anything productive with work done, started feeding in the replacement drives to increase the size of my nearly full NAS. Should only take 5 days or so to double the size of the pool.
010
James Kane @jameskane.blog · 07/10/2025
And that fire jump in Nashville brings the 2025 racing season to a close for me. Time for a de-load and work out new programming strategies for next year.
010
James Kane @jameskane.blog · 23/09/2025
First time seeing the chain carry on a #spartanrace this weekend at the Badlands in Attica. Beast is on the books for 2025. Headed to Nashville in two weeks to wrap up a Trifecta.
000
James Kane @jameskane.blog · 25/08/2025
Note: Skipping warmup before a session of kettlebell training is not advised after 50. Hamstrings are wrecked after swings yesterday. So much that I am moving out today’s run to tomorrow.
010
James Kane @jameskane.blog · 20/07/2025
First 3 week training block done for the Midwest Spartan Beast in September. Sore and slow compared to this time of year last year. The training plan calls for a rest day tomorrow fortunately.
010
James Kane @jameskane.blog · 20/07/2025
Well the GoRuck Mackall has the same problem as the Rough Runners with my feet. The heel just doesn’t lock in correctly. Back to other options for rucking.
010
James Kane @jameskane.blog · 30/06/2025
#SavageRace placing obstacles before the starting line. Had a great time near Chicago on Saturday. Signing up again for next year.
010
James Kane @jameskane.blog · 23/06/2025
Pulled out the GoRuck Rough Runners for a short ruck session this afternoon. Now I remember why they were pulled from rotation. They are great except the heals have hot spots that blister my ankles after more than a few minutes.
010
James Kane @jameskane.blog · 17/06/2025
Finished rewriting the old histogram generator for plotting callable regions in a BAM. Now to create a module to uniquely fingerprint the source file to allow uploading anonymous stats for comparison. github.com/JamesKane/De...
New callable regions report generated from a short-read WGS BAM.  Summarizing the Y chromosome alignment characteristics.
010
James Kane @jameskane.blog · 08/06/2025
I collected some notes and early observations for aligning files to HPRC's 1.1 release of the human pan genome with vg giraffe. Mostly working on organizing a workflow for when someone with substantially more compute resources releases graphs based on Release 2. jameskane.blog/genomics/202...
jameskane.blog
Human Pangenome Reference Experiments
Human Pangenome Reference Experiments - Setup A Pipeline
010