====== 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. [[https://doi.org/10.1080/14620316.2004.11511755|doi:10.1080/14620316.2004.11511755]] ===== Learning objectives ===== At the end of this session you should be able to: * explain how pollination, fertilisation and seed development determine the size and shape of an apple fruit; * read a simple statistical model (a regression equation) and follow how it is used inside a 3D simulation; * test the model against published data (figures of the original paper); * use the model to explore situations that are difficult to test in the orchard: poor pollination, seed abortion, damage to one locule; * critically judge what the model does and does not represent. 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) ===== - Start GroIMP and open ''Drazeta.gsz'' (//File → Open//). - Open the code in the text editor (//Panels → Explorers → Files//, then double-click the file). - 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. - **To create a new sample, press the reset button, or save the code (Ctrl+S)**: saving recompiles and resets the model. What you get: * **3D view:** 30 fruits in rows of 6. Each label shows the fruit number and its weight in g. * **XL Console:** one line per fruit (number of viable seeds, weight, asymmetry indices), then a summary line for the whole orchard. Set ''VERBOSE = true'' to see the seeds and sectors of every fruit. * **Three charts:** | //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: * **rudimentary** seeds (≤ 10 mg): ovules that were never fertilised or aborted very early; * **empty** seeds (about 10–30 mg): fertilised seeds that aborted later, with a resorbed interior; * **viable** seeds (about 40–100 mg): fully developed, normally distributed around 60–70 mg. 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):** - **Q1.** List the steps between the opening of the flower and the presence of a viable seed. At which steps can things go wrong? - **Q2.** Why does a fruit with seeds only on one side grow unevenly? Use the words //sink//, //hormone// and //locule//. - **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". * **Q4.** Calculate by hand the weight of one sector of a fruit with ''a'' = 22 g in which all 10 seeds are viable and weigh 65 mg each. Then calculate the weight of a sector whose own locule contains only two rudimentary seeds (about 3 mg each), its neighbours being normal. * **Q5.** Why is ''D'' set to 0 in the model? What does the P value of 0.97 mean? * **Q6.** Why does ''a'' vary from fruit to fruit? The authors say that the remaining variability "is probably the result of a range of factors such as vigour, crop load and position in the canopy". Which of these factors could you explain with the model of our previous exercise (assimilate transport)? ==== 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''. * **Q7.** With ''POLL_PROB'' = 0.95 and ''ABORT_PROB'' = 0.10, how many viable seeds do you expect per fruit on average? Compare with the value measured by Drazeta et al. in lopsided 'Granny Smith': 8.63 ± 0.2 seeds. ==== 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. * **Q8.** What is //I// for a fruit with one single viable seed? With 10 seeds? With 5 seeds, one in each locule? With no seed? ==== 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. * **Q9.** Why the square root, and not the weight itself? (Hint: think of a sector as a wedge of cake of fixed height. How does its volume change when its radius doubles?) ===== 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}'' | | | | | * **Q10.** Two adjacent or two opposite empty locules: both fruits have the same number of seeds. Which one is more lopsided, and why? Use the coefficients ''B'' and ''C'' in your answer. * **Q11.** A fruit with no seed at all is small, but is it lopsided? Latimer (1937) observed that apples with one or two seeds were lopsided, whereas seedless apples were symmetrical. Does the model agree? * **Q12.** Look at the fully seeded fruits: they are not all identical. Where does the variation come from? ===== 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. * **Q13.** Compare the chart //Seed asymmetry vs number of viable seeds// with Fig. 3 of the paper. Do you see the same pattern? To get a better picture, lower ''POLL_PROB'' to 0.6 so that you get fruits with few seeds too. * **Q14.** Compare the chart //Sector weight vs seed weight model// with Fig. 4 of the paper (r = 0.42). What would the chart look like if all fruits had the same intercept? Try it: set ''A_SD = 0''. Then restore ''A_SD = 3''. * **Q15.** Compare the mean number of viable seeds with the value in the paper (8.63). What would you change in the model if it did not match? ==== 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 | | | | | * **Q16.** How do fruit weight and the number of lopsided fruits change with pollination? Is the relation for lopsided fruits monotonic? Explain, using your answer to Q11. * **Q17.** Why is it important to average several resets before drawing a conclusion? ===== 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:** * **QA1.** Compare A1 and A2: the number of viable seeds may be similar, but is the effect on fruit weight and shape the same? Why? (Hint: what is the weight of an "empty" seed compared with a rudimentary one?) * **QA2.** A codling moth larva usually reaches the seeds several weeks after fruit set, when part of the fruit growth has already taken place. Does the model take this into account? Would the real damage to fruit shape be larger or smaller than simulated? * **QA3.** Frost damage and pollinator decline both lower ''POLL_PROB''. How could a grower tell them apart in the orchard? ==== 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:** * **QB1.** In B2 the number of seeds is unchanged. Why does fruit weight change? What does this tell you about the difference between seed **number** and seed **weight** as predictors of fruit shape? * **QB2.** In B3, does the influence of the flanking locules make fruits more or less lopsided? Why? * **QB3.** A grower wants large, well-shaped fruit. Based on your results, rank these measures by expected benefit: more beehives, a better pollinizer, fruit thinning, protection against late frost. ===== Part 6 – Synthesis (10 min) ===== * **Q18.** The model is a **statistical** model (a regression fitted to data) inside a **3D** simulation. What does the 3D view add? What does it not add? * **Q19.** The most common form of asymmetry described in the paper is a "severely dropped shoulder at the calyx end". Can the model show this? Why not? * **Q20.** List two strengths and two limitations of this model. Which processes would you need to add to make it **mechanistic** (hint: think of the previous exercise on assimilate transport)? ===== 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: - Add a constant ''MIN_SEEDS'' (e.g. 3) at the top of the file. - 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();''. - 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.