-
Notifications
You must be signed in to change notification settings - Fork 0
/
swine_model_weekly-12fatpens-FINAL.yaml
1322 lines (1285 loc) · 46 KB
/
swine_model_weekly-12fatpens-FINAL.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
---
# EMULSION (Epidemiological Multi-Level Simulation framework)
# ===========================================================
#
# Contributors and contact:
# -------------------------
#
# - Sébastien Picault ([email protected])
# - Yu-Lin Huang
# - Vianney Sicard
# - Sandie Arnoux
# - Gaël Beaunée
# - Pauline Ezanno ([email protected])
#
# INRAE, Oniris, BIOEPAR, 44300, Nantes, France
#
#
# How to cite:
# ------------
#
# S. Picault, Y.-L. Huang, V. Sicard, S. Arnoux, G. Beaunée,
# P. Ezanno (2019). "EMULSION: Transparent and flexible multiscale
# stochastic models in human, animal and plant epidemiology", PLoS
# Computational Biology 15(9): e1007342. DOI:
# 10.1371/journal.pcbi.1007342
#
#
# License:
# --------
#
# Copyright 2016 INRAE and Univ. Lille
#
# Inter Deposit Digital Number: IDDN.FR.001.280043.000.R.P.2018.000.10000
#
# Agence pour la Protection des Programmes,
# 54 rue de Paradis, 75010 Paris, France
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# __ __ _ _
# | \/ | | | | |
# | \ / | ___ __| | ___| |
# | |\/| |/ _ \ / _` |/ _ \ |
# | | | | (_) | (_| | __/ |
# |_| |_|\___/ \__,_|\___|_|
#
# _____ __ _ _
# |_ _| / _| | | (_)
# | | _ __ | |_ ___ _ __ _ __ ___ __ _| |_ _ ___ _ __
# | | | '_ \| _/ _ \| '__| '_ ` _ \ / _` | __| |/ _ \| '_ \
# _| |_| | | | || (_) | | | | | | | | (_| | |_| | (_) | | | |
# |_____|_| |_|_| \___/|_| |_| |_| |_|\__,_|\__|_|\___/|_| |_|
# MODEL NAME
model_name: hybrid_swine_model_metapop_weekly_weights_and_external_infection
# MODEL DESCRIPTION
model_info:
abstract: 'This model is a discrete-time, stochastic, compartmental SEIR model
of a swine farrow-to-finish farm. It includes various life stages (from gestation to finishing),
sex, and age structures, modeled at the metapopulation scale. The finishing group
consists of 12 pens.'
author: 'Jerrold M. Tubay ([email protected])'
# _______ _
# |__ __(_)
# | | _ _ __ ___ ___
# | | | | '_ ` _ \ / _ \
# | | | | | | | | | __/
# |_| |_|_| |_| |_|\___|
# TIME INFORMATION
# This section specifies the time unit (used for durations, rates, etc.),
# the duration of each time step, the start date, and the total duration of the simulation.
time_info:
time_unit: 'weeks'
delta_t: 1
origin: 'January 1, 2020' # IMPORTANT: Ensure this date aligns with the available data
total_duration: '170'
# _ _
# | | | |
# | | _____ _____| |___
# | | / _ \ \ / / _ \ / __|
# | |___| __/\ V / __/ \__ \
# |______\___| \_/ \___|_|___/
# ORGANIZATION LEVELS USED IN THE SIMULATION
# This hybrid model considers two levels: the population and its components (individuals).
levels:
metapop:
desc: 'Metapopulation level'
aggregation_type: 'metapopulation'
# The metapopulation is explicitly linked to a specific class in a Python code add-on.
#file: 'movement_12fatpens_weight.py'
file: 'movement_12fatpens_outrans.py'
class_name: Metapopulation
contains:
- herd
aggregate_vars:
- name: metapop_total_herd
collect: total_herd
operator: sum
- name: metapop_total_I
collect: total_I
operator: sum
- name: metapop_total_Jn
collect: total_Jn
operator: sum
- name: metapop_total_Jnb
collect: total_Jnb
operator: sum
- name: metapop_total_Jf
collect: total_Jf
operator: sum
- name: metapop_total_A
collect: total_A
operator: sum
- name: metapop_total_G
collect: total_G
operator: sum
- name: metapop_total_F
collect: total_F
operator: sum
herd:
desc: 'Population level'
aggregation_type: 'hybrid'
contains:
- animals
#aggregate_vars:
# - name: average_weight
# collect: weight
# operator: 'mean'
# - name: 'total_beta'
# collect: 'beta_i'
# operator: 'sum'
animals:
desc: 'Individual level'
#default_prototype: healthy
# _____
# | __ \
# | |__) | __ ___ ___ ___ ___ ___ ___ ___
# | ___/ '__/ _ \ / __/ _ \/ __/ __|/ _ \/ __|
# | | | | | (_) | (_| __/\__ \__ \ __/\__ \
# |_| |_| \___/ \___\___||___/___/\___||___/
# LIST OF PROCESSES TO BE EXECUTED DURING EACH TIME STEP
# In a hybrid model, processes occur at the population level (herd) and are managed by groupings.
processes:
metapop:
- animal_farmer_movement
- sample_I_from_fatteners
- external_pathway
animals:
- sex: infection_by_sex
- age_group: sex_and_age
- health_state: infection_by_age
- parity: parities
# _____ _
# / ____| (_)
# | | __ _ __ ___ _ _ _ __ _ _ __ __ _
# | | |_ | '__/ _ \| | | | '_ \| | '_ \ / _` |
# | |__| | | | (_) | |_| | |_) | | | | | (_| |
# \_____|_| \___/ \__,_| .__/|_|_| |_|\__, |
# | | __/ |
# |_| |___/
# DESCRIPTION OF GROUPINGS ASSOCIATED WITH PROCESSES NOT DIRECTLY BASED ON STATE MACHINES
# A grouping is based on one or more variables. For example, the grouping for managing the 'infection' process
# is based on the 'health_state' variable (from the state machine with the same name). Thus, one group will be
# defined for each possible value of the health_state variable.
grouping:
herd:
infection_by_sex: [health_state, sex]
infection_by_age: [health_state, age_group]
sex_and_age: [sex, age_group]
parities: [parity]
# _____ _ _ __ __ _ _
# / ____| | | | | \/ | | | (_)
# | (___ | |_ __ _| |_ ___ | \ / | __ _ ___| |__ _ _ __ ___ ___
# \___ \| __/ _` | __/ _ \ | |\/| |/ _` |/ __| '_ \| | '_ \ / _ \/ __|
# ____) | || (_| | || __/ | | | | (_| | (__| | | | | | | | __/\__ \
# |_____/ \__\__,_|\__\___| |_| |_|\__,_|\___|_| |_|_|_| |_|\___||___/
# DESCRIPTION OF THE STATE MACHINES INVOLVED IN THE MODEL
state_machines:
sex:
desc: 'A state machine without transitions for representing male and female animals'
states:
- Female:
name: 'Female'
desc: 'Female animals'
fillcolor: 'orange'
default: yes
- Male:
name: 'Male'
desc: 'Male animals'
fillcolor: 'deepskyblue'
parity:
desc: 'A state machine without transitions, representing the succession of relevant parities
(number of successive farrowings). The order of states defines a predecessor/successor
sequence used by the keyword next_state in the prototype next_parity.'
states:
- P0:
name: 'Nulliparous'
desc: 'Nulliparous animal (no previous farrowing)'
fillcolor: 'orange'
- P1:
name: 'Parity 1'
desc: 'Animal with parity 1 (first farrowing)'
fillcolor: 'pink'
- P2:
name: 'Parity 2'
desc: 'Animal with parity 2'
fillcolor: 'red'
- P3:
name: 'Parity 3+'
desc: 'Animal with parity 3 or more'
fillcolor: 'purple'
age_group:
desc: 'The state machine defining the evolution of age groups from newborn piglets to gilts or sows.'
states:
- Jnb:
name: 'Juvenile Newborn'
desc: 'Juvenile newborn animals (farrowing stage)'
fillcolor: 'orange'
duration: 'weaning_time'
on_stay:
- set_var: age
value: age + delta_t
- set_var: weight
value: 'random_normal(mean_wean_weight, sd_wean_weight)'
- Jn:
name: 'Piglets in the Nursery'
desc: 'Weaned piglets transferred to the nursery'
fillcolor: 'orchid'
duration: 'nursing_time'
on_stay:
- set_var: age
value: age + delta_t
- set_var: weight
value: 'random_normal(mean_fattening_weight, sd_fattening_weight)'
- Jf:
name: 'Pigs for Fattening'
desc: 'Pigs transferred for fattening until finishing'
fillcolor: 'pink'
duration: 'finishing_time'
on_stay:
- set_var: age
value: age + delta_t
- Sold_fattener:
name: 'Sold Fatteners'
desc: 'Pigs that have been sold'
fillcolor: 'sienna'
on_enter:
- record_change: nb_fatteners_sold
autoremove: yes
- Sold_nursery:
name: 'Sold Nursery Pigs'
desc: 'Pigs sold from the nursery in excess of the required number of fattening pigs'
on_enter:
- record_change: nb_nursery_pigs_sold
autoremove: yes
- A:
name: 'Non-gestating Adult'
desc: 'Adult animals'
fillcolor: 'brown'
on_stay:
- set_var: age
value: age + delta_t
- G:
name: 'Gestating Adult'
desc: 'Adult animals (producing new juveniles)'
fillcolor: 'deepskyblue'
on_enter:
- set_var: gestation_age
value: 0
on_stay:
- set_var: age
value: age + delta_t
- set_var: gestation_age
value: gestation_age + delta_t
on_exit:
- set_var: gestation_age
value: 0
- F:
name: 'Farrowing Sow'
desc: 'Farrowing sow (providing milk for newborn piglets)'
duration: 'weaning_time'
on_stay:
- set_var: age
value: age + delta_t
- D:
name: 'Dead'
desc: 'Compartment for dead animals'
fillcolor: white
on_enter:
- record_change: dead_pigs
autoremove: yes
transitions:
- from: Jnb
to: Jn
proba: 1
cond: metapop_total_Jn < K_herd
- from: Jn
to: Jf
proba: 1
cond: Eq(metapop_total_Jf, 0)
- from: Jf
to: Sold_fattener
proba: 1
- from: A
to: D
rate: '(1 / avg_adult_death_age) + (is_I * mortality_I)'
escape: yes
desc: 'All non-gestating adults are subject to mortality due to old age'
- from: A
to: G
cond: 'OR(age >= adult_age, is_P1, is_P2, is_P3)'
rate: 'AND(StrictLessThan(metapop_total_G, K_sows), IfThenElse(is_P0, conception_g, conception_s))'
desc: 'Non-gestating adult females start gestation at rate "conception_g" for gilts and "conception_s" for sows'
- from: G
to: F
cond: 'gestation_age >= dur_gestation'
rate: 1
on_cross:
- become: 'next_parity'
desc: 'At the end of gestation, gestating adult females return to the A state and produce offspring. Their parity is updated using the prototype next_parity, which increments the value of the discrete variable parity. If the sow/gilt is infectious, vertical transmission is possible to one of the newborn.'
- from: F
to: A
proba: 1
- from: G
to: D
rate: '1 / avg_adult_death_age + (is_I * mortality_I)'
desc: 'All gestating adults are subject to mortality due to old age, which can occur even during gestation, hence escape is set to yes'
- from: Jnb
to: D
rate: mortality_weaning
escape: yes
desc: 'Additional mortality component if born infected'
- from: Jn
to: D
rate: mortality_nursery
escape: yes
- from: Jf
to: D
rate: mortality_fattening
escape: yes
# Health states
health_state:
desc: 'Grouping of pigs from farrowing to fattening'
states:
- M:
name: 'Maternally Immune Individuals'
desc: 'Piglets that are maternally immune to the disease'
fillcolor: 'teal'
- S:
name: 'Susceptible Individuals'
desc: 'Individuals that are susceptible to the disease'
fillcolor: 'forestgreen'
default: yes
- E:
name: 'Exposed Individuals'
desc: 'Individuals that have been exposed to the disease but are not infectious yet'
fillcolor: 'bisque'
duration: 'latent_period'
- I:
name: 'Infectious Individuals'
desc: 'Individuals that are infected and infectious'
fillcolor: 'tomato'
- R:
name: 'Recovered Individuals'
desc: 'Individuals recovered from the disease'
transitions:
- from: M
to: S
rate: '1 / maternal_immunity_period'
desc: 'Maternally immune status can be lost at the rate of 1 / maternal_immunity_period'
- from: S
to: E
rate: 'force_of_infection_int + trans_btwn_pens_frm_movement'
desc: 'Horizontal and vertical transmission from piglets to farrowing sows is not possible for HEV'
- from: E
to: I
rate: 'NOT(OR(is_Jn, is_Jnb)) + OR(is_Jn, is_Jnb) * (1 / maternal_immunity_period)'
desc: 'Newborn and nursing pigs have maternal immunity to HEV, but nursing pigs can lose maternal immunity at the rate of 1/maternal_immunity_period'
- from: I
to: R
rate: 'recovery_rate'
- from: R
to: S
rate: 'waning_rate'
desc: 'Immunity wanes over time'
# _____ _
# | __ \ | |
# | |__) |_ _ _ __ __ _ _ __ ___ ___| |_ ___ _ __ ___
# | ___/ _` | '__/ _` | '_ ` _ \ / _ \ __/ _ \ '__/ __|
# | | | (_| | | | (_| | | | | | | __/ || __/ | \__ \
# |_| \__,_|_| \__,_|_| |_| |_|\___|\__\___|_| |___/
# PARAMETERS, FUNCTIONS, AND EXPRESSIONS USED IN THE MODEL
parameters:
#initial_herd_size:
# desc: 'Initial number of animals in the herd (source: https://edepot.wur.nl/178589, average)'
# value: 366
init_herd_size_for_piglets:
desc: 'Initial number of animals except sows in the herd (source: https://edepot.wur.nl/178589, average)'
value: 144
init_nb_nongestating:
desc: 'Initial number of non-gestating sows/gilts'
value: 'K_sows'
init_nb_gestating:
desc: 'Initial number of gestating sows/gilts'
value: 'K_sows'
init_nb_farrowing:
desc: 'Initial number of farrowing sows/gilts'
value: 'K_sows'
init_infected:
desc: 'Initial number of infectious animals in the herd'
value: 1
init_prev:
desc: 'Initial infection prevalence'
value: 0.1
init_prev_n:
desc: 'Initial infection prevalence in the nursing area'
value: 0.0
init_prev_f:
desc: 'Initial infection prevalence in the fattening area'
value: 0.1
K:
desc: 'Farm’s carrying capacity (source: https://www.dutchnews.nl/2021/09/the-netherlands-has-fewer-pig-farms-but-each-one-has-more-pigs/)'
value: 1000
K_sows:
desc: 'Average farm’s sow/gilt carrying capacity (source: https://edepot.wur.nl/178589)'
value: 24
K_herd:
desc: 'Carrying capacity of a group (e.g., newborn, nursery, fatteners)'
value: 200
death:
desc: 'Death rate (/week)'
value: 0.07
dur_gestation:
desc: 'Duration of gestation (weeks)'
value: 'ROUND(random_normal(16, 1))'
conception_g:
desc: 'Conception rate of gilts (/week)'
value: 0.56
conception_s:
desc: 'Conception rate of sows (/week)'
value: 0.63
conception:
desc: 'Conception rate'
value: 'is_P0 * conception_g + NOT(is_P0) * conception_s'
avg_adult_death_age:
desc: 'Mean longevity of adults (weeks)'
value: 72
adult_age:
desc: '($\alpha_a$) Age when individuals become adults (weeks)'
value: 'random_integers(24,32)'
init_age_distrib:
desc: 'Distribution of initial ages (weeks)'
value: 'adult_age + random_integers(0, 7)'
init_age_nursing:
desc: 'Initial age of nursing piglets (farrowing area) in the initial population (weeks)'
value: 'random_uniform(0,3)'
init_age_nursery:
desc: 'Initial age of piglets in the nursery for the initial population (weeks)'
value: 'weaning_time + random_uniform(6,8)'
init_age_fattener:
desc: 'Initial age of fattening pigs in the initial population (weeks)'
value: 'weaning_time + random_uniform(6,8) + random_uniform(16,18)'
## Additional parameters
weaning_time:
desc: '($\tau_w$) Weaning time of animal (age in weeks)'
value: 3
nursing_time:
desc: '($\tau_n$) Nursing time of animal (age in weeks)'
value: 'random_integers(min_nt, max_nt)'
max_nt:
desc: 'Maximum nursing time (age in weeks)'
value: 8
min_nt:
desc: 'Minimum nursing time (age in weeks)'
value: 6
finishing_time:
desc: '($\tau_f$) Finishing time of animal (age in weeks)'
value: 17
#'random_integers(min_ft, max_ft)'
max_ft:
desc: 'Maximum finishing time (age in weeks)'
value: 18
min_ft:
desc: 'Minimum finishing time (age in weeks)'
value: 16
## SEIR PARAMETERS (source: https://porcinehealthmanagement.biomedcentral.com/articles/10.1186/s40813-021-00189-z
## and https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7863251/)
avg_dur_latency:
desc: 'Average duration of latency'
value: 'random_uniform(1,2)'
latent_period:
desc: '($\tau_{lp}$) Latent period of exposed individuals before they become infectious (weeks)'
value: 'random_integers(1,2)' ## 'random_gamma(50,avg_dur_latency/50)'
transmission_rate:
desc: '($\beta_{int}$) Disease transmission rate within a population (/week)'
value: 5.32250497
# Estimated parameters [0.25029094 4.6720436 0.50886938 0.74910467]
# New [0.30354651 4.64530697 0.50488372 0.61573385]
force_of_infection_int:
desc: 'The rate at which a disease is transmitted from I to S (/week)'
value: 'transmission_rate * total_I / total_herd'
mean_bp_trans:
desc: 'Mean of between-pen transmission rate'
value: '7 * (10 ** -8)'
min_bp_trans:
desc: 'Minimum of between-pen transmission rate'
value: '5 * (10 ** -9)'
max_bp_trans:
desc: 'Maximum of between-pen transmission rate'
value: '3 * (10 ** -7)'
sd_bp_trans:
desc: 'Estimated standard deviation of between-pen transmission rate'
value: '(max_bp_trans - min_bp_trans) / 4'
shape_bp_trans:
desc: 'Shape of between-pen transmission rate'
value: '(mean_bp_trans / sd_bp_trans) ** 2'
scale_bp_trans:
desc: 'Scale of between-pen transmission rate'
value: '(sd_bp_trans ** 2) / mean_bp_trans'
bp_trans:
desc: 'Between-pen transmission rate'
value: '7 * random_gamma(shape_bp_trans, scale_bp_trans)'
between_herd_trans:
desc: '($\beta_{ext}$) Transmission rate between herds'
value: 0.5524361
neighboring_herd_trans:
desc: '($\beta_{pen}$) Transmission rate between neighboring fattening herds'
value: 0.51157841
#force_of_infection_ext:
# desc: 'External force of infection function assuming frequency dependence'
# value: 'total_beta * bp_trans / HEV_length' # Based on individual shedding
HEV_length:
desc: 'The length of the HEV genome is approximately 7.2 kilobases or 7,200 base pairs.'
value: 7200
waning_rate:
desc: 'Waning rate of immunity from the disease per week'
value: 0
#value: 'random_gamma(shape_bp_trans, scale_bp_trans)' #from https://porcinehealthmanagement.biomedcentral.com/articles/10.1186/s40813-021-00189-z assumed to be gamma distributed
recovery_rate:
desc: '($\gamma$) Recovery rate of individuals from the disease'
value: '7 / 17'
mu_I:
desc: '($\mu_I$) Base mortality of infected individuals'
value: 0.001
mortality_I:
desc: 'Mortality due to infection'
value: 'mu_I * total_herd / K_herd'
maternal_immunity_period:
desc: '($\tau_m$) Period of time that a piglet is immune from the disease due to maternal immunity (weeks)'
value: 'weaning_time + nursing_time'
## Other than vertical transmission, shedding from sows and sow-acquired immunity
## can be considered in the disease transmission in a farrowing area
vert_trans:
desc: '($\nu$) Vertical transmission from sow to piglet'
value: 0.1
vert_trans_I:
desc: 'Vertical transmission from infected sow to piglet'
value: 'vert_trans * is_I'
## Mortality per stages (source: https://academic.oup.com/tas/article/4/2/462/5841627?login=true#205954221)
mortality_weaning:
desc: '($\gamma$) Mortality of piglets before weaning'
value: 0
#'7 * 0.036 * total_Jnb / K_herd'
mortality_nursery:
desc: '($\gamma$) Mortality of piglets at the nursery'
value: 0
#'7 * 0.041 * total_Jn / K_herd'
mortality_fattening:
desc: '($\gamma$) Mortality of piglets at the fattening stage'
value: 0
#'7 * 0.056 * total_Jf / K_herd'
## reproduction parameter (source: https://porcinehealthmanagement.biomedcentral.com/articles/10.1186/s40813-020-00182-y/tables/1)
mean_pba:
desc: 'Average number of pigs born alive'
value: 13.1
sd_pba:
desc: 'Standard deviation of the number of pigs born alive'
value: 1.06
pba:
desc: 'Number of pigs born alive'
value: 'ROUND(random_normal(mean_pba, sd_pba))'
## Metapopulation
nb_herds:
desc: 'Number of different populations'
value: 17
nb_infected_herds:
desc: 'Number of infected herds'
value: 1
init_proba_mat_imm:
desc: 'Initial probability of maternal immunity'
value: 0.5 # 0.49542851
init_portion_I:
desc: 'Initial portion of infectious individuals from the initial prevalence; others are exposed'
value: 0.0
proba_removal_if_I:
desc: 'Probability of being removed from the population if infectious'
value: 0.0
proba_removal_if_E:
desc: 'Probability of being removed from the population if exposed'
value: 0.0
biosec_remove_risky_move:
desc: 'Indicator parameter for avoiding risky movement: 1 = avoid, 0 = no restriction'
value: 0
# Weight-related parameters
# Sources: https://www.prrs.com/expertise/publications/prrsflex-increases-average-daily-weight-gain-dutch-finishing-pigs
# doi:10.1017/S175173111900346X
# https://porcinehealthmanagement.biomedcentral.com/articles/10.1186/s40813-021-00225-y
mean_wean_weight:
desc: 'Mean weight of weaning piglets'
value: 6.34
sd_wean_weight:
desc: 'Standard deviation of the weight of weaning piglets'
value: 0.7
min_wean_weight:
desc: '($\gamma_w$) Minimum weaning weight for piglets (source: https://www.mdpi.com/2076-2615/10/6/1017)'
value: 5.5
mean_fattening_weight:
desc: 'Mean weight of fattening piglets'
value: 30
sd_fattening_weight:
desc: 'Standard deviation of the weight of fattening piglets'
value: 5
min_fattening_weight:
desc: '($\gamma_f$) Minimum fattening weight for piglets'
value: 24
# Probabilities for external transmission
proba_encounter:
desc: '(max $p_{enc}$) Maximum probability of encountering an infectious agent'
value: 0.9
proba_trans:
desc: '(max $p_{trans}$) Maximum probability of transmission from an infectious agent'
value: 0.9
proba_ext_I:
desc: '(max $p_{inf}$) Maximum probability that an external agent is infectious'
value: 0.9
proba_success_biosec_opt:
desc: '(optimal $p_{biosec}$) Optimistic probability of success of biosecurity measures'
value: 1.0
proba_success_biosec_ml:
desc: '(most likely $p_{biosec}$) Most likely probability of success of biosecurity measures'
value: 0.9
proba_success_biosec_pes:
desc: '(pessimistic $p_{biosec}$) Pessimistic probability of success of biosecurity measures'
value: 0.8
# _____ _ _
# / ____| | | |
# | (___ | |_ __ _| |_ _____ ____ _ _ __ ___
# \___ \| __/ _` | __/ _ \ \ / / _` | '__/ __|
# ____) | || (_| | || __/\ V / (_| | | \__ \
# |_____/ \__\__,_|\__\___| \_/ \__,_|_| |___/
statevars:
age:
desc: 'Age of the animal'
weight:
desc: 'Weight of the animal'
gestation_age:
desc: 'Gestation age of the animal'
nb_fatteners_sold:
desc: 'Number of fatteners sold'
nb_nursery_pigs_sold:
desc: 'Number of nursery pigs sold'
dead_pigs:
desc: 'Number of dead pigs'
nb_piglets_I_from_vert_trans:
desc: 'Number of piglets that are born infected'
initial_prevalence:
desc: 'Initial prevalence in the population'
initial_herd_size:
desc: 'Initial number of animals in the herd (source: https://edepot.wur.nl/178589, average)'
trans_btwn_pens_frm_movement:
desc: 'Transmission between pens from farmer movement'
initial_nongestating_herd_size:
desc: 'Initial number of non-gestating sows and gilts'
initial_gestating_herd_size:
desc: 'Initial number of gestating sows and gilts'
initial_newborn_herd_size:
desc: 'Initial number of unweaned piglets'
initial_farrowing_herd_size:
desc: 'Initial number of farrowing sows'
initial_nursery_herd_size:
desc: 'Initial number of pigs in the nursery'
initial_fattening_herd_size:
desc: 'Initial number of pigs in the growing/fattening area'
nb_of_sampled_I_Jf:
desc: 'Number of sampled fatteners that are infected'
nb_new_farrowing_sows:
desc: 'Number of new farrowing sows at each time step'
external_infection:
desc: 'Probability of infection from external sources (e.g., vermin, visitors, delivery vehicles, wild animals)'
# _____ _ _
# | __ \ | | | |
# | |__) | __ ___ | |_ ___ | |_ _ _ _ __ ___ ___
# | ___/ '__/ _ \| __/ _ \| __| | | | '_ \ / _ \/ __|
# | | | | | (_) | || (_) | |_| |_| | |_) | __/\__ \
# |_| |_| \___/ \__\___/ \__|\__, | .__/ \___||___/
# __/ | |
# |___/|_|
# PROTOTYPES describe typical individuals, characterized by specific
# values of their variables
prototypes:
herd:
- nongestating_population:
desc: 'population initially of nongestating sows and gilts'
initial_prevalence: init_prev
initial_nongestating_herd_size: init_nb_nongestating
initial_gestating_herd_size: 0
initial_farrowing_herd_size: 0
initial_newborn_herd_size: 0
initial_nursery_herd_size: 0
initial_fattening_herd_size: 0
trans_btwn_pens_frm_movement: 0
external_infection: 0
- gestating_population:
desc: 'population initially of gestating sows and gilts'
initial_prevalence: init_prev
initial_nongestating_herd_size: 0
initial_gestating_herd_size: init_nb_gestating
initial_farrowing_herd_size: 0
initial_newborn_herd_size: 0
initial_nursery_herd_size: 0
initial_fattening_herd_size: 0
trans_btwn_pens_frm_movement: 0
nb_new_farrowing_sows: 0
external_infection: 0
- farrowing_population:
desc: 'population initially of farrowing sows and nursing piglets'
initial_prevalence: init_prev
initial_nongestating_herd_size: 0
initial_gestating_herd_size: 0
initial_farrowing_herd_size: init_nb_farrowing
initial_newborn_herd_size: init_herd_size_for_piglets
initial_nursery_herd_size: 0
initial_fattening_herd_size: 0
trans_btwn_pens_frm_movement: 0
external_infection: 0
- nursery_population:
desc: 'population initially of pigs in the nursery area'
initial_prevalence: init_prev_n
initial_nongestating_herd_size: 0
initial_gestating_herd_size: 0
initial_farrowing_herd_size: 0
initial_newborn_herd_size: 0
initial_nursery_herd_size: init_herd_size_for_piglets
initial_fattening_herd_size: 0
trans_btwn_pens_frm_movement: 0
external_infection: 0
- fattening_population1:
desc: 'population initially of growing and fattening pigs'
initial_prevalence: init_prev_f
initial_nongestating_herd_size: 0
initial_gestating_herd_size: 0
initial_farrowing_herd_size: 0
initial_newborn_herd_size: 0
initial_nursery_herd_size: 0
initial_fattening_herd_size: 12
trans_btwn_pens_frm_movement: 0
external_infection: 0
- fattening_population2:
desc: 'population initially of growing and fattening pigs'
initial_prevalence: init_prev_f
initial_nongestating_herd_size: 0
initial_gestating_herd_size: 0
initial_farrowing_herd_size: 0
initial_newborn_herd_size: 0
initial_nursery_herd_size: 0
initial_fattening_herd_size: 12
trans_btwn_pens_frm_movement: 0
external_infection: 0
- fattening_population3:
desc: 'population initially of growing and fattening pigs'
initial_prevalence: init_prev_f
initial_nongestating_herd_size: 0
initial_gestating_herd_size: 0
initial_farrowing_herd_size: 0
initial_newborn_herd_size: 0
initial_nursery_herd_size: 0
initial_fattening_herd_size: 12
trans_btwn_pens_frm_movement: 0
external_infection: 0
- fattening_population4:
desc: 'population initially of growing and fattening pigs'
initial_prevalence: init_prev_f
initial_nongestating_herd_size: 0
initial_gestating_herd_size: 0
initial_farrowing_herd_size: 0
initial_newborn_herd_size: 0
initial_nursery_herd_size: 0
initial_fattening_herd_size: 12
trans_btwn_pens_frm_movement: 0
external_infection: 0
- fattening_population5:
desc: 'population initially of growing and fattening pigs'
initial_prevalence: init_prev_f
initial_nongestating_herd_size: 0
initial_gestating_herd_size: 0
initial_farrowing_herd_size: 0
initial_newborn_herd_size: 0
initial_nursery_herd_size: 0
initial_fattening_herd_size: 12
trans_btwn_pens_frm_movement: 0
external_infection: 0
- fattening_population6:
desc: 'population initially of growing and fattening pigs'
initial_prevalence: init_prev_f
initial_nongestating_herd_size: 0
initial_gestating_herd_size: 0
initial_farrowing_herd_size: 0
initial_newborn_herd_size: 0
initial_nursery_herd_size: 0
initial_fattening_herd_size: 12
trans_btwn_pens_frm_movement: 0
external_infection: 0
- fattening_population7:
desc: 'population initially of growing and fattening pigs'
initial_prevalence: init_prev_f
initial_nongestating_herd_size: 0
initial_gestating_herd_size: 0
initial_farrowing_herd_size: 0
initial_newborn_herd_size: 0
initial_nursery_herd_size: 0
initial_fattening_herd_size: 12
trans_btwn_pens_frm_movement: 0
external_infection: 0
- fattening_population8:
desc: 'population initially of growing and fattening pigs'
initial_prevalence: init_prev_f
initial_nongestating_herd_size: 0
initial_gestating_herd_size: 0
initial_farrowing_herd_size: 0
initial_newborn_herd_size: 0
initial_nursery_herd_size: 0
initial_fattening_herd_size: 12
trans_btwn_pens_frm_movement: 0
external_infection: 0
- fattening_population9:
desc: 'population initially of growing and fattening pigs'
initial_prevalence: init_prev_f
initial_nongestating_herd_size: 0
initial_gestating_herd_size: 0
initial_farrowing_herd_size: 0
initial_newborn_herd_size: 0
initial_nursery_herd_size: 0
initial_fattening_herd_size: 12
trans_btwn_pens_frm_movement: 0
external_infection: 0
- fattening_population10:
desc: 'population initially of growing and fattening pigs'
initial_prevalence: init_prev_f
initial_nongestating_herd_size: 0
initial_gestating_herd_size: 0
initial_farrowing_herd_size: 0
initial_newborn_herd_size: 0
initial_nursery_herd_size: 0
initial_fattening_herd_size: 12
trans_btwn_pens_frm_movement: 0
external_infection: 0
- fattening_population11:
desc: 'population initially of growing and fattening pigs'
initial_prevalence: init_prev_f
initial_nongestating_herd_size: 0
initial_gestating_herd_size: 0
initial_farrowing_herd_size: 0
initial_newborn_herd_size: 0
initial_nursery_herd_size: 0
initial_fattening_herd_size: 12
trans_btwn_pens_frm_movement: 0
external_infection: 0
- fattening_population12:
desc: 'population initially of growing and fattening pigs'
initial_prevalence: init_prev_f
initial_nongestating_herd_size: 0
initial_gestating_herd_size: 0
initial_farrowing_herd_size: 0
initial_newborn_herd_size: 0
initial_nursery_herd_size: 0
initial_fattening_herd_size: 12
trans_btwn_pens_frm_movement: 0
external_infection: 0
- dressing_room1:
desc: 'dressing room 1 in a farm'
initial_prevalence: 0
initial_nongestating_herd_size: 0
initial_gestating_herd_size: 0
initial_farrowing_herd_size: 0
initial_newborn_herd_size: 0
initial_nursery_herd_size: 0
initial_fattening_herd_size: 0
trans_btwn_pens_frm_movement: 0
external_infection: 0
- dressing_room2:
desc: 'dressing room 2 in a farm'
initial_prevalence: 0
initial_nongestating_herd_size: 0
initial_gestating_herd_size: 0
initial_farrowing_herd_size: 0
initial_newborn_herd_size: 0
initial_nursery_herd_size: 0
initial_fattening_herd_size: 0
trans_btwn_pens_frm_movement: 0
external_infection: 0
animals:
- nongestating:
desc: 'initial healthy sows'
age_group: A
parity: P0
beta_i: 0
beta_i_max: 0
weight: 0
- nongestating_S:
desc: 'susceptible initial healthy sows'
age_group: A
age: init_age_distrib
sex: Female
parity: random
health_state: S
beta_i: 0
beta_i_max: 0
weight: 0
- nongestating_E:
desc: 'initial infected animals'
age_group: A
age: init_age_distrib
sex: Female
parity: random
health_state: E
beta_i: 0
beta_i_max: 0
weight: 0
- nongestating_I:
desc: 'initial infectious animals'
age_group: A
age: init_age_distrib
sex: Female
parity: random
health_state: I
beta_i: 0
beta_i_max: 0
weight: 0
- newborn_M:
desc: 'newly created animals with maternal immunity'
age_group: Jnb
sex: random
age: 0
parity: P0
health_state: M
beta_i: 0
beta_i_max: 0
weight: 0
- newborn_S:
desc: 'newly created animals that are susceptible'
age_group: Jnb
sex: random
age: 0
parity: P0
health_state: S
beta_i: 0
beta_i_max: 0
weight: 0
- init_newborn:
desc: 'initially newborn animals'
age_group: Jnb
sex: random
age: init_age_nursing
parity: P0
health_state: M
weight: 0