Skip to content

Releases: oncologylab/survscope

SurvScope v0.4.3: optional q-values

Choose a tag to compare

@YaoxiangLi YaoxiangLi released this 21 Sep 19:49
144aba6

Q-values are now optional and off by default in both the website and Python figures. The default figure shows log-rank p-values and hazard ratios.

To include q-values, enable Properties → Survival details → Show adjusted q-value, pass show_q=True to survscope.plot, or add --show-q to the CLI. Saved projects and presets preserve their chosen setting; Reset figure turns q-values off. Copied methods text follows this choice and describes BH adjustment across the available outcomes when enabled.

Calculated results, JSON fields, grouping, data, and the 6.8-inch layout are unchanged. A single tested outcome still omits the redundant q label. The README, help, user guide, and screenshots describe the new default.

Install the attached wheel directly. PyPI publishing uses GitHub OIDC Trusted Publishing and still requires the repository's one-time registration in PyPI; see the publishing guide.

The immutable data release remains data-v2026.09.18 (33 TCGA cohorts and 18 CPTAC groups). The deployment pipeline additionally checks the full cohort catalog and Pages size budget.

Validation: 59 Python tests, 26 browser unit tests, all 93 Chromium/Firefox/WebKit scenarios, and 744 independent Python/JavaScript/R fixture endpoint comparisons passed. With q-values enabled, the 6.8-inch reference figure is pixel-identical to v0.4.2.

Deployment and live-site verification passed: 5,256 endpoint comparisons across all 51 cohorts had zero Python/JavaScript/R validation failures. The deployed site is 837,168,799 bytes, below the 850 MiB limit. Live TCGA and CPTAC checks confirmed default-off, opt-in, saved-project restoration, matching methods text, and SVG exports, with no external runtime requests or browser errors. Reports and SHA-256 checksums are attached.

SurvScope 0.4.2 — full legend editing and compact controls

Choose a tag to compare

@YaoxiangLi YaoxiangLi released this 21 Sep 19:13
172abfb

SurvScope 0.4.2 lets you edit an entire legend entry directly on the figure and makes the Properties toolbar more compact.

  • Double-click a legend entry to edit its full text, including n and e, with rich formatting. Each outcome has its own entries. Reset restores the automatic data label. Saved projects and vector exports retain the displayed text, while curves, analysis JSON, and citation counts keep the calculated results.
  • Older projects with shared rich group names remain compatible. Group-name fields still rename all outcomes and restore their automatic counts. Legends and their text respect parent locks and movement.
  • Alignment and annotation commands now appear as a compact icon toolbar. Redundant Arrange headings, alignment captions, permanent editing hints, and repeated font descriptions were removed. Hover help, shortcuts, and accessible names remain available.
  • Browser and Python figures omit the duplicate q label when only one outcome has a finite log-rank p-value, as in current CPTAC analyses. The calculated q remains in JSON. TCGA adjustment continues to include all tested outcomes when panels are hidden.
  • The README and illustrated guide explain n/e counts, censoring, p/q equality, and full legend editing. n counts patients, e counts observed events, and e cannot exceed n; equality is possible. BH adjustment of one test correctly gives q = p. Numerical algorithms and the immutable data-v2026.09.18 catalog are unchanged.

Validation: 58 Python tests across Python 3.10/3.12/3.13; 26 browser unit tests; 31 Playwright scenarios across Chromium, Firefox, and WebKit; 744 Python/JavaScript/R fixture endpoint comparisons with zero failures; Ruff, production build, dependency audit, and package checks. The default SRD5A1/PAAD figure is pixel-identical to v0.4.1 in the recorded browser comparison and retains its 6.8-inch dimensions. Production deployment passed 5,256 endpoint comparisons across all 51 TCGA/CPTAC cohorts with zero JavaScript or R comparison failures and matching source hashes. The immutable data release passed checksum, coverage, and asset-count checks (869 assets); the deployed site is 837,167,665 bytes (798.4 MiB), below the 850 MiB budget.

Live checks at 1080p and 4K confirmed the new version, complete legend editing, project reopening, SVG export, citations, all seven font families, and single-outcome q display across TCGA and CPTAC examples. There were zero page errors, failed responses, or third-party runtime requests.

Open SurvScope · User guide · Statistical methods

The attached Python wheel is ready to install. PyPI still requires the repository's Trusted Publisher registration; publishing continues to use GitHub OIDC.

SurvScope 0.4.1 — icon commands and more fonts

