Skip to content

BulkSeq Studio v0.32.0

Choose a tag to compare

@tunabirgun tunabirgun released this 17 Sep 22:35

Scientific output changes. Count-matrix imports that contain malformed values, negative fractions or undeclared fractional values are now rejected instead of being converted or rounded silently. Explicitly admitted RSEM/tximport estimated counts retain the existing rounding route. Microarray probes assigned to multiple distinct genes are now excluded before gene-level collapse instead of being assigned to the first listed gene. GSEA now retains independently filtered rows with a finite route-specific rank and finite raw p-value even when the adjusted p-value is missing; the ORA tested family is unchanged. Fallback KEGG rankings now reduce source aliases once in the final GeneID space, so an already-ranked alias group can also change. Cross-study enrichment excludes unresolved one-to-many identifier mappings instead of selecting the first returned Entrez identifier and applies the configured per-study effect threshold instead of admitting every FDR-significant nonzero effect. Alternative-engine contrasts now distinguish condition labels that previously collapsed to the same R-safe coefficient name. Synthetic regressions establish these corrected contracts; the historical pasilla, Fusarium, rice, GEO microarray, enrichment and meta-analysis benchmark claims have not been rerun under 0.32.0.

Fixed

  • Installed environment provenance distinguishes a fixed lock from every floating solve. The backend marker now records lock only when the exact linux-64 lock file was installed. A floating-spec install records fallback with that file's actual name and SHA-256, whether linux-64 reached it after a lock failure or native Linux ARM selected it directly because the fixed lock is platform-specific. Core installs remain core. Synthetic shell excerpts cover all four branches and reject the former ARM lock misclassification; they do not execute setup, install packages, or establish an end-to-end ARM run. The published AppImage remains x86-64.

  • Backend setup logs now remain writable for installed and portable applications. The environment installer writes wsl_bioenv_install.log in the current user's BulkSeq Studio application-data directory rather than beside the bundled setup script. Windows WSL and native-Linux launchers pass that same location explicitly, and the readiness dialog reads it from the same path. A direct shell invocation falls back to the XDG user-data location. This changes diagnostics only; it does not install, rebuild, or alter an existing environment.

  • A failed environment verification can receive one bounded in-place repair. When tool, R or import verification fails, setup reinstalls the same installed specification once and reruns verification. Post-link steps can redownload required files. A remaining verification failure still fails; this does not claim to repair unrelated corruption.

  • Critical interface controls expose their visible labels to Qt accessibility APIs. Public-accession and GEO fields now retain visible labels instead of relying only on placeholders. The differential-expression engine, factor and groups, adjusted-p threshold, absolute log2 fold-change, advanced design and organellar settings, output and figure selectors, figure preview, and current-view PPI edge filter expose specific names and descriptions; composite labels now identify their actual controls. The adjusted-p threshold follows the recorded imported-results method, and the edge filter states that its 0–100 slider range maps to displayed confidence 0.00–1.00 without rebuilding the network. Tab leaves the multiline accession editor. Focused Qt regressions query names and label relationships in loaded and expanded views and exercise keyboard focus. This does not establish screen-reader conformance or replace native assistive-technology testing.

  • The cross-study report now uses the same native figure viewer as the main report. meta_analysis_report.html no longer places an always-visible legacy overlay over the page. Its comparative figures open in a labelled modal dialog with Fit, Actual size and zoom controls; Escape and Close return focus to the figure trigger, and the dialog keeps keyboard focus within the viewer. The shared main-report component is an explicit workflow input for the meta-report rule, so a viewer repair regenerates cached cross-study reports. The figures and tables are unchanged.

  • Sortable report tables retain their header semantics. Main and cross-study report headers remain column headers and contain one native labelled sort button. Mouse, Enter and Space cycle ascending, descending and the source order without changing saved results. aria-sort identifies only the active column, and the focus indicator remains visible in the report's light and dark presentations. Machine, imported-results provenance and full-configuration key/value tables now expose their left cells as row headers. Numeric sorting continues to use stored values when displayed text is grouped.

  • Cross-study enrichment foregrounds match published per-study DEG tables (scientific). Each study's enrichment foreground now uses the same configured FDR and absolute log2-fold-change thresholds as its upregulated.csv and downregulated.csv tables. The strict FDR boundary remains padj < alpha, the effect boundary remains inclusive, and an exact zero effect is neutral when the configured threshold is zero. Nonfinite or missing adjusted p-values and effects are excluded. The resulting table selections are restricted to the shared tested universe and the same accepted ambiguity-aware mappings before enrichment; the convergent meta_sig policy, pooling models and universe definition are unchanged. Synthetic base-R regressions cover positive and zero thresholds, both directions, exact boundaries, missing and nonfinite values, shared-only genes and mapping ambiguity. No real study, enrichment analysis or published benchmark was rerun.

  • Wilcoxon small-sample wording is qualitative. The sensitivity check now describes exact p-value discreteness and limited power for small groups instead of claiming that a two-sided p-value below 0.05 is unattainable whenever the smaller group has fewer than five samples. The Wilcoxon statistic, adjusted p-values, diagnostic status and differential-expression calls are unchanged; a pinned R 4.5.2 regression covers the exact 4-v-4 counterexample.

  • Alternative-engine contrasts retain raw condition identity (scientific). edgeR quasi-likelihood, limma-voom and microarray limma now construct the configured numerator-minus-denominator comparison as a positional numeric contrast. Distinct admitted condition levels containing spaces, hyphens or dots, including A-B and A.B, therefore cannot collapse into the zero contrast A.B - A.B, and a sample-sheet column named grp cannot shadow the configured contrast factor during model construction. Synthetic internal variable names prevent group/covariate coefficient collisions; coefficient names are unique but do not define the estimand. Fixed-seed synthetic fits for all three engines agree numerically with an independently constructed clean-label design and numeric contrast, retain the expected effect direction, preserve sample identities, and preserve ordinary-label results. The additive group-means design, covariate values, thresholds, fitting methods and package pins are unchanged; interactions remain rejected. No real study or published benchmark was rerun.

  • GSEA eligibility is separated from ORA eligibility (scientific). Built-in OrgDb, g:Profiler fallback, KEGG-only and custom gene-set routes admit a row to the ranked population when its adjusted p-value is missing but its selected rank and raw p-value are finite. Main enrichment retains its established signed-statistic choice and fallback after route-specific QC and identifier acceptance; custom enrichment intentionally remains ranked by log2 fold change. An additional adjusted-p-missing row without a finite raw p-value, including a DESeq2 Cook's-distance outlier, and an additional row with a nonfinite selected rank remain excluded; legacy adjusted-p-finite rows keep their supported eligibility. The ORA tested universe, foregrounds, identifier bridge, ambiguity policy and direction-conflict collapse remain isolated. Full eligible mapped aliases use the established median reducer, while an ORA conflict cannot re-enter through a rank-only alias. Fallback KEGG routes reduce all eligible source scores once after the final GeneID bridge instead of taking a median of already-collapsed aliases; this can change already-ranked alias groups as well as restore adjusted-p-missing genes. Tables lacking raw-p evidence retain legacy eligibility. Synthetic offline R regressions cover exact ranks and ORA sets across all routes, metric fallback, empty ORA, duplicate and nonfinite accounting, alias conflicts and helper dependency tracking; no live enrichment service, real study or published benchmark was rerun.

  • Count-matrix validation is strict and shared by the interface and copied workflow (scientific). Missing, nonnumeric, nonfinite and negative cells are rejected before rounding or output creation, so -0.1 cannot become zero and malformed cells cannot become counts. Any fractional value now requires the explicit estimated-count declaration; admitted RSEM/tximport estimates use the existing round-half-to-even convention, while integer text is preserved without conversion through binary floating point. At least half of the column totals falling within 1% of one million produces a normalized-data suspicion warning, not a categorical TPM rejection, because valid integer libraries can have the same total. The copied workflow treats its ingest entrypoint and validator as inputs, so a change to either re-runs the import rather than reusing stale counts. Entry-point regressions cover text, blank/NA, NaN/infinity, a single fraction among integers, a small negative, exact million-count totals, large integers and an independent decimal rounding oracle. These are R-free synthetic checks, not a reproduction of published benchmarks.

  • Microarray probe annotation is ambiguity-aware before MaxMean collapse (scientific). Ordinary symbol fields are parsed across all // and /// candidates. Affymetrix gene_assignment is parsed as ///-separated records whose second //-separated field is the symbol, so transcript, description and other fields are not mistaken for genes. Repeated annotation rows and repeated transcripts are combined by probe and deduplicated; exactly one distinct gene is retained, while ambiguous, unknown and missing-annotation probes are excluded. probe_gene_map.tsv records the raw annotations, complete sorted candidates, classification and annotation-row count with escaped control characters, and check 12 reports each exclusion count. Local gene-level matrices retain direct identifiers. Synthetic R regressions cover order invariance, repeated same-gene assignments, unresolved mappings, evidence escaping, mapping coverage and an independent expected MaxMean matrix. No GEO study or published benchmark was rerun.

  • Cross-study enrichment uses the main enrichment route's ambiguity-aware identifier resolver (scientific). Official-identifier routing, configured keytype handling and alias fallback retain the established main-analysis policy. Duplicate copies of one source-to-Entrez pair collapse harmlessly; unresolved one-to-many and cross-keytype mappings are excluded from both the shared universe and every study/convergent foreground instead of inheriting database row order. meta_enrichment_mapping.tsv records every accepted, unmapped and ambiguous source identifier, its candidates, resolution route and foreground memberships. Check 18 reports universe and foreground coverage and remains REVIEW_REQUIRED when ambiguity was excluded, including when enrichment later skips for small gene sets or no terms. Synthetic offline regressions establish order invariance and exact set membership; no real study, enrichment service, benchmark or published result was rerun.

  • Project destinations are checked before scaffolding. Project names . and .., resolved paths outside the selected working directory, and symlink or junction targets that escape it are refused. A non-empty existing directory now requires explicit overwrite whether or not it is already a BulkSeq Studio project; an existing file is never overwritten. An empty directory remains a valid new target. The command line and interface distinguish an occupied non-project directory from an existing project, so their messages no longer assert that arbitrary files are a recognized project.

  • Workflow synchronization is verified and fail-closed. Before replacing an outdated or legacy copied workflow, the application stages a complete copy, verifies its content digest, and promotes it with rollback if promotion fails. A valid recorded digest that disagrees with the project workflow now blocks the run without overwriting local files. A copy without a valid digest is repaired only when its actual tree matches the trusted bundled tree; otherwise it stops for review. A valid legacy recorded workflow is upgraded with the original tree retained in a project-local backup. The command line and interface stop before creating a runner when synchronization fails, and the run report distinguishes the actual execution-tree digest from the bundled-workflow identity. Re-run only after reviewing any reported local workflow edits.

  • Command-line sample-sheet checks follow the configured input route. bulkseq project info, samples show, and check now read input.samples, including project-relative and absolute paths, instead of silently using config/samples.tsv. check permits pending reads only on SRA and processed-input routes; local FASTQ paths remain required. Relative FASTQ cells are resolved against the selected project even when the command is invoked from another directory. samples show and check name a missing or malformed configured sheet; project info retains its established zero-sample fallback for an unreadable sheet.

Installation

The Windows installer and portable application are unsigned. Verify downloads against SHA256SUMS.txt; Windows SmartScreen may display a publisher warning before launch.

Every asset below is listed in SHA256SUMS.txt; verify a download against it before use.