Skip to content

Releases: Arnaroo/FracFixR

FracFixD v2.1.0 "Numbat"

Choose a tag to compare

@shnickol shnickol released this 29 Aug 19:34

Demo dataset, resampling schemes and zero handling. Defaults are unchanged:
v2.0.6 output is reproduced exactly, including the permutation p-value
stream. Everything new in this release is opt-in.

Archived at 10.5281/zenodo.22153182.
The files there are byte-identical to the ones in
FracFixD/bin/.

Which file to take

File What it is
fracfixd-linux-generic-x86_64 GUI and CLI in one binary, x86-64-v3 baseline. Needs GTK 3.
fracfixd-linux-broadwell-x86_64 The same, tuned for Broadwell and later Intel.
fracfixd-linux-znver2-x86_64 The same, tuned for Zen 2 and later AMD.
fracfixd-cli-linux-x86_64-static Command line only. No GTK, no BLAS, nothing beyond the C library. For servers, clusters, containers and CI.
FracFixD-2.1.0-macos-arm64.dmg macOS arm64, drag to Applications. GTK 3 is bundled.
fracfixd-2.1.0-macos-arm64.tar.gz The same macOS bundle without the disk image. Run bin/fracfixd-launcher.sh, not bin/fracfixd.
FracFixD-2.1.0-windows-x86_64-setup.exe Windows x86_64 installer. GTK 3 is bundled.
fracfixd-v2.1.0-windows-x86_64.zip The same Windows build as a portable ZIP. Take either this or the installer, not both.

Verify a download against FracFixD/bin/SHA256SUMS:

sha256sum -c SHA256SUMS

Build

No cross-compilation. Each platform is compiled on a host of its own kind,
all three on LDC 1.42.0 with DUB 1.41.0. Every binary prints the front end
it was actually compiled against, so that claim is checkable:

./fracfixd-cli-linux-x86_64-static --version   # Compiler:  LDC 2112L

Check that it works

Every binary carries a 300-transcript, 18-library dataset and runs the whole
pipeline over it with no arguments, no input files and no network:

./fracfixd-cli-linux-x86_64-static demo --outdir demo_out
md5sum demo_out/diffprop.tsv       # 1a144283ef5196bf9567384e6aa2dc32

All four Linux binaries produce that file byte for byte. The macOS build
gives f3c3443a6b7e80a99a8a394cf60a1c0c instead, because the demo writes 6
significant figures and the last moves with the width of the hardware's
floating point registers, 64 mantissa bits on x86 against 53 on ARM. Both
call the same 30 of 300 transcripts at padj below 0.05, which is the
comparison to use across machines.

Windows ships two executables. fracfixd.exe is the GUI subsystem build and
cannot write to a console, so it will not print --version. Use
fracfixd-cli.exe for scripting and for every command line example above.

Full notes: RELEASE_NOTES.md on the Zenodo record. Version history:
CHANGELOG.md.

FracFixD v2.0.6 "Quokka-5"

Choose a tag to compare

@shnickol shnickol released this 31 May 06:19

FracFixD v2.0.6 "Quokka-5" - 2026-05-31

Documentation and in-app help release. No numeric-kernel changes
versus 2.0.5
- analysis output is byte-identical on all valid
inputs, and the FracFixR equivalence goldens carry over unchanged.

Highlights

  • New in-app Help tab. The full FracFixD user guide now renders
    inside the application: tool introduction and purpose, a GUI tour
    with inline screenshots, every CLI subcommand and option, and
    worked CLI examples. All content (text and images) is baked into
    the binary, so GUI-only users get the complete reference without
    opening a terminal or a browser.
  • About / License credits updated. COMPASS (a division of
    Biocodecs) is added to the About credits. The binary licence text
    now attributes copyright to Biocodecs and Arnaroo Ribologicals.
  • No surface changes to CLI subcommands and options, file
    formats (FFXD1BIN / FFXD1ICA), or output filenames.

Platform artefacts (all rebuilt for v2.0.6)

Linux x86_64 - fully static

All four binaries are statically linked against OpenBLAS (with
bundled netlib LAPACK); ldd shows only the glibc system trio.
GTK3 is dlopen'd at runtime by the gui subcommand.

