FoodProt Help & Guides

Short guides to browsing, contributing, analysing and exporting plant-protein data. Open “More details” on a card for the full explanation.

Getting started

About FoodProt

FoodProt is a plant-protein functionality database. It brings literature and laboratory results into one structured, reviewable format. Every value keeps its unit, basis, method and source.

More details

Browse Data, Ask FoodProt, Analytics and default exports contain plant-protein records only. Non-plant records that entered the database earlier are kept for provenance, marked out of scope and excluded from every workspace page by default.

FoodProt Hub

The Hub links every workflow in one place: browsing, contributing, reviewing, analysis and export. Start there when you are not sure which page you need.

Sign in and access

Browse Data, Analytics, row-level Export and database answers in Ask FoodProt are available to authorized FoodProt team members: a verified account with the Contributor, Editor, Reviewer or Admin role and research access granted by an administrator with a recorded reason. While the research workspace is being developed and validated, they are not available to public visitors or Viewer accounts. Public pages stay open to everyone.

More details

Sign in with your e-mail address and password. Creating an account sends an activation link to that address; opening it finishes the account. Passwords are handled by the authentication service and are never stored or logged by FoodProt.

New accounts start as a Viewer. A Viewer account sees the 'Research workspace under development' status on Browse Data, Analytics and Export; this is not an error, and there is nothing to request at this stage.

A Contributor, Editor or Reviewer who sees an approval message is verified but has not been granted research access yet, and can ask a FoodProt administrator for it.

Administrators grant or revoke access, suspend or reinstate an account and change roles, always with a written reason. They cannot change their own account or remove the last administrator. Every access change is recorded permanently in an append-only audit trail that survives account deletion.

Access is enforced by database row-level security, not only by the pages: a Viewer account reads no research record through any page, export, download or direct database request. Contributors see approved records and their own submissions; pending, rejected and draft records are visible to the roles that review or manage them. The edit history is admin-only, and private reviewer notes never appear on any page or export.

Public pages (About, Help & Guides, News and a Dashboard that describes the property taxonomy) never show research row counts or aggregate totals.

Browse Data

Browse Data is a spreadsheet-style view of the research records you are allowed to see. Rows are loaded from the server one page at a time, with 25, 50, 100 or 200 rows per page. Click a row to open its full details.

Ask FoodProt

Ask a plain-language question about the database. Answers quote stored values with citation, unit, basis and method, and never invent numbers or convert units silently. Public visitors and Viewer accounts get help with the website only: database answers come from the research workspace, which is not available to them at this stage.

More details

For authorized members, Ask FoodProt scans the complete set of matching records in a deterministic order, paged to completion up to a documented 20,000-row safety cap. Statistics cover the entire matched set, not only the cards displayed, and mixed-unit records are never averaged together.

If the scan reaches the cap and more rows exist (checked by looking for row 20,001), the answer says the scan is incomplete and withholds counts, means, ranges, rankings and comparisons rather than summarizing a hidden subset.

Answers quote approved, in-scope records only. Records still in review, returned for correction, rejected or quarantined are never quoted. When no approved record matches, the answer says so instead of estimating a value; when only another concentration matches, it shows the closest one and says so.

One observation is counted once. When the database holds more than one stored copy of the same observation, the answer quotes it once and says how many copies were left out.

Each quoted value shows the result of its source's citation check, for example 'DOI verified' or 'DOI mismatch'. See Checking a citation's DOI below.

Ask FoodProt never reads documents you uploaded to My Sources. See the My Sources section below.

Contribute data

The Contributor, Editor and Admin roles can upload data sheets or add single records. Every submission is reviewed before it reaches the shared database. The database enforces these rules for every request, not only the buttons you see.

What FoodProt does and does not do

Every feature is listed with its status: available and validated by automated tests, an external workflow, experimental, planned or not available. Each entry states what the feature does not do and the tests that support it.

Working with data

Search, filter and sort

Search covers protein, citation, DOI, title, authors, treatments, additives, property category and measurement name. Filters combine with AND, and you can group and sort from the toolbar or a column header. Hide fields opens the full field catalog grouped by section.

More details

Hide fields groups the catalog as Source, Core sample, Treatment, Additives, pH and ionic environment, Gel preparation and storage, Measurement result, Statistics and extraction, and Review and metadata. Search the catalog, toggle whole sections, or press Reset view.

Protein is pinned by default so it stays visible while you scroll sideways. Pin more columns from a header menu; pinned columns sit side by side without overlapping, and pinning is stored in your browser only.

Row height can be Short, Medium, Tall or Extra Tall, and headers can wrap. Full screen expands the grid. Print view produces a page-break-friendly table with a timestamp and the active filters.

The Colour button tints the category or status pill and adds a row accent by property category, data status, quality flag, scope status or protein source. Reset colours restores the default.

Record details and provenance

The detail drawer shows the source article, sample, treatments, additives, measurement and method. Treatments and additives are stored as repeatable rows in order, so a record lists as many as the source reports. Every value keeps its citation, DOI, extraction location and the original reported value and unit.

