comparison test-data/input/TWIN/farmer-plan_TWIN.txt @ 3:3fe3e1e6a40b draft default tip

"planemo upload for repository https://forgemia.inra.fr/insilicow/insilicow-tool commit b530a8209615f225696abe3e0ba49093ff3dc4ad"
author siwaa
date Mon, 25 Aug 2025 16:37:43 +0000
parents
children
comparison
equal deleted inserted replaced
2:2722892ff716 3:3fe3e1e6a40b
1 #################################################################################################################
2 # #
3 # InSiliCow #
4 # Virtual farm specification #
5 # #
6 #################################################################################################################
7
8 #################################################################################################################
9 #====== GENERAL SETTINGS #
10 #################################################################################################################
11
12 #______ Include files
13 @include farmer-log.txt # providing log action and trigger
14 @include farmer-base.txt # providing basic components
15
16 #______ Models: specify models for individual cows
17 param_general{
18 garuns_type = garuns_olivier
19 rpm_type = rpm_lite
20 abortion_type = abortion_olivier
21 }
22
23 #______ Simulation: provide time range, output database and code name
24 init{
25 begin_date = $start_date$ 00:00:00
26 end_date = $stop_date$ 23:59:59
27 output_db = db_events.sqlite
28 output_config = config.txt
29 name = $sim_id$
30 }
31
32 #______ Log Farm information
33 link{
34 trigger = init
35 action = log_db farm_tag $farm_tag$
36 action = log_db start_date $start_date$
37 action = log_db stop_date $stop_date$
38 action = log_db now_date $now_date$
39 action = log_db latitude $latitude$
40 action = log_db longitude $longitude$
41 }
42
43 #______ End of simulation
44 trigger{
45 type = chron
46 name = tr_end_simu
47 scheme = $stop_date$ 23:59:58
48 }
49
50 #______ Past and future
51 condition{
52 type = chron_range
53 name = past
54 from = $start_date$ 00:00:00
55 to = $now_date$ 00:00:01
56 }
57
58 condition{
59 type = chron_range
60 name = future
61 from = $now_date$ 00:00:00
62 to = $stop_date$ 23:59:59
63 }
64
65 #______ Day one
66 trigger{
67 type = chron
68 name = day_one_herd
69 scheme = $start_date$ 23:59:59
70 }
71 trigger{
72 type = custom
73 name = day_one
74 }
75 link{
76 trigger = day_one_herd
77 action = broadcast_now day_one
78 }
79
80 #______ Calving tag
81 link{
82 trigger = calving
83 condition = calf_sex male
84 condition = future
85 action = log_db birth_of_male no_tag
86 }
87 link{
88 trigger = calving
89 condition = calf_sex female
90 condition = future
91 action = log_db birth_of_female no_tag
92 }
93
94 #______ Manage initial dam
95 state{
96 state = INITIAL-DAM
97 }
98
99 link{
100 trigger = day_one
101 action = state_add INITIAL-DAM
102 }
103 link{
104 trigger = parturition
105 condition = is_in INITIAL-DAM
106 condition = not is_in IN_WILD
107 action = trigger_later tr_delete_cow 1
108 }
109 trigger{
110 type = custom
111 name = tr_delete_cow
112 }
113 link{
114 trigger = tr_delete_cow
115 action = delete_cow remove_initial_dam
116 }
117
118 #______ Stoechio
119 stoechio{
120
121 }
122
123 #################################################################################################################
124 #====== FARMING #
125 #################################################################################################################
126
127 #______ Keep cows and calves in farm: no natural mating
128
129 link{
130 trigger = enter IN_WILD
131 action = state_move IN_WILD IN_FARM
132 }
133
134 link{
135 trigger = enter WILD_COW
136 action = state_move WILD_COW DRY_COW
137 }
138
139 #______ Remove calf from dam: no natural weaning
140
141 link{
142 trigger = enter SUCKLING_CALF
143 action = state_move SUCKLING_CALF NURSED_CALF
144 }
145
146 #______ Milk cows: no natural drying-off at calf weaning
147
148 link{
149 trigger = enter NURSING_COW
150 action = state_move NURSING_COW LACTATING_COW
151 }
152
153 #______ Optimal feeding
154
155 link{
156 trigger = enter IN_FARM
157 action = trigger_later tr_optimal_feeding 0
158 }
159 trigger{
160 type = custom
161 name = tr_optimal_feeding
162 }
163 link{
164 trigger = tr_optimal_feeding
165 action = change_food optimal
166 }
167
168
169 #################################################################################################################
170 #====== FARM COMPONENTS: genotype #
171 #################################################################################################################
172
173 #______ Genetic_sD: provide Mendelian sampling std dev for transmission of Genetic Scaling Parameters (GSP)
174 # GSP_newborn ~ Normal [ (GSP_mother + GSP_father)/2 , GSP_sd ] | within (min, max)
175
176 #TWIN CASE : all sd = 0
177
178 genetic_sd{
179 garuns_olivier.WM{
180 sd = 0
181 min = 200
182 max = 800
183 }
184
185 garuns_olivier.khi_M {
186 sd = 0
187 min = 0.1
188 max = 0.6
189 }
190
191 garuns_olivier.b0{
192 sd = 0
193 min = 0.80
194 max = 2.40
195 }
196
197 garuns_olivier.nu_X{
198 sd = 0
199 min = 0.2
200 max = 1.8
201 }
202
203 garuns_olivier.nu_Y{
204 sd = 0
205 min = 0.2
206 max = 1.8
207 }
208
209 garuns_olivier.nu_F{
210 sd = 0
211 min = 0.50
212 max = 1.50
213 }
214
215 garuns_olivier.nu_P{
216 sd = 0
217 min = 0.50
218 max = 1.50
219 }
220
221 garuns_olivier.eD_star{
222 sd = 0
223 min = 9.0
224 max = 15.0
225 }
226
227 garuns_olivier.NDF_star{
228 sd = 0
229 min = 0.10
230 max = 0.90
231 }
232
233 garuns_olivier.psi{
234 sd = 0
235 min = 0
236 max = 1
237 }
238
239 rpm_lite.nu_I{
240 sd = 0
241 min = 0.00
242 max = 0.20
243 }
244
245 rpm_lite.nu_B{
246 sd = 0
247 min = 1.20
248 max = 2.20
249 }
250
251 rpm_lite.nu_Z{
252 sd = 0
253 min = 0.90
254 max = 1.10
255 }
256 }
257
258 #################################################################################################################
259 #====== FARM COMPONENTS: herd (genotype-based initialization of individual cows) #
260 #################################################################################################################
261
262 #______ INITIALIZATION of TWIN farm from tables Genotype and Initialization
263
264 # From table Genotype: for all <cow_tag> (all lines)
265 state{
266 state = cow_01
267 state = cow_02
268 state = cow_03
269 state = cow_04
270 state = cow_05
271 }
272
273 action{
274 type = genericlog
275 name = log_states_cows
276
277 log_type = sqlite
278 sqlite_path = db_states.sqlite
279 sqlite_table = user_states
280
281 #log_type = file
282 #file_path = states-user.txt
283 #sep_col = \t
284 #file_line_flush=no
285
286 column{
287 value = time
288 name = time
289 sqlite_type = numeric
290 }
291 column{
292 value = state.count.INITIAL-DAM
293 name = INITIAL-DAM
294 sqlite_type = numeric
295 }
296 column{
297 value = state.count.cow_01
298 name = cow_01
299 sqlite_type = numeric
300 }
301 column{
302 value = state.count.cow_02
303 name = cow_02
304 sqlite_type = numeric
305 }
306 column{
307 value = state.count.cow_03
308 name = cow_03
309 sqlite_type = numeric
310 }
311 column{
312 value = state.count.cow_04
313 name = cow_04
314 sqlite_type = numeric
315 }
316 column{
317 value = state.count.cow_05
318 name = cow_05
319 sqlite_type = numeric
320 }
321 }
322
323 link{
324 trigger = every_day_herd
325 action = log_states_cows
326 }
327
328 # From table Genotype: for each <cow_tag> not in table Initialization
329 init_cow{
330 name=cow_03
331
332 abortion_olivier.delta = constant 3.0
333 abortion_olivier.enabled = never
334 abortion_olivier.dip = vector constant 17 ; constant 64
335 abortion_olivier.abo = vector constant 0.02 ; constant 0.005 ; constant 0.0004
336
337 garuns_olivier.WM = constant 450
338 garuns_olivier.khi_M = constant 0.3
339 garuns_olivier.b0 = constant 1.6
340 garuns_olivier.nu_X = constant 1
341 garuns_olivier.nu_Y = constant 1.1
342 garuns_olivier.nu_F = constant 1
343 garuns_olivier.nu_P = constant 1
344 garuns_olivier.eD_star = constant 10.7
345 garuns_olivier.NDF_star = constant 1
346 garuns_olivier.psi = constant 1
347 rpm_lite.nu_B = constant 0.5
348 rpm_lite.nu_Z = constant 0.025
349 rpm_lite.nu_I = constant 1.7
350 }
351 init_cow{
352 name=cow_04
353
354 abortion_olivier.delta = constant 3.0
355 abortion_olivier.enabled = never
356 abortion_olivier.dip = vector constant 17 ; constant 64
357 abortion_olivier.abo = vector constant 0.02 ; constant 0.005 ; constant 0.0004
358
359 garuns_olivier.WM = constant 450
360 garuns_olivier.khi_M = constant 0.3
361 garuns_olivier.b0 = constant 1.6
362 garuns_olivier.nu_X = constant 1
363 garuns_olivier.nu_Y = constant 1.1
364 garuns_olivier.nu_F = constant 1
365 garuns_olivier.nu_P = constant 1
366 garuns_olivier.eD_star = constant 10.7
367 garuns_olivier.NDF_star = constant 1
368 garuns_olivier.psi = constant 1
369 rpm_lite.nu_B = constant 0.5
370 rpm_lite.nu_Z = constant 0.025
371 rpm_lite.nu_I = constant 1.7
372 }
373 init_cow{
374 name=cow_05
375
376 abortion_olivier.delta = constant 3.0
377 abortion_olivier.enabled = never
378 abortion_olivier.dip = vector constant 17 ; constant 64
379 abortion_olivier.abo = vector constant 0.02 ; constant 0.005 ; constant 0.0004
380
381 garuns_olivier.WM = constant 450
382 garuns_olivier.khi_M = constant 0.3
383 garuns_olivier.b0 = constant 1.6
384 garuns_olivier.nu_X = constant 1
385 garuns_olivier.nu_Y = constant 1.1
386 garuns_olivier.nu_F = constant 1
387 garuns_olivier.nu_P = constant 1
388 garuns_olivier.eD_star = constant 10.7
389 garuns_olivier.NDF_star = constant 1
390 garuns_olivier.psi = constant 1
391 rpm_lite.nu_B = constant 0.5
392 rpm_lite.nu_Z = constant 0.025
393 rpm_lite.nu_I = constant 1.7
394 }
395
396 # From table Initialization: for each <dam_tag> (each line)
397 breed{
398 breed = dam_cow_01
399 breed = dam_cow_02
400 }
401
402 # From table Initialization: for each <sire_tag> (each line)
403 init_bull{
404 name= sire_cow_01
405 bull.breed_name = dam_cow_01
406 bull.semens_quality = constant 1.0
407 bull.female_ratio = constant 1.0
408
409 # Genotype sub-block associated with cow_01 in table Genotype
410 garuns_olivier.WM = constant 450
411 garuns_olivier.khi_M = constant 0.3
412 garuns_olivier.b0 = constant 1.6
413 garuns_olivier.nu_X = constant 1
414 garuns_olivier.nu_Y = constant 1.1
415 garuns_olivier.nu_F = constant 1
416 garuns_olivier.nu_P = constant 1
417 garuns_olivier.eD_star = constant 10.7
418 garuns_olivier.NDF_star = constant 1
419 garuns_olivier.psi = constant 1
420 rpm_lite.nu_B = constant 0.5
421 rpm_lite.nu_Z = constant 0.025
422 rpm_lite.nu_I = constant 1.7
423 }
424 init_bull{
425 name= sire_cow_02
426 bull.breed_name = dam_cow_02
427 bull.semens_quality = constant 1.0
428 bull.female_ratio = constant 1.0
429
430 # Genotype sub-block associated with cow_02 in table Genotype
431 garuns_olivier.WM = constant 450
432 garuns_olivier.khi_M = constant 0.3
433 garuns_olivier.b0 = constant 1.6
434 garuns_olivier.nu_X = constant 1
435 garuns_olivier.nu_Y = constant 1.1
436 garuns_olivier.nu_F = constant 1
437 garuns_olivier.nu_P = constant 1
438 garuns_olivier.eD_star = constant 10.7
439 garuns_olivier.NDF_star = constant 1
440 garuns_olivier.psi = constant 1
441 rpm_lite.nu_B = constant 0.5
442 rpm_lite.nu_Z = constant 0.025
443 rpm_lite.nu_I = constant 1.7
444 }
445
446 # From table Initialization: for each <dam_tag> (each line)
447 init_cow{
448 name=dam_cow_01
449 #______ Abortion sub-block
450 abortion_olivier.delta = constant 3.0
451 abortion_olivier.enabled = never
452 abortion_olivier.dip = vector constant 17 ; constant 64
453 abortion_olivier.abo = vector constant 0.02 ; constant 0.005 ; constant 0.0004
454
455 # Genotype sub-block associated with cow_01 in table Genotype
456 garuns_olivier.WM = constant 450
457 garuns_olivier.khi_M = constant 0.3
458 garuns_olivier.b0 = constant 1.6
459 garuns_olivier.nu_X = constant 1
460 garuns_olivier.nu_Y = constant 1.1
461 garuns_olivier.nu_F = constant 1
462 garuns_olivier.nu_P = constant 1
463 garuns_olivier.eD_star = constant 10.7
464 garuns_olivier.NDF_star = constant 1
465 garuns_olivier.psi = constant 1
466 rpm_lite.nu_B = constant 0.5
467 rpm_lite.nu_Z = constant 0.025
468 rpm_lite.nu_I = constant 1.7
469 }
470 init_cow{
471 name=dam_cow_02
472 #______ Abortion sub-block
473 abortion_olivier.delta = constant 3.0
474 abortion_olivier.enabled = never
475 abortion_olivier.dip = vector constant 17 ; constant 64
476 abortion_olivier.abo = vector constant 0.02 ; constant 0.005 ; constant 0.0004
477
478 # Genotype sub-block associated with cow_02 in table Genotype
479 garuns_olivier.WM = constant 450
480 garuns_olivier.khi_M = constant 0.3
481 garuns_olivier.b0 = constant 1.6
482 garuns_olivier.nu_X = constant 1
483 garuns_olivier.nu_Y = constant 1.1
484 garuns_olivier.nu_F = constant 1
485 garuns_olivier.nu_P = constant 1
486 garuns_olivier.eD_star = constant 10.7
487 garuns_olivier.NDF_star = constant 1
488 garuns_olivier.psi = constant 1
489 rpm_lite.nu_B = constant 0.5
490 rpm_lite.nu_Z = constant 0.025
491 rpm_lite.nu_I = constant 1.7
492 }
493
494 # From table Initialization: for each line
495 # The value of days_after_conception is set such as N = - (birth_date – 280 – start_date)
496 action{
497 type = buy_cow
498 name = buy_dam_cow_01
499 init_cow = dam_cow_01
500 init_bull = sire_cow_01
501 age = 600
502 days_after_conception = -1
503 number = 1
504 }
505 action{
506 type = buy_cow
507 name = buy_dam_cow_02
508 init_cow = dam_cow_02
509 init_bull = sire_cow_02
510 age = 600
511 days_after_conception = -30
512 number = 1
513 }
514
515 # From table Initialization: for all lines
516 link{
517 trigger = init
518 action = buy_dam_cow_01
519 action = buy_dam_cow_02
520 }
521
522 # From table Initialization: for each line
523 link{
524 trigger = calving
525 condition = calf_breed dam_cow_01
526 action = state_add cow_01
527 action = log_db birth_of_female cow_01 birth_from_dam dam_cow_01 birth_from_sire sire_cow_01
528 }
529 link{
530 trigger = calving
531 condition = calf_breed dam_cow_02
532 action = state_add cow_02
533 action = log_db birth_of_female cow_02 birth_from_dam dam_cow_02 birth_from_sire sire_cow_02
534 }
535
536 #______ MANAGE BREEDING of TWIN farm from tables Genotype & Insemination
537
538 # Define once
539 init_bull{
540 name= no_conception
541 bull.breed_name = NULL
542 bull.semens_quality = constant 0.0
543 bull.female_ratio = constant 0.5
544 }
545
546 # For all lines where conception is not 0
547 breed{
548 breed = NULL #always this line
549 breed = IA_01
550 breed = IA_02
551 breed = IA_03
552 breed = IA_04
553 }
554
555 # From table Insemination: for each line where conception = 1 and calf_sex = 1 (male)
556 init_bull{
557 name= semen_IA_01
558 bull.breed_name = IA_01
559 bull.semens_quality = constant 1.0
560 bull.female_ratio = constant 0.0
561 }
562
563 # From table Insemination: for each line where conception = 1 and calf_sex = 0 (female)
564 init_bull{
565 name= semen_IA_02
566 bull.breed_name = IA_02
567 bull.semens_quality = constant 1.0
568 bull.female_ratio = constant 1.0
569
570 # Genotype sub-block associated with <calf_tag> = cow_03 in table Genotype
571 garuns_olivier.WM = constant 450
572 garuns_olivier.khi_M = constant 0.3
573 garuns_olivier.b0 = constant 1.6
574 garuns_olivier.nu_X = constant 1
575 garuns_olivier.nu_Y = constant 1.1
576 garuns_olivier.nu_F = constant 1
577 garuns_olivier.nu_P = constant 1
578 garuns_olivier.eD_star = constant 10.7
579 garuns_olivier.NDF_star = constant 1
580 garuns_olivier.psi = constant 1
581 rpm_lite.nu_B = constant 0.5
582 rpm_lite.nu_Z = constant 0.025
583 rpm_lite.nu_I = constant 1.7
584 }
585 init_bull{
586 name= semen_IA_03
587 bull.breed_name = IA_03
588 bull.semens_quality = constant 1.0
589 bull.female_ratio = constant 1.0
590
591 # Genotype sub-block associated with <calf_tag> = cow_05 in table Genotype
592 garuns_olivier.WM = constant 450
593 garuns_olivier.khi_M = constant 0.3
594 garuns_olivier.b0 = constant 1.6
595 garuns_olivier.nu_X = constant 1
596 garuns_olivier.nu_Y = constant 1.1
597 garuns_olivier.nu_F = constant 1
598 garuns_olivier.nu_P = constant 1
599 garuns_olivier.eD_star = constant 10.7
600 garuns_olivier.NDF_star = constant 1
601 garuns_olivier.psi = constant 1
602 rpm_lite.nu_B = constant 0.5
603 rpm_lite.nu_Z = constant 0.025
604 rpm_lite.nu_I = constant 1.7
605 }
606 init_bull{
607 name= semen_IA_04
608 bull.breed_name = IA_04
609 bull.semens_quality = constant 1.0
610 bull.female_ratio = constant 1.0
611
612 # Genotype sub-block associated with <calf_tag> = cow_04 in table Genotype
613 garuns_olivier.WM = constant 450
614 garuns_olivier.khi_M = constant 0.3
615 garuns_olivier.b0 = constant 1.6
616 garuns_olivier.nu_X = constant 1
617 garuns_olivier.nu_Y = constant 1.1
618 garuns_olivier.nu_F = constant 1
619 garuns_olivier.nu_P = constant 1
620 garuns_olivier.eD_star = constant 10.7
621 garuns_olivier.NDF_star = constant 1
622 garuns_olivier.psi = constant 1
623 rpm_lite.nu_B = constant 0.5
624 rpm_lite.nu_Z = constant 0.025
625 rpm_lite.nu_I = constant 1.7
626 }
627
628 # From table Insemination: for each different <insemination date>
629
630 trigger{
631 type = chron
632 name = trigger_insem_19720221
633 scheme = 1972-02-21 12:00:00
634 }
635 trigger{
636 type = chron
637 name = trigger_insem_19730106
638 scheme = 1973-01-06 12:00:00
639 }
640 trigger{
641 type = chron
642 name = trigger_insem_19750225
643 scheme = 1975-02-25 12:00:00
644 }
645 trigger{
646 type = chron
647 name = trigger_insem_19720321
648 scheme = 1972-03-21 12:00:00
649 }
650 trigger{
651 type = chron
652 name = trigger_insem_19730204
653 scheme = 1973-02-04 12:00:00
654 }
655 trigger{
656 type = chron
657 name = trigger_insem_19730225
658 scheme = 1973-02-25 12:00:00
659 }
660
661 # From table Insemination: for each line
662
663 link{
664 trigger = trigger_insem_19720221
665 action = insemination_IA_01
666 }
667 trigger{
668 type = custom
669 name = trigger_insem_19720221_cow_01
670 }
671 action{
672 type = broadcast_now
673 name = insemination_IA_01
674 condition = is_in cow_01
675 trigger = trigger_insem_19720221_cow_01
676 }
677
678 link{
679 trigger = trigger_insem_19730106
680 action = insemination_IA_02
681 }
682 trigger{
683 type = custom
684 name = trigger_insem_19730106_cow_01
685 }
686 action{
687 type = broadcast_now
688 name = insemination_IA_02
689 condition = is_in cow_01
690 trigger = trigger_insem_19730106_cow_01
691 }
692
693 link{
694 trigger = trigger_insem_19750225
695 action = insemination_IA_03
696 }
697 trigger{
698 type = custom
699 name = trigger_insem_19750225_cow_03
700 }
701 action{
702 type = broadcast_now
703 name = insemination_IA_03
704 condition = is_in cow_03
705 trigger = trigger_insem_19750225_cow_03
706 }
707
708 link{
709 trigger = trigger_insem_19720321
710 action = insemination_IA_04
711 }
712 trigger{
713 type = custom
714 name = trigger_insem_19720321_cow_02
715 }
716 action{
717 type = broadcast_now
718 name = insemination_IA_04
719 condition = is_in cow_02
720 trigger = trigger_insem_19720321_cow_02
721 }
722
723 link{
724 trigger = trigger_insem_19730204
725 action = insemination_IA_05
726 }
727 trigger{
728 type = custom
729 name = trigger_insem_19730204_cow_02
730 }
731 action{
732 type = broadcast_now
733 name = insemination_IA_05
734 condition = is_in cow_02
735 trigger = trigger_insem_19730204_cow_02
736 }
737
738 link{
739 trigger = trigger_insem_19730225
740 action = insemination_IA_06
741 }
742 trigger{
743 type = custom
744 name = trigger_insem_19730225_cow_02
745 }
746 action{
747 type = broadcast_now
748 name = insemination_IA_06
749 condition = is_in cow_02
750 trigger = trigger_insem_19730225_cow_02
751 }
752
753 # From table Insemination : for each line WHERE conception = 0
754 link{
755 trigger = trigger_insem_19730204_cow_02
756 action = inseminate no_conception
757 }
758
759 link{
760 trigger = trigger_insem_19730225_cow_02
761 action = inseminate no_conception
762 }
763
764 # From table Insemination : for each line WHERE conception = 1
765
766 link{
767 trigger = trigger_insem_19720221_cow_01
768 action = force_conception semen_IA_01
769 }
770
771 link{
772 trigger = trigger_insem_19730106_cow_01
773 action = force_conception semen_IA_02
774 }
775
776 link{
777 trigger = trigger_insem_19750225_cow_03
778 action = force_conception semen_IA_03
779 }
780
781 link{
782 trigger = trigger_insem_19720321_cow_02
783 action = force_conception semen_IA_04
784 }
785
786 # From table Insemination : for each line WHERE conception = 1 AND calf_sex = 0 (female)
787
788 link{
789 trigger = calving
790 condition = calf_breed IA_02
791 action = state_add cow_03
792 action = log_db birth_of_female cow_03 birth_from_dam cow_01 birth_from_sire sire_20
793 }
794
795 link{
796 trigger = calving
797 condition = calf_breed IA_03
798 action = state_add cow_05
799 action = log_db birth_of_female cow_05 birth_from_dam cow_03 birth_from_sire sire_20
800 }
801
802 link{
803 trigger = calving
804 condition = calf_breed IA_04
805 action = state_add cow_04
806 action = log_db birth_of_female cow_04 birth_from_dam cow_02 birth_from_sire sire_20
807 }
808
809 # From table Insemination : for each line WHERE conception = 1 AND calf_sex = 0 (male)
810
811 link{
812 trigger = calving
813 condition = calf_breed IA_01
814 action = log_db birth_of_male calf_a birth_from_dam cow_01 birth_from_sire sire_10
815 }
816
817 #______ MANAGE DEATH of TWIN farm from table Death
818
819 # From table Death: for each different <death_date>
820 trigger{
821 type = chron
822 name = trigger_death_19741001
823 scheme = 1974-10-01 23:59:59
824 }
825
826 # From table Death: for each different <cow_tag>
827
828 link{
829 trigger = trigger_death_19741001
830 action = death_cow_01
831 }
832 trigger{
833 type = custom
834 name = trigger_death_19741001_cow_01
835 }
836 action{
837 type = broadcast_now
838 name = death_cow_01
839 condition = is_in cow_01
840 trigger = trigger_death_19741001_cow_01
841 }
842 link{
843 trigger = trigger_death_19741001_cow_01
844 #action = log_db death_of_cow cow_01
845 #action = delete_cow death
846 action = trigger_now om_death
847 }
848
849 #______ MANAGE CULLING of TWIN farm from table Culling
850
851 # From table Culling: for each different <culling_date>
852 trigger{
853 type = chron
854 name = trigger_culling_19731025
855 scheme = 1973-10-25 06:00:00
856 }
857
858 # From table Culling: for each different <cow_tag>
859
860 link{
861 trigger = trigger_culling_19731025
862 action = culling_cow_02
863 }
864 trigger{
865 type = custom
866 name = trigger_culling_19731025_cow_02
867 }
868 action{
869 type = broadcast_now
870 name = culling_cow_02
871 condition = is_in cow_02
872 trigger = trigger_culling_19731025_cow_02
873 }
874 link{
875 trigger = trigger_culling_19731025_cow_02
876 #action = log_db culling_of_cow cow_02
877 action = delete_cow culling cow_02
878 action = log_db delete_cow: for a reason
879 }
880
881
882 #______ MANAGE DRYING-OFF of TWIN farm from table Drying-off
883
884 # From table Drying-off: for each different <drying_off_date>
885 trigger{
886 type = chron
887 name = trigger_dryingoff_19730923
888 scheme = 1973-09-23 14:00:00
889 }
890 trigger{
891 type = chron
892 name = trigger_dryingoff_19740809
893 scheme = 1974-08-09 14:00:00
894 }
895 trigger{
896 type = chron
897 name = trigger_dryingoff_19760927
898 scheme = 1976-09-27 14:00:00
899 }
900 trigger{
901 type = chron
902 name = trigger_dryingoff_19731022
903 scheme = 1973-10-22 14:00:00
904 }
905
906 # From table Drying-off: for each different <cow_tag>
907 link{
908 trigger = trigger_dryingoff_19730923
909 action = dryingoff_cow_01_parity_1
910 }
911 trigger{
912 type = custom
913 name = trigger_dryingoff_19730923_cow_01
914 }
915 action{
916 type = broadcast_now
917 name = dryingoff_cow_01_parity_1
918 condition = is_in cow_01
919 trigger = trigger_dryingoff_19730923_cow_01
920 }
921 link{
922 trigger = trigger_dryingoff_19730923_cow_01
923 #action = log_db dryingoff_of_cow cow_01 dryingoff_in_parity 1
924 action = stop_milking
925 action = log_db stop_milking: cow_01 in_parity 1
926
927 }
928
929 link{
930 trigger = trigger_dryingoff_19740809
931 action = dryingoff_cow_01_parity_2
932 }
933 trigger{
934 type = custom
935 name = trigger_dryingoff_19740809_cow_01
936 }
937 action{
938 type = broadcast_now
939 name = dryingoff_cow_01_parity_2
940 condition = is_in cow_01
941 trigger = trigger_dryingoff_19740809_cow_01
942 }
943 link{
944 trigger = trigger_dryingoff_19740809_cow_01
945 #action = log_db dryingoff_of_cow cow_01 dryingoff_in_parity 2
946 action = stop_milking
947 action = log_db stop_milking: cow_01 in_parity 2
948 }
949
950 link{
951 trigger = trigger_dryingoff_19760927
952 action = dryingoff_cow_03_parity_1
953 }
954 trigger{
955 type = custom
956 name = trigger_dryingoff_19760927_cow_03
957 }
958 action{
959 type = broadcast_now
960 name = dryingoff_cow_03_parity_1
961 condition = is_in cow_03
962 trigger = trigger_dryingoff_19760927_cow_03
963 }
964 link{
965 trigger = trigger_dryingoff_19760927_cow_03
966 #action = log_db dryingoff_of_cow cow_03 dryingoff_in_parity 1
967 action = stop_milking
968 action = log_db stop_milking: cow_03 in_parity 1
969 }
970
971 link{
972 trigger = trigger_dryingoff_19731022
973 action = dryingoff_cow_02_parity_1
974 }
975 trigger{
976 type = custom
977 name = trigger_dryingoff_19731022_cow_02
978 }
979 action{
980 type = broadcast_now
981 name = dryingoff_cow_02_parity_1
982 condition = is_in cow_02
983 trigger = trigger_dryingoff_19731022_cow_02
984 }
985 link{
986 trigger = trigger_dryingoff_19731022_cow_02
987 #action = log_db dryingoff_of_cow cow_02 dryingoff_in_parity 1
988 action = stop_milking
989 action = log_db stop_milking: cow_02 in_parity 1
990 }
991
992
993
994
995 #################################################################################################################
996 #====== FARM COMPONENTS: semen (genotype-based initialization of semen from individual bulls) #
997 #################################################################################################################
998
999
1000 #################################################################################################################
1001 #====== FARM COMPONENTS: heat detection #
1002 #################################################################################################################
1003
1004
1005 #################################################################################################################
1006 #====== FARM COMPONENTS: feedstuffs #
1007 #################################################################################################################
1008
1009
1010 #################################################################################################################
1011 #====== FARM COMPONENTS: diets #
1012 #################################################################################################################
1013
1014
1015 #################################################################################################################
1016 #====== FARM COMPONENTS: time schemes #
1017 #################################################################################################################
1018
1019
1020 #################################################################################################################
1021 #====== FARM COMPONENTS: groups #
1022 #################################################################################################################
1023
1024
1025 #################################################################################################################
1026 #====== FARM COMPONENTS: operations #
1027 #################################################################################################################
1028
1029
1030 #################################################################################################################
1031 #====== FARM COMPONENTS: transfers #
1032 #################################################################################################################
1033
1034
1035 #################################################################################################################
1036 #====== FARM COMPONENTS: perturbations #
1037 #################################################################################################################
1038
1039
1040 #################################################################################################################
1041 #====== FARM COMPONENTS: parcels #
1042 #################################################################################################################
1043
1044