File Microarch Size
fracfixd-linux-znver2-x86_64 AMD Zen 2 (AVX2 + BMI2 tuned) 9.1 MB
fracfixd-linux-broadwell-x86_64 Intel Broadwell (AVX2) 9.2 MB
fracfixd-linux-generic-x86_64 x86-64-v3 (generic AVX2 baseline) 9.2 MB
fracfixd-cli-linux-x86_64-static CLI-only static 2.3 MB

macOS arm64

A relocatable .dmg (FracFixD-2.0.6-macos-arm64.dmg) plus a
CLI/pipeline tarball (fracfixd-2.0.6-macos-arm64.tar.gz). GTK3 /
OpenBLAS / gfortran dylibs are bundled into the .app; the launcher
is a native Mach-O for Tahoe-Gatekeeper compatibility. The .app
is ad-hoc signed (not Developer-ID notarised): on first launch
use right-click then Open, or xattr -dr com.apple.quarantine.

Windows x86_64

A portable ZIP (fracfixd-v2.0.6-windows-x86_64.zip) bundling
fracfixd.exe plus the full GTK3 + OpenBLAS runtime closure.

Verification

SHA256SUMS is attached to this release; verify each download
against it.

Citation

If you use FracFixD in published work please cite:

  • the FracFixR method paper (Cleynen, Ravindran & Shirokikh,
    Bioinformatics 2026, btaf615), and
  • this release via its Zenodo concept DOI
    10.5281/zenodo.20234583
    or the v2.0.6 version DOI (minted automatically with this release).

FracFixD v2.0.3 "Quokka-Static"

Choose a tag to compare

@shnickol shnickol released this 27 May 05:44

FracFixD v2.0.3 "Quokka-Static" — 2026-05-27

Static-linkage fix release for the Linux GUI binaries.

No numeric-kernel changes from v2.0.2. Equivalence-harness
outputs are byte-identical to v2.0.2 on the synthetic and real-data
fixtures; the manuscript figures, the CLI default-flag output bytes
and the FFXD1BIN container layout all carry over unchanged.

Background

v2.0.2 shipped three Linux GUI binaries
(fracfixd-linux-{generic,broadwell,znver2}-x86_64) that were
mis-described in the release notes and the manuscript as
"statically linked". In fact they were dynamically linked against
the host's BLAS / LAPACK / gfortran / gomp stack, and would fail on
any Linux host without those system libraries installed. Affected
users saw, on launch:

./fracfixd-linux-<arch>-x86_64: error while loading shared libraries:
libopenblas.so.0: cannot open shared object file

Only the CLI-static variant (fracfixd-cli-linux-x86_64-static) was
genuinely statically linked.

What v2.0.3 fixes

All three Linux GUI binaries — and the CLI-static binary — are now
fully statically linked against OpenBLAS (with bundled netlib
LAPACK) and the gfortran / gomp / pthread runtimes. ldd on every
Linux release artefact now shows only:

linux-vdso.so.1, libm.so.6, libgcc_s.so.1, libc.so.6,
/lib64/ld-linux-x86-64.so.2

— the standard glibc system trio that cannot realistically be
statically linked on Linux. No libopenblas, liblapack,
libblas, libgfortran, libgomp or libquadmath references
remain in any DT_NEEDED entry.

GTK3 is loaded at runtime by the fracfixd gui subcommand via
dlopen and does not appear as a link-time dependency, matching
the v2.0.0 / v2.0.1 / v2.0.2 behaviour.

Verification

  • Static linkage: ldd per-binary confirmation; see "Linux
    binary downloads" below for SHA256SUMS.
  • Numerical regression: the equivalence harness
    (tests/equivalence/full/) was run against FracFixR 1.1.0
    (CRAN tarball) with both the v2.0.2 dynamic and v2.0.3 static
    CLI binaries on the same synthetic 1000-transcript fixture.
    Both binaries produced byte-identical d_diffprop_glm.tsv
    and d_diffprop_logit.tsv outputs (matching MD5). Static
    linkage is numerically transparent — it changes how OpenBLAS
    symbols are resolved (in-archive vs at runtime), not what they
    compute.
  • Per-microarch tuning preserved: each GUI variant compiled
    with --mcpu= set to znver2, broadwell, or x86-64-v3
    respectively, --flto=full, -O3, -boundscheck=off,
    matching the v2.0.2 microarch surface.

Linux binary downloads

