ReSources: worked examples

Three progressive examples for dietary reconstruction

Chronologies

2026-04-11

Training Objectives

By the end of this session, you will:

  1. Set up three progressively complex mixing models in ReSources
  2. Understand when to include components, concentrations, and offsets
  3. Interpret different estimate types (source contributions, by-proxy, components)
  4. Recognize how routing affects dietary proportion estimates

Tip

Hands-on approach: Follow along on your computer as we work through each example together

Overview: Three Examples

Example 1

Simplest Case

  • 1 consumer
  • 2 sources
  • 1 isotope (δ13C)
  • No offsets
  • No components
  • No concentrations

Example 2

Adding Realism

  • 1 consumer
  • 2 sources
  • 2 isotopes
  • ✓ Offsets
  • ✓ Concentrations
  • No components

Example 3

Gold Standard

  • 1 consumer
  • 2 sources
  • 2 isotopes
  • ✓ Offsets
  • ✓ Concentrations
  • ✓ Components

Example 1

The Simplest Case

Example 1: Scenario

Research Question: What proportions of Source 1 vs. Source 2 did the consumer eat?

Consumer:

  • δ13C = −15.0 ± 0.5 ‰

Sources:

  • Source 1: δ13C = −20.0 ± 1.0 ‰
  • Source 2: δ13C = −10.0 ± 1.0 ‰

Model Settings:

  • ✗ No components
  • ✗ No concentrations
  • ✗ No offsets (Δ = 0)

Why unrealistic?

Real bone collagen always requires trophic enrichment factors. But this teaches the basics!

The Mixing Equation

Since there are no offsets, components, or concentrations:

\[ \delta^{13}C_{\text{consumer}} = f_1 \cdot \delta^{13}C_{\text{Source1}} + f_2 \cdot \delta^{13}C_{\text{Source2}} \]

\[ f_1 + f_2 = 1 \]

Algebraic solution:

\[ \begin{aligned} -15 &= f_1 \cdot (-20) + (1-f_1) \cdot (-10) \\ f_1 &= 0.5 \quad (50\%)\\ f_2 &= 0.5 \quad (50\%) \end{aligned} \]

Note

Consumer sits halfway between sources → 50/50 split

Setting Up in ReSources

Navigate to: Model options

  • Model type: Update model (all info shared)
  • Include components: UNCHECK
  • Include concentrations: UNCHECK
  • Target offset: UNCHECK

Model Options

Model Options

Navigate to: Data → Target & target-to-source offsets

Individual d13C (mean) d13C (SD)
target1 -15.0 0.5

Tip: Copy from Excel → Click outside table → Ctrl+V

Target

Target

Navigate to: Data → Sources

Source Mean SD
source1 -20.0 1.0
source2 -10.0 1.0

Tip: Copy from Excel → Click outside table → Ctrl+V

Target

Target

Click “Run Model”

Wait for compilation + sampling

Example 1: Results

Navigate to: Output → Output Plots

Navigate to: Results Report → Summary statistics

Expected Output:

Source Mean sd Median 95% probability
Source1 0.50 0.09 0.50 [0.33, 0.69]
Source2 0.50 0.09 0.50 [0.31, 0.67]

Interpretation:

  • Both sources contribute equally (50/50)
  • Uncertainty from measurement error
  • Bayesian inference quantifies this uncertainty

Output

Output

Results report

Results report

Key Lesson from Example 1

Consumer position determines proportions

If consumer is:

  • Halfway between sources → 50/50
  • Closer to Source 1 → Higher f1
  • Closer to Source 2 → Higher f2

Remember: This simple model is a training example. Real bone collagen analysis requires offsets!

Example 2

Adding Offsets and Concentrations

Example 2: Scenario

Now we add two critical features:

Consumer:

  • δ13C = −9.0 ± 0.5 ‰
  • δ15N = +13.0 ± 0.5 ‰

Sources:

Source δ¹³C δ¹⁵N Protein %
Source 1 −20 ±1 +5 ±1 20 ±5
Source 2 −10 ±1 +10 ±1 40 ±5

Offsets (TEFs):

  • Δ13C = +1.0 ± 0.5 ‰
  • Δ15N = +5.5 ± 0.5 ‰

Model Settings:

  • ✗ No components (yet!)

Why Offsets Matter

Without offsets: Consumer values seem incompatible with sources

Raw sources:

  • Source 1: δ15N = +5 ‰
  • Source 2: δ15N = +10 ‰

Consumer: δ15N = +13 ‰

Problem: +13 is above both sources!

After applying offset (+5.5 ‰):

  • Source 1: +5 + 5.5 = +10.5 ‰
  • Source 2: +10 + 5.5 = +15.5 ‰

Consumer: +13 ‰

