FoodProt Hub

Quick access to FoodProt tools for data entry, review, visualization, export, collaboration, and project management. See also what FoodProt does and does not do.

Browse Data, Analytics, Export and the other research tools are available to authorized FoodProt team members (Contributor, Editor, Reviewer and Admin roles approved by an administrator). While the research workspace is being developed and validated, they are not available to public visitors or Viewer accounts.

Data collection and review

Database and standards

Analysis, exports and registries

Community and project

What FoodProt does and does not do

FoodProt stores, reviews, searches and analyses plant-protein data, and trains regression models on the CPU in a bounded worker. It has no GPU and does not train large networks. GROMACS runs go to a simulation gateway only when an administrator has connected one, and use its CPUs; FoodProt does not run AMS or PyMOL, which stay outside FoodProt, where it prepares the inputs or records the results with provenance. Each feature below states its status, its limits and the automated tests that support it.

Available, validated
Works in FoodProt today and is covered by the automated tests named as its evidence.
Available when configured
Built into FoodProt and covered by the automated tests named as its evidence; it works once an administrator configures the external service it names.
External workflow
Done outside FoodProt with your own tools; FoodProt links out, prepares the inputs or records the results with their provenance.
Experimental
In FoodProt, but not yet covered by automated tests or still limited; check its output by hand.
Planned
Not built yet.
Not available
FoodProt does not do this.
  • Shared research workspace (Browse Data, Analytics, Export)Browse Data
    Available, validated

    What it does: Browse Data, record details, Analytics, Export, model-ready datasets and database answers are available to signed-in Contributor, Editor, Reviewer and Admin accounts that are verified, active and approved by an administrator.

    What it does not do:

    Is not available to public visitors or Viewer accounts while the research workspace is being developed and validated; the database refuses their requests on every path, including direct API calls.

    Evidence:

    • tests/db/350-research-role-policy-asserts.sql
    • tests/capabilities.test.ts
    • tests/access.test.ts
    • tests/research-access-gates.test.ts
  • FoodProt Database search (Ask FoodProt)Ask FoodProt
    Available, validated

    What it does: Answers a plain-language question by finding the approved plant-protein records that match it and quoting their stored values with unit, basis, method and citation.

    What it does not do:

    Does not write answers in its own words, invent or silently convert numbers, or read documents uploaded to My Sources.

    Evidence:

    • tests/assistant.test.ts
    • tests/assistant-completeness.test.ts
    • tests/assistant-dedup.test.ts
  • My Sources: evidence search, extractive summary, comparison and data candidatesMy Sources
    Available, validated

    What it does: Searches the private documents you select and returns quoted passages, table cells and values, an extractive summary made only of quoted passages, a side-by-side comparison per source, and candidate values for your review.

    What it does not do:

    These tools compose no new text, interpret no charts or images, and never add a candidate value to FoodProt data without the normal upload and review workflow; a document or question leaves FoodProt only for a service an administrator configured and named on the page.

    Evidence:

    • tests/source-server.test.ts
    • tests/source-citations.test.ts
    • tests/tools-panel-payload.test.ts
    • tests/db/380-source-assistant-asserts.sql
    • tests/db/395-source-scale-asserts.sql
  • Generated (written) answers in My SourcesMy Sources
    Available when configured

    What it does: In My Sources, an answer service configured by an administrator writes the answer from the selected passages, and FoodProt checks every statement against the evidence it quotes before showing it.

    What it does not do:

    A statement whose quotation, number or unit is not found in the cited evidence is removed, and without a configured answer service My Sources quotes passages instead of writing; Ask FoodProt's database answers are never written in its own words, and /api/chat stays a disabled endpoint that replies 501 Not Implemented.

    Why: The answer service is an external provider chosen by the deployment; FoodProt is tested against the documented request and response format of each supported service type, and this release has not been verified against a live provider.

    Instead: Without an answer service, read the quoted passages and the extractive summary, each with its citation.

    Evidence:

    • tests/source-assistant-grounded.test.ts
    • tests/source-assistant-route.test.ts
    • tests/source-providers.test.ts
    • tests/chat-route.test.ts
  • OCR (reading scanned pages)My Sources
    Available when configured

    What it does: Scanned PDF pages without a text layer are read by FoodProt's separate OCR worker service, which uses Poppler and Tesseract, and every passage it recognises is marked as OCR text with its page.

    What it does not do:

    Without a configured OCR worker a scanned page is marked as needing OCR and no text is invented for it; a page whose mean word confidence is below the threshold is rejected, and OCR does not read handwriting or text inside charts and figures.

    Why: The OCR worker runs native Poppler and Tesseract binaries, so it is deployed as its own service with its own time, size and page limits.

    Instead: Without an OCR worker, run OCR in your own software and upload the text-based PDF.

    Evidence:

    • tests/ocr-worker-service.test.ts
    • tests/source-ocr-worker.test.ts
    • tests/db/380-source-assistant-asserts.sql