File Microarch Size (stripped)
fracfixd-linux-znver2-x86_64 AMD Zen 2 (AVX2 + BMI2 tuned) 7.9 MB
fracfixd-linux-broadwell-x86_64 Intel Broadwell (AVX2) 8.0 MB
fracfixd-linux-generic-x86_64 x86-64-v3 (generic AVX2 baseline) 8.0 MB
fracfixd-cli-linux-x86_64-static x86-64-v2 (SSE4.2, CLI-only) 2.3 MB

See SHA256SUMS attached to this release.

macOS arm64 and Windows x86_64

The macOS arm64 .dmg / tarball and the Windows x86_64 portable
ZIP from v2.0.2 are not affected by this fix; they are carried
forward unchanged. Verify with otool -L on macOS and the
bundled OpenBLAS.dll on Windows.

Build provenance

  • Host: Manjaro Linux, AMD Ryzen 5 4600G, 30 GB RAM
  • Toolchain: LDC 1.42.0 (LLVM 21.1.8, DMD frontend 2.112.1)
  • OpenBLAS: v0.3.27 built with NO_SHARED=1 USE_THREAD=0 NUM_THREADS=1 DYNAMIC_ARCH=1 NO_AFFINITY=1 NO_WARMUP=1 NO_LAPACKE=1 BUILD_LAPACK_DEPRECATED=0 via
    scripts/build_static_openblas.sh
  • Build types: release-{znver2,broadwell,generic}-static (GUI)
    and release-cli-static-flto (CLI-only); see dub.json.

Carry-overs from v2.0.2

Everything from v2.0.2 stays in place:

  • Multi-condition diagnostic plot suite (global-test volcano,
    p-value histogram, per-contrast volcano grid, top-N heatmap)
  • FFXD1ICA fast-load cache for the 205k-row reference TSV
  • Determinate progress + working Cancel on long-running jobs
  • Ctrl-wheel / Ctrl-+/-/0 plot zoom
  • 360×240 window minimum + per-tab scrollbars on shrink
  • The full v2.0.0 statistical surface: seven differential-proportion
    test backends, three dispersion modes, three FDR procedures,
    three log₂ fold-change shrinkage estimators, permutation
    inference, Bayesian credible intervals, multi-condition global
    LRT / Wald.

Citation

If you use FracFixD in published work please cite:

  • the FracFixR method paper (Cleynen, Hauling & Shirokikh, 2026 —
    see the repository CITATION.cff), and
  • this release via its Zenodo concept DOI
    10.5281/zenodo.20234583
    or v2.0.3 version DOI (to be minted with this release).

FracFixD v2.0.2 "Quokka-2"

Choose a tag to compare

@shnickol shnickol released this 25 May 19:42

FracFixD v2.0.2 "Quokka-2" — 2026-05-26

GUI usability + multi-condition visualisation release.

No numeric-kernel changes from v2.0.1. Equivalence-harness
numbers, default-flag CLI output bytes, and the manuscript
figures all carry over unchanged.

Highlights

Multi-condition plots

The GUI's [Plots] tab is now a sub-notebook with Pairwise
and Multi-Cond sub-tabs. The new Multi-Cond sub-tab adds
four diagnostic plots driven by the K ≥ 3 global-test result and
its per-pair contrast companions:

  • Global-test volcanolog10(test_statistic) (χ² for LRT,
    Wald-multi otherwise) vs −log10(padj) with significance
    cutoff line and top-N labels.
  • p-value histogram — 50-bin distribution with cutoff
    reference line. Standard diagnostic for any multi-test
    pipeline: uniform = no signal, spike near zero = real effects,
    spike near 1 = test misspecification.
  • Per-contrast volcano grid — one pairwise volcano per
    user-requested contrast pair tiled in a grid; drill down from
    "globally significant" to "which contrasts drive it".
  • Top-N condition-means heatmap — top-N most-significant
    transcripts × K conditions; row z-score blue/white/red colour
    scale (configurable raw or z-scored).

All six plot panes support Ctrl+wheel zoom (per-pane) and
Ctrl++, Ctrl+-, Ctrl+0 (all-panes-at-once). Zoom is
vector-sharp — re-rasterised from source SVG at each step.

GUI load-choke fix