More details

Every measurement has two identities. The measurement name is the wording the source or contributor used. The canonical metric key is the stable identity that known synonyms resolve to, so 'Foam stability' and 'Foaming stability' are analysed as one property.

A name that cannot be mapped confidently is flagged for mapping review and left out of property-bound analysis rather than guessed.

Ask FoodProt answers and every export carry the provenance fields, so a number can be traced to its place in the source.

Units and measurement basis

Units and bases are stored exactly as reported and never converted silently. Values in different units or on different bases are never pooled. If a unit or basis is not listed, choose 'Other / custom unit' or 'Other / custom basis' and type the exact wording.

More details

When you pick a property, the unit list shows its recommended units. FoodProt never replaces a reported unit: % w/v is not % w/w, and g water/g sample is not %.

Record the basis whenever the source states it. Dry basis and wet basis, w/v and w/w, and per g sample and per g protein are different quantities.

Original and stored values are kept apart. The original reported value and unit hold the source's exact wording (for example '3.2 ± 0.2' and 'g H2O/g protein'). The stored value, unit and basis are what analysis uses. FoodProt converts nothing itself: when a contributor converted a value, unit_converted is true and the original fields still hold the source's numbers.

Amino-acid composition is multi-analyte data: one row per amino acid, named in analyte_or_band, never a whole profile in one number. Free and protein-bound amino acids are never pooled, and an amino-acid score is only interpretable with its reference pattern and calculation stated in the method record. Nitrogen content, the nitrogen-to-protein factor, moisture and ash can be recorded alongside so a protein-basis value can be traced.

Methods and comparability

Two values for the same property are comparable only when method, unit and basis agree. Open the method section before comparing numbers across papers. A centrifugation reported only in rpm cannot be converted to ×g without the rotor.

More details

Example: one water holding capacity value may come from 10,000 ×g for 20 min at 4 °C, another from 6,000 ×g for 20 min, and a third from '3,000 rpm' with no rotor stated. They may also be reported per g sample or per g protein.

Each measurement can carry a method record: a controlled method family plus the conditions that decide comparability, such as protein source and extraction route, concentration and basis, buffer, salt, ionic strength and pH, temperature, time and mixing, centrifugation, instrument category and settings, replicate structure, and the exact calculation. Everything is stored as reported; FoodProt never fills in a default for a laboratory.

A method is 'reported' by default. 'Recommended' and 'validated consensus' are protocol statuses that only a reviewer or administrator can set on a FoodProt protocol record, and 'validated consensus' is refused until the protocol carries its version, scope, approver, validation design, participating laboratories, acceptance criteria and reproducibility evidence.

This method model is original to FoodProt. It does not reproduce any organisation's procedures, and no brand or instrument is required or recommended.

FoodProt is designed for traceable, reviewable, and reproducible scientific data management. Verify source passages, method conditions, units and statistical assumptions before drawing conclusions.

Approved, pending and quarantined records

Only approved, in-scope records reach Browse Data for contributors, Analytics, default exports and Ask FoodProt answers. Pending, draft and returned records are visible to their contributor and to the roles that review them. A quarantined record is left out of every page until a reviewer releases it with source evidence.

More details

Quarantine is for data whose source evidence is not verified, such as a value no page, table or figure of the cited paper shows. A quarantined record cannot be approved by anyone. Releasing a quarantine approves nothing: the record then goes through the review queue like any other.

Rows are never deleted to correct the database. A wrong record is quarantined or returned for correction, and every change stays in the audit history.

Saved views

A view saves the grid layout: visible fields, filters, sort, grouping, colours, density and pinned columns, never the data. Share view copies a link to that layout. A link grants no data permission, so each person still sees only what their own account allows.

Exports

Export writes one row per observation with category, metric key, value, unit, basis, the original reported value and unit, and source provenance. Formats are CSV, TSV, Excel and JSON. Excel exports add Data Dictionary and Export Notes sheets.

More details

Each observation appears once by default. The manifest (JSON, and the Export Notes sheet in Excel) records how many stored copies were left out, why, and which row was exported in their place.

Choose 'Export every stored row' to keep the copies; each is flagged with duplicate_of_measurement_id and must not be counted as a separate observation.

Every export includes observation_key and citation_verification_status, described in the data dictionary.

How duplicates are counted

One scientific observation is counted once. The database gives each stored measurement an observation identity; rows with the same identity are stored copies of one observation. Genuine replicates, and values that differ in unit, basis, condition, sample, time point or location, are always counted separately.

More details

The identity is built from the article, record, property, value type, reported value, unit exactly as reported, basis and measurement condition, the analyte, the method, the sample, experimental unit, condition and series identifiers, the replicate number, the table, figure or page the value came from, and the study.

Analytics: every chart, count, mean, range, ranking, statistical test and saved analysis uses one row per observation. The dataset bar says how many stored copies were left out, and chart exports record the number in their manifest.

