В 2025 году журналу
ИСПОЛНИТСЯ
95 ЛЕТ!
ЧИТАЙТЕ
Материалы к юбилею >>>
РУБРИКИ
Племенное дело |
Крупный план |
Актуально |
Корма |
Техническая политика |
Событие |
Ветеринария |
Эксклюзивное интервью |
Статистика |
Выставки |
Творчество
наших читателей
ЧИТАЙТЕ
Автор С.И. КАЛИНИЧЕНКО
ГИМН СВИНЬЕ >>>
DOI: 10.37925/0039-713X-2022-7-23-27
УДК 636.02/ 636.03/636.4.033
РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ РАСЧЕТА ПРИЗНАКОВ КОРМОВОГО ПОВЕДЕНИЯ В СВИНОВОДСТВЕ
А.А. БЕЛОУС, кандидат биолог. наук, старший научный сотрудник, e-mail: belousa663@gmail.com ФГБНУ ФИЦ ВИЖ имени Л.К. Эрнста
В настоящее время создание современных управленческих систем является актуальным и неотъемлемым процессом ведения учета данных. В статье представлено спроектированное и разрабатываемое программное обеспечение для учета параметров, полученных с автоматических кормовых станций индивидуального откорма, и расчета кормового поведения на примере свиней породы дюрок. Такая программа в последующем поможет вести вычисления большого массива информации, уточнить конверсию корма, признаки эффективности использования корма и, следовательно, повысить экономические показатели в свиноводстве.
Ключевые слова: программное обеспечение, автоматические кормовые станции, кормовое поведение, прогнозируемое остаточное потребление корма, свиньи породы дюрок.
Development of software for calculation of signs of feeding behavior in pig-breeding
A.A. BELOUS, candidate of biological sciences, senior researcher, e-mail: belousa663@gmail.com Federal Research Center for Animal Husbandry named after academy member L.K. Ernst
At present, the development of modern management systems is an urgent and integral process of introducing data accounting. The article presents the designed and developed software for taking into account indicators obtained from automatic feeding stations for individual fattening and calculating feeding behavior, using the example of Duroc pigs. This program will subsequently help to calculate a large amount of data, clarify feed conversion, signs of feed efficiency and improve economic performance in pig production.
Key words: software, automatic feeding stations, feeding behavior, predicted residual feed intake, Duroc pigs.
Введение
Повышение эффективности использования корма является одной из важнейших задач в свиноводстве, поскольку на кормление приходится значительная часть производственных затрат. Генетическое улучшение таких показателей является одной из стратегий, применяемых для снижения затрат на кормление. Вместе с тем простой отбор на более низкое потребление корма проблематичен из-за сильной генетической связи между потреблением корма и продуктивными характеристиками [1].
В последнее время автоматические кормушки стали популярными для сбора информации о ежесуточном потреблении корма, что позволяет оценивать ежедневные колебания потребления корма и другие характеристики, в частности продолжительность пребывания у кормушки. Такие продольные данные можно использовать в качестве индикатора устойчивости. Устойчивость ‒ это способность животного подвергаться минимальному влиянию нарушений или быстро возвращаться в состояние, преобладавшее до воздействия нарушения [2‒4]. Характер ежедневных колебаний, полученных на основе продольных данных, может быть выражен в виде изменений в общей продуктивности свиней при допущении, что свиньи постоянно подвергаются неизвестному беспокойству. Например, у свиней с низкими колебаниями общая производительность практически не меняется и они считаются очень устойчивыми животными [4‒7].
Данные исследования показали, что ежедневные колебания в потреблении корма и продолжительности пребывания у кормушки у свиней были умеренно наследственными и имели благоприятную генетическую корреляцию со смертностью и уровнем лечения в естественных сложных условиях. Полученные результаты указывают на то, что признаки устойчивости могут быть выражены в виде ежедневных колебаний показателей кормления. Однако мало что известно о генетическом влиянии признаков устойчивости в популяциях чистокровных свиней, в то время как на помесных свиньях было проведено несколько исследований [5, 6]. Кроме того, генетическое улучшение как эффективности кормления, так и характеристик сопротивляемости может быть возможным с использованием ежедневных записей о потреблении корма, получаемых автоматическими кормушками.
В селекционной работе программы разведения хряков-производителей (например, свиней породы дюрок) в первую очередь сосредоточены на улучшении показателей продуктивности и качества мяса, в то время как программы разведения линий маток (в частности, свиней крупной белой породы и породы ландрас) в основном сосредоточены на улучшении показателей продуктивности и воспроизводства. Поскольку программы разведения различаются в зависимости от породы свиней, генетический фон характеристик эффективности кормления и устойчивости также может различаться в зависимости от породы.
Показатели кормового поведения представляют собой практически неиспользованный ресурс и рассматриваются сегодня в качестве дополнительных признаков для включения в программы селекции свиней [8‒10].
В России был проведен ряд исследований кормового поведения на свиньях породы дюрок (n=766) и ландрас (n=155). Были получены значимые результаты по изучению и сравнению генетической и фенотипической взаимосвязи параметров кормового поведения [11, 12].
Цель исследований – разработать программное обеспечение по расчету показателей кормового поведения свиней, полученных с автоматических кормовых станций.
Материалы и методы исследований
Исследования проводили на базе ООО СГЦ «Топ Ген» (Воронежская обл., п. Верхняя Хава). Первичные данные для последующего расчета кормового поведения и создания тестового программного обеспечения были получены с автоматических кормовых станций Schauer Австрия) индивидуального тестового откорма свиней породы дюрок. Еженедельные показатели с фидлотов (дата, время посещения, длительность посещения, количество съеденного корма, живая масса) позволили рассчитать кормовое поведение каждого индивидуума за период откорма при условии получения не менее 60% информации.
Использовались следующие показатели кормового поведения свиней: ADFI (г/сут.) ‒ среднесуточное потребление корма; TPD (мин./сут.) ‒ время нахождения на кормовой станции в сутки; NVD (ед.) ‒ количество посещений фидлота в сутки; FPV (г) ‒ средняя поедаемость корма за одно посещение фидлота; FR (г/ед.) – степень потребления корма; TPV (мин.) ‒ среднее время пребывания на станции за один раз; BW0 (кг) – начальная живая масса; BW1 (кг) – конечная живая масса.
Код программы Energy Pig прописывался на языке программирования Python 3.10 (версия от 08.10.2021) со всеми необходимыми библиотеками.
Результаты исследований и обсуждение
Тестовый запуск программы Energy Pig состоялся на 14 головах свиней породы дюрок, которые прошли откорм на автоматической кормовой станции.
Получение необходимых и верных результатов происходит в несколько действий.
В первую очередь происходит загрузка файла с кормовой станции в рабочее пространство и из нее структурируется следующая информация ‒ индивидуальный номер животного, номер станции (группы), дата постановки или снятия, количество съеденного корма, время захода или выхода со станции, длительность приема пищи (рис. 1).
Общий вид кода первой части:
m_cols = ['uid', 'n_station', 'n_group', 'curr_n_station',
'curr_uid', 'date', 'arrival_date', 'empty', 'departure_date',
'duration', 'amount', 'front_w', 'back_w', 'animal_name', 'stamp']
df_consumption = pd.read_csv('C:/Users/VIJ/Desktop/MLP - расход ст. 82 22.02.2021-20.04.2021.csv', sep=';', encoding='cp1251', names=m_cols)
df_consumption = df_consumption.iloc[3:df_consumption.shape[0]-3, :]
Примечание: uid – индивидуальный номер животного, n_station – номер станции, n_group – номер группы, curr_n_station ‒ номер станции, curr_uid – номер чипа, date – дата посещения, arrival_date – дата входа животного на станцию, empty – пустая колонка, departure_date – дата выхода животного со станции.
Рис. 1. Структура автоматической кормовой станции
После загрузки файла программа удаляет животных, имеющих количество информации менее 60% от всего периода откорма, и нивелирует показатели потребления корма менее 30 г за посещение (рис. 2). Для расчета 60% информации берется среднее число дней откорма по станции.
Общий вид кода второй части:
df = df_consumption.loc[:,['animal_name', 'date', 'duration', 'amount']]
df.duration = pd.to_numeric(df.duration)
df.amount = pd.to_numeric(df.amount)
df['duration'] = np.round(df['duration'] / 60.0,2)
df['date'] = pd.to_datetime(df['date'], format="%d.%m.%Y").dt.date
df = df.loc[df.amount > 29]
period = (data_animal['finish_check'] - data_animal['first_date']).dt.days
df = df.loc[df[''number_of_days''] > 0.59 * period]
Рис. 2. Вид базы подходов животных на кормовую станцию
Следующим этапом является распределение и расчет показателей кормового поведения животных. Группируем животных по дате посещения и суммируем по каждому дню тестового периода индивидуально каждый показатель кормового поведения, а именно: среднесуточное потребление корма, количество съеденного корма за период откорма, количество дней откорма, время нахождения на кормовой станции в сутки, время пребывания на кормовой станции за период откорма, количество посещений фидлота в сутки, средняя поедаемость корма за одно посещение, степень потребления корма, среднее время пребывания на станции за один раз (рис. 3).
Общий вид кода третьей части:
df = df.groupby(['animal_name','date']).agg(sum).sort_values(by=['animal_name', 'date'], ascending=True)
df['NVD']=pd.DataFrame({'count':df.groupby(['animal_name','date']).size()}).sort_values(by=['animal_name','date'], ascending=True)
df['TPN'] = np.round(df['duration'] / df['NVD'], 2)
df['FR'] = np.round(df['amount'] / df['duration'], 2)
df['FPV'] = np.round(df['amount'] / df['NVD'], 2)
df.rename(columns = {'duration': 'TPD', 'amount': 'ADFI'}, inplace = True)
Примечание. Здесь и далее: расшифровка аббревиатуры указана в разделе «Материалы и методы исследований».
Рис. 3. Первичный расчет показателей кормового поведения
Рассчитываем количество дней посещения за тестовый откорм, суммируем исследуемые показатели по каждому животному (рис. 4).
Общий вид кода четвертой части:
number_of_days=pd.DataFrame({'count': df.groupby(['animal_name']).size()}).sort_values(by=['animal_name'], ascending=True)
df['number_of_days'] = number_of_days['count']
df = df.groupby(['animal_name']).agg(sum).sort_values(by=['animal_name'], ascending=True)
Рис. 4. Сумма показателей по каждому животному
Следующим этапом находим средние значения за весь тестовый период откорма по каждому изучаемому признаку (рис. 5).
Общий вид кода пятой части:
df['TPD'] /= number_of_days['count']
df['ADFI'] /= number_of_days['count']
df['NVD'] /= number_of_days['count']
df['TPN'] /= number_of_days['count']
df['FR'] /= number_of_days['count']
df['FPV'] /= number_of_days['count']
df = np.round(df, 2)
Рис. 5. Средние значения кормового поведения
Подгружаем вторую таблицу с кормовой станции, в которой находятся числовые значения начальной и конечной живой массы (рис. 6).
Общий вид кода шестой части:
n_cols = ['uid', 'curr_uid', 'animal_name', 'n_group', 'curr_n_station', 'fasting', 'empty', 'day',
'curve', 'max_amount', 'stamp', 'empty2', 'first_date', 'start_check', 'BW0',
'actually_date', 'actually_weight', 'finish_check', 'BW1', 'last_date']
data_animal = pd.read_csv('C:/Users/VIJ/Desktop/MLP - список животных ст 82 22.02.2021-20.04.2021.csv', sep=';', encoding='cp1251', names=n_cols)
data_animal = data_animal.iloc[3:data_animal.shape[0]-3, :]
Рис. 6. Таблица с итоговыми значениями живой массы свиней
По итогу интеграции файлов, взятых с автоматических кормовых станций и из расчета кормового поведения свиней, получаем таблицу, имеющую достаточную смысловую нагрузку для последующего ее объединения со значениями, содержащимися в бонитировочных ведомостях (табл.).
По тестовому расчету были получены следующие вариации по изучаемым показателям: время нахождения на кормовой станции в сутки ‒ от 50,8 до 81,3 мин.; среднесуточное потребление корма ‒ от 1810 до 2823 г/сут.; количество посещений фидлота в сутки ‒ от 8 до 27 ед.; степень потребления корма ‒ от 21 до 50 г/ед.; средняя поедаемость корма за одно посещение – от 98 г до 242 г; период тестового откорма ‒ 57 дней; начальная живая масса ‒ от 39 кг до 65 кг; конечная живая масса – от 95 кг до 139 кг.
Таблица. Выгрузка итоговой таблицы из программы (на примере 14 голов свиней породы дюрок)
animal_name |
TPD |
ADFI |
NVD |
TPN |
FR |
FPV |
ND |
BW0 |
BW1 |
1 |
52,06 |
2022,39 |
24,37 |
2,94 |
39 |
99,33 |
57 |
51,3 |
110,4 |
2 |
81,3 |
1809,88 |
8,42 |
10,86 |
21,26 |
227,65 |
57 |
55,2 |
95 |
3 |
73,5 |
2238,54 |
19,54 |
5,23 |
31,22 |
132,46 |
57 |
38,9 |
103,1 |
4 |
57,19 |
2822,47 |
14,25 |
4,75 |
48,67 |
217,73 |
57 |
61,7 |
133,9 |
5 |
57,23 |
2844,91 |
14,58 |
4,74 |
49,79 |
215,96 |
57 |
65 |
139,3 |
6 |
50,79 |
2105,35 |
11,14 |
5,00 |
41,35 |
195,42 |
57 |
56,3 |
110,5 |
7 |
53,82 |
2181,26 |
18,44 |
3,93 |
41,92 |
140,09 |
57 |
52 |
111,4 |
8 |
55,34 |
2211,81 |
12,18 |
6,99 |
40,59 |
241,7 |
57 |
54 |
111,4 |
9 |
70,74 |
2115,91 |
11,42 |
8,48 |
30,62 |
210,25 |
57 |
41,6 |
105,5 |
10 |
59,25 |
2421,39 |
27,35 |
2,75 |
39,95 |
97,49 |
57 |
55,8 |
119 |
11 |
71,36 |
2407,7 |
15,21 |
5,42 |
33,17 |
165,03 |
57 |
59,9 |
121,9 |
12 |
65,88 |
2362,58 |
13,53 |
5,57 |
35,54 |
185,44 |
57 |
52,7 |
114,9 |
13 |
57,97 |
2190,42 |
12,98 |
5,24 |
37,52 |
186,41 |
57 |
45,8 |
106,2 |
14 |
60,8 |
2461,98 |
11,28 |
6,15 |
40,02 |
229,83 |
57 |
57,1 |
123,7 |
Заключение
Данные о свиньях собираются с автоматических кормовых станций, хранятся и пополняются ежедневно [13]. Проблема, которая была решена, заключается в автоматизации и скорости расчета показателей с целью получения точной, своевременной и объективной информации и необходимых результатов. Разработанный блок программного обеспечения Energy Pig и его тестовый запуск показал, что он позволяет проводить индивидуальное вычисление показателей кормового поведения свиней за минимальное количество времени с нивелированием человеческого фактора, тем самым уменьшая вероятность ошибки.
Исследования выполнены в рамках Государственного задания Минобрнауки России №0445-2021-0016.
Литература