Table of Contents

Seed set and fruit shape in apple

Master 2 BV, specialties “SEPPRO&SPP” and “Santé des Plantes - PHP”. Duration: about 2 hours. You may work alone or in pairs.

This exercise uses a GroIMP model based on: Drazeta L., Lang A., Hall A.J., Volz R.K., Jameson P.E. (2004). Modelling the influence of seed set on fruit shape in apple. Journal of Horticultural Science & Biotechnology 79(2): 241–245. doi:10.1080/14620316.2004.11511755

Learning objectives

At the end of this session you should be able to:

You do not need to be a programmer. Every change you are asked to make is a change of one value at the top of the file.

Schedule

Part Content Time
0 Setup: open and run the model 10 min
1 The biology in brief 15 min
2 The model at a glance 20 min
3 Designed experiments: where the seeds are 25 min
4 The virtual orchard: comparing with the paper 25 min
5 Your specialty: plant health or seed science 15 min
6 Synthesis 10 min
(Bonus) Fruit drop of poorly seeded fruits for fast groups

Part 0 – Setup (10 min)

  1. Start GroIMP and open Drazeta.gsz (File → Open).
  2. Open the code in the text editor (Panels → Explorers → Files, then double-click the file).
  3. This model has no time steps: each time the model is reset, it creates a new sample of 30 fruits (an “orchard”), computes their seeds, sector weights and shapes, draws them, and fills the charts.
  4. To create a new sample, press the reset button, or save the code (Ctrl+S): saving recompiles and resets the model.

What you get:

Chart What it shows
Seed asymmetry vs number of viable seeds one point per fruit – compare with Fig. 3 of the paper
Sector weight vs seed weight model one point per sector (5 per fruit) – compare with Fig. 4 of the paper
Fruit weight vs number of viable seeds one point per fruit

All parameters you will change are at the top of the file, in the section PARAMETERS. Change one value, save, and look at the result.

Part 1 – The biology in brief (15 min)

The apple fruit develops from an ovary made of five fused carpels. Each carpel encloses a locule containing two ovules, so an apple can contain at most 10 seeds. Apple is self-incompatible: ovules are only fertilised after cross-pollination, usually by bees carrying pollen from a compatible cultivar (a “pollinizer”).

After fertilisation, seeds develop and produce hormones (auxins, gibberellins) that stimulate the growth of the surrounding flesh and make the fruit a strong sink for assimilates. Drazeta et al. found three kinds of seeds in mature fruits:

A fruit whose seeds are unevenly distributed tends to grow unevenly: it becomes lopsided. In New Zealand, about 2.4 % of the apple crop was rejected in the packhouse because of lopsidedness – not counting the fruit already discarded by pickers.

Questions (answer in 2–3 lines each):

  1. Q1. List the steps between the opening of the flower and the presence of a viable seed. At which steps can things go wrong?
  2. Q2. Why does a fruit with seeds only on one side grow unevenly? Use the words sink, hormone and locule.
  3. Q3. Why do apple growers plant pollinizer trees in their orchards and bring beehives during flowering?

Part 2 – The model at a glance (20 min)

2.1 From seeds to sector weight

Drazeta et al. cut each fruit into five sectors, one per carpel, weighed each sector and the seeds in each locule, and fitted a three-order model (their Equation 4):

S_i = a + b·w_i + c·(w_i-1 + w_i+1) + d·(w_i-2 + w_i+2)

where S_i is the weight of sector i, w_i the combined weight of the seeds in its own locule, w_i-1 and w_i+1 the seed weights of the two flanking locules, and w_i-2, w_i+2 those of the two distant locules.

Coefficient Meaning Value in the paper In the model (g sector per mg seed)
a intercept: sector weight without any seed effect fitted per fruit A_MEAN = 22 g, varies between fruits (A_SD = 3 g)
b first order: own locule 75.36 g/g (P ≤ 0.001) B = 0.0755
c second order: flanking locules 18.97 g/g (P ≤ 0.05) C = 0.0189
d third order: distant locules 0.25 g/g (P = 0.97) D = 0

In the code, the equation looks like this:

for (int j = 0; j < 5; j++) {
    seedTerm[j] = B * locule(j)
                + C * (locule(j - 1) + locule(j + 1))
                + D * (locule(j - 2) + locule(j + 2));
    sectorWt[j] = a + seedTerm[j];
    totalWt += sectorWt[j];
}

locule(j) returns the combined seed weight of locule j. The locules form a circle, so locule 0 and locule 4 are neighbours: the function “wraps around”.

2.2 From pollination to seeds

boolean fertilised = USE_PATTERN ? (PATTERN[j][i] == 1) : probability(POLL_PROB);
if (!fertilised) {                           // rudimentary seed
    seedClass[j][i] = 0;  seedWeight[j][i] = random(0.5, 5.0);
} else if (probability(ABORT_PROB)) {        // aborted: empty seed
    seedClass[j][i] = 1;  seedWeight[j][i] = random(10.0, 30.0);
} else {                                     // viable seed
    seedClass[j][i] = 2;  seedWeight[j][i] = max(40, normal(VIABLE_MEAN, VIABLE_SD));
}