Model-ready datasets: copies are left out before any filter or split, so one observation can never be in both training and test. The manifest lists each copy left out.

Browse Data shows every stored row so reviewers can find the copies; a later copy is labelled 'Duplicate copy — in review'. The database refuses a new copy of an observation it already holds.

Checking a citation's DOI

A DOI that resolves is not evidence that it names the paper a record cites. FoodProt compares each stored citation (title, authors, journal, year, volume, issue and pages) with the metadata registered for its DOI at Crossref and shows the result as a badge next to the citation.

More details

DOI verified: the registered title is identical, the year matches, the authors or journal match, and nothing else disagrees; or a reviewer confirmed the match.

DOI probable match - review: most fields agree but at least one differs, for example a word of the title, an author or the year. Records on the article cannot be approved until a reviewer confirms the citation.

DOI mismatch: the DOI is registered to a different work. Records on it cannot be approved until the citation is corrected and checked again, or a reviewer records a decision.

DOI not verifiable: the metadata service had no record for the DOI, could not be reached, or the stored DOI is not a valid DOI. Check the citation by hand. An outage never replaces an earlier result. 'DOI not yet checked' and 'No DOI' mean what they say.

A check never changes the stored citation. The registered metadata is kept separately and every check stays in the history. The DOI button always opens https://doi.org/ followed by the DOI; a stored publisher link is shown separately as 'Publisher page (stored link)', and a stored doi.org link that names a different DOI is flagged and not offered.

Reviewers and administrators can check a citation again, or record a decision with a note saying what they compared, under Data integrity review, Citations. A daily check re-examines the 25 least recently checked articles and never replaces a reviewer's decision.

Contributing

Download the current template

Current template: v5. The Excel workbook is one worksheet, Data_Entry, with 74 columns and one row per measurement; the CSV template has the same columns in the same order. Workbooks made from earlier official templates (v4, v3 and v2) still import, but only the current one is offered for download.

More details

Rows 2 to 501 of the workbook already carry the three version values; rows left empty are ignored. Only value_type, method_raw_or_derived, dispersion_type, missing_reason and reviewer_status have dropdowns, and identifiers, the DOI and other text cells are kept as text.

The CSV template holds the header row and one starter row with only the version values. A TSV with the same columns, separated by tabs, is accepted too. Save CSV and TSV files as UTF-8.

Other spreadsheet layouts are also accepted, including wide layouts where each measurement column becomes its own row; the template simply needs the least mapping.

Fill in the template

One row is one measurement, so a sample tested for three properties uses three rows. The source, sample, treatment, conditions, measurement and method are all typed on that row, with no separate sheets to link. Keep the pre-filled version columns unchanged.

More details

A blank cell means ‘not reported’. Nothing is inferred, filled in or converted on import.

Every data row needs its three version values. A blank, edited, older, newer or unknown value is refused with the row number, and a file must not mix template versions.

A value the upload would otherwise have to change is refused with its row and column instead: a number written with a unit, a ‘<’ sign, a range or a decimal comma, a value outside a listed choice, or value columns that do not match value_type.

Field-by-field guide (74 columns)

Version

Pre-filled version cells that identify the template; leave them unchanged.

template_version (Auto)
Template version. Pre-filled on every entry row; leave it unchanged. Every data row must carry the pre-filled value. A blank, edited, older or newer value refuses the upload and names the row. Format: Pre-filled: v5
schema_version (Auto)
Identifier of the column contract. Pre-filled; leave it unchanged. Every data row must carry the pre-filled value. A blank or edited value refuses the upload and names the row. Format: Pre-filled: foodprot-schema-2026-09-v5
registry_version (Auto)
Metric-registry version the template was generated from. Pre-filled; leave it unchanged. Every data row must carry the pre-filled value. A blank, edited, older or newer value refuses the upload and names the row. Format: Pre-filled: 2.3.0

Source

The article or record the values come from.

study_id (Recommended)
Your stable ID for the source; repeat it on every row from the same source. Format: Short text ID of your choice
citation (Conditional)
Full citation of the source, as printed. Required when doi is blank: a data row that gives neither citation nor DOI is refused on upload. Format: Authors (year). Title. Journal, volume(issue), pages.
article_title (Recommended)
Title of the article or document, as printed. Format: Text as printed
authors (Recommended)
Author list, as printed. Format: Family name, initials; next author …
journal (Recommended)
Journal, publisher or repository. Format: Text as printed
publication_year (Recommended)
Year of publication. Format: Four-digit year
doi (Recommended)
DOI exactly as printed, kept as text. Leave it blank when the source has none; the citation is then used to match the source. Format: 10.xxxx/… exactly as printed

Design IDs

Your identifiers for samples, experimental units, conditions, series and rows.

