Data from: Gastrolith shape as an indicator of digestive function and its implications for dinosaurian digestive strategies
Data files
Jul 07, 2026 version files 1.09 MB
-
Data_S1.zip
939.97 KB
-
Data_S2.csv
13.27 KB
-
Data_S3.csv
3.42 KB
-
Data_S4.nex
3.20 KB
-
Data_S5.R
26.05 KB
-
Data_S6.R
3.61 KB
-
README.md
20.53 KB
-
TableS1.xlsx
13.01 KB
-
TableS2.xlsx
12.11 KB
-
TableS3.xlsx
9.90 KB
-
TableS4.xlsx
12.67 KB
-
TableS5.xlsx
11.56 KB
-
TableS6.xlsx
23.65 KB
Abstract
The evolution of the muscular stomach was a key innovation in the avian body plan, enabling high metabolic rates by functionally replacing oral processing. However, its deep–time origins within Archosauria have remained poorly understood, primarily due to the extreme rarity of fossilized stomachs. Here, we demonstrate that gastrolith shape provides a robust proxy for digestive function, and by extension, stomach muscularity and diet. By assembling a comprehensive dataset from 104 individuals across 46 extant archosaur species, we establish a strong correlation between gastrolith shape, stomach muscularity, and diet. Applying this validated method to the fossil record reveals divergent digestive strategies among major dinosaur clades. Herbivorous ornithischians retained angular gastroliths, consistent with limited gastric abrasion and compensation via oral processing. Sauropods likewise retained angular gastroliths, consistent with limited gastric abrasion and digestion relying more on long retention times and fermentation. Conversely, the muscular stomach, indicated by rounded gastroliths, evolved early within Theropoda, appearing at least by the base of Maniraptoriformes. This innovation was likely a crucial prerequisite for repeated transitions to herbivory in maniraptoriform theropods with reduced dentition, by shifting mechanical processing from the jaws to the stomach and reducing reliance on heavy jaw adductor musculature.
Dataset DOI: 10.5061/dryad.5mkkwh7k6
Description of the data and file structure
This dataset supports a study that uses the shape of gastroliths (stomach stones) to infer digestive function (stomach muscularity) and diet in extant archosaurs (birds and crocodylians) and then applies the calibrated model to extinct archosaurs (non-avian dinosaurs and Mesozoic birds). Two complementary shape proxies are used throughout:
- a quantitative proxy — three dimensionless ImageJ shape descriptors (Circularity, Roundness, Solidity) measured on each individual gastrolith, and
- a qualitative proxy — assignment of each gastrolith to one of five visual angularity classes (Angular, Sub-angular, Sub-rounded, Rounded, Well-rounded).
The files below provide the raw per-gastrolith measurements, the specimen-level training data, the fossil test data, the phylogenetic framework, the analysis scripts, and every results table and supplementary figure referenced in the manuscript.
How the files link together
Every specimen has a unique alphanumeric ID (e.g., croc_07, HoUM_30011, IVPP V14287); the alphabetical prefix encodes the holding institution and the number is its catalogue/individual code. This ID is the key that links the files:
- the ID is the file name of the corresponding per-gastrolith file in
Data S1(e.g.,croc_07.csv), - the same ID is the first column of
Data S2.csv(extant specimens) and ofTable S6(which isData S2plus two provenance columns), - fossil IDs in
Data S3.csvare carried through toTable S5.
Specimen-level values in Data S2.csv / Table S6 are summaries of the per-gastrolith rows in the matching Data S1 file: Area, Minor, Circularity, Roundness (Round), and Solidity are the specimen means of the individual gastroliths, and Largest is the maximum per-gastrolith minor-axis length in that specimen.
Missing-data code
Empty cells and NA denote data that were not available, not applicable, or not measured (e.g., body mass unknown for a museum skeleton, dentition unknown for a fragmentary fossil).
Shared definitions and interpretation keys
These keys are referenced by the per-file variable lists below and are not repeated for each file.
Diet categories (DietCat, Diet) — Elton Traits scheme of Wilman et al. (2014); each extant species is assigned to the category with the highest summed diet score:
| Label | Meaning |
|---|---|
VertFishScav |
Vertebrate feeders, including fish-eaters and scavengers |
PlantSeed |
Plant and seed feeders |
Invertebrate |
Invertebrate feeders |
Omnivore |
Omnivores |
unknown |
Diet not assigned a priori (used for all fossil taxa, whose diet is predicted) |
Angularity classes (columns Angular, Subangular/Sub-angular, Subrounded/Sub-rounded, Rounded, Well_rounded/Well-rounded) — visual roundness classes of Best and Gionfriddo (1991). Each cell is the number of gastroliths in that specimen scored into the class; the five class counts sum to the specimen's evaluated gastrolith count.
Class definitions:
| Class | Definition |
|---|---|
| Angular | Sharp and irregular corners |
| Sub-angular | Corners slightly rounded, inlets sharp |
| Sub-rounded | Corners rounded, inlets more or less smooth |
| Rounded | Corners well-rounded, only a few inlets |
| Well-rounded | Smoothly rounded, no corners or inlets |
Quantitative shape descriptors (Circularity, Roundness/Round, Solidity; also columns Circ, Round, Solid in Data S1) — dimensionless two-dimensional descriptors measured in ImageJ v1.8.0 (Schneider et al. 2012) on gastroliths larger than 0.5 mm in minor axis. All range from 0 to 1:
| Descriptor | Formula (ImageJ) | Interpretation |
|---|---|---|
| Circularity | 4π · Area / Perimeter² | 1 = perfect circle; lower = more elongate/irregular outline |
| Roundness | 4 · Area / (π · major-axis²) | 1 = circular; lower = more elongate (low aspect ratio) |
| Solidity | Area / convex-hull area | 1 = fully convex (no concavities); lower = more concave/angular |
Body size / digestive-function measures
| Variable | Units | Meaning |
|---|---|---|
BM |
grams (g) | Body mass of the individual |
Ventriculus |
grams (g) | Mass of the ventriculus (fundic stomach / "gizzard") |
Stomach muscularity, used in the analyses, is the derived quantity log10(Ventriculus / BM); it is computed inside Data S5.R and is not stored as a column.
Files and variables
Data files
File: Data_S1.zip
Description: Raw gastrolith shape data. Unzips to a folder Data S1/ containing one CSV file per specimen (104 files) — a one-to-one match to the 104 specimens (rows) of Data S2.csv, with no specimen missing or extra. Each file is named with the specimen ID (e.g., croc_07.csv, HoUM_30011.csv, Bird_0002.csv), so the file name is the key that links it to Data S2.csv and Table S6. All files share the same six columns (below). Each row is one individual gastrolith of that specimen; only gastroliths larger than 0.5 mm in minor axis were measured. The specimen-level values in Data S2.csv / Table S6 are computed from these rows (means of Area, Minor, Circ, Round, and Solid; and the maximum Minor for Largest).
Variables (columns in each per-specimen CSV)
- (first, unnamed column): sequential gastrolith index within the specimen (1, 2, 3, …)
Area: two-dimensional projected area of the gastrolith, as measured in ImageJ. The linear scale was set per image, soArea(andMinor) are not standardized across specimen files; only the three dimensionless descriptors below are directly comparable across specimens, which is why the analyses use only Circularity, Roundness, and Solidity.Minor: minor-axis (breadth) length of the fitted ellipse, ImageJ units (see note underArea)Circ: Circularity (dimensionless, 0–1; see shared key)Round: Roundness (dimensionless, 0–1; see shared key)Solid: Solidity (dimensionless, 0–1; see shared key)
File: Data_S2.csv
Description: Gastrolith shape, size, and diet type of the extant archosaurs (one row per individual specimen). This is the training dataset. Area, Minor, Circularity, Round, and Solidity are specimen means of the matching Data S1 file; Largest is the maximum minor-axis length in that specimen.
Variables
ID: specimen/individual identifier (matches theData S1file name)Taxa: species (genus + species; underscores separate words)Order: taxonomic order (e.g., Anseriformes, Charadriiformes, Crocodylia, Palaeognathae)Group: broad group —Extant birdorCrocodyliaBM: body mass, grams (g); empty if not recordedVentriculus: ventriculus (fundic stomach) mass, grams (g); empty if not recordedGastrolith_count: number of gastroliths scored into the angularity classes for this specimen (equals the sum ofAngular…Well_rounded). For specimens hosting very large gastrolith masses, ~1,000 randomly selected stones were scored rather than all of them.Area: specimen-mean gastrolith projected area, mm²Minor: specimen-mean gastrolith minor-axis length, mmLargest: minor-axis length of the largest gastrolith in the specimen, mmCircularity: specimen-mean Circularity (0–1; see shared key)Round: specimen-mean Roundness (0–1; see shared key)Solidity: specimen-mean Solidity (0–1; see shared key)Angular: count of gastroliths classed AngularSubangular: count of gastroliths classed Sub-angularSubrounded: count of gastroliths classed Sub-roundedRounded: count of gastroliths classed RoundedWell_rounded: count of gastroliths classed Well-roundedDietCat: diet category (see shared key)
File: Data_S3.csv
Description: Gastrolith shape distribution of the extinct archosaurs (one row per fossil specimen). This is the test dataset whose diets are predicted by the model trained on Data S2.csv.
Variables
ID: fossil specimen identifier (institutional catalogue number)Taxa: genus + species (underscores separate words)Group_1: major clade used for plotting —Ornithischia,Sauropoda,Theropoda, orAvialaeGroup_2: broad grouping —DinosauriaorFossil birdGastrolith_count: number of gastroliths scored into the angularity classes (equals the sum ofAngular…Well_rounded)Angular: count of gastroliths classed AngularSubangular: count of gastroliths classed Sub-angularSubrounded: count of gastroliths classed Sub-roundedRounded: count of gastroliths classed RoundedWell_rounded: count of gastroliths classed Well-roundedDiet: diet label;unknownfor all fossils (the quantity the model predicts)Teeth: dentition state of the taxon —Present,Absent,Partial, orNA(unknown)FAD: First Appearance Datum (oldest age bound), millions of years ago (Ma); used to time-calibrate the treeLAD: Last Appearance Datum (youngest age bound), millions of years ago (Ma)Data acquired from: how the shape data were obtained —Direct observation(specimen examined firsthand) orPhotographs
File: Data_S4.nex
Description: Dinosaur phylogenetic framework used for the ancestral-state reconstruction. A NEXUS-format phylogenetic tree of the fossil taxa in Data S3.csv, read and time-scaled (using the FAD/LAD ages) by Data S5.R.
File: Data_S5.R
Description: R script that runs the main analyses. It loads Data S2.csv, Data S3.csv, the per-specimen files in Data S1/, and the tree in Data S4.nex; performs the linear discriminant analyses (qualitative and quantitative), the subsampling accuracy assessment, the principal component analyses, the standardized major-axis regressions, and the ancestral-state reconstruction; and writes out the results underlying Tables S1–S5 and the figures. See the Code/software section for package versions.
File: Data_S6.R
Description: R script for the sensitivity (equilibrium) test. For a single specimen file from Data S1/ (default Bird_0002.csv), it repeatedly subsamples increasing numbers of gastroliths and reports the subsample size at which the 95% interval of the specimen mean for Roundness, Solidity, and Circularity settles within a tolerance band of ±tol × (within-specimen SD), for tol = 0.1, 0.2, and 0.5. Output is the table eq_tbl_metric.
Results tables
Cells in the .xlsx tables carry only cosmetic formatting; see the Formatting note below. In every table the first, unlabeled column contains the specimen ID.
File: TableS1.xlsx
Description: Result of the linear discriminant analysis on the pruned qualitative dataset — per-specimen posterior probabilities of each diet class and the resulting classification (training specimens with ≥35 gastroliths).
Variables
- (first column): specimen ID
Taxa: speciesInvertebrate: posterior probability of the Invertebrate class (0–1)Omnivore: posterior probability of the Omnivore class (0–1)PlantSeed: posterior probability of the Plant + Seed class (0–1)VertFishScav: posterior probability of the Vertebrate/Fish/Scavenger class (0–1)Diet: observed (known) diet category of the specimen (see shared key)Predicted: diet category predicted by the discriminant model
File: TableS2.xlsx
Description: As Table S1, but for the linear discriminant analysis on the pruned quantitative dataset (Circularity, Roundness, Solidity).
Variables
- (first column): specimen ID
Taxa: speciesInvertebrate: posterior probability of the Invertebrate class (0–1)Omnivore: posterior probability of the Omnivore class (0–1)PlantSeed: posterior probability of the Plant + Seed class (0–1)VertFishScav: posterior probability of the Vertebrate/Fish/Scavenger class (0–1)Diet: observed (known) diet category (see shared key)Predicted: diet category predicted by the discriminant model
File: TableS3.xlsx
Description: Loadings (coefficients) of each gastrolith shape proxy on the linear discriminant (LD) and principal component (PC) axes. The sheet is split into a Qualitative block (rows = the five angularity classes) and a Quantitative block (rows = Circularity, Roundness, Solidity). LD1–LD3 are the discriminant coefficients; PC1–PC5 are the PCA rotation loadings (PC4/PC5 are blank for the quantitative block, which has only three inputs).
Variables
- (first column): shape proxy (angularity class, or Circularity/Roundness/Solidity)
LD1,LD2,LD3: loading on linear discriminant axes 1–3PC1,PC2,PC3,PC4,PC5: loading on principal component axes 1–5
File: TableS4.xlsx
Description: Linear discriminant scores of the extant training specimens from the qualitative and quantitative analyses. The header spans two grouped blocks, Qualitative and Quantitative, each with LD1–LD3.
Variables
- (first column): specimen ID
Taxa: speciesLD1,LD2,LD3(Qualitative): discriminant scores from the qualitative analysisLD1,LD2,LD3(Quantitative): discriminant scores from the quantitative analysis
File: TableS5.xlsx
Description: Predicted linear discriminant and principal component scores of the extinct archosaurs (fossil specimens in Data S3.csv), projected onto the axes trained on the extant data.
Variables
- (first column): fossil specimen ID
Taxa: speciesLD1,LD2,LD3: predicted linear discriminant scoresPC1,PC2,PC3,PC4,PC5: predicted principal component scoresdata source: how the shape data were obtained —Direct observationorPhotographs
File: TableS6.xlsx
Description: Summary of the extant archosaur gastrolith sampling — one row per individual specimen. This is Data S2.csv with two added provenance columns (Region, Status) requested during review. See the Formatting note below regarding the bold rows.
Variables
ID: specimen/individual identifierTaxa: speciesOrder: taxonomic orderGroup:Extant birdorCrocodyliaBM: body mass, grams (g); empty if not recordedVentriculus: ventriculus (fundic stomach) mass, grams (g); empty if not recorded#Gastroliths evaluated: number of gastroliths scored into the angularity classes (equals the sum ofAngular…Well-rounded; equivalent toGastrolith_countinData S2.csv)Area: specimen-mean gastrolith projected area, mm²Minor: specimen-mean gastrolith minor-axis length, mmLargest: minor-axis length of the largest gastrolith in the specimen, mmCircularity: specimen-mean Circularity (0–1; see shared key)Roundness: specimen-mean Roundness (0–1; see shared key)Solidity: specimen-mean Solidity (0–1; see shared key)Angular: count of gastroliths classed AngularSub-angular: count of gastroliths classed Sub-angularSub-rounded: count of gastroliths classed Sub-roundedRounded: count of gastroliths classed RoundedWell-rounded: count of gastroliths classed Well-roundedDietCat: diet category (see shared key)Region: geographic origin of the sampled animal (e.g.,Hokkaido,Tokyo,Shizuoka,NT, Australia;Unknownif not recorded)Status: living conditions of the sampled animal —Wild,Captive(from a zoo, aquarium, or crocodile farm), orUnknown
Formatting note (re: Excel formatting). The only formatting in the .xlsx tables is bold text. In Table S6, bold marks the specimens that meet the ≥35-gastrolith threshold and were therefore used to train the model (these correspond to the rows in Tables S1, S2, and S4). This formatting is cosmetic and not required for re-analysis: the identical subset is reproduced by filtering #Gastroliths evaluated ≥ 35. No cell value depends on formatting.
Supplementary figures
Figure S1–S3 are image files (.tif) illustrating the specimens; they are the authors' original creative works (see Access information).
File: Figure_S1.tif
Description: Ornithischian gastroliths. A, Psittacosaurus mongoliensis (AMNH FARB 6253); Haya griva (B, IGM 100/2015; C, IGM 100/3182); and D, Edmontosaurus (AMNH FARB 5863). Note that Psittacosaurus (A) is publicly exhibited, so the white arrow label on the specimen cannot be removed.
File: Figure_S2.tif
Description: Theropod gastroliths. A, large Sinornithomimus dongi (uncatalogued) in right lateral view; B, gradient map of gastrolith sizes for the Sinornithomimus in A (warm colors = small, cool colors = large); C, sagittal CT image of the gastrolith mass of the small Sinornithomimus dongi (uncatalogued); D, small Sinornithomimus dongi (uncatalogued) in right lateral view; E, Deinocheirus mirificus (MPC-D 100/127); F, Limusaurus inextricabilis (IVPP V15297) in left lateral view; G, Limusaurus inextricabilis (IVPP V15293) in right lateral view; H, Tarbosaurus bataar (MPC-D 552-1) in ventrolateral view; I, schematic drawing of the Tarbosaurus gastralia and gastrolith positions; J, Caudipteryx dongi (IVPP V12344) in left lateral view; K, Caudipteryx sp. (IVPP V12430) in left lateral view.
File: Figure_S3.tif
Description: Mesozoic bird gastroliths. Archaeorhynchus spathula (A, IVPP V14287; B, IVPP V17075; C, IVPP V17091; D, IVPP V20312); E, Bellulornis rectusunguis (IVPP V17970); F, Changzuiornis ahgmi (AGB 5840); Gansus yumenensis (G, GSGM 05-CM-014; H, GSGM 06-CM-011; I, GSGM 07-CM-001); Iteravis huchzermeyeri (J, IVPP V18958; K, IVPP V20133; L, IVPP V20134).
Code/software
All analyses were performed in R 4.4.1 (R Core Team 2020), using the R packages ape 5.8 (Paradis and Schliep 2019), MASS 7.3-60.2 (Venables and Ripley 2013), geiger 2.0.11 (Pennell et al. 2014), and smatr 3.4-8 (Warton et al. 2012); the scripts also load car, phytools, paleotree, strap, dplyr, purrr, tidyr, viridis, and modelr. Shape descriptors were measured in ImageJ v1.8.0 (Schneider et al. 2012). Scripts are provided as Data S5.R (main analyses) and Data S6.R (sensitivity test).
To reproduce the main analyses, unzip Data S1.zip and place the resulting Data S1/ folder together with Data S2.csv, Data S3.csv, and Data S4.nex in the working directory, then run Data S5.R (set the working directory at the top of the script). Data S6.R reads a single per-specimen file from Data S1/ (default Bird_0002.csv).
Access information
- Tabular data files are released into the public domain under the Creative Commons CC0 1.0 waiver, as required by Dryad.
- The supplementary figures (
Figure_S1.tif,Figure_S2.tif,Figure_S3.tif) are original creative works of the authors. Consistent with the journal's licensing, they are shared under a CC-BY license (attribution required) rather than the CC0 waiver, as a coordinated Supplemental Information deposit linked to this dataset under "Related works." - Specimen photographs and CT data derive from museum specimens held at the listed institutions (e.g., AMNH, IVPP, IGM, MPC-D, GSGM, AGB for fossils; Hokkaido University collections for the modern birds). Diet categories follow the Elton Traits database (Wilman et al. 2014).