Statistics in Analytics

  • Descriptive statisticsAnalytics
    Available, validated

    What it does: Reports n, mean, median, SD, SE, a Student-t 95% confidence interval, minimum and maximum for one property within one unit group.

    What it does not do:

    Does not pool values across units or bases, and n counts database records, not the replicates behind a mean reported in a paper.

    Evidence:

    • tests/stats.test.ts
    • tests/stats-degenerate.test.ts
    • tests/analytics-statistics-view.test.ts
  • One-way ANOVA, Welch ANOVA and Kruskal-WallisAnalytics
    Available, validated

    What it does: Compares the groups of one property with assumption checks and reports a test only when independent experimental units are recorded and the dataset is complete.

    What it does not do:

    Does not run when independence is unverified or the retrieval reached the row ceiling, and p-values from literature pooled across laboratories remain descriptive screening.

    Evidence:

    • tests/stats.test.ts
    • tests/stats-degenerate.test.ts
    • tests/analytics-statistics-view.test.ts
    • tests/analytics-comparison-heading.test.ts
  • Effect sizes and post-hoc tests (limited)Analytics
    Available, validated

    What it does: Reports eta squared and omega squared for ANOVA, an omega squared estimate for Welch ANOVA and epsilon squared for Kruskal-Wallis, and Bonferroni-corrected pairwise Welch t-tests with Hedges' g after a significant mean-based test on three or more groups.

    What it does not do:

    Does not offer Tukey HSD, Games-Howell or Dunn's test, so there is no pairwise follow-up after Kruskal-Wallis, and effect sizes have no confidence intervals.

    Evidence:

    • tests/analytics-inference-details.test.ts
    • tests/stats-degenerate.test.ts
  • Pearson and Spearman correlationAnalytics
    Available, validated

    What it does: The Analytics correlation matrix shows Pearson r for pairs of values measured on the same experimental record or measurement row, with the number of pairs in its export.

    What it does not do:

    Spearman rho is computed and tested in the statistics library but not yet shown on any page, no p-values are reported for correlations, and values are never paired across records by protein name.

    Evidence:

    • tests/stats.test.ts
  • Linear (OLS) regressionAnalytics
    Available, validated

    What it does: Estimates the least-squares line of one property against one numeric predictor with slope, intercept, R squared and RMSE, and adds the p-value, coefficient standard errors, 95% confidence intervals and confidence band only when observations are verified independent and the dataset is complete.

    What it does not do:

    Does not fit multiple regression or report prediction intervals, and polynomial or LOESS trend lines are drawn without any inferential statistics.

    Evidence:

    • tests/analytics-statistics-view.test.ts
    • tests/analytics-inference-details.test.ts
  • Principal component analysis (PCA) viewsAnalytics
    Available, validated

    What it does: Shows PCA scores and loadings computed from standardized properties on complete cases, with the excluded observations disclosed.

    What it does not do:

    Does not impute missing values, refuses a constant variable instead of patching it, and is exploratory only, with no significance tests.

    Evidence:

    • tests/stats.test.ts
  • Hierarchical clustering and clustered heatmapsAnalytics
    Experimental

    What it does: Shows a dendrogram and a clustered heatmap of standardized property profiles for exploration.

    What it does not do:

    The clustering routine has no automated test yet, no cluster validity statistic is reported, and a cluster should not be read as evidence of a real group.

    Evidence:

    No automated test