sample_id (Recommended)
Your ID for the physical sample or batch; rows measured on the same material share it. Format: Text ID of your choice
experimental_unit_id (Recommended)
Your ID for the independent experimental unit, only as the source defines it. Rows without it are never treated as independent in statistics. Format: Text ID of your choice
condition_id (Optional)
Your ID for one treatment and condition combination. Format: Text ID of your choice
series_id (Conditional)
Groups the points of one curve or profile; one row per point. Required when value_type is series_point; the upload is refused without it. Format: Text ID of your choice
source_row_id (Recommended)
Your stable row ID in your own extraction sheet. It is part of the import identity, so uploading the same row again is recognised as a duplicate. Format: Text ID of your choice

Protein / sample

The plant-protein material tested and its concentration.

protein (Required)
Plant-protein system tested, as the source names it. Every data row of a v5 file names the protein system; a blank refuses the upload and names the row. Format: Text as reported
plant_source (Optional)
Botanical source of the protein, as reported. Format: Text as reported
protein_type_form (Optional)
Isolate, concentrate, flour, hydrolysate or another form, as reported. Format: Text as reported
protein_concentration (Optional)
Protein concentration of the test system, as reported. Format: Number only; its unit and basis go in protein_concentration_unit_basis
protein_concentration_unit_basis (Conditional)
Unit and basis of the protein concentration exactly as reported; % w/v and % w/w are different quantities. Needed whenever protein_concentration is given; a concentration without its unit and basis is flagged when the file is checked. Format: Unit and basis as reported

Treatment

Processing applied to the sample.

treatment_1 (Optional)
Processing treatment applied, as reported. Leave blank for an untreated sample. Format: Text as reported
treatment_1_value (Optional)
Intensity of treatment_1; its unit goes in treatment_1_unit. Format: Number only
treatment_1_unit (Optional)
Unit of treatment_1_value exactly as reported. Format: Unit as reported
treatment_1_temperature (Optional)
Temperature of treatment_1 in °C. Another scale is converted only explicitly, with the source wording kept in notes. Format: Number in °C
treatment_1_time (Optional)
Duration of treatment_1 in minutes. Another unit is converted only explicitly, with the source wording kept in notes. Format: Number in minutes
treatment_2 (Optional)
Second treatment, as reported. Format: Text as reported
treatment_3 (Optional)
Third treatment, as reported. Format: Text as reported

Additives

An added ingredient and its concentration.

additive_1 (Optional)
Additive or added ingredient, as reported. Format: Text as reported
additive_1_concentration_percent (Optional)
Concentration of additive_1 in percent, only when the source reports it in %. A concentration in another unit is not converted: keep it, with its unit, in gel_condition_notes or notes. Format: Number in %

pH and ionic environment

pH, salt and ionic strength of the test system.

ph (Optional)
pH of the test system, as reported. Format: Number between 0 and 14
salt_1 (Optional)
Salt added to the test system, as reported. Format: Text as reported
ionic_strength_1_m (Optional)
Ionic strength in mol/L exactly as the source states it; it is not calculated from a salt concentration. Format: Number in mol/L

Gel preparation and storage

How a gel was formed and stored before it was measured.

gel_heating_temperature_c (Optional)
Heating temperature used to form the gel, in °C. Format: Number in °C
gel_heating_time_min (Optional)
Heating time used to form the gel, in minutes. Format: Number in minutes
storage_temperature_c (Optional)
Storage temperature before the measurement, in °C. Format: Number in °C
storage_time_h (Optional)
Storage time before the measurement, in hours. Format: Number in hours
gel_condition_notes (Optional)
Any other gel-formation or storage condition, as reported (cooling, container, heating profile, a concentration in another unit). Format: Text as reported

Measurement

What was measured, the kind of value, the value, its unit and basis.

