Sign in

James Kane

@jameskane.blog
363 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 · 01/10/2026
Same desktop using the Aqua theme. Iconography needs work...
000
James Kane @jameskane.blog · 01/10/2026
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.
121
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.
021
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 · 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 · 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 · 04/07/2026
Unlike prior examples, I did take pains to use FTDNA's labels where they are not obviously in need of improvement or don't exist. The side panel shows the defining SNP(s) placements on b37, b38 and hs1 (chm13v2). Where available it also reconstructs the STR signature transitions from the parent.
A screenshot of the Decoding Us Y-DNA tree with a detailed information panel open on the right. The tree shows various branching haplogroups, and the side panel displays specific genetic data for the selected node "R-S1115," including its TMRCA (Time to Most Recent Common Ancestor), specific SNP mutations, and Y-STR ancestral motifs.
100
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 · 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
Multiple data sources tab
A dark-mode application screenshot of "DUNavigator" showing the "Data Sources" tab for subject KANE-001.
Sequencing Runs: Lists multiple genomic sequencing datasets including:
Whole Genome Sequencing via Illumina NovaSeq (615.6M reads, paired-end, sourced from YSEQ).
PacBio HiFi WGS via PacBio Sequel II (1.1M reads, single-end, sourced from Dante), which features a nested alignment bar for chm13v2.0 pbmm2 with 3.6x coverage.
A second Illumina NovaSeq WGS run (651.8M reads, paired-end, sourced from Dante).
Full Genomes Y Elite via Illumina iSeq (62.1M reads, paired-end, sourced from FGC).
Chip / Array Profiles: Displays three collapsed accordion menus for array data: 23andMe (1,407,553 markers, 96.8% call rate), AncestryDNA (701,474 markers, 97.9% call rate), and BiSDNA chromo2 (14,219 markers, 99.9% call rate).
STR Profiles: Displays collapsed menus for short tandem repeat data, listing a Y-111 profile with 102 markers from FTDNA and a Y-12 profile with 16 markers from YSEQ.
000
James Kane @jameskane.blog · 15/06/2026
mtDNA profile using FTDNA's tree at the moment.
A dark-mode application screenshot of "DUNavigator" showing the "mtDNA" analysis tab for subject KANE-001.
mtDNA haplogroup panel: Displays the assigned haplogroup as U5a1b1g, noting "53/55 mutations, score 0.629". It maps out the full phylogenetic lineage tracing back to RSRS.
mtDNA sequences panel: Indicates "No mtDNA sequences yet" with a button to "Import mtDNA FASTA".
mtDNA de-novo SNP calls (chrM) panel: Displays a list of "28 SNP call(s)" with columns for Position, Change, Depth, and AF (Allele Frequency). Visible variants include transitions like 174 A>G (depth 52, AF 1.00), 2620 T>C (depth 83, AF 1.00), and 6451 C>T (depth 109, AF 0.99). A disabled "Publish variants to PDS" button is visible at the bottom of the list.
100
James Kane @jameskane.blog · 15/06/2026
Y-DNA profile using the #ISOGG tree.
A dark-mode application screenshot of "DUNavigator" showing the "Y-DNA" analysis tab for subject KANE-001.
Y haplogroup panel: Displays the assigned haplogroup as R1b1a1b1a1a2c1a3a2a1a2d1b1, supported by 6 runs with a confidence score of 0.52. A "Callable mask" is checked and noted as "self-referential (this sample)".
Y variant profile section: Displays a terminal classification of R1b1a1b1a1a2c1a3a2a1a2d1b1 (2 confirmed, 0 novel, 0 conflict, 0 single-source, confidence 1%). A table below lists specific SNPs (such as L419, M91, and various AS/A series markers) along with their position, ancestral/no-call state, confirmation status, and data sources (WGS or chip).
Private Y (donor union) panel: Displays "400 novel + 33 off-path" variants relative to the terminal R-FGC29071. The accompanying table lists genomic positions, nucleotide changes (e.g., A>G, T>C), sequencing depths (ranging from 8 to 28), and classification categories like "novel" or "off-path" with specific haplogroup branches.
100
James Kane @jameskane.blog · 15/06/2026
Overview screen with sequencing display.
A dark-mode desktop interface of "DUNavigator" showing the "Overview" tab for a male subject, KANE-001.
The top section, "Haplogroup consensus", displays:
Y-DNA: R1b1a1b1a1a2c1a3a2a1a2d1b1 (6 sources, conf 0.519) marked as compatible.
mtDNA: U5a1b1g (6 sources, conf 0.630) marked as compatible.
The middle section, "Coverage", shows global metrics such as a Genome Territory of 3117292070, Mean Coverage of 3.63, Median Coverage of 3, and 1.1% of bases at or above 10x depth.
A "Per-contig coverage" table breaks down stats for chromosomes 1 through 6 (chr1–chr6), showing lengths, read counts, and mean depths ranging from 3.71 to 4.10. A "Depth histogram — whole genome" with red vertical bars is visible at the very bottom.
110
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 · 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 · 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 · 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 · 21/01/2026
Geekbench 6 suggests it's on par with my 2018-era gaming rig for single and multicore. My M4 mini smacks it around, but the CIX SoC actually has sample drivers I can reference for the OS I'm writing.
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 · 18/12/2025
The Overview for the sample is still a work in progress since a simple count of STRs yields wrong identification of the FTDNA panels with the multi-value markers.
Navigator's new Overview page showing a summary of data sources, and dashboard widgets for Y-DNA, mtDNA, Y-STR panels, and future Ancestry and IBD analysis tools.
000
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 · 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 · 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 · 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 · 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 · 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 · 04/06/2025
Added a population heat map to #Decoding-Us, which is starting to work as the scripts backfill the geo positions for the public samples in the References page. This will incorporate the D2C samples that get added to the planned federated network. #CitizenScience
Heat map of global human biosamples in public repositories.  Showing a clear preference in geographic sampling of Europe and the United States.
010
James Kane @jameskane.blog · 21/04/2025
Kickstarter rewards are in from @trolllordgames.bsky.social for use with their Siege Engine system.
020
James Kane @jameskane.blog · 21/04/2025
Picked up an #OrangePi RV2, since it has the RISC-V Vector extensions my JH7110-based VisionFive 2 board lacks. Geekbench 6 Scores: VF2 => 74 single core, 215 multi core RV2 => 128 single core, 509 multi core RK3588 OPi 5 Plus => 754 single core, 3028 multi core Not terrible for $50.
040
James Kane @jameskane.blog · 17/04/2025
The main Linux box is fully updated to the latest #Fedora 42. Painless and back to crunching data...
020
James Kane @jameskane.blog · 03/02/2025
New shiny backer copy of @koboldpress.com’s Dungeons & Ruins arrived today. Will need to make some time to read it this week.
Limited Edition cover of Kobold Press’s Campaign Builder Dungeons & Ruins.  Featuring gold and red foil dragon.
2261
James Kane @jameskane.blog · 01/02/2025
Easing back into outdoor activities. 25 lb plate in the ruck and generally a pace to stick to zone 2 for about two and a half miles. Quite chilly out this afternoon.
110
James Kane @jameskane.blog · 29/12/2024
This may actually be running acceptably on the overgrown cell phone aka small Graviton EC2 instance running the DB. Once I have the caching setup, it'll get added in the Studies view. The end-point is being built to easily embed in a self-hosted page or just use the internal.
A SNP call chart showing Ancestral and Derived calls for members of a YDNA subclade.
000
James Kane @jameskane.blog · 28/12/2024
Pulled the first 48Gbase of @pacbio.bsky.social Revio reads for HG00117. The Y callable loci on hs1 is nice and clean. I will need to go back and get the full file to play with the sub-sampling locally to find an optimal amount for future plans on the other 135 of them.
hs1 aligned chrY callable coverage plot for HG00117.
022
James Kane @jameskane.blog · 26/12/2024
The MVP of YDNA Study groups is live at ydna-warehouse.org/study/15103f.... Mix and match STR panels in the chart. Mostly just UX and report refinement planned for the next iteration.
STR Panel preview functionality showing flexible STR panel tables groupings my subclades.
010
James Kane @jameskane.blog · 26/12/2024
The evil black lines across the bottom 1/3 of the display are gone after its trip to California. Now I can get some work done.
Picture of the repaired 32” display panel with the MacOS Sequoia stock background image.
000
James Kane @jameskane.blog · 14/12/2024
Feature #6 - The SNP and STR matching tools now have contact buttons. No more bugging the site administration to put you in touch with them! Keep in mind the STR matches are often more distant than you think. Check the SNP match list for the last 20 generations.
The STR Matches report showing the new button for your matches who allow contact for genealogical purposes.
100
James Kane @jameskane.blog · 14/12/2024
Feature #5 - My Studies page added to the tester profile. You can manage your display preferences for public projects and be notified of new studies that you match the recruitment targets.
A view of the sample provider's new Studies page.  Shows enrolled studies with buttons to view, manage shared MDPA information shown in the project and to remove themselves.  There's a second list of studies that the sample provider would fit based on the recruitment rules of the Study.  There's an ability to Join or View the Study for more details.
100
James Kane @jameskane.blog · 14/12/2024
Feature #4 - Studies are moving from Alpha to Beta for STR comparison and adding a browsing list for public facing ones. e.g. you don't need to be logged in to view the pages. The "Investigator Options" allows the investigators to contact members for clarifying details if needed. More planned here.
New menu of public facing Y DNA Studies with brief synopsis of the projects and the investigators.A view of the Study landing page with information about the scope of research, names of the investigators, and the required SNP or STR values the project is recruiting.
100
James Kane @jameskane.blog · 14/12/2024
Feature #2 - Enable activation of 2-Factor Authentication Feature #3 - Remove those pests you blocked should the need arise later.
Early UI design layout of User preferences allowing them to enable Two-Factor Authentication or remove Users from their block list.
100