Datasets, models and machine learning

  • Model-ready dataset export with group-aware splitsModel-ready datasets
    Available, validated

    What it does: Exports one target property with a reproducible train, validation and test split that keeps all rows of one study in the same split, plus a manifest of the filters, split and dataset fingerprint.

    What it does not do:

    Does not preprocess, impute, normalize or convert units, and achieved split sizes are approximate because a study is never divided between splits.

    Evidence:

    • tests/dataset-split.test.ts
  • Model training inside FoodProtModel training
    Available, validated

    What it does: Trains a regression model on approved measurements of one property in one unit and basis (linear, ridge, lasso, elastic net, PCR, PLS, random forest, gradient boosted trees or SVR), with a hyperparameter search cross-validated by study, accuracy on held-out studies with intervals, importance, residual plots and full provenance.

    What it does not do:

    Trains regression of one numeric property only, on at most 5,000 observations, in one CPU thread within a four-minute limit; it does not classify, engineer features, convert units or pool units and bases, and its predictions are model outputs that are never stored or shown as measurements.

    Why: The algorithms are FoodProt's own implementations; their fits are checked against scikit-learn reference results in the test suite.

    Evidence:

    • tests/ml-reference.test.ts
    • tests/ml-training.test.ts
    • tests/model-training-routes.test.ts
    • tests/db/385-model-training-asserts.sql
  • Neural networks (multilayer perceptron)Model training
    Available, validated

    What it does: Model training includes a multilayer perceptron with one or two hidden layers of up to 64 units, trained with Adam, an L2 penalty and early stopping on held-out studies.

    What it does not do:

    FoodProt does not train deep, convolutional, recurrent or transformer networks, language models or anything larger than about 12,000 weights.

    Instead: Train larger networks outside FoodProt and record the run, its architecture and its reported metrics in the model run registry.

    Evidence:

    • tests/ml-mlp.test.ts
    • tests/ml-reference.test.ts
  • GPU acceleration
    Not available

    What it does: Every model trained in FoodProt uses the CPU, in one thread, and its provenance records that no accelerator was used.

    What it does not do:

    FoodProt has no GPU and does not use, rent or schedule GPU time.

    Instead: Train GPU models outside FoodProt and record them in the model run registry.

    Evidence:

    No automated test
  • Model run registry and results viewerModel runs
    Available, validated

    What it does: Lists runs of models trained outside FoodProt with their algorithm, target, data split and reported metrics, and plots their stored predictions against the measured values.

    What it does not do:

    Does not re-run an externally trained model or recompute its reported metrics (models trained in FoodProt are on the Model training page), has no in-app form for adding a run, and never presents a prediction as a measurement.

    Evidence:

    • tests/db/120-stage42-authorization-asserts.sql
    • tests/db/20-rls-asserts.sql