functionality_category (Recommended)
FoodProt property category (listed in the Data Dictionary). When both are given, the metric name decides. Format: Category name as listed
metric_or_measurement_name (Conditional)
Canonical FoodProt metric name or metric_key; aliases are accepted. A name FoodProt cannot map is kept and goes to mapping review. Required when measurement_name_original is blank: every data row of a v5 file must name what was measured. Format: Metric name or key as listed
measurement_name_original (Recommended)
The measurement name exactly as the source words it; kept as the stored name. Format: Text as printed
value_type (Required; dropdown)
Kind of observation. It decides which value columns are filled. Required on every data row of a v5 file. In any file it must be one of the listed values, and the value columns must match it; the upload is refused otherwise. Format: scalar, categorical, censored_lt, censored_gt, range, not_detected, no_gel, series_point
measurement_value (Conditional)
The number as reported; the bound for a censored value (the x of < x or > x). Required for scalar, censored_lt, censored_gt and series_point rows; must be blank for range, categorical, not_detected and no_gel rows. The upload is refused otherwise. Format: Number only
value_lower (Conditional)
Lower bound of a reported range. Required, with value_upper, when value_type is range (lower ≤ upper); blank for every other value type. Format: Number only
value_upper (Conditional)
Upper bound of a reported range. Required, with value_lower, when value_type is range (lower ≤ upper); blank for every other value type. Format: Number only
value_text (Conditional)
Text outcome exactly as the source words it. Required when value_type is categorical, not_detected or no_gel; the upload is refused without it. Format: Text as printed
measurement_unit (Conditional)
Unit exactly as reported; never converted. The Data Dictionary lists each metric's recommended units. Needed whenever the value has a unit; a metric that requires a unit is flagged in data validation without one. Format: Unit as reported
measurement_unit_custom (Conditional)
Kept for earlier workbooks: the exact unit when measurement_unit is blank or holds 'Other / custom unit'. Stored verbatim; never converted. Used only when measurement_unit is blank or holds the custom-unit marker. A different unit in both columns refuses a v5 upload. Format: Unit as reported
measurement_basis (Conditional)
Reporting basis exactly as reported (dry basis, wet basis, per g protein, % w/v …); different bases are never combined. Needed whenever the source states a basis. Format: Basis as reported
measurement_basis_custom (Conditional)
Kept for earlier workbooks: the exact basis when measurement_basis is blank or holds 'Other / custom basis'. Stored verbatim. Used only when measurement_basis is blank or holds the custom-basis marker. A different basis in both columns refuses a v5 upload. Format: Basis as reported
measurement_condition (Conditional)
Condition qualifier of this value as reported: time point, temperature, the x-value of a series point. A series_point row needs its x-value context here or in the condition column that varies along the series; the upload is refused otherwise. Format: Text as reported
analyte_or_band (Conditional)
Analyte, band or component of a multi-analyte result; one row per amino acid, band or particle-size statistic. Needed for multi-analyte results, one row per analyte. Format: Text as reported

Method

How the value was obtained, exactly as reported.

method_id (Optional)
Your ID grouping the rows measured with the same reported method. v5 needs no separate Methods sheet: the method columns sit on each row. Format: Text ID of your choice
measurement_method (Recommended)
Method statement exactly as the source words it. Format: Text as printed
method_method_family_key (Optional)
FoodProt method family key (listed in the Data Dictionary). Leave blank when unsure; nothing is inferred. When given, it must be one of the listed family keys; the upload is refused otherwise. Format: Family key as listed
method_method_reference (Optional)
Method reference exactly as cited: ISO, AOAC, AACC, journal or laboratory method. Citing a standard does not mean the work, the laboratory or FoodProt is accredited or compliant. Format: Reference as cited
method_instrument_category (Optional)
Instrument category, such as texture analyser, rheometer or calorimeter. Format: Text as reported
method_instrument_model (Optional)
Manufacturer and model as reported; optional, never required or recommended. Format: Text as reported
method_measurement_temperature_c (Optional)
Temperature during the measurement, in °C. Format: Number in °C
method_raw_or_derived (Optional; dropdown)
raw = instrument reading; derived = calculated from raw values. When given, it must be one of the listed values; the upload is refused otherwise. Format: raw, derived
method_method_notes (Optional)
Any other reported method detail. Format: Text as reported

Replication & statistics

Replicates, the printed n and the dispersion, exactly as reported.

biological_replicates (Recommended)
Number of biological replicates as the source states it; never inferred. When given, it must be a whole number of at least 1; the upload is refused otherwise. Format: Whole number ≥ 1
technical_replicates (Optional)
Number of technical replicates as the source states it. When given, it must be a whole number of at least 1; the upload is refused otherwise. Format: Whole number ≥ 1
independent_units (Recommended)
Number of independent experimental units the value summarizes, as stated; never guessed. When given, it must be a whole number of at least 1; the upload is refused otherwise. Format: Whole number ≥ 1
reported_summary_n (Recommended)
The n printed with the value; a published mean's n is not a count of raw observations. When given, it must be a whole number of at least 1; the upload is refused otherwise. Format: Whole number ≥ 1
dispersion_type (Conditional; dropdown)
What the reported dispersion is; SD and SE are different quantities. Required when dispersion_value is given; the upload is refused without it. Format: SD, SE, CI95_half_width, IQR, range, none_reported
dispersion_value (Conditional)
The reported dispersion value. Blank unless the source reports a dispersion; dispersion_type must then say what it is. Format: Number only
statistical_note (Optional)
Statistical annotation from the source: letters, tests, corrections. Format: Text as printed

Provenance

Where the value was read, what was printed, and its review state.

data_extracted_from (Recommended)
Where the value was read: table, figure, text or supplementary material. Format: Text
table_figure_page (Recommended)
Exact table or figure number and page. Format: Text as printed
original_reported_value (Recommended)
The value exactly as printed, including ± and symbols; kept verbatim. Format: Text as printed
original_reported_unit (Recommended)
The unit exactly as printed; kept verbatim. Format: Text as printed
missing_reason (Conditional; dropdown)
Why a value is absent, when it is. A blank means not reported; never enter 0 for a missing value. When given, it must be one of the listed values; the upload is refused otherwise. Format: not_reported, not_measured, below_detection, illegible_in_source, ambiguous_in_source
reviewer_status (Optional; dropdown)
Your extraction check status. When given, it must be one of the listed values; the upload is refused otherwise. Format: unreviewed, checked_against_source, queried
notes (Optional)
Anything else a later reader needs. Format: Text

