Download Latest Version install_tavia.zip (102.4 kB)
Email in envelope

Get an email when there's a new version of TAVIA

Home
Name Modified Size InfoDownloads / Week
README.md 2026-09-03 13.9 kB
install_tavia.zip 2026-09-03 102.4 kB
Totals: 2 Items   116.3 kB 18

TAVIA 1.0.0

Release target: TAVIA 1.0.0, package version 1.0.0.

TAVIA is a PySide6 desktop application for editable data tables, statistical analyses, scientific graphs, reports, and saved projects. Version 1.0.0 is the first stable-release target and includes linked analysis editing, reusable graph settings, cross-table family consistency, per-X Welch comparisons for replicated XY data, persistent analysis-backed graph curves, reproducibility exports, project validation, and a built-in user manual.

Installation

Python 3.11 or newer is required.

  • Windows: run INSTALL-WINDOWS.bat
  • Linux: run ./install-linux.sh
  • macOS: run ./install-macos.command

The installer can install the current SourceForge Mercurial default branch or the bundled source. Before repository transfer, it asks Mercurial for the exact current remote default revision over HTTPS, then requires the checked-out revision to match before activation. Repository candidates are downloaded into a disposable checkout, validated, built, installed, and started before they become active. A local repository cache that fails cloning, pulling, checkout, validation, or revision verification is bypassed with a clean remote clone. The validated repository cache is refreshed after activation. If cache refresh fails, the installed application remains active and the previous cache is retained. On Windows, the private Mercurial environment is driven through its Python interpreter rather than pip's generated hg.exe launcher.

install.py can also be distributed by itself as a small online installer:

python install.py download

That command downloads the current validated SourceForge default-branch revision and installs it for the current user. The bundled command requires the complete extracted source archive beside install.py; a lone uploaded install.py cannot provide an offline bundled install.

Direct commands:

python install.py current
python install.py download
python install.py bundled
python install.py update
python install.py rollback
python install.py repair
python install.py diagnose
python install.py uninstall

Research toolkit and command line

The statistical engine is also available without the desktop interface. This makes TAVIA usable from scripts, notebooks, automated pipelines, and reviewer verification workflows. Results include source-file hashes, analysis options, package and dependency versions, and JSON-compatible numerical output.

tavia-analyze list-analyses
tavia-analyze validate
tavia-analyze run data.csv --analysis summary \
  --options '{"columns":["A","B"]}' --output result.json
tavia-analyze review-project study.socp --output review.json
tavia-analyze export-comments study.socp comments.csv
tavia-analyze export-audit study.socp audit.md

The public Python entry points include tavia.toolkit.load_table, tavia.toolkit.analyze_table, tavia.toolkit.analyze_file, tavia.toolkit.write_json, and the Qt-free review helpers in tavia.review. Saved projects can be summarized without starting the desktop interface, and project comments or audit records can be exported as Markdown or spreadsheet-safe CSV. See docs/PROGRAMMATIC-API.md and the executable examples/reference-analysis workflow.

Release qualification steps are in docs/RELEASE-CHECKLIST.md.

Encrypted .taviax projects written by this source use a versioned AES-GCM container with the stronger version-2 scrypt profile; beta version-1 encrypted projects remain readable.

TAVIA also writes a small rotating local diagnostic log so crashes launched from desktop shortcuts are reportable even when no console is visible. The default file is %LOCALAPPDATA%\TAVIA\Logs\tavia.log on Windows, ~/Library/Logs/TAVIA/tavia.log on macOS, and $XDG_STATE_HOME/tavia/tavia.log (or ~/.local/state/tavia/tavia.log) on Linux. Logs are local only and are not uploaded automatically. On POSIX systems TAVIA restricts the log directory and log files to the current user. Set TAVIA_LOG_DIR to override the location.

Only one installer process may modify a per-user installation at a time. Installer locks are atomically published, validate process identity, and recover malformed or stale local lock files.

Analyses