Structures and simulations

  • RCSB PDB structure lookupSimulation data
    Available, validated

    What it does: Looks up a PDB ID in the RCSB PDB Data API and shows the entry's title, experimental method, resolution, dates, polymer entities, chains, organisms and primary citation, with the retrieval time and source URL.

    What it does not do:

    Does not store coordinates, list ligands or other non-polymer entities, or query any structure database other than RCSB PDB.

    Evidence:

    • tests/pdb-lookup.test.ts
    • tests/pdb-route.test.ts
  • 3D structure viewerSimulation data
    Available, validated

    What it does: Draws a looked-up PDB entry, or the final structure of a simulation run, in FoodProt's own Mol* viewer as a cartoon, ball-and-stick model or surface, coloured by chain, secondary structure, element or hydrophobicity.

    What it does not do:

    Does not edit structures, measure distances, play trajectories or save images, and a browser without WebGL shows a message instead of the structure; the coordinates come through FoodProt's own server, so the page contacts no other site.

    Evidence:

    • tests/pdb-files.test.ts
    • e2e/structure-viewer.spec.ts
  • PyMOL
    External workflow

    What it does: FoodProt writes a small PyMOL script (.pml) that fetches the entry and shows it as a neutral grey cartoon, for use in your own PyMOL installation.

    What it does not do:

    FoodProt does not run PyMOL, render images or store PyMOL sessions.

    Evidence:

    • tests/pdb-lookup.test.ts
  • GROMACS simulation runsSimulation runs
    Available when configured

    What it does: Sends molecular dynamics of a protein in water (energy minimization, NVT and NPT equilibration and a production run) to the GROMACS simulation gateway an administrator connects, follows the run and stores the files it writes, with the energies, RMSD and radius of gyration the database reads from them.

    What it does not do:

    Requests no run without a connected gateway, uses no GPU, and has no protocols for ligands, membranes, coarse-grained models or enhanced sampling; a structure with missing residues or atoms is refused, never rebuilt.

    Why: GROMACS runs on the gateway's CPUs (the reference gateway is in services/simulation-gateway), which FoodProt reaches only at the HTTPS address and with the token an administrator configures.

    Instead: Without a gateway, describe the run on Record simulation metadata, export its job manifest and import the results file afterwards.

    Evidence:

    • tests/simulation.test.ts
    • tests/simulation-gateway.test.ts
    • tests/db/390-simulation-jobs-asserts.sql
    • tests/db/rest-simulation-jobs.mts
  • AMS calculations
    Not available

    What it does: No AMS (Amsterdam Modeling Suite) calculation can be requested from FoodProt.

    What it does not do:

    Does not run, schedule or imitate AMS calculations, and shows no AMS result that an AMS installation did not produce.

    Why: AMS is licensed software; a run needs a licensed AMS installation behind a gateway and a validated AMS protocol, and this release has neither.

    Instead: Run AMS on a licensed installation and record the calculation and its outputs on Simulation data.

    Evidence:

    No automated test
  • Simulation provenance registrySimulation data
    Available, validated

    What it does: Records how a simulation run elsewhere was set up and analysed (engine and version, force field, water model, preparation, box, ions, stages, replicas, seeds, trajectory location and SHA-256, structure reference and simulated outputs with units), exports its job manifest and imports its results file.

    What it does not do:

    Does not execute the manifest, store trajectory or structure files, or pool simulated outputs with experimental measurements.

    Evidence:

    • tests/simulation-metadata.test.ts
    • tests/simulation-form.test.ts
    • tests/db/120-stage42-authorization-asserts.sql

Data integrity and review

  • DOI and citation validationData integrity review
    Available, validated

    What it does: Checks that a stored DOI is well formed and compares the stored citation with the DOI's registered Crossref metadata, recording a verified match, probable match, mismatch or unverifiable outcome.

    What it does not do:

    Does not rewrite a stored citation or change any record's status, and records on an article with a probable match or a mismatch cannot be approved until a reviewer has looked at the citation.

    Evidence:

    • tests/citation-validation.test.ts
    • tests/citation-routes.test.ts
    • tests/db/320-release50-citation-verification-asserts.sql
  • Duplicate candidate reviewData integrity review
    Available, validated

    What it does: The Data integrity review page lists possible duplicate measurements with field-by-field agreement, records keep, link, merge or reject decisions with a written reason, and the database refuses a second live copy of an observation it already holds.

    What it does not do:

    The application never merges on its own: a merge is administrator-only and reversible, and every decision is kept in an append-only log. The one automatic merge is migration 0039's, of the rows migration 0019 had copied from the legacy result columns; each is recorded as a reversible decision.

    Evidence:

    • tests/data-validation.test.ts
    • tests/db/190-stage44-asserts.sql
    • tests/db/310-release50-observation-identity-asserts.sql
  • Quarantine of unverified dataData integrity review
    Available, validated

    What it does: A reviewer or administrator can quarantine an article, record or measurement whose source evidence is unverified; while quarantined it cannot be approved and is left out of Browse Data, Analytics, exports and Ask FoodProt.

    What it does not do:

    Releasing a quarantine does not approve anything, and quarantine entries are never deleted or rewritten.

    Evidence:

    • tests/db/300-release50-helpers-and-quarantine-asserts.sql
  • Upload quarantineUpload data sheet
    Available, validated

    What it does: Uploaded spreadsheets go to private quarantine storage, are inspected and parsed in an isolated process with time and memory limits, and reach the database only through a reviewed import.

    What it does not do:

    Does not accept legacy .xls, macro-enabled, encrypted, external-link or embedded-object files, and never trusts a column mapping proposed by the browser.

    Evidence:

    • tests/quarantine.test.ts
    • tests/quarantine-lease.test.ts
    • tests/quarantine-cleanup-core.test.ts
    • tests/zip-adversarial.test.ts
    • tests/upload-isolation.test.ts