Upload

Upload the file on the Upload data sheet page and confirm the suggested column mapping. The server checks and parses the stored file itself. Creating the import is one transaction: every selected sheet is imported, or nothing is.

More details

The file goes straight to private quarantine storage. The server inspects the container and rejects legacy .xls, macro-enabled, encrypted, external-link and embedded-object files, then parses the stored bytes in an isolated process with time and memory limits.

The browser only proposes the column mapping. When the import is created, the server re-reads the quarantined file and builds every row itself.

Review workflow

Each upload becomes an import batch you check row by row, with validation and duplicate warnings. The Reviewer and Admin roles then approve, reject or request corrections in the review queue. Only approved, in-scope records reach the shared research pages.

More details

Reviewers decide through the review queue and never edit scientific fields.

FoodProt looks for possible duplicates: the same file, DOI or normalized citation, the same record, the same property for the same material, treatment, unit, basis and method, and terms that differ only by case, punctuation, abbreviation or spelling. Nothing is merged automatically.

Reviewers see each candidate pair with field-by-field evidence and decide Keep, Link, Merge or Reject with a written reason on the Data integrity review page. Merges are administrator-only and reversible, and every decision is kept in an append-only log.

Duplicate and quarantine review

Data integrity review has three tabs: Duplicates, Quarantine and Citations. FoodProt proposes possible duplicates with a confidence, the reasons and a field-by-field comparison, and never decides on its own. A quarantined article, record or measurement leaves every approved surface and cannot be approved.

More details

A reviewer or administrator decides each duplicate item with a reason kept in the audit trail: Keep both, Link (the rows are related, for example the same study reported twice), Not duplicates, or Merge (administrators only: nothing is deleted, references move, and the merge can be reverted).

Keep does not make two identical observations count twice. If two rows are separate observations, give one of them a distinguishing replicate number, sample id or experimental-unit id, and it will be counted separately.

The quarantine register shows what was quarantined and why, the evidence, the row as it stood, and who quarantined or released it. Reviewers quarantine a record, or its whole article, from the record page with Report or quarantine this record.

A reviewer releases a quarantine with a reason and the source evidence: the page, table or figure that reports the value. Releasing approves nothing; the record still goes through the review queue.

Report an incorrect record or citation

If a value, unit, basis, method, citation or DOI looks wrong, report it through the feedback form with the record it concerns. Reviewers check the source, and can quarantine the record while it is being checked.

More details

The record page has a Report link that fills in the record for you. Say what looks wrong and, when you can, where the source states the correct value.

Corrections

Contributors correct their own records while they are pending, draft or returned for correction. A reviewer who finds a problem requests a correction with a note instead of editing the record. After approval, only an administrator can make a documented correction.

More details

Add record is the form path for a single measurement: source, protein system, treatments, additives, pH and ionic environment, gel preparation, the result with unit and basis, and the method.

Every correction is re-validated on the server and recorded in the audit history with the user and time.

Analysis

Analytics Studio

Analytics builds publication-style figures and statistics from the normalized measurements. Choose a property / metric first so each axis has one unit. Filters apply automatically, and a stale chart is never left on screen.

More details

Fixed charts such as solubility against pH are bound to their exact property, whatever the global filters say.

Incompatible units are never plotted on one axis. When a property's records span several units, each chart plots one unit group, states how many records were left out, and offers a Unit control. Statistics follow the same rule.

If no records match, every chart shows an empty state and its exports are disabled. The summary bar states how many observations, proteins and studies are in play.

Edit figure changes titles, axis ranges and scale, precision, size, fonts, markers, lines, legend, gridlines, background and colour palettes (including colour-blind-safe and greyscale options). Settings are remembered in your browser, never the data.

SVG is recommended for line graphs and scientific plots. PNG export asks for a physical width and a target resolution of 150, 300 or 600 ppi and shows the resulting pixel size. The PNG file has no embedded ppi/dpi metadata, so set the print size in your layout software.

SD describes the spread of values; SE = SD/√n describes the uncertainty of the mean; the 95% CI uses the Student-t critical value for n − 1 degrees of freedom (n = 3 uses t = 4.30). n counts database records, so a literature mean reported with n = 3 is one record unless the raw values exist as separate rows.

Group comparisons offer one-way ANOVA, Welch ANOVA and Kruskal-Wallis, and run only when their requirements are met. A test on identical values is shown as not estimable, and a pairwise comparison with an undefined standard error is shown as not estimable with the reason.

Independence is checked with experimental_unit_id. The same unit in different groups, or repeated within a group, withholds the independent-group tests; when unit IDs are missing, independence is reported as unverified and the tests are withheld. Literature data pooled across laboratories still violates independence, so treat p-values as descriptive screening.