The 11 MB / 205 545-row reference TSV that hung the v2.0.1 GUI
now loads in:

  • ~95 ms cold (fresh parse from TSV)
  • ~80 ms warm (via the new on-disk parsed-input cache,
    <input>.ffxdcache sidecar with XDG fallback)

The cache is automatically invalidated when either source TSV's
mtime or size changes — editing your input data silently drops
the stale cache. A determinate byte-progress bar and a
working Cancel button cover any long-running job.

Window resize + scrollbars

The minimum window size has been dropped from 640×480 to
360×240 (fits split-screen, tablets, VNC). Each tab now
grows horizontal and vertical scrollbars on demand so no
widget becomes unreachable when the window is shrunk past the
tab's natural width.

Volcano legend fix

The literal padj<cut and |log2FC|>cut strings in the volcano
SVG legend were being parsed by librsvg as the start of <cut>
tags, silently blanking the GUI volcano preview. Legend strings
are now XML-entity-escaped (padj&lt;cut, |log2FC|&gt;cut).

Download

Match your platform; all artefacts in this release pass the
SHA256SUMS integrity check.

Linux (x86_64)

  • fracfixd-linux-znver2-x86_64 — AMD Zen 2/3/4 (Ryzen 3000+,
    EPYC Rome/Milan/Genoa)
  • fracfixd-linux-broadwell-x86_64 — Intel Broadwell or newer
    (5th-gen Core+, Xeon E5 v4+)
  • fracfixd-linux-generic-x86_64 — x86-64-v3 baseline (most
    2013+ CPUs)
  • fracfixd-cli-linux-x86_64-static — static CLI variant, no
    GTK / LAPACK runtime dependencies; 1.8 MB; ideal for
    containers and HPC node-locals.

macOS arm64

  • FracFixD-2.0.2-macos-arm64.dmg — drag-to-Applications
    installer. Native arm64; GTK 3 / OpenBLAS / gfortran runtimes
    bundled into a relocatable .app. Right-click → Open on
    first launch to clear Gatekeeper (ad-hoc signed, not
    Developer-ID notarised).
  • fracfixd-2.0.2-macos-arm64.tar.gz — relocatable bundle for
    CLI / pipeline use.

Windows x86_64

  • fracfixd-v2.0.2-windows-x86_64.zip — portable bundle
    (~37 MB). Contains fracfixd.exe plus the full GTK 3 /
    OpenBLAS / gfortran / GdkPixbuf-loader / theme-schema runtime
    closure. Drop the unzipped folder anywhere on a Windows 10 /
    11 x86_64 host and double-click fracfixd.exe; no installer
    and no admin rights required.

Verifying

# Linux / macOS:
sha256sum -c SHA256SUMS

# Windows PowerShell:
Get-FileHash fracfixd-v2.0.2-windows-x86_64.zip -Algorithm SHA256

Citing

This specific release: Zenodo will auto-mint a version DOI under
the existing concept DOI 10.5281/zenodo.20234583; the
CITATION.cff and README.md will be updated with the new DOI
shortly.

The FracFixR method paper:

Cleynen, A., Ravindran, A., & Shirokikh, N. E. (2026).
FracFixR: a compositional statistical framework for absolute
proportion estimation between fractions in RNA sequencing data.

Bioinformatics 42(2), btaf615.
doi:10.1093/bioinformatics/btaf615

Full changelog

See FracFixD/CHANGELOG.md and
fracfixd --changelog.


🤖 Built with the closed-source FracFixD development tree at
the Session 36 (v2.0.2 "Quokka-2") snapshot.

FracFixD v2.0.0 "Quokka"

Choose a tag to compare

@shnickol shnickol released this 20 May 10:50

FracFixD v2.0.0 "Quokka"

First public binary release of FracFixD, the native-D production sibling of the FracFixR R package for compositional analysis of fractionated RNA sequencing (polysome profiling, monosome / disome, subcellular fractionation, nuclear / cytoplasmic, RBP-IP, sucrose-gradient, and any other "split-into-fractions" RNA assay).

This release ships alongside FracFixR 1.1.0 (CRAN-ready R package, CC BY 4.0). FracFixR is the canonical scientific reference; FracFixD is its pipeline-scale binary sibling.

What's in this release

Single-binary executable that runs the GTK3 GUI by default and drops into headless CLI mode when called with --cli (or any subcommand). Built with LDC 1.42 (LLVM 21.1.8) + statically-linked D runtime + -O3 --flto=full -boundscheck=off.