Supported saved analyses are:

  • descriptive summaries
  • distribution diagnostics
  • paired t-test and Wilcoxon signed-rank comparison
  • Student t-test, Welch t-test, and Mann-Whitney U comparison
  • ordinary one-way ANOVA, Welch one-way ANOVA, and Kruskal-Wallis comparison
  • linear, quadratic, cubic, logarithmic, exponential, and power regression
  • four-parameter logistic dose-response fitting
  • per-X Welch t-tests for replicated XY data, with optional Holm, Bonferroni, or Benjamini-Hochberg/FDR correction

Dose-response fitting accepts exact zero concentrations as control values. Zero is kept in the table and mapped internally to a tiny positive value only where the logarithmic 4PL calculation requires it; negative concentrations remain invalid. EC50 is reported on the concentration scale as 10**log10(EC50). With positive residual degrees of freedom, 95% parameter and curve confidence intervals use the usual residual t-based covariance. If a successful fit has zero residual degrees of freedom, TAVIA no longer leaves the confidence limits blank: it reports an explicitly approximate normal-based interval using the observed residual RMS with a configurable minimum noise floor, defaulting to 5% of the observed response range. The result table records the CI method and noise scale so this fallback cannot be mistaken for an ordinary residual-df interval.

XY regression and dose-response analyses can fit multiple response columns against one shared X or dose column. Result tables keep observed values, residuals, fitted curves, and confidence bands separated by response.

Tables can also represent precomputed Value/SD, Value/SD/N, Value/SEM, or Value/SEM/N summary blocks. Descriptive summaries, Student/Welch independent t-tests, and ordinary/Welch one-way ANOVA use summary-statistic formulas directly. Inferential tests need sample size; when an N subcolumn is absent, TAVIA starts from an explicit conservative assumed N=2 per summary row, the smallest N compatible with a sample SD, and lets you replace it with the real N instead of treating the summaries as raw observations. Multiple summary rows are pooled by recomputing total N, weighted mean, and sample SD. Rank, paired, regression, and dose-response procedures still require raw observations.

Unsupported saved analysis identifiers are rejected.

Graphs and interface

Graph mean intervals use Student t critical values. Percentile bootstrap intervals retain asymmetric lower and upper bounds, and one-observation groups remain renderable without an interval. Linked scatter and line graphs add and refresh regression or dose-response curves with confidence bands when a matching linked analysis exists. In XY graphs, point markers, error bars, confidence-band fill, and point-to-point line connection are independent per data set. Shared-X replicate layouts are expanded correctly for per-X SD, SEM, confidence intervals, bootstrap intervals, and Welch comparisons instead of losing later Y replicates. Scatter series therefore can show uncertainty without being forced into a connected line. Connected XY data default to X-order, with an optional table-row-order mode for trajectories. Automatic regression and dose-response curves render from the full-precision fit result rather than rounded result-table text. Grouped bar by X displays multiple Y data sets side by side at common numeric X values.

Each linked statistical overlay has an explicit Placement setting. Brackets only draws pairwise/paired comparisons only when both groups map unambiguously to categories on bar mean, box, violin, raincloud, beeswarm, or paired graphs. Statistics inset only always keeps the textual result in the inset. Both uses both forms, while Auto (legacy rule) preserves the older bracket-when-possible behavior for existing projects. Distribution-diagnostic overlays keep separate p-value labels for each measured column. Linked statistics have independent legend inclusion and text/line styling, and the legend itself has font controls. Linked analysis result sheets show a visible Edit analysis toolbar button. On a graph, select a rendered statistics object to reveal its pencil edit button. Selecting an automatic regression or dose-response fit curve likewise reveals a pencil that opens the generating analysis. If such a fitted curve is removed from the graph, that removal is stored and the curve is not recreated on project reload or analysis refresh. For XY scatter and line graphs, Per-X analysis launches a linked Per-X Welch t-tests analysis using the plotted shared-X mapping. Choose the reference Y series, comparison Y series, alpha, and optional Holm, Bonferroni, or Benjamini-Hochberg/FDR correction. The linked graph displays stars, P values, or both above the higher of the two compared replicate groups at each shared X. Each side needs at least two finite replicate observations at that X.