Regression shows a confidence band only when the data are eligible; otherwise the fit is labelled descriptive. Cross-property correlations pair values within the same experimental record, and a figure built from protein-level averages says so.

Each observation is counted once: stored copies of an observation already counted are left out, and the dataset bar says how many. See How duplicates are counted.

Record completeness and review readiness

Each measurement gets a completeness score from the fields that apply to its property, such as unit, basis, method context and source. The page publishes the formula and weights. The score measures how completely a record is described, not whether its values are scientifically correct.

Data validation and preprocessing

Check measurements against published validation rules, review possible duplicates and outliers, and export a transformed copy with a manifest. Stored records are never changed by this page.

Model-ready datasets

Build a model-ready table for one target property / metric, preview it and export it. The train, validation and test split is group-aware: rows from one study never span splits. Split sizes are therefore approximate, and the preview shows the achieved counts.

More details

Stored copies of an observation are left out before any filter or split, and the split refuses input that still holds one observation twice, so the same observation can never be in both training and test.

The export is not preprocessed: nothing is imputed, normalized or converted. The manifest records the filters, the split, the copies left out and a dataset fingerprint.

Models, structures and simulations

Model training trains regression models on approved measurements on the CPU, including a small neural network, and reports their accuracy on held-out studies. FoodProt has no GPU and does not train large networks. Simulation runs send GROMACS molecular dynamics to a simulation gateway when an administrator has connected one; AMS and PyMOL stay outside FoodProt, which prepares the inputs and records the results with their provenance.

More details

Training in FoodProt: on Model training, choose a property, its unit and basis, the features, the split by study, an algorithm (linear, ridge, lasso, elastic net, PCR, PLS, random forest, gradient boosted trees, SVR or a multilayer perceptron) and the hyperparameter values to search. Every combination is cross-validated by study; the result gives the test accuracy with bootstrap intervals, split-conformal prediction intervals, permutation importance, residual plots and the exact dataset (SHA-256), seed and settings. A job may use at most four minutes of one CPU thread, and its predictions are model outputs, never measurements.

Training elsewhere: export a model-ready dataset with a group-aware split, train in your own environment, and record the run in the model run registry. FoodProt stores that run's metadata, reported metrics and predictions; it never re-runs or re-scores it.

3D views and PyMOL: the structure lookup reads an entry's metadata from the RCSB PDB Data API. Show the 3D structure here draws it in FoodProt's own Mol* viewer (cartoon, ball-and-stick or surface), with the coordinates fetched by FoodProt's server from RCSB PDB and not stored. A browser without WebGL shows a message instead. The PyMOL script (.pml) runs in your own PyMOL installation, which downloads the entry itself.

GROMACS runs in FoodProt: when an administrator has connected a simulation gateway (for example on an SDSU cluster), an editor or administrator can request a run on Simulation runs from a PDB entry or a PDB file. The structure is checked first: water, ions, ligands and non-standard residues are removed, and a structure with a gap or a missing heavy atom is refused, never rebuilt. The run minimizes, equilibrates (NVT, then NPT, with restraints) and runs production on the gateway's CPUs. Its energies, temperature, pressure, density, backbone RMSD and radius of gyration are read by the database from the files GROMACS wrote, every file is listed with its size and SHA-256, and the final structure opens in the 3D viewer. One run per member at a time, ten a day.

GROMACS elsewhere, and AMS: describe the setup under Record simulation metadata and export the job manifest (JSON); whoever runs the job does so on their own hardware or cluster. AMS calculations always run elsewhere, because FoodProt has no AMS protocol and no licensed AMS installation. Values the record does not state are listed as unspecified, never filled in. Then import the results file: every output needs an explicit unit and its analysis method, and simulated outputs are never combined with experimental measurements.

My Sources

Ask FoodProt: My Sources is a private, document-grounded workspace. It reads only the sources you select. A member who also has shared research access may choose FoodProt Database only, or both; every statement then says whether it comes from an uploaded source or from a reviewed FoodProt record, and nothing from a private source is ever copied into FoodProt data.

Create a workspace

My Sources needs a signed-in, verified account that an administrator has enabled for My Sources (administrators have it by role). It is separate from the shared research workspace: a Viewer account enabled for My Sources can use its private workspaces without seeing Browse Data, Analytics or Export. A workspace is private by default. Owners invite members as editors or viewers.

More details

An invitation is a one-time link, valid for a limited time, that only a verified account with exactly the invited e-mail address can accept.

Owners can change member roles, revoke access, transfer ownership, rename or delete the workspace. Every membership change is recorded with who made it, why, and the previous and new value.

Ask your sources

A workspace opens on its conversation: your sources on one side, the question box on the other. Tick the ready sources a question may read; the box states the scope, for example 'Searching 3 selected sources — nothing else'. Your other workspaces are never searched, and the FoodProt Database only when you choose it as evidence (accounts with shared research access).

More details

