Quick start#
Stoodia Linza keeps source data, statistical analysis and scientific graphs in one project. Applicability depends on study design and assumptions across scientific disciplines.
- Open the example without signing in, or use your Stoodia account to save projects online.
- Choose a template or create the appropriate table. Enter names and measurement units.
- Enter or paste data. Review missing values, exclusions, and links between repeated observations.
- Open Analyses. Choose the method and significance level, and read assumptions and warnings.
- Open Graphs, or combine several panels in Figures.
- Save the project and download research JSON alongside figures and methods.
- Calculations update after data and settings change. Wait for the current calculation before exporting results.
- Demo mode supports calculations and downloads. Saving online requires sign-in. Download research JSON before navigating to sign-in to preserve an unsaved editor.
Choose a table#
The table type defines what each observation represents. Group names do not select a study design automatically.
Theory: Data: observations and variables →
- The Column table stores numerical observations by group. For paired methods, values on the same row form a pair.
- XY: X/Y pairs in separate series for linear regression, correlation, and dose-response curves.
- Factor data: long-form records with two factor levels, a numeric response and an exclusion flag. Repeated and mixed designs require experimental-unit IDs.
- Survival: group, elapsed time, event or right-censoring status, exclusion and optional experimental-unit ID (subject column). Cox regression also accepts numeric covariate columns, within an eight-term model limit that includes treatment-group contrasts.
- Contingency: a matrix of integer frequencies. Percentages and individual measurements are not counts.
- Each table keeps its own analysis and graph settings. Select tables from the list or the mobile selector.
Enter, import and exclude data#
Keep source observations. Exclusion differs from deletion, missingness and censoring.
Theory: Data: observations and variables →
- Paste data from a spreadsheet into Column or import a CSV file. Review the preview before replacing the table data.
- Column, XY and Grouped tables show 50 rows per page. Use the controls below the table to see other rows. Calculations and exports include all pages. Wide tables scroll horizontally.
- On small screens, open Data and files for transformations, table actions and imports. Collapsing the panel preserves form entries. Prepared tables keep source details visible.
- An empty cell is missing, not zero. Invalid numbers require correction. Numerical input accepts a decimal comma.
- An exclusion flag preserves the value in the research document but removes it from analysis. Record your exclusion rationale in your research notes.
- Repeated observations use explicit experimental-unit IDs. Technical replicates do not automatically become independent experimental units.
- Confirm a number with Enter or by moving to another field. Escape cancels the input. Saving and export stay blocked while a value is unconfirmed or invalid.
- Research JSON transfers a complete project. Imported result snapshots are untrusted and recalculated from the data.
- Cancelling import preserves the current table. Use undo and redo while editing.
Column: comparing numerical groups#
Supported workflows include descriptive statistics, two-group tests and one-factor comparisons across groups.
Theory: Comparing two groups →
- Independent groups: Welch t-test, Student t-test and Mann-Whitney. Paired observations: paired t-test and Wilcoxon signed-rank.
- Multiple groups: ordinary ANOVA, Welch ANOVA and Kruskal-Wallis. Availability depends on the number of groups and selected analysis.
- Pairwise methods include Tukey, Dunnett, Bonferroni and Sidak. Dunn rank comparisons use Holm correction. Check the comparison family and correction in the results.
- Review included sample counts, effect direction, intervals and warnings. Separate columns do not make repeated observations independent.
- Normality and variance diagnostics help identify problems but do not establish assumptions. Paired analysis concerns within-pair differences.
- Dunnett results report an estimate of numerical error, not a certified error bound. If p is near the chosen threshold, do not rely on the rounded value alone.
Transforms and normalization#
In Data, choose Transform data to change Column values or Y in XY. The result appears in a separate table; the source table stays in the project.
Theory: Data preparation and a reproducible report →
- Choose a source and operation: scale and offset, logarithm, square root, division by a reference value or linear rescaling to a range.
- Enter parameters, the new table title and its units. Normalization references are supplied explicitly.
- Review the preview. It shows the first rows but checks every value.
- Create the table and review its method in Analyses. Column starts descriptive, XY with a linear overview.
- Individual observations are transformed, including excluded values. Row order, missing values and exclusions are preserved. X in XY is unchanged.
- Logarithms require positive values, square roots require nonnegative values. An invalid value blocks the whole operation rather than disappearing.
- Reference normalization: Y / reference. Rescaling: (Y minus lower bound) / (upper bound minus lower bound). Percentages multiply the result by 100. Values outside the scale are not clipped.
- Reference uncertainty is not propagated. Automatic normalization by control means, by subject or by sample minima/maxima is not included.
- The project retains source snapshots, initial output, formula, parameters and up to eight sequential steps. Manual edits and changed sources are shown separately. Repeating with the current source creates a new table.
- Removing a source table does not erase its snapshot from prepared tables. Full history and those values remain in the project JSON. CSV contains current tables and preparation references.
- Grouped, Survival and Contingency are not transformed here. A new scale can change the applicability of your analysis method.
XY: regression, correlation and dose-response#
Each point stores an X/Y pair. Missing values and exclusion flags are preserved in each series.
Theory: Regression and correlation →
- Linear regression estimates slope and intercept for each series. Inspect residuals and diagnostics.
- Pearson and Spearman estimate linear and rank association respectively. Correlation does not establish causation.
- Dose-response offers an increasing model with EC50 and a decreasing model with IC50. Enter positive raw X doses, not logarithms. Use at least six distinct doses spanning a 10:1 range.
- Choose whether to estimate each plateau or fix it explicitly. Fixed values are exact references; their uncertainty is not propagated. This does not normalize Y. The approximate EC50/IC50 interval uses a log-scale t distribution with residual degrees of freedom and matches the selected confidence level. It is not a profile-likelihood interval. An unstable or unidentifiable fit is rejected.
- Doses must span the transition and the region of each estimated plateau. A fixed plateau may lie outside the observed response range. EC50/IC50 is halfway between the response plateaus, not necessarily Y = 50.
- With two or more series, Linza tests whether EC50/IC50 and the Hill slope can be shared while plateaus remain separate, then, when supported, whether all series fit one common curve. Dose ranges must overlap around the transition; direction and plateau settings must match. Holm adjustment is used for the planned nested F tests. For EC50/IC50 differences, choose all pairwise comparisons or compare each series with a control. Pairwise log(EC50/IC50) tests use separate-fit covariance and Welch degrees of freedom; Holm adjustment covers the selected family. Simultaneous ratio intervals use Bonferroni across all pairs. Pairwise tests supplement, but do not replace, the curve-model tests. A non-significant result does not prove the curves equal.
Grouped: factors and repeated observations#
Specify factors, levels and design explicitly. Experimental-unit IDs link repeated measurements.
Theory: Two factors and repeated measures →
- In Data, open Study setup to edit the table name and units, factors, levels, design and model. The Counts panel shows included, excluded and missing observations per cell. Warnings and repeated-measure issues remain visible when details are collapsed.
- ANCOVA uses independent groups and one continuous covariate. Enter its value on the same row as each outcome. The model tests group, covariate and group by covariate effects. Adjusted means use the overall mean among included covariate values and have pointwise 95% intervals. All pairwise adjusted group contrasts use two-sided Student t tests, Bonferroni-adjusted p values and simultaneous 95% intervals. Check linearity, shared slopes and whether the covariate reference lies inside each group's observed range. Active rows missing either value are omitted; excluded rows stay excluded.
- Balanced independent two-way ANOVA requires equal included counts in every A × B cell.
- Repeated ANOVA uses one repeated factor and complete data for each active experimental unit. Mixed ANOVA combines a between-unit factor with a repeated within-unit factor in a complete, balanced design.
- Greenhouse-Geisser correction applies to repeated effects. Factor effects and interactions appear separately.
- Balanced analysis does not automatically drop incomplete experimental units or units with partly excluded records. Repair the records or explicitly exclude the whole unit.
- Unbalanced independent data support a two-way Type III model with sum-to-zero contrasts. Empty cells and unidentifiable models are unsupported.
- Incomplete repeated data can be analyzed with a Gaussian linear mixed model with an experimental-unit random intercept. It requires experimental-unit IDs and assumes independent units, normally distributed random intercepts, homoscedastic normal residuals, compound-symmetric covariance, and missingness at random (MAR) conditional on observed model data: after conditioning on those data, the probability of missingness does not depend on the missing values. ML/REML and inference settings are explicit; no values are imputed.
- REML supports approximate Satterthwaite degrees of freedom. Asymptotic Wald inference is a separate choice. Boundary variance-component estimates can make p values and intervals N/A.
- Random slopes, arbitrary covariance structures and automatic imputation are unsupported. Missing data alone do not justify the model.
Survival analysis: time to event#
Each row represents an independent observation with nonnegative elapsed time from a common time origin.
Theory: Time to event: Kaplan-Meier and log-rank →
- An event means that the event occurred at the recorded time. Right censoring means no event was observed through that time. Exclusion is recorded separately.
- Outputs include Kaplan-Meier curves, pointwise 95% Greenwood log-log confidence intervals, censor marks and a risk table.
- The risk table shows the number of observations immediately before each displayed time. When events and censoring occur at the same time, both count as at risk before events are processed.
- The omnibus log-rank test compares all declared groups. A significant overall result alone does not show which pairs differ.
- If the estimated event-free probability remains above 0.5 through the end of follow-up, the time-to-event median is not reached and is shown as N/A. Unavailable estimates and test results are reported as unavailable, not zero.
- CSV requires the columns group,time,event; excluded and subject are optional. The subject field identifies the experimental unit. Set event to 1/0 or true/false.
group,time,event,excluded,subject
Control,2,1,false,S01
Control,4,0,false,S02Contingency tables: categorical counts#
Enter a nonnegative whole-number count for each table cell.
Theory: Categorical data: contingency tables →
- Contingency tables support Pearson's chi-square test, its Yates-corrected form, and Fisher's exact test. Yates correction and Fisher's test apply only to 2 × 2 tables. Exact calculations have computation limits.
- For two binary measurements in complete independent pairs, select Matched pairs for the 2 × 2 table. The exact McNemar test uses only pairs with different outcomes. Pairs with the same outcome do not affect the test. Do not use this design for independent groups or incomplete pairs.
- For 2 × 2 tables, explicitly select the exposed row and event column. Reversing them changes odds and risk orientation.
- Results distinguish the sample odds ratio from its conditional exact estimate. Risk ratios require explicitly selected cohort sampling.
- Supported confidence levels are 90%, 95% and 99%. Undefined boundary estimates remain N/A.
- Percentages, negative values, and fractional frequencies are not valid source counts. An exact calculation may be rejected if it exceeds the computation limit.
Charts and multi-panel figures#
Graphs styles the results for one selected table. Figures combines charts from several tables into one publication layout.
Theory: Samples, SEM and confidence intervals →
- Run the analysis first, then check the results for each table.
- Set the title, axis labels, units, color scheme, chart type and uncertainty intervals.
- In Figures, choose the tables for the panels, grid layout, size in millimetres and shared style.
- Select Calculate panels, review the result and export the figure.
- Confirm a numeric value with the checkmark, Enter or by moving to another field. Cancel restores the previous value. Export uses confirmed settings only. Correct an invalid value before confirming it.
- Download an individual chart as SVG or PNG. Export a multi-panel figure as SVG, PNG, vector PDF or RGB TIFF.
- PNG and TIFF use 300 dots per inch at the selected dimensions. If the raster is too large or labels do not fit, export reports an error instead of silently reducing resolution.
- A figure can contain up to six panels. PNG and TIFF exports are limited to 12 million pixels.
- Bundled fonts support Cyrillic and Greek characters. Export reports an error if a required glyph is missing.
- After the data changes, calculate the figure again. Cancelling calculation or export does not download a file.
- Standard deviation (SD), standard error of the mean (SEM), and the 95% confidence interval describe different kinds of uncertainty. Name the selected option in the figure caption.
Files and reproducibility#
Keep the data and settings used to create the final figure.
Theory: Data preparation and a reproducible report →
- The page shows a concise analysis description. Copy methods copies this readable description. The complete calculation report opens separately and is retained in Methods TXT.
- Research JSON preserves tables, values, missingness, exclusions, methods, graph settings and figures. Use it for transfer and recovery.
- Source CSV contains observations and flags. Results CSV contains calculated quantities, comparisons, intervals and availability statuses.
- Raw-data CSV downloads in the browser are limited to 64 MiB. For a larger export, save Research JSON to keep all source data and settings.
- Methods TXT describes the selected analyses, assumptions and parameters. Review it and add the actual study design.
- Filenames include the project title and export type. Analysis reports also include the table title; figure files include the figure title. Original data titles stay unchanged. A graph file is not a project backup. Download a Research JSON copy after important milestones.
- Import from Prism and Excel previews PRISM, PZFX/XML, XLSX and CSV/TSV. Select tables and inspect the data.
- For Excel and CSV, specify structure and whether headers are present.
- Prism raw values, missingness and exclusions are preserved. Analyses, graphs and scripts are not transferred. Summary means and errors cannot replace observations.
- Save PZF files as PZFX in Prism first.
- Direct PRISM import has preliminary support. The reader uses archive metadata links and types. Unsupported tables show their rejection reason. For feedback, copy or download a report without values, titles, names or file paths. Neither the source archive nor the report is sent automatically.
- Factor data uses an independent design by default. For repeated measures, specify experimental-unit IDs and choose a suitable method.
- Excel formulas, dates and percentages are not imported as numeric observations.
- JSON import is limited to 12 MB; online project save is limited to 2 MB. Split large research into separate projects if necessary.
Saving, history and recovery#
Online projects require Stoodia sign-in. Unsaved edits differ from the saved version.
- Save after meaningful changes. Reopen the project and check its tables and settings.
- If the project changed in another tab, the server rejects the save to protect the newer version. Your edits remain in the editor. Export them as JSON or choose Save as a new project.
- Open Project history below the editor to inspect saved versions. Restoring creates a new current revision and recalculates results.
- History retains up to 20 revisions and 20 MB per project. Older revisions can be pruned when a limit is reached. An external JSON copy preserves your chosen milestone independently of online history.
- Local drafts stay in this browser for up to seven days. Limits: five drafts, 10 MB per account, and 2 MB per draft. They do not replace saving the project or keeping a JSON copy.
- Another browser, cleared storage or private mode may make a local draft unavailable. Verify your account before recovery.
- If sign-in is temporarily unavailable, keep this tab open. Select Check again when connectivity returns. Before retrying an unconfirmed save, refresh the project list and check the saved version.
- If project access could not be checked, use Check access. This does not retry a save. When access is restored, use Save project.
REST API and MCP for agents#
Linza processes machine requests with the same scientific engine as the app. The REST API and local MCP adapter work on the research document supplied with each request.
- Open Agents in the workspace and sign in through Stoodia. Create a key and choose its allowed operations and lifetime. Copy the key immediately: it is shown only once.
- Call GET /api/v1/capabilities to discover supported methods, languages and limits and get a synthetic example. See GET /api/v1/openapi for the document schema and full specification.
- MCP requires Node.js 22 or newer. Copy the stdio configuration from Agents and provide the key through the LINZA_API_KEY environment variable.
- POST /api/v1/analyze accepts {document, language, includeReport}. Pass the document field from Research JSON. Choose a language listed by GET /api/v1/capabilities; the default is en. includeReport adds a structured report.
- POST /api/v1/prepare accepts {document, sourceTableId, operation, title, units}. sourceTableId identifies the source table. Operation IDs are affine, ln, log10, sqrt, ratio and range. The response contains a new document, original values and preparation history.
- POST /api/v1/export accepts {document, title, format, language, includeAnalysis}. Formats: json, data_csv, results_csv, methods_txt. The response includes a filename, MIME type, UTF-8 encoding, content and SHA-256 digest of the bytes. CSV output starts with a UTF-8 BOM.
- Key scopes are analyze, prepare and export. results_csv and methods_txt require both export and analyze. For json and data_csv, analyze is required only when includeAnalysis is true. Submitted results are untrusted and Linza recalculates them.
- A compute key provides separate machine access only to calculations on a supplied document. It cannot open saved projects or store requests. Sign in through Stoodia to manage keys. Signing out does not revoke a key.
- Each account can have up to five active keys, valid for 1 to 30 days. The shared quota is 30 requests per minute per account. The server runs one statistical calculation at a time. Limits: 2 MB per request, 4 MB per response and 15 seconds per request.
- 400: invalid JSON, request body or query parameters. 401: missing, expired or revoked key. 403: required scope is missing. 413: size or structure limit exceeded. 415: application/json is required. 422: invalid data or parameters, unsupported design or unavailable numerical precision. 429: quota reached or service busy; check the JSON error code and Retry-After response header. 503: request deadline exceeded or service temporarily unavailable. There are no hidden retries or automatic substitute methods.
- The pStatus field explains numeric p. available means p was computed and is representable; unavailable means no p value is available. With numeric_underflow, numeric p underflowed to zero while logP retains the natural logarithm of the tail probability. boundary_zero marks an exact zero at a boundary identified by the method. With log_probability_unavailable, p is zero and logP is unavailable, so an exact zero cannot be distinguished from numerical underflow. Do not infer nonsignificance from an unavailable or unresolved probability.
- MCP tools: linza_capabilities, linza_analyze, linza_prepare and linza_export. The local stdio adapter calls the configured Linza HTTPS API. It does not execute supplied commands or SQL, or fetch arbitrary URLs.
- Send the key in the Authorization: Bearer header. Keep it out of URLs, research files and chat text. The server checks expiry and revocation on every request. A revoked key cannot obtain a result.
- If Stoodia sign-in is temporarily unavailable, keep the tab open. Select Check again when connectivity returns. A newly issued key remains hidden until the same account is confirmed. Signing out or switching accounts ends its one-time display.
- After a Linza database restore, all compute keys stored in that backup are revoked before API requests resume. Create new keys. MCP is available as a local stdio adapter; compute keys do not open saved projects.
curl --fail-with-body -X POST https://linza.stoodia.org/api/v1/analyze \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $LINZA_API_KEY" \
--data-binary @request.jsonUnderstanding results and limitations#
Researchers choose a method based on the study design. Numbers alone cannot tell Linza how a study was conducted.
Theory: Hypotheses, p-values and α →
- Before interpreting a result, check what counts as one observation, whether observations are independent or paired or repeated, which records were excluded, which model was selected, and which comparisons belong to the same family.
- A p-value does not measure effect size. Consider the estimate, its uncertainty, and scientific relevance together. A p-value above the selected threshold does not prove that groups are equal.
- N/A means a quantity is unavailable or undefined. Read the reported reason. It does not mean zero or p = 1.
- If the engine is busy, wait for the current calculation to finish, then retry. If a calculation exceeds its computation limit, preserve the source data and Research JSON file. Do not remove observations to meet the limit. Choose another method only if its assumptions fit, or use a suitable tool for a larger analysis.
- Transforming a Column table or XY Y values creates a separate table. Source data stays in place, and the transformation record retains the source and operations applied.
- Cox proportional-hazards regression is for independent, right-censored observations. You can include groups and numeric covariates. Included observations need complete predictor values and noninformative censoring. The model allows up to eight terms, including group contrasts. Efron's approximation handles tied event times.
- Results include adjusted hazard ratios (HRs) with confidence intervals and a global likelihood-ratio test. The global and term-level tests assess linear coefficient trends over ranked follow-up time. The global test is the primary diagnostic. Term-level p values are not adjusted for multiple testing.
- The plot approximates coefficients at event times using scaled Schoenfeld residuals. Points are averaged when event times are tied. The plot has no pointwise confidence bands. It checks only a linear trend over ranked time and does not detect every possible departure from proportional hazards.
- The model does not support delayed entry, time-varying effects, observation weights, strata, or competing risks.
Ready to work with your data?
Open workspace →