Graph styles include publication neutral, publication, presentation, color-vision-safe, and black/gray/white. Selecting a style updates figure and series controls immediately. Per-series SD/SEM/CI/bootstrap error settings can be propagated to all compatible plotted data sets. XY point connection can likewise be applied to all data sets without changing error bars or confidence bands. The selected series also has a prominent Connect dots toggle, a connection-order selector, and confidence-band fill-opacity control. Numeric tick labels have independent size, weight, color, format, precision, prefix, suffix, count, and spacing controls. Graph presentation settings can be copied, pasted, or applied to selected graphs while preserving each target's data mappings and linked statistical analyses. Graph, analysis, import, replicate, export, and plugin dialogs are resizable and expose maximize controls. Dropdown controls expand within their layouts and size their item views to show long entries without elision.

Editable data-table values enter edit mode on a single unmodified left click. In the project navigator, top-level Data Tables, Analysis, Graphs, and Notes groups can be expanded or collapsed; child items can be reordered by drag and drop with the native insertion indicator; double-click starts inline rename; and Delete opens an item/family deletion choice where applicable. Analysis and graph context menus can copy one item or the whole corresponding family to another data table. Analyze > Copy Selected Analysis to Tables... applies one saved analysis to multiple structurally compatible tables, while Make Family Consistent Across Tables... adds missing analyses and graphs from a selected template family without deleting target-only items.

Graphs can use workspace-fitted sizing or fixed canvas width and height. The graph toolbar supports image/PDF/SVG export where Qt supports the format, plus page setup and print preview. The Help menu opens the PDF user manual, a searchable Help Center with workspace-openable topics, the interface guide, and the statistical methods guide. The Review menu groups review summary, project validation, report export, append-only project comments, and the local audit trail.

TAVIA always performs a non-blocking update check after each normal desktop startup. Automatic checks stay silent unless a newer SourceForge default-branch revision is verified; Help > Check for Updates... remains available for an explicit check and diagnostic feedback. When an update is accepted, TAVIA remains open while a modal updater shows the current stage, a progress bar, optional detailed installer output, and retry/failure information. The application offers Restart TAVIA or Restart later only after the updater exits successfully.

User manual

The complete illustrated manual is in manual/TAVIA-User-Manual.pdf. Its maintainable LaTeX source, figures, and build instructions are in the same manual/ directory.

Development

python -m venv .venv
.venv/bin/python -m pip install -e ".[dev]"
.venv/bin/python -m pytest -q
.venv/bin/python -m tavia.cli validate
.venv/bin/python examples/reference-analysis/run_reference.py
.venv/bin/python -m tavia

On Windows, use .venv\Scripts\python.exe.

Qt tests are skipped when PySide6 is unavailable. For headless Linux Qt tests, set QT_QPA_PLATFORM=offscreen.

Spreadsheet imports read raw rows before applying one shared header-detection policy, so numeric headerless workbooks keep their first data row. TAVIA CSV and TSV exports carry a UTF-8 header marker for deterministic re-import, including all-text tables. Unmarked third-party all-text files remain inherently ambiguous and should be checked after import.

Plugins

The source tree includes examples/tavia-tutorial-plugin. Tools > Plugin Manager can create the same complete tutorial plugin, load reviewed manifest-based plugins, display embedded Markdown tutorials, and run declared non-destructive self-tests. Plugin manifests use API version 1 and may expose analysis, import, export, report, and graph hooks. Loaded hooks remain disabled until explicitly enabled, and host code can call an enabled hook through PluginRegistry.call_hook.

Security

Input limits, project encryption, repository trust, plugin permissions, and export behavior are documented in SECURITY.md.

Support and release history

Use the project issue tracker for reproducible bug reports and support requests. Release-facing changes are recorded in CHANGELOG.md. Security-sensitive reports should follow SECURITY.md.

License

GPL-3.0-only. See LICENSE.

Source: README.md, updated 2026-09-03