diff --git a/DEB model/mydata_Pseudemydura_umbrina.m b/DEB model/mydata_Pseudemydura_umbrina.m index 52ee750..3ec729d 100644 --- a/DEB model/mydata_Pseudemydura_umbrina.m +++ b/DEB model/mydata_Pseudemydura_umbrina.m @@ -1,32 +1,4 @@ -%% mydata_my_pet -% Sets referenced data - -%% function [data, txt_data, metadata] = mydata_Pseudemydura_umbrina - % created by Starrlight Augustine, Bas Kooijman, Dina Lika, Goncalo Marques and Laure Pecquerie 2015/03/31 - - %% Syntax - % [data, txt_data, metadata] = <../mydata_my_pet.m *mydata_my_pet*> - - %% Description - % Sets data, pseudodata, metadata, explanatory text, weight coefficients. - % Meant to be a template in add_my_pet - % - % Output - % - % * data: structure with data - % * txt_data: text vector for the presentation of results - % * metadata: structure with info about this entry - - %% To do (remove these remarks after editing this file) - % * copy this template; replace 'my_pet' by the name of your species - % * fill in metadata fields with the proper information - % * insert references for the data (an example is given) - % * edit fact-list for your species, where you can add species and/or data properties - % * edit real data; remove all data that to not belong to your pet - % * complete reference list - % * OPTIONAL : add discussion points / comments before the reference list - %% set metadata T_C = 273.15; % K, temperature at 0 degrees C (used in T_typical) @@ -39,303 +11,332 @@ metadata.species_en = 'Western Swamp Turtle'; metadata.T_typical = T_C + 17.7; % K metadata.data_0 = {'ab'; 'ap'; 'am'; 'Lb'; 'Lp'; 'Li'; 'Wdb'; 'Wdp'; 'Wdi'; 'Ri'}; % tags for different types of zero-variate data -%metadata.data_1 = {'t-L', 'L-W', 'T_O'}; % tags for different types of uni-variate data -metadata.data_1 = {'T_O','t-L', 'L-W', 't-W'}; % tags for different types of uni-variate data +metadata.data_1 = {'t_L'; 't_W'; 'L_W'; 'T_O'}; % tags for different types of uni-variate data metadata.COMPLETE = 3.3; % Using criteria of LikaKear2011 metadata.author = {'Sophie Arnall'}; -metadata.date_acc = [2013 05 03]; -metadata.email = {'arnals01@student.uwa.edu.au'}; +metadata.date_acc = [2016 02 12]; +metadata.email = {'sophie.arnall@research.uwa.edu.au'}; metadata.address = {'University of Western Australia, 6009, Australia'}; -% uncomment and fill in the following fields when the entry is updated: -% metadata.author_mod_1 = {'author2'}; % put names as authors as separate strings: {'author1','author2'} , with corresponding author in first place -% metadata.date_mod_1 = [2017 09 18]; % [year month day], date modified entry is accepted into the collection -% metadata.email_mod_1 = {'myname@myuniv.univ'}; % e-mail of corresponding author -% metadata.address_mod_1 = {'affiliation, zipcode, country'}; % affiliation, postcode, country of the corresponding author - %% set data -% zero-variate data; -% typically depend on scaled functional response f. -% here assumed to be equal for all real data; the value of f is specified in pars_init_my_pet. - -% age 0 is at onset of embryo development -data.ab = 250; units.ab = 'd'; label.ab = 'age at birth'; bibkey.ab = 'Mitchell_et_al_2006'; - temp.ab = T_C + 24.532; bibkey.ab = 'Mitchell_et_al_2006'; % K, temperature, based on ; - % observed age at birth is frequently larger than ab, because of diapauzes during incubation -data.ap = data.ab+11*365; units.ap = 'd'; label.ap = 'age at puberty'; bibkey.ap = 'Jarvie_unpub'; - temp.ap = T_C + 21; bibkey.ap = 'Jarvie_unpub'; % K, temperature, based on simulation of Tb from 2000-2013 at Orford, see last lines of Sphenodon_punctatus.R;; - % observed age at puberty is frequently larger than ap, - % because allocation to reproduction starts before first eggs appear -data.am = 100*365; units.am = 'd'; label.am = 'life span'; bibkey.am = 'Dawbin_1982'; - temp.am = T_C + 21; bibkey.am = 'Jarvie_unpub'; % K, temperature, based on simulation of Tb from 2000-2013 at Stephens Island/Takapourewa, see last lines of Sphenodon_punctatus.R;; -% (accounting for aging only) - -% Please specify what type of length measurement is used for your species. -% We put here snout-to-vent length, but you should change this depending on your species: -data.Lb = 2.6; units.Lb = 'cm'; label.Lb = 'snout to vent length at birth'; bibkey.Lb = 'Cree_unpub'; -data.Lp = 10.7; units.Lp = 'cm'; label.Lp = 'snout to vent length at puberty'; bibkey.Lp = 'Cree_1994'; -data.Li = 13.1; units.Li = 'cm'; label.Li = 'ultimate snout to vent length'; bibkey.Li = 'Jarvie_unpub'; -data.Wdb = 5.2*0.3; units.Wdb = 'g'; label.Wdb = 'dry weight at birth'; bibkey.Wdb = 'Cree_unpub'; -%find dry weight at puberty -data.Wdp = 236.5*0.3; units.Wdp = 'g'; label.Wdp = 'dry weight at puberty'; bibkey.Wdp = 'Cree_1994'; -data.Wdi = 417*0.3; units.Wdi = 'g'; label.Wdi = 'ultimate dry weight'; bibkey.Wdi = 'Dawbin_1982'; -data.Ri = 5/365; units.Ri = '#/d'; label.Ri = 'maximum reprod rate'; bibkey.Ri = 'Cree_1994'; - % for an individual of ultimate length Li - temp.Ri = T_C + 15.52; bibkey.Ri = 'Jarvie_unpub'; % K, temperature, based on simulation of Tb from 2000-2013 at Stephens Island/Takapourewa, see last lines of Sphenodon_punctatus traits.R; - -% uni-variate data - -% uni-variate data at f = 1.0 (this value should be added in pars_init_my_pet as a parameter f_tL) -% snout-to-vent length and wet weight were measured at the same time -%data.tL = [0 539.105 1036.6 1526.43 2023.925 2573.615 3170.39 3872.285 4534.395 5254.905 5982.715 6844.115 7784.355 8729.705 9691.115 10644.13 11670.875 12692.145 13765.975 14779.58 15753.765 16809.345 17830.98 18897.145 19950.17 20934.94 21851.09; % d, time since birth -% 5.037 6.256 7.4811 8.725 9.8895 11.0948 12.2177 13.3859 14.4665 15.4192 16.2948 17.0951 17.8422 18.5323 19.1243 19.6361 20.0568 20.3866 20.6559 20.9325 21.1449 21.3802 21.5316 21.6226 21.7174 21.7815 21.8688]'; % cm, snout-to-vent length at f and T -%units.tL = {'d', 'cm'}; label.tL = {'time since birth', 'snout to vent length'}; bibkey.tL = 'Dawbin_1982'; -% temp.tL = T_C + 15.52; % K, temperature - -data.tL = [1 8 15 22 29 36 43 50 57 64 71 78 84 91 98 105 112; % d, time since birth - 2.36 2.52 2.23 2.7 2.82 2.91 3.08 3.22 3.33 3.47 3.72 3.87 3.98 4.12 4.18 4.29 4.3]'; % cm, snout-to-vent length at f and T -units.tL = {'d', 'cm'}; label.tL = {'time since birth', 'snout to vent length'}; bibkey.tL = 'Dawbin_1982'; - temp.tL = T_C + 17.5; % K, temperature - -data.LW = [2.36 2.52 2.23 2.7 2.82 2.91 3.08 3.22 3.33 3.47 3.72 3.87 3.98 4.12 4.18 4.29 4.3; % cm, snout-to-vent length at f - 4.1 4.7 5 5.7 6.3 6.9 7.4 8.2 8.9 9.6 11.7 13.1 13.9 14.7 15.6 16.5 17.5]'; % g, wet weight at f and T -units.LW = {'cm', 'g'}; label.LW = {'snout to vent length', 'wet weight'}; bibkey.LW = 'Dawbin_1982'; +% zero-variate data (taken from literature and zoo females) +data.ab = 153; units.ab = 'd'; label.ab = 'age at birth'; bibkey.ab = 'S. Arnall unpublished data'; comment.ab = 'Average of 8 individuals born in captivity that were incubated at 24oC constant for entire incubation period (range 126-172 days; born prior to May 1; IDs 942, 945, 946, 991, 997, 1086, 1087, 1088)'; + temp.ab = T_C + 24.532; comment.temp.ab = 'K, temperature; actual temp in incubator (confirmed constant; retrospective correction incubators 1,2 and 4)'; + +data.ap = 3767; units.ap = 'd'; label.ap = 'age at puberty'; bibkey.ap = 'S. Arnall unpublished data'; comment.ap = 'Average time for the 12 adult females born in captivity to have first become gravid (scanned gravid; IDs 261, 324, 378, 468, 490, 496, 501, 504, 525, 618, 635, 728)'; + temp.ap = T_C + 21; comment.temp.ab = 'K, temperature; approximate CTE'; + +data.am = 36500; units.am = 'd'; label.am = 'life span'; bibkey.am = 'S. Arnall unpublished data'; comment.am = 'UNKNOWN. Best guess: certainly greater than 61 years (females acquired as adults in 1963 are still producing viable clutches), likely 80-100 (G. Kuchling pers comm.)'; + temp.am = T_C + 21; + +data.Lb = 2.6; units.Lb = 'cm'; label.Lb = 'carapace length at birth'; bibkey.Lb = 'S. Arnall unpublished data'; comment.Lb = 'Average of ab individuals'; +data.Lp = 10.7; units.Lp = 'cm'; label.Lp = 'carapace length at puberty'; bibkey.Lp = 'S. Arnall unpublished data'; comment.Lp = 'Average of ap individuals, taken at first instance of being gravid'; +data.Li = 13.1; units.Li = 'cm'; label.Li = 'ultimate carapace length'; bibkey.Li = {'S. Arnall unpublished data'; 'Burbidge et al. 2010'}; comment.Li = 'Best guess, based on CZ2 (largest female) who has grown less than 3mm in 10 years; "Females do not grow beyond 135mm carapace length" (Burbidge et al. 2010)'; +data.Wdb = 5.2; units.Wdb = 'g'; label.Wdb = 'wet weight at birth'; bibkey.Wdb = {'S. Arnall unpublished data'; 'Burbidge et al. 2010'}; comment.Wdb = 'Average of ab individuals'; +data.Wdp = 236.5; units.Wdp = 'g'; label.Wdp = 'wet weight at puberty'; bibkey.Wdp = 'S. Arnall unpublished data'; comment.Wdp = 'Average of ap individuals, taken at first instance of being gravid'; +data.Wdi = 417; units.Wdi = 'g'; label.Wdi = 'ultimate wet weight'; bibkey.Wdi = 'S. Arnall unpublished data'; comment.Wdi = 'Best guess, based on maximum weight recorded for CZ2 (largest female; 417.1g); "Females do not exceed 410g" (Burbidge et al. 2010); revision from 408g in Burbidge 1981'; +data.Ri = 5/365; units.Ri = '#/d'; label.Ri = 'maximum reprod rate'; bibkey.Ri = 'Burbidge 1981'; comment.Ri = 'Females lay 3-5 eggs'; +temp.Ri = T_C + 21; + +%% uni-variate data +% carapace length and wet weight were measured at the same time +%========================================================================== +%TIME-LENGTH CAPTIVE FEMALE SET; n=6 +data.tL = [ ... +% ID 261 +1 2.56 +382 5.38 +740 6.82 +1117 6.91 +1505 7.86 +1608 7.84 +1886 7.93 +2276 8.45 +2646 8.46 +3027 9.42 +3369 10.33 +3793 10.46 +4145 10.57 +4838 10.95 +5223 10.98 +5567 11.07 +6309 11.21 +% ID 378 +1 2.59 +363 6.53 +717 6.88 +1135 6.91 +1511 7.35 +1888 8.38 +2241 8.88 +2611 10.21 +3008 10.27 +3430 10.27 +4081 10.34 +4469 10.42 +4810 10.69 +5556 11.11 +% ID 501 +1 2.81 +365 7.03 +794 7.8 +1152 7.93 +1524 8.5 +1911 9.77 +2277 10.35 +2994 10.75 +3386 10.76 +3722 10.96 +4477 11.16 +% ID 525 +1 2.79 +400 6.88 +794 8.04 +1160 8.34 +1559 9.09 +1918 9.79 +2671 10.62 +3018 10.78 +3367 10.96 +% ID 635 +1 2.58 +407 6.87 +765 7.61 +1165 8.05 +1921 8.26 +2268 8.67 +2615 9.15 +2977 9.9 +3345 9.95 +% ID 728 +1 2.5 +420 7.18 +1186 8.86 +1533 9.17 +1881 9.35 +2242 9.71 +2610 10.34]; +units.tL = {'d', 'mm'}; label.tL = {'time since birth', 'midline carapace length'}; bibkey.tL = ''; temp.tL = T_C + 21; % K, + +%========================================================================== +% LENGTH-WEIGHT CAPTIVE FEMALE SET; n=6 +data.LW = [ ... +% ID 261 +2.56 4.7 +5.38 32.7 +6.82 62.4 +6.91 64.5 +7.86 91.4 +7.84 94.3 +7.93 95.7 +8.45 118.7 +8.46 119 +9.42 150.7 +10.33 195.4 +10.46 212.3 +10.57 218.5 +10.95 229.2 +10.98 228.8 +11.07 232.1 +11.21 247.2 +% ID 378 +2.59 4.3 +6.53 51.2 +6.88 62.3 +6.91 64.7 +7.35 77.5 +8.38 98.3 +8.88 117.7 +10.21 176.7 +10.27 185.3 +10.27 190.3 +10.34 191.7 +10.42 196.3 +10.69 203.6 +11.11 230.9 +% ID 501 +2.81 5.5 +7.03 67.5 +7.8 82.7 +7.93 92 +8.5 105.7 +9.77 152.9 +10.35 183 +10.75 193 +10.76 198.8 +10.96 203.2 +11.16 221.3 +% ID 525 +2.79 5.6 +6.88 57.8 +8.04 94.6 +8.34 102.7 +9.09 128 +9.79 155.5 +10.62 207.3 +10.78 213.6 +10.96 215 +% ID 635 +2.58 5.3 +6.87 60.9 +7.61 82.1 +8.05 98 +8.26 112.9 +8.67 117.9 +9.15 142.1 +9.9 176 +9.95 197.5 +% ID 728 +2.5 4.8 +7.18 68.6 +8.86 120.9 +9.17 128.1 +9.35 135.4 +9.71 148.7 +10.34 182.7]; +units.LW = {'cm', 'g'}; label.LW = {'midline carapace length', 'wet weight'}; bibkey.LW = ''; + +%========================================================================== +%TIME-WEIGHT CAPTIVE FEMALE SET; n=6 data.tW = [ ... -1 5.7 -280 40.5 -369 34.9 -386 43 -614 59.9 -736 53.5 -766 59.8 -809 61.4 -838 61.3 -868 61.7 -898 63.1 -930 67.4 -950 64.1 -1129 71 -1150 72.9 -1180 74.5 -1206 73.9 -1235 74.5 -1262 83.2 -1290 95.8 -1317 99.5 -1340 93.7 -1468 101.3 -1508 101.9 -1542 100.4 -1570 103.1 -1605 104.1 -1627 104.7 -1659 103.9 -1699 98 -1844 102.5 -1879 104.9 -1910 107.6 -1940 114.3 -1972 118.1 -2001 131.5 -2032 137.1 -2059 137.2 -2078 133 -2204 137 -2266 137 -2295 139.1 -2326 141.1 -2360 146.6 -2394 143 -2441 135 -2583 142.7 -2625 145.9 -2657 149.1 -2688 152.9 -2716 164.7 -2745 175.3 -2778 182.7 -2805 163.2 -2850 184 -2880 182 -2934 173.8 -3008 177.4 -3037 183 -3066 187.5 -3094 195.5 -3121 188.1 -3154 177.5 -3315 189.1 -3378 189.2 -3391 192.5 -3439 198.1 -3470 194.9 -3538 183.5 -3692 184.3 -3725 189.9 -3754 195.6 -3784 205.1 -3819 217.3 -3862 223.3 -3883 237.8 -3915 241.1 -3946 233.4 -3969 226 -4049 215 -4074 226.6 -4084 225.5 -4106 229.2 -4121 230.9 -4140 234.4 -4147 238.4 -4176 249.2 -4200 233.4 -4232 235.1 -4266 225.6 -4416 219.2 -4450 222.6 -4452 210.8 -4480 215.8 -4481 207 -4500 233.2 -4533 253.4 -4570 246.9 -4599 244.9 -4632 227.2 -4779 237 -4810 250 -4867 245.9 -4937 257.1 -4986 259.2 -5028 260 -5059 257.9 -5088 245.5 -5147 258.3 -5176 257 -5196 262.3 -5213 267.7 -5231 261.9 -5232 268.9 -5247 280.5 -5254 282.2 -5265 284.6 -5272 288.7 -5283 287.6 -5293 261.2 -5299 271.2 -5311 280.4 -5316 278.9 -5329 254.9 -5360 237.8 -5502 251.4 -5536 253.4 -5552 248.5 -5554 262.4 -5609 273.8 -5621 273 -5631 280.3 -5642 289.7 -5651 271.1 -5704 263.9 -5725 235.3]; -units.tW = {'days', 'g'}; label.tW = {'age', 'mass'}; bibkey.tW = ''; - +% ID 261 +1 4.7 +382 32.7 +740 62.4 +1117 64.5 +1505 91.4 +1608 94.3 +1886 95.7 +2276 118.7 +2646 119 +3027 150.7 +3369 195.4 +3793 212.3 +4145 218.5 +4838 229.2 +5223 228.8 +5567 232.1 +6309 247.2 +% ID 378 +1 4.3 +363 51.2 +717 62.3 +1135 64.7 +1511 77.5 +1888 98.3 +2241 117.7 +2611 176.7 +3008 185.3 +3430 190.3 +4081 191.7 +4469 196.3 +4810 203.6 +5556 230.9 +% ID 501 +1 5.5 +365 67.5 +794 82.7 +1152 92 +1524 105.7 +1911 152.9 +2277 183 +2994 193 +3386 198.8 +3722 203.2 +4477 221.3 +% ID 525 +1 5.6 +400 57.8 +794 94.6 +1160 102.7 +1559 128 +1918 155.5 +2671 207.3 +3018 213.6 +3367 215 +% ID 635 +1 5.3 +407 60.9 +765 82.1 +1165 98 +1921 112.9 +2268 117.9 +2615 142.1 +2977 176 +3345 197.5 +% ID 728 +1 4.8 +420 68.6 +1186 120.9 +1533 128.1 +1881 135.4 +2242 148.7 +2610 182.7]; +units.tW = {'d', 'g'}; label.tW = {'time since birth', 'wet weight'}; bibkey.tW = ''; temp.tW = T_C + 21; % K, temperature + +%========================================================================== +% METABOLIC DATA; n=8 %ID 139; wet weight 362.4g data.TO = [ ... -%data.TO_139 = [ ... 15 0.002085919 21 0.006957514 25 0.01929228 -31 0.03080439%]; -%units.TO_139 = {'C', 'ml O2/g/h'}; label.TO_139 = {'temp', 'O2 consumption'}; bibkey.TO_139 = 'Arnall et al. 2015'; - +31 0.03080439 % ID 204; wet weight 288.2g -%data.TO_204 = [ ... 15 0.002556972 21 0.007311692 25 0.01694881 -31 0.02668169%]; -%units.TO_204 = {'C', 'ml O2/g/h'}; label.TO_204 = {'temp', 'O2 consumption'}; bibkey.TO_204 = 'Arnall et al. 2015'; - +31 0.02668169 % ID 269; wet weight 297.2g -%data.TO_269 = [ ... 15 0.001478324 21 0.005955151 25 0.01790451 -31 0.03496208%]; -%units.TO_269 = {'C', 'ml O2/g/h'}; label.TO_269 = {'temp', 'O2 consumption'}; bibkey.TO_269 = 'Arnall et al. 2015'; - - +31 0.03496208 % ID 354; wet weight 277.3g -%data.TO_354 = [ ... 15 0.001204873 21 0.006027985 25 0.01742385 -31 0.02480775%]; -%units.TO_354 = {'C', 'ml O2/g/h'}; label.TO_354 = {'temp', 'O2 consumption'}; bibkey.TO_354 = 'Arnall et al. 2015'; - - +31 0.02480775 % ID 524; wet weight 322.0g -%data.TO_524 = [ ... 15 0.001312231 21 0.005149532 25 0.01897694 -31 0.02305341%]; -%units.TO_524 = {'C', 'ml O2/g/h'}; label.TO_524 = {'temp', 'O2 consumption'}; bibkey.TO_524 = 'Arnall et al. 2015'; - - +31 0.02305341 % ID 690; wet weight 293.5g -%data.TO_690 = [ ... 15 0.002410638 21 0.008921721 25 0.01756489 -31 0.02747758%]; -%units.TO_690 = {'C', 'ml O2/g/h'}; label.TO_690 = {'temp', 'O2 consumption'}; bibkey.TO_690 = 'Arnall et al. 2015'; - - +31 0.02747758 % ID 716; wet weight 269.3g -%data.TO_716 = [ ... 15 0.001236561 21 0.006155903 25 0.01767426 -31 0.02939617%]; -%units.TO_716 = {'C', 'ml O2/g/h'}; label.TO_716 = {'temp', 'O2 consumption'}; bibkey.TO_716 = 'Arnall et al. 2015'; - - +31 0.02939617 % ID Z1; wet weight 308.7g -%data.TO_Z1 = [ ... 15 0.002687078 21 0.005811912 25 0.01850031 31 0.03345558]; -units.TO_Z1 = {'C', 'ml O2/g/h'}; label.TO_Z1 = {'temp', 'O2 consumption'}; bibkey.TO_Z1 = 'Arnall et al. 2015'; -units.TO = {'C', 'ml O2/g/h'}; label.TO = {'temp', 'O2 consumption'}; bibkey.TO = 'Arnall et al. 2015'; +units.TO = {'C', 'ml O2/g/h'}; label.TO = {'temp', 'O2 consumption'}; bibkey.TO = 'Arnall et al. 2015'; %% set weights for all real data weight = setweights(data, []); %% overwriting weights (remove these remarks after editing the file) -% the weights were set automatically with the function setweigths, -% if one wants to ovewrite one of the weights it should always present an explanation example: -% -% zero-variate data: -% weight.Wdi = 100 * weight.Wdi; % Much more confidence in the ultimate dry -% % weight than the other data points - weight.Ri = 50*weight.Ri; - weight.Wdb = 50*weight.Wdb; - %weight.Wdp = 10*weight.Wdp; - weight.Wdi = 50*weight.Wdi; - %weight.ap = 10*weight.ap; - %weight.ab = 20*weight.ab; - weight.Li = 50*weight.Li; - weight.Lb = 50*weight.Lb; + weight.Wdb = 20*weight.Wdb; + weight.Wdi = 20*weight.Wdi; + weight.ab = 20*weight.ab; + weight.Li = 20*weight.Li; + weight.Li = 20*weight.Lb; % uni-variate data: - %weight.TO = 100 * weight.TO; - weight.LW = 50 * weight.LW; -weight.tL = 150 * weight.tL; -weight.tW = 150 * weight.tW; +% weight.TO = 50 * weight.TO; +weight.LW = 100 * weight.LW; +weight.tL = 100 * weight.tL; +weight.tW = 100 * weight.tW; + %% set pseudodata and respective weights % (pseudo data are in data.psd and weights are in weight.psd) [data, units, label, weight] = addpseudodata(data, units, label, weight); @@ -354,38 +355,72 @@ txt_data.label = label; txt_data.bibkey = bibkey; + %% References - bibkey = 'Wiki'; type = 'Misc'; bib = ... - 'URL = {https://en.wikipedia.org/wiki/Tuatara}'; % replace my_pet by latin species name - eval(['metadata.biblist.' bibkey, '= ''@', type, '{', bibkey, ', ' bib, '}'';']); - % - bibkey = 'Kooy2010'; type = 'Book'; bib = [ ... % used in setting of chemical parameters and pseudodata - 'author = {Kooijman, S.A.L.M.}, ' ... - 'year = {2010}, ' ... - 'title = {Dynamic Energy Budget theory for metabolic organisation}, ' ... - 'publisher = {Cambridge Univ. Press, Cambridge}, ' ... - 'pages = {Table 4.2 (page 150), 8.1 (page 300)}, ' ... - 'URL = {http://www.bio.vu.nl/thb/research/bib/Kooy2010.html}']; - eval(['metadata.biblist.' bibkey, '= ''@', type, '{', bibkey, ', ' bib, '}'';']); - % - bibkey = 'Jarvie_unpub'; type = 'Thesis'; bib = [ ... % meant as example; replace this and further bib entries - 'author = {Jarvie, S. and Cree, A.}, ' ... - 'year = {2015}, ' ... - 'title = {TBA}']; - eval(['metadata.biblist.' bibkey, '= ''@', type, '{', bibkey, ', ' bib, '}'';']); - % - bibkey = 'Anon2015'; type = 'Misc'; bib = [ ... - 'author = {Anonymous}, ' ... - 'year = {2015}, ' ... - 'URL = {http://www.fishbase.org/summary/Rhincodon-typus.html}']; - eval(['metadata.biblist.' bibkey, '= ''@', type, '{', bibkey, ', ' bib, '}'';']); +% % +% bibkey = 'S. Arnall unpublished data.'; type = 'Misc'; bib = ... +% 'Arnall, Sophie '; +% eval(['metadata.biblist.' bibkey, '= ''@', type, '{', bibkey, ', ' bib, '}'';']); +% +% % +% bibkey = 'Burbidge et al. 2010'; type = 'Report'; bib = [ ... +% 'author = {Burbidge A. A.}, {Kuchling G.}, {Olejnik C.}, {Mutter L.} ' ... +% 'year = {2010}, ' ... +% 'title = {Western Swamp Tortoise (Pseudemydura umbrina) recovery plan, 4th edition}, ' ... +% 'publisher = {Department of Parks and Wildlife, Western Australia}, ' ... +% ]; +% eval(['metadata.biblist.' bibkey, '= ''@', type, '{', bibkey, ', ' bib, '}'';']); +% +% % +% bibkey = 'Burbidge 1981'; type = 'Article'; bib = [ ... +% 'author = {Burbidge A. A.}, ' ... +% 'year = {1981}, ' ... +% 'title = {The ecology of the western swamp tortoise Pseudemydura umbrina (Testudines: Chelidae)}, ' ... +% 'journal = {Australian Wildlife Research}, ' ... +% 'volume = {8}, ' ... +% 'pages = {203-223}']; +% eval(['metadata.biblist.' bibkey, '= ''@', type, '{', bibkey, ', ' bib, '}'';']); +% +% % +% bibkey = 'Arnall et al. 2015'; type = 'Article'; bib = [ ... +% 'author = {Arnall S}, {Kuchling G.}, {Mitchell N.}' ... +% 'year = {2015}, ' ... +% 'title = {A thermal profile of metabolic performance in the rare Australian chelid, Pseudemydura umbrina}, ' ... +% 'journal = {Australian Journal of Zoology}, ' ... +% 'volume = {62}, ' ... +% 'pages = {448-453}']; +% eval(['metadata.biblist.' bibkey, '= ''@', type, '{', bibkey, ', ' bib, '}'';']); +% +% % +% bibkey = 'S. Arnall pers. obs.'; type = 'Misc'; bib = ... +% 'Arnall, Sophie '; +% eval(['metadata.biblist.' bibkey, '= ''@', type, '{', bibkey, ', ' bib, '}'';']); +% +% % +% bibkey = 'G. Kuchling pers. obs.'; type = 'Misc'; bib = [ ... +% 'Kuchling, Gerald ' +% eval(['metadata.biblist.' bibkey, '= ''@', type, '{', bibkey, ', ' bib, '}'';']);]; +% %% Facts -% * Standard model with egg (not foetal) development and no acceleration + +F1 = 'All stages experience torpor, and torpor is implemented by letting f switch backwards and forwards from f_zoo to 0'; +F2 = 'Torpor occurs approximately late-December until mid-May every year (zoo popn)'; +metadata.bibkey.F2 = 'S. Arnall pers. obs.'; +F3 = 'Mating occurs after torpor in the pond, approximately July-August (zoo popn)'; +metadata.bibkey.F3 = 'S. Arnall pers. obs.'; +F4 = 'Egg laying occurs before torpor, approximately November-December'; +metadata.bibkey.F4 = 'S. Arnall pers. obs.'; +F5 = 'Torpor seems required for reproduction'; +metadata.bibkey.F5 = 'G. Kuchling pers. obs.'; +F6 = 'Average mass loss over torpor period is 7.9%, no corresponding significant change to length (0.2mm; 2012-2013 data collected by S. Arnall)'; +metadata.bibkey.F6 = 'S. Arnall unpublished data'; +F7 = 'Some individuals occasionally undergo a half-torpor season due to being used in the public exhibit pond'; +metadata.bibkey.F7 = 'S. Arnall pers. obs.'; +F8 = 'All coupling/mating, entry into torpor, and exit from torpor is artificially imposed by staff at Perth Zoo. Females may have been capable of becoming gravid ealier if given opportunity to mate prior.'; +metadata.bibkey.F8 = 'S. Arnall pers. obs.'; + +metadata.facts = struct('F1',F1,'F2',F2,'F3',F3,'F4',F4,'F5',F5,'F6',F6,'F7',F7,'F8',F8); %% Discussion points -pt1 = 'Kearney: there is a github repository for this project git/mrke/tuatara'; -pt2 = 'Kearney: TA was estimated from Yuni''s unpublished data on sprint speed (/sprint speed/sprint_speed_N_occelatus_Yuni.csv), using script /sprint speed/TA from sprint speed.R'; -pt3 = 'Jarvie: metabolic rates were extracted from Jarvie''s measurements of metabolic rate at six temperatures (12, 20, 24, 27, 29 and 30C). We only used metabolic rate for animals presumed to be females, due to the temperatures that they were incubated at. We also used a metabolic rate measurement at 5C, for medium-sized animals, from Cartland Grimmond 1994'; -pt4 = 'Kearney: Temperatures for '; -metadata.discussion = {pt1; pt2; pt3; pt4}; + diff --git a/DEB model/pars_init_Pseudemydura_umbrina.m b/DEB model/pars_init_Pseudemydura_umbrina.m index b124f0b..d7956d8 100644 --- a/DEB model/pars_init_Pseudemydura_umbrina.m +++ b/DEB model/pars_init_Pseudemydura_umbrina.m @@ -30,37 +30,21 @@ % edit the values below such that predictions are not too far off; % the values must be set in the standard DEB units: % d for time; cm for length; J for energy; K for temperature -% %% primary parameters -% par.z =6.053; free.z = 0; units.z = '-'; label.z = 'z'; % zoom factor; for z = 1: L_m = 1 cm -% par.F_m = 6.5; free.F_m = 0; units.F_m = 'l/d.cm^2'; label.F_m = '{F_M}'; % max spec searching rate -% par.kap_X = 0.8; free.kap_X = 0; units.kap_X = '-'; label.kap_X = 'kap_X'; % digestion efficiency of food to reserve -% par.kap_P = 0.06; free.kap_P = 0; units.kap_P = '-'; label.kap_P = 'kap_P'; % faecation efficiency of food to faeces -% par.v = 0.09; free.v = 0; units.v = 'cm/d'; label.v = 'v'; % energy conductance -% par.kap = 0.95; free.kap = 0; units.kap = '-'; label.kap = 'kap'; % allocation fraction to soma -% par.kap_R = 0.95; free.kap_R = 0; units.kap_R = '-'; label.kap_R = 'kap_R'; % reproduction efficiency -% par.p_M = 110.38; free.p_M = 0; units.p_M = 'J/d.cm^3'; label.p_M = '[p_M]'; % vol-spec somatic maint -% par.p_T = 0; free.p_T = 0; units.p_T = 'J/d.cm^2'; label.p_T = '{p_T}'; % surf-spec somatic maint -% par.k_J = 0.002; free.k_J = 0; units.k_J = '1/d'; label.k_J = 'k_J'; % maturity maint rate coefficient -% par.E_G = 7023; free.E_G = 0; units.E_G = 'J/cm^3'; label.E_G = '[E_G]'; % spec cost for structure -% par.E_Hb = 655; free.E_Hb = 1; units.E_Hb = 'J'; label.E_Hb = 'E_Hb'; % maturity at birth -% par.E_Hp = 8.072e+04; free.E_Hp = 0; units.E_Hp = 'J'; label.E_Hp = 'E_Hp'; % maturity at puberty -% par.h_a = 4.352e-12; free.h_a = 0; units.h_a = '1/d^2'; label.h_a = 'h_a'; % Weibull aging acceleration -% par.s_G = 1e-4; free.s_G = 0; units.s_G = '-'; label.s_G = 's_G'; % Gompertz stress coefficient %% primary parameters -par.z =5.653; free.z = 1; units.z = '-'; label.z = 'z'; % zoom factor; for z = 1: L_m = 1 cm +par.z =4.275; free.z = 1; units.z = '-'; label.z = 'z'; % zoom factor; for z = 1: L_m = 1 cm par.F_m = 6.5; free.F_m = 0; units.F_m = 'l/d.cm^2'; label.F_m = '{F_M}'; % max spec searching rate par.kap_X = 0.8; free.kap_X = 0; units.kap_X = '-'; label.kap_X = 'kap_X'; % digestion efficiency of food to reserve -par.kap_P = 0.06; free.kap_P = 0; units.kap_P = '-'; label.kap_P = 'kap_P'; % faecation efficiency of food to faeces -par.v = 0.09; free.v = 1; units.v = 'cm/d'; label.v = 'v'; % energy conductance -par.kap = 0.95; free.kap = 0; units.kap = '-'; label.kap = 'kap'; % allocation fraction to soma +par.kap_P = 0.1; free.kap_P = 0; units.kap_P = '-'; label.kap_P = 'kap_P'; % faecation efficiency of food to faeces +par.v = 0.048; free.v = 1; units.v = 'cm/d'; label.v = 'v'; % energy conductance +par.kap = 0.90; free.kap = 0; units.kap = '-'; label.kap = 'kap'; % allocation fraction to soma par.kap_R = 0.95; free.kap_R = 0; units.kap_R = '-'; label.kap_R = 'kap_R'; % reproduction efficiency -par.p_M = 150.38; free.p_M = 1; units.p_M = 'J/d.cm^3'; label.p_M = '[p_M]'; % vol-spec somatic maint +par.p_M = 360.4; free.p_M = 1; units.p_M = 'J/d.cm^3'; label.p_M = '[p_M]'; % vol-spec somatic maint par.p_T = 0; free.p_T = 0; units.p_T = 'J/d.cm^2'; label.p_T = '{p_T}'; % surf-spec somatic maint par.k_J = 0.002; free.k_J = 0; units.k_J = '1/d'; label.k_J = 'k_J'; % maturity maint rate coefficient par.E_G = 7023; free.E_G = 0; units.E_G = 'J/cm^3'; label.E_G = '[E_G]'; % spec cost for structure -par.E_Hb = 705; free.E_Hb = 1; units.E_Hb = 'J'; label.E_Hb = 'E_Hb'; % maturity at birth -par.E_Hp = 1.172e+05; free.E_Hp = 1; units.E_Hp = 'J'; label.E_Hp = 'E_Hp'; % maturity at puberty +par.E_Hb = 877; free.E_Hb = 1; units.E_Hb = 'J'; label.E_Hb = 'E_Hb'; % maturity at birth +par.E_Hp = 2.537e+05; free.E_Hp = 1; units.E_Hp = 'J'; label.E_Hp = 'E_Hp'; % maturity at puberty par.h_a = 4.352e-12; free.h_a = 0; units.h_a = '1/d^2'; label.h_a = 'h_a'; % Weibull aging acceleration par.s_G = 1e-4; free.s_G = 0; units.s_G = '-'; label.s_G = 's_G'; % Gompertz stress coefficient @@ -70,14 +54,14 @@ par.T_AH = 50000; free.T_AH = 0; units.T_AH = 'K'; label.T_AH = 'T_AH'; % Arrhenius temperature par.T_L = T_C+0; free.T_L = 0; units.T_L = 'K'; label.T_L = 'T_L'; % Arrhenius temperature par.T_H = T_C+30; free.T_H = 0; units.T_H = 'K'; label.T_H = 'T_H'; % Arrhenius temperature -par.del_M = 0.4162; free.del_M = 1; units.del_M = '-'; label.del_M = 'del_M'; % shape coefficient +par.del_M = 0.35; free.del_M = 1; units.del_M = '-'; label.del_M = 'del_M'; % shape coefficient % environmental parameters (temperatures are in data) par.f = 1.0; free.f = 0; units.f = '-'; label.f = 'f'; % scaled functional response for 0-var data %par.f_tL = 0.9; free.f_tL = 0; units.f_tL = '-'; label.f_tL = 'f_tL'; % scaled functional response for 1-var data -par.s_M = .1; free.s_M = 0; units.s_M = '-'; label.s_M = 's_M'; % metabolic depression factor (cuts down p_M, v and k_J by this factor) -par.s_Megg = 0.25; free.s_Megg = 0; units.s_Megg = '-'; label.s_Megg = 's_Megg'; % metabolic depression factor (cuts down p_M, v and k_J by this factor) -par.s_MO2 = 0.610; free.s_MO2 = 0; units.s_MO2 = '-'; label.s_MO2 = 's_MO2'; % metabolic depression factor (cuts down p_M, v and k_J by this factor) +par.s_M = .15; free.s_M = 0; units.s_M = '-'; label.s_M = 's_M'; % metabolic depression factor (cuts down p_M, v and k_J by this factor) +par.s_Megg = 0.45; free.s_Megg = 0; units.s_Megg = '-'; label.s_Megg = 's_Megg'; % metabolic depression factor (cuts down p_M, v and k_J by this factor) +par.s_MO2 = 0.60; free.s_MO2 = 0; units.s_MO2 = '-'; label.s_MO2 = 's_MO2'; % metabolic depression factor (cuts down p_M, v and k_J by this factor) txt_par.units = units; txt_par.label = label; par.free = free; % pack units, label, free in structure %% set chemical parameters from Kooy2010 diff --git a/DEB model/predict_Pseudemydura_umbrina.m b/DEB model/predict_Pseudemydura_umbrina.m index cd0c9d0..70e4c4f 100644 --- a/DEB model/predict_Pseudemydura_umbrina.m +++ b/DEB model/predict_Pseudemydura_umbrina.m @@ -3,218 +3,227 @@ %% function [Prd_data, info] = predict_Pseudemydura_umbrina(par, chem, T_ref, data) -% created by Starrlight Augustine, Dina Lika, Bas Kooijman, Goncalo Marques and Laure Pecquerie 2015/01/30 - -%% Syntax -% [Prd_data, info] = <../predict_my_pet.m *predict_my_pet*>(par, chem, data) - -%% Description -% Obtains predictions, using parameters and data -% -% Input -% -% * par: structure with parameters (see below) -% * chem: structure with biochemical parameters -% * data: structure with data (not all elements are used) -% -% Output -% -% * Prd_data: structure with predicted values for data - -%% Remarks -% Template for use in add_my_pet - -%% unpack par, chem, cpar and data -cpar = parscomp_st(par, chem); -v2struct(par); v2struct(chem); v2struct(cpar); -v2struct(data); -%k_J=k_M; -pars_T=[T_A,T_L,T_H,T_AL,T_AH]; -%% compute temperature correction factors -TC_ab = tempcorr(temp.ab, T_ref, pars_T); -TC_ap = tempcorr(temp.ap, T_ref, pars_T); -TC_am = tempcorr(temp.am, T_ref, pars_T); -TC_Ri = tempcorr(temp.Ri, T_ref, pars_T); + % created by Starrlight Augustine, Dina Lika, Bas Kooijman, Goncalo Marques and Laure Pecquerie 2015/01/30 + + %% Syntax + % [Prd_data, info] = <../predict_my_pet.m *predict_my_pet*>(par, chem, data) + + %% Description + % Obtains predictions, using parameters and data + % + % Input + % + % * par: structure with parameters (see below) + % * chem: structure with biochemical parameters + % * data: structure with data (not all elements are used) + % + % Output + % + % * Prd_data: structure with predicted values for data + + %% Remarks + % Template for use in add_my_pet + + %% unpack par, chem, cpar and data + cpar = parscomp_st(par, chem); + v2struct(par); v2struct(chem); v2struct(cpar); + v2struct(data); + %k_J=k_M; + pars_T=[T_A,T_L,T_H,T_AL,T_AH]; + %% compute temperature correction factors + TC_ab = tempcorr(temp.ab, T_ref, pars_T); + TC_ap = tempcorr(temp.ap, T_ref, pars_T); + TC_am = tempcorr(temp.am, T_ref, pars_T); + TC_Ri = tempcorr(temp.Ri, T_ref, pars_T); % TC_tL = tempcorr(temp.tL, T_ref, pars_T); -%% zero-variate data - -% life cycle -pars_tp = [g * s_Megg; k; l_T; v_Hb; v_Hp]; % compose parameter vector (note s_Megg factor applied - egg in depression) -[t_p, t_b, l_p, l_b, info] = get_tp(pars_tp, f); % -, scaled times & lengths at f - -% birth -L_b = L_m * l_b; % cm, structural length at birth at f -Lw_b = L_b/ del_M; % cm, physical length at birth at f -Wd_b = L_b^3 * 0.5 * (1 + f * w); % g, dry weight at birth at f (remove d_V for wet weight) -aT_b = t_b/ (k_M * s_Megg) / TC_ab; % d, age at birth at f and T (note s_M factor applied - egg in depression) - -pars_tp = [g ; k; l_T; v_Hb; v_Hp]; % compose parameter vector -[t_p, t_b, l_p, l_b, info] = get_tp(pars_tp, f); % -, scaled times & lengths at f - -% puberty -L_p = L_m * l_p; % cm, structural length at puberty at f -Lw_p = L_p/ del_M; % cm, physical length at puberty at f -Wd_p = L_p^3 * d_V * (1 + f * w); % g, dry weight at puberty (remove d_V for wet weight) -%aT_p = t_p/ TC_ap; % d, age at puberty at f and T - -%% uni-variate data - -% code to simulate growth under fluctuating temperature and food (pond duration) -years=100; % years to simulate -days=sort(repmat(1:182:364*years,1,2)); % set up pond durations of 182 days, and dry periods of the same length (one day short of year!) -act=repmat([1 1 0 0 ],[1,years]); % activity states -tf=vertcat(days,act)'; % vector of hydroperiods/dry periods lasting 182 days -csvwrite('tf.csv',tf); -tR=1:365:years*365; % intervals to get reproduction output -TC_f=0.2779; % temp correction factor when in water -TC_0=1.1317; % temp correction factor when on land -t=1:(365*years); % vector of days to simulate -eLHR0 = [f; L_b; g * s_Megg * u_Hb/ l_b^3; 0]; % initial scaled reserve, length, scaled maturity density and reproduction buffer (birth) -pars_UE0 = [V_Hb; g * s_Megg; k_J * s_Megg; k_M * s_Megg; v * s_Megg]; U_E0 = initial_scaled_reserve(0.8, pars_UE0); -[t eLHR] = ode45(@dget_eLHR, t, eLHR0, [], s_M, kap, u_Hp, k_J, v, g, L_m, f, TC_f, TC_0, tf); -e = eLHR(:,1); L = eLHR(:,2); H = eLHR(:,3); eR = eLHR(:,4); teR = [t, eR]; -EW = L .^ 3 .* (1 + (e + eR) * w); % wet mass, g -ER = L .^ 3 .* eR * w; % reproduction buffer, g -ER2 = horzcat(ER,cat(1,ER(2:length(ER)),0)); % set up vector of repro buffer, offset to get daily diff -ER2 = ER2(:,2)-ER2(:,1); % daily diffs in repro buffer, g -EW2 = L .^ 3 .* (1 + (e) * w); % non-reproductive wet mass, g -eLHR_pub=eLHR(eLHR(:,4)==0,:); % get vector up to puberty -pubeLHR=eLHR_pub(end,:); % get last values of vector up to puberty -% L_p=pubeLHR(2); % cm, structural length at puberty at f -% Lw_p = L_p/ del_M; % cm, physical length at puberty at f -% Wd_p = max(eLHR_pub(:,2).^ 3 .*(1+eLHR_pub(:,1)*w))* d_V; % g, dry weight at puberty -aT_p=length(eLHR_pub); % d, age at puberty at f and T -E_0 = p_Am * TC_ab * U_E0; % energy of egg, J -RT_i = mean(ER2(length(ER2)-375:length(ER2)-10))/(E_0/mu_E*w_E/d_V); % #/d, ultimate reproduction rate at T over last year of simulation (divide by wet mass of egg) + %% zero-variate data + + % life cycle + pars_tp = [g* s_Megg; k; l_T; v_Hb; v_Hp]; % compose parameter vector (note s_Megg factor applied - egg in depression) + [t_p, t_b, l_p, l_b, info] = get_tp(pars_tp, f); % -, scaled times & lengths at f + + % birth + L_b = L_m * l_b; % cm, structural length at birth at f + Lw_b = L_b/ del_M; % cm, physical length at birth at f + Wd_b = L_b^3 * 0.5 * (1 + f * w); % g, dry weight at birth at f (remove d_V for wet weight) + aT_b = t_b/ (k_M * s_M * 1.2) / TC_ab; % d, age at birth at f and T (note s_M factor applied - egg in depression) + + pars_tp = [g ; k; l_T; v_Hb; v_Hp]; % compose parameter vector + [t_p, t_b, l_p, l_b, info] = get_tp(pars_tp, f); % -, scaled times & lengths at f + + % puberty + L_p = L_m * l_p; % cm, structural length at puberty at f + Lw_p = L_p/ del_M; % cm, physical length at puberty at f + Wd_p = L_p^3 * d_V * (1 + f * w); % g, dry weight at puberty (remove d_V for wet weight) + %aT_p = t_p/ TC_ap; % d, age at puberty at f and T + % code to simulate growth under fluctuating temperature and food (pond duration) + years=100; % years to simulate + days=sort(repmat(1:182:364*years,1,2)); % set up pond durations of 182 days, and dry periods of the same length (one day short of year!) + act=repmat([1 1 0 0 ],[1,years]); % activity states + tf=vertcat(days,act)'; % vector of hydroperiods/dry periods lasting 182 days + tR=1:365:years*365; % intervals to get reproduction output + TC_f=0.2944; % temp correction factor when in water + TC_0=1.36442; % temp correction factor when on land + t=1:(365*years); % vector of days to simulate + eLHR0 = [f; L_b; g * s_M * u_Hb/ l_b^3; 0]; % initial scaled reserve, length, scaled maturity density and reproduction buffer (birth) + pars_UE0 = [V_Hb; g * s_M; k_J * s_M * 1.2; k_M * s_M * 1.2; v * s_M * 1.2]; U_E0 = initial_scaled_reserve(0.8, pars_UE0); + [t eLHR] = ode45(@dget_eLHR, t, eLHR0, [], s_M, kap, u_Hp, k_J, v, g, L_m, f, TC_f, TC_0, tf); + e = eLHR(:,1); L = eLHR(:,2); H = eLHR(:,3); eR = eLHR(:,4); teR = [t, eR]; + EW = L .^ 3 .* (1 + (e + eR) * w); % wet mass, g + ER = L .^ 3 .* eR * w; % reproduction buffer, g + ER2 = horzcat(ER,cat(1,ER(2:length(ER)),0)); % set up vector of repro buffer, offset to get daily diff + ER2 = ER2(:,2)-ER2(:,1); % daily diffs in repro buffer, g + EW2 = L .^ 3 .* (1 + (e) * w); % non-reproductive wet mass, g + eLHR_pub=eLHR(eLHR(:,4)==0,:); % get vector up to puberty + pubeLHR=eLHR_pub(end,:); % get last values of vector up to puberty + % L_p=pubeLHR(2); % cm, structural length at puberty at f + % Lw_p = L_p/ del_M; % cm, physical length at puberty at f + % Wd_p = max(eLHR_pub(:,2).^ 3 .*(1+eLHR_pub(:,1)*w))* d_V; % g, dry weight at puberty + aT_p=length(eLHR_pub); % d, age at puberty at f and T + E_0 = p_Am * TC_ab * U_E0; % energy of egg, J + RT_i = mean(ER2(length(ER2)-375:length(ER2)-10))/(E_0/mu_E*w_E/d_V); % #/d, ultimate reproduction rate at T over last year of simulation(divide by wet mass of egg) % L_i = max(L); % cm, ultimate structural length at f % Lw_i= L_i/del_M; % cm, ultimate physical length at f % Wd_i = max(EW2)* d_V; % g, ultimate dry weight (remove d_V for wet weight) - -if size(tW,2)==2 - tWeight = tW(:,1); -else - tWeight = round(tW); -end -[j i] = ismember(tWeight, t); EW1 = L(i) .^ 3 .* (1 + (e(i)) * w); - - -days=(1:112); -act=ones(1,112); -tf=vertcat(days,act)'; % 112 days in the water -TC_f=0.5212; -TC_0=1.36442; -t=days; % vector of days to simulate -eLHR0 = [f; L_b; g * s_M * u_Hb/ l_b^3; 0]; % initial scaled reserve, length, scaled maturity density and reproduction buffer (birth) -pars_UE0 = [V_Hb; g * s_M; k_J * s_M; k_M * s_M; v * s_M]; U_E0 = initial_scaled_reserve(0.8, pars_UE0); -[t eLHR] = ode45(@dget_eLHR, t, eLHR0, [], s_M, kap, u_Hp, k_J, v, g, L_m, f, TC_f, TC_0, tf); -e = eLHR(:,1); L = eLHR(:,2); H = eLHR(:,3); eR = eLHR(:,4); teR = [t, eR]; - -if size(tL,2)==2 - tLength = tL(:,1); -else - tLength = round(tL); -end -[j i] = ismember(tLength, t); EL = L(i)/ del_M; EW = L(i) .^ 3 .* (1 + (e(i)) * w); -%EW = horzcat(EL(:,1),EW(:,1)); -%Wd_i = L_i^3 * d_V * (1 + f * w); % g, ultimate dry weight (remove d_V for wet weight) -% ultimate -l_i = f - l_T; % -, scaled ultimate length at f -L_i = L_m * l_i; % cm, ultimate structural length at f -Lw_i = L_i/ del_M; % cm, ultimate physical length at f -Wd_i = L_i^3 * d_V * (1 + f * w); % g, ultimate dry weight (remove d_V for wet weight) -% + + + if size(tW,2)==2 + tWeight = tW(:,1); + else + tWeight = round(tW); + end + [j i] = ismember(tWeight, t); EW1 = L(i) .^ 3 .* (1 + (e(i)) * w); + + + years=100; % years to simulate + days=sort(repmat(1:182:364*years,1,2)); % set up pond durations of 182 days, and dry periods of the same length (one day short of year!) + act=repmat([1 1 0 0 ],[1,years]); % activity states + tf=vertcat(days,act)'; % vector of hydroperiods/dry periods lasting 182 days + tR=1:365:years*365; % intervals to get reproduction output + TC_f=0.2944; % temp correction factor when in water + TC_0=1.36442; % temp correction factor when on land + t=1:(365*years); % vector of days to simulate + eLHR0 = [f; L_b; g * s_M * u_Hb/ l_b^3; 0]; % initial scaled reserve, length, scaled maturity density and reproduction buffer (birth) + pars_UE0 = [V_Hb; g * s_M * 1.2; k_J * s_M * 1.2; k_M * s_M * 1.2; v * s_M * 1.2]; U_E0 = initial_scaled_reserve(0.8, pars_UE0); + [t eLHR] = ode45(@dget_eLHR, t, eLHR0, [], s_M, kap, u_Hp, k_J, v, g, L_m, f, TC_f, TC_0, tf); + e = eLHR(:,1); L = eLHR(:,2); H = eLHR(:,3); eR = eLHR(:,4); teR = [t, eR]; + + if size(tL,2)==2 + tLength = tL(:,1); + else + tLength = round(tL); + end + [j i] = ismember(tLength, t); EL = L(i)/ del_M; EW = L(i) .^ 3 .* (1 + (e(i)) * w); + + + + %EW = horzcat(EL(:,1),EW(:,1)); + %Wd_i = L_i^3 * d_V * (1 + f * w); % g, ultimate dry weight (remove d_V for wet weight) + % ultimate + l_i = f - l_T; % -, scaled ultimate length at f + L_i = L_m * l_i; % cm, ultimate structural length at f + Lw_i = L_i/ del_M; % cm, ultimate physical length at f + Wd_i = L_i^3 * d_V * (1 + f * w); % g, ultimate dry weight (remove d_V for wet weight) +% % % reproduction -pars_R = [kap; kap_R; g; k_J; k_M; L_T; v; U_Hb; U_Hp]; % compose parameter vector at T -RT_i = TC_f * reprod_rate(L_i, f, pars_R); % #/d, ultimate reproduction rate at T - -% life span -pars_tm = [g; l_T; h_a/ k_M^2; s_G]; % compose parameter vector at T_ref -t_m = get_tm_s(pars_tm, f, l_b); % -, scaled mean life span at T_ref -aT_m = t_m/ k_M/ TC_am; % d, mean life span at T - -%% pack to output -% the names of the fields in the structure must be the same as the data names in the mydata file -Prd_data.ab = aT_b; -Prd_data.ap = aT_p; -Prd_data.am = aT_m; -Prd_data.Lb = Lw_b; -Prd_data.Lp = Lw_p; -Prd_data.Li = Lw_i; -Prd_data.Wdb = Wd_b; -Prd_data.Wdp = Wd_p; -Prd_data.Wdi = Wd_i; -Prd_data.Ri = RT_i; - -% O2-temperature -f = 1; -% yield coefficients -y_E_X = kap_X * mu_X/ mu_E; % mol/mol, yield of reserve on food -y_X_E = 1/ y_E_X; % mol/mol, yield of food on reserve -y_V_E = mu_E * M_V/ E_G; % mol/mol, yield of structure on reserve -y_P_X = kap_P * mu_X/ mu_P; % mol/mol, yield of faeces on food -y_P_E = y_P_X/ y_E_X; % mol/mol, yield of faeces on reserve -% mass-power couplers -eta_XA = y_X_E/mu_E; % mol/kJ, food-assim energy coupler -eta_PA = y_P_E/mu_E; % mol/kJ, faeces-assim energy coupler -eta_VG = y_V_E/mu_E; % mol/kJ, struct-growth energy coupler -eta_O = [-eta_XA 0 0; % mol/kJ, mass-energy coupler - 0 0 eta_VG;% used in: J_O = eta_O * p - 1/mu_E -1/mu_E -1/mu_E; - eta_PA 0 0]; -O2M = (- n_M\n_O)'; % -, matrix that converts organic to mineral fluxes O2M is prepared for post-multiplication eq. 4.35 - -p_ref = p_Am * L_m^2; % J/d, max assimilation power at max size -pars_power = [kap; kap_R; g*s_MO2; k_J*s_MO2; k_M*s_MO2; L_T*s_MO2; v; U_Hb; U_Hp]; -X_gas = (0.082058*(20+273.15))/(0.082058*293.15)*24.06; % gas correction factor - -% Mean of all turtles -o2Ww=302.325; -L = ((o2Ww*.3)/ d_V/ (1 + f * w)).^(1/3); % cm, structural length, use dry mass for 362.4 g wet mass -pACSJGRD = p_ref * scaled_power(L, f, pars_power, l_b, l_p); -pADG = pACSJGRD(:, [1 7 5]); pADG(:,1) = 0; % exclude assim contribution -JM = pADG * eta_O' * O2M; % mol/d, mineral fluxes -EO = (- 1 * (JM(:,3) * X_gas) .* tempcorr(273+TO(:,1), T_ref, pars_T))/o2Ww/24*1000; - -Prd_data.TO = EO; -Prd_data.tL = EL; -Prd_data.LW = EW; -Prd_data.tW = EW1; - + pars_R = [kap; kap_R; g; k_J; k_M; L_T; v; U_Hb; U_Hp]; % compose parameter vector at T + RT_i = TC_f * reprod_rate(L_i, f, pars_R); % #/d, ultimate reproduction rate at T + + % life span + pars_tm = [g; l_T; h_a/ k_M^2; s_G]; % compose parameter vector at T_ref + t_m = get_tm_s(pars_tm, f, l_b); % -, scaled mean life span at T_ref + aT_m = t_m/ k_M/ TC_am; % d, mean life span at T + + %% pack to output + % the names of the fields in the structure must be the same as the data names in the mydata file + Prd_data.ab = aT_b; + Prd_data.ap = aT_p; + Prd_data.am = aT_m; + Prd_data.Lb = Lw_b; + Prd_data.Lp = Lw_p; + Prd_data.Li = Lw_i; + Prd_data.Wdb = Wd_b; + Prd_data.Wdp = Wd_p; + Prd_data.Wdi = Wd_i; + Prd_data.Ri = RT_i; + + % O2-temperature + f = 1; + % yield coefficients + y_E_X = kap_X * mu_X/ mu_E; % mol/mol, yield of reserve on food + y_X_E = 1/ y_E_X; % mol/mol, yield of food on reserve + y_V_E = mu_E * M_V/ E_G; % mol/mol, yield of structure on reserve + y_P_X = kap_P * mu_X/ mu_P; % mol/mol, yield of faeces on food + y_P_E = y_P_X/ y_E_X; % mol/mol, yield of faeces on reserve + % mass-power couplers + eta_XA = y_X_E/mu_E; % mol/kJ, food-assim energy coupler + eta_PA = y_P_E/mu_E; % mol/kJ, faeces-assim energy coupler + eta_VG = y_V_E/mu_E; % mol/kJ, struct-growth energy coupler + eta_O = [-eta_XA 0 0; % mol/kJ, mass-energy coupler + 0 0 eta_VG;% used in: J_O = eta_O * p + 1/mu_E -1/mu_E -1/mu_E; + eta_PA 0 0]; + O2M = (- n_M\n_O)'; % -, matrix that converts organic to mineral fluxes O2M is prepared for post-multiplication eq. 4.35 + + p_ref = p_Am * L_m^2; % J/d, max assimilation power at max size + pars_power = [kap; kap_R; g*s_MO2; k_J*s_MO2; k_M*s_MO2; L_T*s_MO2; v; U_Hb; U_Hp]; + X_gas = (0.082058*(20+273.15))/(0.082058*293.15)*24.06; % gas correction factor + + % Mean of all turtles + o2Ww=302.325; + L = ((o2Ww*.3)/ d_V/ (1 + f * w)).^(1/3); % cm, structural length, use dry mass for 362.4 g wet mass + pACSJGRD = p_ref * scaled_power(L, f, pars_power, l_b, l_p); + pADG = pACSJGRD(:, [1 7 5]); pADG(:,1) = 0; % exclude assim contribution + JM = pADG * eta_O' * O2M; % mol/d, mineral fluxes + EO = (- 1 * (JM(:,3) * X_gas) .* tempcorr(273+TO(:,1), T_ref, pars_T))/o2Ww/24*1000; + + Prd_data.TO = EO; + Prd_data.tL = EL; + Prd_data.LW = EW; + Prd_data.tW = EW1; + + function dL = dget_L (t, L, L_i, r_B, T_ref, T_A, tT) -T = spline1(t, tT); % C, temp at t -TC = tempcorr(273 + T, T_ref, T_A); % -, Temperature Correction factor -dL = TC * r_B * (L_i - L); % cm/d, change in length + T = spline1(t, tT); % C, temp at t + TC = tempcorr(273 + T, T_ref, T_A); % -, Temperature Correction factor + dL = TC * r_B * (L_i - L); % cm/d, change in length function deLHR = dget_eLHR (t, eLHR, sM, kap, uHp, kJ, v, g, L_m, f_zoo, TC_f, TC_0, tf) -e = eLHR(1); L = eLHR(2); eH = eLHR(3); eR = eLHR(4); eHp = uHp * g * L_m^3/ L^3; -if spline0(t,tf) % active - TC = TC_f; f = f_zoo; L_mt = L_m; - v2 = v; - kJ2 = kJ; -else % torpor + e = eLHR(1); L = eLHR(2); eH = eLHR(3); eR = eLHR(4); eHp = uHp * g * L_m^3/ L^3; + if spline0(t,tf) % active + %if eH < eHp + % TC = TC_f; f = f_zoo; L_mt = L_m * sM; + % v2 = v / sM; + % kJ2 = kJ / sM; + % else + TC = TC_f; f = f_zoo; L_mt = L_m; + v2 = v; + kJ2 = kJ; + %end + else % torpor TC = TC_0; f = 0; L_mt = L_m/ sM; % correct for low maint during torpor v2 = v * sM; kJ2 = kJ * sM; -end -de = TC * v2 * (f - e)/ L; % 1/d, change in scaled reserve density -r = TC * v2 * (e/ L - 1/ L_mt)/ (e + g); % 1/d, spec growth rate -dL = L * r/ 3; % cm/d, change in length -if eH < eHp %|| t < 3000 + end + de = TC * v2 * (f - e)/ L; % 1/d, change in scaled reserve density + r = TC * v2 * (e/ L - 1/ L_mt)/ (e + g); % 1/d, spec growth rate + dL = L * r/ 3; % cm/d, change in length + if eH < eHp %|| t < 3000 deH = TC * max(0,(1 - kap) * e * (TC * v2/ L - r) - eH * (TC * kJ2 + r)); % 1/d, change in scaled maturity - deR = 0; -else + deR = 0; + else deH = 0; deR = TC * max(0, (1 - kap) * e * (TC * v2/ L - r) - eHp * TC * kJ2 - r * eR); % 1/d, change in scaled reprod buffer -end -deLHR = [de; dL; deH; deR]; + end + deLHR = [de; dL; deH; deR]; function f = spline0(t,tf) -f = tf(sum(t>=tf(:,1)),2); - + f = tf(sum(t>=tf(:,1)),2); + function eR = spawn(teR, t1, eR1) -n = length(t1); eR = eR1; -for i = 0:n-1 + n = length(t1); eR = eR1; + for i = 0:n-1 eR(n-i) = eR(n-i) - teR(end,2); if eR(n-i) < 0 eR(n-i) = 0; @@ -222,4 +231,4 @@ if teR(end,1) >= t1(n-i) teR(end,:) = []; end -end + end diff --git a/DEB model/run_Pseudemydura_umbrina.m b/DEB model/run_Pseudemydura_umbrina.m index 00ef804..d8f4bec 100644 --- a/DEB model/run_Pseudemydura_umbrina.m +++ b/DEB model/run_Pseudemydura_umbrina.m @@ -12,7 +12,9 @@ estim_options('default'); % runs estimation, uses nmregr method and filter % prints results, does not write file, does not produce html % 'method': 'nm' - use Nelder-Mead method (default); 'no' - do not estimate; -% 'pars_init_method': 0 - get initial estimates from automatized computation (default) +% 'pars_init_method': 0 - get initial estimates from automatized +% computation (default) + % 1 - read initial estimates from .mat file % 2 - read initial estimates from pars_init file % 'results_output': 0 - prints results to screen; (default) @@ -31,4 +33,4 @@ load('results_Pseudemydura_umbrina') [stat,txt_stat]=statistics_std(par,chem,293,293,1,'std'); results=vertcat(metapar.T_ref,par.T_A,par.T_L,par.T_H,par.T_AL,par.T_AH,par.f,par.z,par.del_M,par.F_m,par.kap_X,par.kap_P,par.v,par.kap,par.kap_R,par.p_M,par.p_T,par.k_J,par.E_G,par.E_Hb,par.E_Hp,par.h_a,par.s_G,stat.E_0,stat.L_b,stat.L_i); -csvwrite('DEB_pars_Pseudemydura_umbrina.csv',results); \ No newline at end of file +csvwrite('DEB_pars_Pseudemydura_umbrina.csv',results);