Each of the 10 ovules is fertilised with probability POLL_PROB (or according to a fixed PATTERN, see Part 3). A fertilised seed aborts with probability ABORT_PROB.

2.3 Measuring asymmetry

The paper defines an index of seed asymmetry I by treating the fruit as a five-spoked wheel with a weight at the end of each spoke for every seed. I is the distance between the centre of gravity of the wheel and its axis: 0 = perfect symmetry, 1 = maximum asymmetry. Following the authors, only viable seeds are counted, all with the same weight. The console also gives the same index computed with the sector weights, I(fruit), and the ratio largest / smallest sector. A fruit counts as lopsided when this ratio exceeds LOPSIDED_RATIO = 1.4.

2.4 From weights to shape

For each sector, the model places a point on the fruit's equator at a distance proportional to the square root of the sector weight, then draws a smooth closed curve through the five points and sweeps a profile along it to build the 3D fruit.

Part 3 – Designed experiments: where the seeds are (25 min)

With USE_PATTERN = true, all 30 fruits share the same pollination pattern, set in PATTERN (1 = ovule fertilised, 0 = not fertilised, one line per locule). The fruits still differ because of seed abortion, seed weight and the intercept a.

For each pattern: write your prediction first (mean weight, how many fruits lopsided), then run and record the summary line of the console.

Pattern PATTERN Prediction Mean weight (g) Nb lopsided / 30 Typical largest/smallest ratio
Fully seeded {1,1},{1,1},{1,1},{1,1},{1,1}
One ovule missing {1,1},{1,1},{1,0},{1,1},{1,1}
One empty locule {1,1},{1,1},{0,0},{1,1},{1,1}
Two adjacent empty locules {1,1},{0,0},{0,0},{1,1},{1,1}
Two opposite empty locules {0,0},{1,1},{0,0},{1,1},{1,1}
Only one locule seeded {1,1},{0,0},{0,0},{0,0},{0,0}
No seed at all {0,0},{0,0},{0,0},{0,0},{0,0}

Part 4 – The virtual orchard: comparing with the paper (25 min)

Set USE_PATTERN = false. Every ovule is now fertilised at random with probability POLL_PROB.

4.1 Does the model reproduce the paper?

Run the model with the default values (POLL_PROB = 0.95, ABORT_PROB = 0.10). Because a reset makes a new sample of 30 fruits, reset 3–4 times and look at how the charts change.

4.2 Pollination and fruit quality

Run the orchard with different pollination probabilities (reset at least twice for each value and average):

POLL_PROB Prediction Mean weight (g) Mean viable seeds Nb lopsided / 30
0.95
0.7
0.5
0.3

Part 5 – Your specialty (15 min)

Choose one track. Restore the default values before you start (POLL_PROB = 0.95, ABORT_PROB = 0.10).

Track A – Plant Health

A1. Frost at flowering. A late frost damages the pistils of many flowers: fewer ovules can be fertilised. Represent this with POLL_PROB = 0.6. Compare with the reference.

A2. Seed abortion. Stress after fertilisation (drought, heat, a pathogen, a hormone imbalance) makes developing seeds abort. Set ABORT_PROB = 0.4.

A3. Codling moth. Larvae of the codling moth (Cydia pomonella) bore into the fruit core and eat the seeds. Represent a fruit whose larva destroyed the seeds of one locule with USE_PATTERN = true and the “one empty locule” pattern.

Questions:

Track B – Seed Science and Plant Propagation

B1. Pollinizer efficiency. A poorly placed or poorly compatible pollinizer (shared S-alleles, flowering not overlapping) gives low fertilisation. Compare POLL_PROB = 0.95, 0.8 and 0.6.

B2. Seed filling. Poor seed filling produces lighter viable seeds. Set VIABLE_MEAN = 45 (instead of 65) and compare.

B3. Testing the three-order model. Set C = 0 (no influence of flanking locules), then D = 0.0189 (distant locules as influential as flanking ones). How do fruit weight and lopsidedness change?

Questions:

Part 6 – Synthesis (10 min)

Bonus – June drop: fruits with too few seeds fall

For fast groups. In real orchards, many fruits with few seeds are shed during the “June drop”, so they are never harvested. Add this to the model:

  1. Add a constant MIN_SEEDS (e.g. 3) at the top of the file.
  2. In init(), after the first derive();, add a rule that removes every Fruit with fewer than MIN_SEEDS viable seeds (hint: f:Fruit, (f.nViable < MIN_SEEDS) =⇒ ;), followed by a second derive();.
  3. Run the pollination series of Part 4.2 again. How does fruit drop change the mean weight and the share of lopsided fruits among the harvested fruits?

Before the exam

This exercise is not handed in, but the questions above cover the kind of reasoning expected in the exam: explaining how seed set controls fruit growth, reading a simple model, and predicting and interpreting the outcome of a virtual experiment. Keep your answers and tables as revision notes.