Press Enter to ask and Shift+Enter for a new line. Find exact evidence and Extract data candidates read the passages that contain all of your words (write or between two words to accept either); put a phrase in double quotes to require it as written. Ask a question, Compare sources, Explain a table or sheet and Check my text rank the passages that match any of your words, and Summarise and Outline or synthesis start from representative passages of each selected source.

The Tools menu offers Ask a question, Summarise, Compare sources (two or more sources), Explain a table or sheet, Check my text and Outline or synthesis, plus Find exact evidence and Extract data candidates, which read only your sources and quote them exactly.

With an answer service configured by an administrator (named on the page, with where it runs and how long it keeps request text), the first six tools write their answer through it. It receives your question, up to three earlier exchanges of the same conversation and the passages retrieved for this question (with, in the FoodProt Database modes, the approved observations found for it), never whole documents; every statement it writes must cite one of them, and FoodProt removes any statement whose quotation, number or unit is not in the cited evidence. When the evidence is insufficient or contradictory, the answer says so instead of choosing.

Without an answer service, My Sources answers with exact quoted passages, extractive summaries built only from those passages, side-by-side comparisons and data candidates for your review; it writes no answer in its own words. Scanned pages without a text layer are read only when an OCR service is configured.

Follow-up questions keep the conversation's source selection; changing it is always your own action. A saved answer whose evidence was replaced or deleted is marked out of date.

Your questions and results are saved privately for you in the workspace and reappear when you return. New conversation starts an empty one; earlier ones stay in the Saved conversations list.

If a request fails, the page shows the reason and a reference you can quote when reporting it, with Try again.

Paste text

Paste text adds a private source from text you paste, with a title. It is saved as a file named pasted-text.txt and checked, stored and processed exactly like an upload, and the source list labels it 'Pasted text'.

More details

The text counts against the same per-file size limit as an upload; the dialog shows the size as you type.

Paste only text you may keep in the workspace. Deleting the source removes it like any other source.

Upload documents

Supported files are PDF, DOCX, PPTX, TXT, Markdown, CSV, TSV and XLSX, plus a validated ZIP of those types. Large files upload in resumable parts straight to private storage, processing runs in the background with accounts taking turns, and each file shows its own status. Scanned PDF pages are read only by an OCR service an administrator has configured; without one they are marked as needing OCR and no text is invented for them.

More details

A ZIP with a nested archive, an encrypted entry, a program, a macro-enabled Office file, a symlink or a path that escapes the archive is rejected outright rather than partly imported; the upload report lists each entry's outcome.

Executables, encrypted or password-protected documents, macro-enabled files and file types not listed above are refused.

Charts, equations and images are not interpreted.

A source entered only as a title, DOI, citation or abstract is marked ABSTRACT ONLY, and every result states its evidence scope.

Read the evidence

Every result says what it is: an Exact quotation, an Extractive summary built only from quoted passages, or values Computed from the text. When the selection lacks evidence, the answer is 'I could not find enough evidence in the selected sources.' Limitations are listed with each result.

More details

Documents are parsed by FoodProt's own server code and indexed with PostgreSQL full-text search. A passage or question leaves FoodProt only for a service an administrator configured - the answer, similarity-search or OCR service named on the page - and only what that request needs; never another workspace's text.

When sources disagree or state values in different units, the passages are shown side by side exactly as written. FoodProt does not convert, combine or average values across sources.

Search and extraction are text matching over what FoodProt could read: they can be wrong or incomplete, they are not medical or clinical advice, and they are not a substitute for reading the original article.

FoodProt is designed for traceable, reviewable, and reproducible scientific data management. Verify source passages, method conditions, units and statistical assumptions before drawing conclusions.

Citations and evidence viewer

Every quoted passage carries a numbered citation. Open evidence shows the exact page, slide, sheet or cell range inside FoodProt, with the passage marked where its exact text can be found. For a PDF you can also open the original at the cited page, or download it.

More details

Open DOI/publisher page appears only for a source entered with a valid DOI. It opens the publisher's record of the article, not the file FoodProt read.

Values extracted from the text are candidate drafts for your review, not FoodProt data. Propose for review places them in the workspace's review queue; a candidate value becomes FoodProt data only after you accept it and take it through the normal template upload and review workflow.

Permissions and privacy

A workspace is visible only to its members. Site administrators get no silent access to its documents. Revoking someone's access immediately blocks viewing, retrieval, downloads and questions.

More details

Deleting a source removes its stored original, parsed text and index, and marks any earlier answer that cited it as out of date.

Limits

Up to 25 MiB per file, 1000 sources and 10 GiB per workspace, 400 pages per document, and 500 entries per ZIP. Select up to 500 files at a time; 3 upload in parallel. The database enforces these limits.

More details

One question reads at most 24 passages, chosen from every selected source; the list of sources is paged, and "select all ready" is resolved by the database, so a collection of 1000 sources is never loaded into your browser at once.

Each account may process 1000 processed uploads per day and ask 200 questions per day.

Property categories

FoodProt groups measured properties into 14 categories. Every property, its key, aliases and recommended units are listed in the data dictionary.