Binary downloads

File Platform Size Notes
fracfixd-linux-znver2-x86_64 Linux x86_64 8.0 MB GUI + CLI; AMD Zen 2 / 3 / 4 (Ryzen 3000+, EPYC Rome / Milan / Genoa)
fracfixd-linux-broadwell-x86_64 Linux x86_64 8.1 MB GUI + CLI; Intel Broadwell or newer (i5 / i7 5th-gen+, Xeon E5 v4+)
fracfixd-linux-generic-x86_64 Linux x86_64 8.1 MB GUI + CLI; x86-64-v3 baseline (most 2013+ CPUs)
fracfixd-cli-linux-x86_64-static Linux x86_64 1.8 MB CLI only, no runtime deps beyond libc + libblas; ideal for containers and HPC node-locals
FracFixD-2.0.0-macos-arm64.dmg macOS arm64 21 MB Drag-to-Applications installer; native Mach-O launcher for Tahoe Gatekeeper
fracfixd-2.0.0-macos-arm64.tar.gz macOS arm64 19 MB Relocatable tree for CLI / pipeline use
fracfixd-v2.0.0-windows-x86_64.zip Windows x86_64 38 MB Portable ZIP; fracfixd.exe + GTK 3 + OpenBLAS + gfortran runtime closure (~70 DLLs)
SHA256SUMS 1 KB SHA-256 hashes for the seven artefacts above

Verify your download:

# Linux / macOS
sha256sum -c SHA256SUMS

# Windows (PowerShell)
Get-FileHash *.zip,*.dmg,*-static,*-x86_64 -Algorithm SHA256

Method highlights (carried forward unchanged)

  • NNLS compositional fixup (plain / ridge / auto) — handles the "lost fraction" problem standard differential-expression tools (DESeq2, edgeR) can't.
  • Seven differential-proportion test backends — GLM-LRT, binomial Wald, beta-binomial Wald, Rao score, HC0 / HC3 sandwich (optional cluster-robust), quasi-binomial.
  • Multi-condition global LRT / joint Wald across K ≥ 2 conditions with optional per-pair contrasts.
  • Three dispersion modes (global / trend / per-transcript) with optional Bayesian shrinkage prior on log-φ.
  • Three FDR procedures (BH, BY, Storey q-values) + optional independent filtering.
  • Three posterior log₂FC shrinkage estimators (normal, apeglm, ashr).
  • Per-transcript permutation p-values with cluster-friendly deterministic seeding.
  • Resumable pipeline via --cache-fits / --from-cache (~10x faster re-runs).
  • Native FFXD1BIN proportions format (~30x faster than TSV to parse on 100k-transcript fixtures).
  • Native SVG volcano plots with optional EnhancedVolcano-style R reproduction script export.

Equivalence

Default-flag output verified against FracFixR on every release via an in-tree equivalence harness: Spearman ρ(log₂FC) ≥ 0.99 and ρ(−log₁₀ p) ≥ 0.95 on the standard synthetic fixtures.

Documentation

Source code

The FracFixD D source code is closed and confidential under a separate licence held by Biocodecs / Arnaroo Ribologicals. Pre-compiled binaries are released under CC-BY-NC-ND-4.0. The complementary FracFixR R package (under CRAN/ in this repo) is fully open-source under CC BY 4.0 and is the right entry point for most academic users.

Citing

If you use FracFixR or FracFixD in research, please cite:

Cleynen A, Ravindran A, Shirokikh NE. FracFixR: a compositional statistical framework for absolute proportion estimation between fractions in RNA sequencing data. Bioinformatics 42(2), February 2026, btaf615. https://doi.org/10.1093/bioinformatics/btaf615

Zenodo DOIs (auto-minted on release publication):

FracFixR v1.0.0.1 — archival re-publish

Choose a tag to compare

@shnickol shnickol released this 16 May 12:47
7a69238

Metadata-only archival re-publish to register the public repository with Zenodo for citable DOI assignment. No code or API changes since v1.0.0; documentation updates (README, QUICK_REFERENCE, CONTRIBUTE) committed since v1.0.0 are included in the archived snapshot.

Initial full release

Choose a tag to compare

@shnickol shnickol released this 23 Jun 19:28
6eea185

FracFixR initial complete release with examples.