Choose a tag to compare

@YaoxiangLi YaoxiangLi released this 21 Sep 18:16
7d61f11

SurvScope 0.4.1 makes figure editing easier to scan with familiar icon commands and hover/keyboard help, expands the font menu to seven portable families, and removes obsolete code and local build artifacts.

  • Icon controls for tools, alignment and distribution, annotation actions, file commands, layers, and text formatting. Accessible names and keyboard shortcuts remain available.
  • Carlito, Lato, Source Sans 3, and Source Serif 4 join the original Liberation Sans/Serif/Mono families. Each includes regular, bold, italic, and bold italic. Familiar Arial/Helvetica-, Times New Roman-, Courier New-, and Calibri-style choices are explicitly labeled alternatives; the actual bundled font is shown in the menu. SVG/PDF embed the same fonts used on screen.
  • Direct editing follows each font's measured baseline. The original font, blue/red curves, 6.8-inch page, and SRD5A1/PAAD reference statistics remain unchanged.
  • Dependabot PRs #13, #14, and #16 are closed, their branches removed, scheduled update configuration removed, and automatic security-update PRs disabled. Dependency auditing remains part of CI.
  • Obsolete workspace CSS, imports, and an unused statistics wrapper were removed; TypeScript unused-code checks and cleanup instructions help keep development tidy. User documentation and screenshots now show the icon interface.

Validation: 58 Python tests across Python 3.10/3.12/3.13 in CI; 23 browser unit tests; 30 Playwright scenarios in each of Chromium, Firefox, and WebKit; 744 independent Python/JavaScript/R endpoint comparisons; fixture checksums/coverage and package checks. The production deployment passed 5,256 endpoint comparisons across all 51 TCGA/CPTAC cohorts with zero JavaScript or R comparison failures, using the unchanged immutable data-v2026.09.18 release. Source hashes match the deployed commit, and the static site passed the 850 MiB budget gate at 837,158,289 bytes (798.4 MiB). Live checks at 1080p and 4K verified the new version, all seven font families, TCGA and CPTAC analyses, citations, project saving, and SVG export, with zero page errors, failed responses, or third-party runtime requests.

The attached performance report retains both successful and over-budget stress measurements. At 4K with 100 annotations, the repeated Chromium 151 run recorded approximately 16.7–16.8 ms p95 frames; one drag completion under simulated 4× CPU slowdown took 117 ms, exceeding the 100 ms long-task target. Timings vary by browser and run.

Open SurvScope · User guide · Font sources and licenses

The attached wheel is ready to install. PyPI still requires the repository's Trusted Publisher registration; no API-token publishing was introduced.

SurvScope 0.4.0 — direct figure editing and citations

Choose a tag to compare

@YaoxiangLi YaoxiangLi released this 21 Sep 17:02
a0507ba

SurvScope 0.4.0 makes the figure itself an editing surface and uses the full browser window, from phones to 4K displays.

  • Double-click labels to edit text directly. Use bold, italic, superscripts, subscripts, multiple lines, per-object fonts, and rotation.
  • Arrange figures with Selection, Type, Hand, and Zoom tools; resizable docks; layers, locks, multiple selection, alignment, snapping, annotations, and undo.
  • “Custom percentile groups” is the new neutral name. Existing links, Python inputs, and version 1 projects remain compatible.
  • “Cite this analysis” provides the relevant TCGA or CPTAC data references, verified cohort publications, methods text, and BibTeX/RIS. Version 2 projects and SVG metadata retain analysis provenance.
  • The README and illustrated guide now introduce the research workflow and explain comparisons, exclusions, and citations.

The default blue/red 6.8-inch figure and survival calculations are preserved. The site continues to support all 33 TCGA cohorts and 18 CPTAC-3 tumor groups in immutable data release 2026.09.18. CPTAC currently provides RNA expression and overall survival. Cohorts without a verified original paper retain source-dataset references and an explicit note.

Validation includes 58 Python tests, 20 browser unit tests, 28 Playwright scenarios across Chromium/Firefox/WebKit, and 5,256 endpoint comparisons with the Python and independent R references. All counts/group memberships match exactly and numerical results meet the documented tolerances. The 4K interaction benchmark with all overlays and 100 annotations measured median p95 frame times of 16.7 ms normally and 16.8 ms at 4× CPU slowdown on the recorded test machine.

Open SurvScope · User guide · Citations · Statistical validation · Performance report

Install the attached Python wheel directly:

python -m pip install https://github.com/oncologylab/survscope/releases/download/v0.4.0/survscope-0.4.0-py3-none-any.whl

PyPI uses GitHub OIDC Trusted Publishing and still requires the one-time publisher registration described in publishing instructions. The wheel and source distribution here are available independently of that registration.

SurvScope 0.3.0 — editable figures and validated comparisons

Choose a tag to compare

@YaoxiangLi YaoxiangLi released this 19 Sep 07:08
2ac8506

Create a survival comparison, edit the figure directly, and save a project to continue later.

Open SurvScope · Illustrated guide

  • Edit labels, legends, statistics placement, panel positions and sizes, fonts, colors, lines, dimensions, axes, and time units. Add notes, lines, and arrows; use zoom/pan and undo/redo.
  • Compare the median, mean TPM, a chosen percentile, lowest/highest quarters or thirds, custom extreme groups, or a TPM threshold. Preview group sizes and excluded patients before analysis.
  • Optionally add 90/95/99% confidence bands, censor marks, and number-at-risk tables. Save projects and reusable appearance presets. SVG/PDF embed fonts; PNG preserves the selected pixel size and resolution.
  • JavaScript calculations now match the Python calculation path and are independently checked against R survival. Invalid or infinite Cox fits report unavailable estimates with an explanation.
  • The README and in-app guide explain the workflow and results for readers without programming experience.

The original blue/red 6.8-inch PAAD figure and reference statistics remain preserved. All 33 TCGA and 18 CPTAC groups remain available; CPTAC supports RNA expression and overall survival. Data release 2026.09.18 is unchanged.

Validation passed 57 Python tests, 12 browser unit tests, 10 browser interaction tests, and 5,256 endpoint comparisons across the full cohort catalog. Group membership and counts matched exactly. Maximum log-HR differences were 2.59e-9 for JavaScript versus Python and 2.14e-6 for converged R estimates. See methods and the validation report for tolerances and limitations.

Python installation:

python -m pip install https://github.com/oncologylab/survscope/releases/download/v0.3.0/survscope-0.3.0-py3-none-any.whl

PyPI uses GitHub OIDC Trusted Publishing and still requires registration of the repository's publisher identity. The attached GitHub wheel is the installation route until that registration is complete.

SurvScope 0.2.0 — CPTAC tumor cohorts

Choose a tag to compare

@YaoxiangLi YaoxiangLi released this 19 Sep 01:35

SurvScope now supports CPTAC RNA expression and overall survival alongside all 33 TCGA cohorts.

  • Adds 18 CPTAC-3 tumor groups with matched primary RNA and overall-survival records. Cohort labels show sample counts; very small groups and unavailable endpoints are marked explicitly.
  • Preserves existing TCGA clinical and expression assets byte for byte, including the SRD5A1/PAAD statistical and 6.8-inch figure contract.
  • Keeps the browser fully static with same-origin requests and adds source-aware CPTAC exports in the browser and Python.
  • Adds verified reuse of compact TCGA releases and complete checksum, coverage, asset-count, and 850 MiB deployment checks.

The active catalog is data-v2026.09.18. Open SurvScope or read the cohort coverage and source research.

CPTAC provides OS only in this release. CPTAC-2 lacks usable matched survival outcomes in the GDC/PDC sources checked. Protein abundance is not part of the RNA/TPM workflow.

Validation: 36 Python tests, 5 browser statistics tests, and 3 browser end-to-end tests; GitHub CI passed on Python 3.10, 3.12, and 3.13. The npm audit reports no vulnerabilities.

The tested wheel and source distribution are attached below. Install directly from GitHub:

python -m pip install https://github.com/oncologylab/survscope/releases/download/v0.2.0/survscope-0.2.0-py3-none-any.whl

PyPI publication is pending a matching Trusted Publisher registration. See the maintainer setup instructions. The website, data catalog, and GitHub distributions are published.

SurvScope data 2026.09.18

Choose a tag to compare

@github-actions github-actions released this 19 Sep 01:30

Compact plot-only RNA/TPM survival data for the cohorts listed in the manifest. TCGA uses TCGA-CDR; CPTAC uses GDC overall survival. No raw matrices or sample identifiers are included.

SurvScope data 2026.07.28

Choose a tag to compare

@github-actions github-actions released this 29 Jul 16:46

Compact plot-only GDC STAR-TPM and TCGA-CDR data. The archive contains no raw TCGA matrices or sample identifiers.