Solution: Now sits between sources

Important

Trophic enrichment is a physical phenomenon

Bone collagen is systematically enriched in heavy isotopes relative to diet. Always include TEFs!

Why Concentrations Matter

Different foods have different protein densities:

Scenario: Eat 1 kg of each source

  • Source 1: 1 kg × 20% = 0.2 kg protein
  • Source 2: 1 kg × 40% = 0.4 kg protein
  • Total: 0.6 kg protein

Protein contribution:

  • Source 1: 0.2 / 0.6 = 33%
  • Source 2: 0.4 / 0.6 = 67%

Tip

Key insight

Even though you ate equal masses (50/50), you consumed unequal protein (33/67)

For bone collagen (protein tissue), we care about nutrient intake, not food mass

Setting Up Example 2

Navigate to: Model options

  • Model type: Update model (all info shared)

Two isotopes now:

Proxy d13C (mean) d13C (error) d15N (mean) d15N (error)
target1 -9.0 0.5 13.0 0.5

Tip: Copy from Excel → Click outside table → Ctrl+V

Target

Target

Offset table (below target data):

Proxy Offset SD
d13C +1.0 0.5
d15N +5.5 0.5

Enter for each isotope separately:

d13C tab: Source1 (−20, 1), Source2 (−10, 1)

d15N tab: Source1 (+5, 1), Source2 (+10, 1)

Source d13C d15N
Source1 20 ±5 20 ±5
Source2 40 ±5 40 ±5

(Same values for both proxies because measuring same nutrient: protein)

Example 2: Results

Expected Output:

Source Mean sd Median 95% probability
Source1 0.18 0.13 0.17 [0.00, 0.47]
Source2 0.82 0.13 0.83 [0.53, 0.99]

Why Source 2 dominates:

  1. Carbon match: −10 + 1 = −9 (exact!)
  2. Nitrogen closer: +13 is nearer +15.5 than +10.5
  3. Higher protein: 40% vs 20%

Multiple Estimate Types

ReSources provides different perspectives on the same data:

Estimate type What it shows Example 2 values
Source contributions Overall contribution to diet S1: 18%, S2: 82%
Contributions by d13C Carbon signal attribution S1: 9%, S2: 91%
Contributions by d15N Nitrogen signal attribution S1: 18%, S2: 82%

Note

Why do they differ?

Consumer sits at different relative positions in carbon vs. nitrogen space. Concentrations also affect how bulk food translates to nutrient contribution.

Key Lessons from Example 2

  1. Two isotopes improve resolution — δ15N distinguishes sources with similar δ13C

  2. Offsets are non-negotiable — Without TEFs, consumer falls outside mixing space

  3. Concentrations adjust for protein density — 40% protein source contributes more to collagen than 20% source, even if masses equal

  4. Multiple estimates provide different insights — “Source contributions” ≠ “Contributions by nitrogen”

Example 3

Full Routed Mixing Model

Example 3: The Complete Model

Now we implement selective routing of dietary components:

Key Addition: Components

  • Protein — amino acids
  • CarbsLipids — energy sources

Each has different isotope values within same food source

Component Weights (Routing):

  • δ13C collagen: 74% protein, 26% energy
  • δ15N collagen: 100% protein, 0% energy

Why This Matters:

Bone collagen is synthesized from dietary protein preferentially, not bulk diet

Real-World Consequence

Imagine a population eating:

  • 70% maize (C4 plant, δ13C ≈ −12 ‰) → energy
  • 30% animal meat13C ≈ −21 ‰) → protein

Unrouted model (Example 2) predicts:

\[ \delta^{13}C_{\text{collagen}} = 0.70 \times (-12) + 0.30 \times (-21) = -14.7 \text{ ‰} \]

Routed model (Example 3) predicts:

\[ \delta^{13}C_{\text{collagen}} = 0.74 \times (-21) + 0.26 \times (-12) = -18.7 \text{ ‰} \]

Important

4 ‰ difference! Enough to completely change dietary interpretation

Example 3: Data Structure

Sources now have component-specific isotope values:

Source δ¹³C (protein) δ¹³C (carbs/lipids) δ¹⁵N (protein)
Source 1 −20 ± 1 −19 ± 1 +5 ± 1
Source 2 −10 ± 1 −11 ± 1 +10 ± 1

Concentrations by component:

Source Protein (%) Carbs/Lipids (%)
Source 1 20 ± 5 60 ± 5
Source 2 40 ± 5 40 ± 5

Setting Up Example 3

Critical change:

Navigate to: Model Options

This unlocks the Components table

No change:

Proxy d13C (mean) d13C (error) d15N (mean) d15N (error)
target1 -9.0 0.5 13.0 0.5

Tip: Copy from Excel → Click outside table → Ctrl+V

Target

Target

Offset table (below target data):

Proxy Offset SD
d13C +1.0 0.5
d15N +5.5 0.5

Define routing weights:

Proxy Protein(mean) Protein(uncert) Carbs/Lipids(mean) Carbs/Lipids(uncert)
d13C 74 0 26 0
d15N 100 0 0 0

⚠️ Names must match across all tables!

Data → Sources

⚠️ Proxy dropdown d13C. Not available before!

d13C has columns for both components:

Source Protein(mean) Protein(uncert) Carbs/Lipids(mean) Carbs/Lipids(uncert)
source1 -20 1 -19 1
source2 -10 1 -11 1

⚠️ Proxy dropdown d15N. Change from d13C

Only protein (no N in carbs/lipids):

Source Protein(mean) Protein(uncert)
source1 +5 ±1
source2 +10 ±1

Both components:

Source Protein(mean) Protein(uncert) Carbs/Lipids(mean) Carbs/Lipids(uncert)
source1 20 5 60 5
source2 40 5 40 5

Example 3: Results

Source Contributions:

Source Mean sd Median 95% probability
source1 0.08 0.09 0.05 [0.00, 0.30]
source2 0.92 0.09 0.95 [0.70, 0.99]

NEW: Component Contributions

Component Mean 95% probability
Protein 0.48 [0.38, 0.57]
CarbsLipids 0.52 [0.42, 0.62]

Interpreting Component Contributions:

Of total nutrients consumed:

  • 48% were protein
  • 52% were carbs/lipids

This is a new dietary insight not available from unrouted models!

Understanding Different Estimates

Estimate type What it shows Use it to answer:
Source contributions Overall food contribution “How much of each food did they eat?”
Contributions by d15N Protein source contributions “Where did their protein come from?”
Contributions by d13C Mixed (protein + energy) “Carbon signal attribution”
Component contributions Protein vs. energy balance “What was the protein/energy ratio?”

Tip

Pro tip: For bone collagen, “Contributions by d15N” = protein contributions (since N is 100% protein-derived)

Comparing All Three Examples

Feature Example 1 Example 2 Example 3
Isotope proxies 1 (δ13C) 2 2
Components
Concentrations
Offsets
Setup time 2 min 3 min 5 min
Run time 1 min 1–2 min 2–3 min
Estimate types 1 3 4
Realism Training Moderate High
Use for bone collagen? ❌ Never ⚠️ Acceptable Always

Key Lessons from Example 3

  1. Routing is essential — Unrouted models misrepresent protein contributions for bone collagen

  2. Component contributions unlock new insights — Quantify protein vs. energy balance

  3. Nitrogen = protein — “Contributions by d15N” directly shows protein sources

  4. More setup = more information — Component-specific data yields richer dietary reconstructions

  5. This is the gold standard — Always use routed models (ReSources) for archaeological collagen

Practical Tips

Copy-Paste Workflow

  1. Always include header row when copying
  2. Click outside the table in ReSources before pasting
  3. Use Ctrl+V (or Paste button if Ctrl+V fails)
  4. Verify immediately — check values transferred correctly

❌ Forgetting header row → columns misaligned

❌ Not clicking outside → paste goes nowhere

❌ Typos in names → “Proxy names do not match” error

Naming Conventions (Critical!)

These names MUST match exactly across tables:

Proxy names:

  • ✗ “d13C” vs “d 13C” (space!)
  • ✗ “d13C” vs “D13C” (case!)

Component names:

  • ✗ “protein” vs “Protein”
  • ✗ “CarbsLipids” vs “carbs/lipids”

Where names must match:

  1. Target table headers
  2. Sources table tabs/headers
  3. Components table rows/headers
  4. Offsets table rows
  5. Concentrations table headers

Warning

One typo = model won’t run

Troubleshooting Common Errors

Error message Cause Fix
“Proxy names do not match” “d13C” spelled differently in tables Check spelling in Target, Sources, Offsets
“Component names not found” “Protein” doesn’t match “protein” Ensure identical case/spelling
“Consumer outside mixing space” Forgot offsets OR missing sources Add TEFs or check source list
Nonsensical results (>100%) Convergence failure Increase iterations to 100,000
Model won’t run Data inconsistency Check all table names match

Summary & Next Steps

What You’ve Learned

Example 1: Basic mixing equation — consumer position determines proportions

Example 2: Why offsets and concentrations are essential for realistic models

Example 3: How routing captures protein-selective collagen synthesis

Practical skills: Data entry, copy-paste workflow, troubleshooting

Interpretation: Different estimate types answer different questions

When to use which: Unrouted (never for collagen) vs. Routed (always for collagen)

End of Module 5

Continue to Module 6 — A full worked ReSources examples for dietary reconstruction