Устойчивость коровы по данным робота: что нужно, чтобы повторить это у нас
594 481 суточная запись с девяти роботов одного итальянского хозяйства, четыре показателя устойчивости и наследуемость 0,086 при стандартной ошибке 0,076. Работа открыта и прочитана целиком — разбираем, что из неё следует для книги, куда суточный удой уже есть куда положить, но ещё не из чего, а способ доения не записан даже у стада.
Дмитрий Васин · 5 сентября 2026 г.
Работа
прочитан полный текстMapping genomic regions affecting resilience traits in a large dairy farm of Holstein cows
- Авторы
- Strillacci M. G. и соавторы, Università degli Studi di Milano
- Где и когда
- Frontiers in Animal Science, 6, 1627086, 2025
- Выборка
- 594 481 суточная запись от 966 коров одного хозяйства Ломбардии, девять роботов, январь 2017 — август 2024; после отбраковки 627 коров в первой лактации, 320 во второй и 136 в третьей
- Что мы прочли
- Прочитан полный текст
Зачем это книге
Оставить эту корову в стаде или выбраковать
Зоотехник хозяйства · На отёле, на осеменении, при разборе группы с падающим удоем
- Как решают сегодня
- По удою последней лактации и по тому, сколько раз корова болела на памяти зоотехника. Первое записано, второе — нет, и потому решение сдвигается к тому, что записано: к удою.
- Чего это стоит
- Робот пишет суточный удой каждый день и стирает его в своей памяти через год-другой. Пока книга не принимает эти ряды, самый частый учёт в стране пропадает целиком, а решения в таких хозяйствах принимаются по тому же месячному контролю, что и везде.
- Что изменит работа
- То же решение об оставлении коровы, но со стороны хозяйств, где доит робот: там суточный ряд есть каждый день, и устойчивость считается без всяких оговорок о шаге учёта. Работа показывает и цену такого счёта — наследуемость 0,086 при стандартной ошибке 0,076, то есть на одном хозяйстве вывод не удерживается.
- Чем книга помогает уже
- Лактации с удоем и днями, контрольные доения с методом учёта, события здоровья, соматические клетки, выбытие с датой и причиной
Решение выбрано из пяти, которые книга берётся обеспечивать (список — в шапке раздела). Работа, под которую не подходит ни одно из них, в раздел не берётся: без такого фильтра сюда годится любая статья, потребовавшая от нас данных, — а требует их любая.
Что утверждает работа
Работа считает четыре показателя устойчивости по отклонениям суточного удоя от ожидаемой кривой и ищет связанные с ними участки генома. Ожидаемая кривая — полиномиальная квантильная регрессия четвёртой степени по 70-му перцентилю, отдельно для каждой коровы и каждой лактации по счёту.
Показателей четыре: логарифм дисперсии отклонений (LnVar), автокорреляция отклонений соседних дней (rauto), взвешенная частота провалов (wfPert) и накопленные потери молока в провалах (dPert). Провалом считается не любой минус: не менее четырёх дней подряд ниже ожидаемого и хотя бы один день ниже 80 % от ожидаемой кривой.
Наследуемость посчитана по родословной, проверенной генотипами, и вышла низкой: LnVar — 0,086 в первой и второй лактациях, rauto — 0,14 и 0,09, dPert — 0,01 и 0,13, wfPert — ноль в обеих. Стандартные ошибки при этом того же порядка, что и сами оценки: 0,086 при ошибке 0,076. Авторы сами пишут, что оценки получены на одном стаде и всей изменчивости популяции не схватывают.
Дальше идёт поиск по геному отбором крайних: по каждому показателю взяты 10 % самых устойчивых и 10 % самых неустойчивых коров, и группы сравниваются по частотам аллелей — из 89 764 аутосомных маркеров после отбраковки остаётся от 60 до 69 тысяч.
Что работа считает провалом
Не всякий минус: не меньше четырёх дней подряд ниже ожидаемой кривой и хотя бы один день ниже восьмидесяти её процентов. Короткая ямка слева под определение не подходит и в счёт не идёт — на этом различии и держится весь показатель.
- засчитанный провал: шесть дней подряд, три из них ниже порога
- розовым — ниже 80 % от ожидаемой кривой
Что нужно для проверки
Ряд суточных удоев с привязкой к дню лактации. Здесь этого мало сказать: работа выбрасывает первые десять дней после отёла, требует не меньше 250 суточных записей на лактацию и режет ряд на 305-м дне. То есть нужен не просто ряд, а правила его отбраковки, записанные один раз и применяемые ко всем.
Способ доения. Все 594 481 запись сняты роботом, и это не подробность быта: суточный удой из робота — сумма добровольных посещений, и провал в нём означает в том числе то, что корова не пришла. В книге негде записать, доится стадо роботом, залом или на привязи, — а без этого ряды разных хозяйств складываются в один и молча.
Ожидаемая кривая и определение провала. Ни того ни другого в книге нет ни в каком виде: девять формул считают надёжность, индекс, инбридинг, возраст первого отёла и кровность, а кривой лактации среди них нет.
Родословная, проверенная по ДНК. Наследуемость в работе считается по матрице родства из родословной, но родословная эта предварительно сверена с генотипами ассоциацией заводчиков — именно поэтому авторы могут утверждать, что низкая наследуемость не следствие ошибок в записях о происхождении.
Фиксированные эффекты: возраст отёла в месяцах, месяц отёла и год отёла. Первый у нас считается, остальные два выводятся из даты — но только там, где отёл записан.
animal, date, lactationNumber, dailyYieldmilk-testsчастичноТочка ряда. Есть, но с месячным шагом: это контрольный день, а не сутки.
Не хватает не заполненности, а шага. Поля заполнены у всех записей контроля; между двумя точками при этом месяц, а работе нужны сутки. Долей это не измеряется и заполнением не чинится: месячный ряд не становится суточным оттого, что в нём нет пропусков.
calvingDate, dd, numberanimals.lactations[]естьДень лактации у каждой точки и рамка в 305 дней считаются от этих полей.
date, startDate, endDate, excludeFromAnalyticshealth-eventsестьПериод болезни с датами и пометкой «исключать из расчёта продуктивности» — то есть названная причина провала, которой в работе как раз и нет.
MIN_TESTSlib/completeness.tsчастичноЕдинственное правило длины ряда в книге: сколько контролей делают лактацию пригодной. Про отсечение первых дней и про верхнюю границу ряда правил нет.
Не хватает двух правил из трёх, а не данных. Правило минимальной длины в книге есть и работает; отсечения первых дней лактации и верхней границы дней в ряду нет ни одного, и потому отбор лактаций для такого расчёта пришлось бы каждый раз делать руками — то есть по-разному.
способ доенияherdsнетВ стаде записаны название, код, организация и адрес. Робот, зал или привязь — нигде, и потому отобрать «стада с роботами» нельзя даже вручную.
суточный удой и посещения роботаdaily-milkings, milking-visitsчастичноХранилище заведено, и посещение хранится отдельным событием — со временем, номером установки и отметкой «доение завершено нормально»; суточная запись из посещений складывается (разбор — «Суточный удой — не контрольная дойка»).
Не хватает данных: строк ноль. Поля есть все, дороги приёма открыты — и файлом, и обменом, — но ни один робот пока не подключён. Это задача хозяйствам и поставщикам оборудования, а не нам, и первый её шаг — ICAR-сертифицированная установка, потому что учёт с несертифицированного прибора официальным не считается.
ожидаемая кривая лактации и провалы—нетНи кривой, ни определения провала: отклонение считать не от чего.
генотип с чипа—нетПанель ISAG в карточке есть и родство отца с дочерью подтверждает, но сверить по ней всю родословную и повторить отбор крайних по 10 % нечем: для этого нужны десятки тысяч SNP. Пробел назван на странице пробелов ICAR — genotype-storage.
Полей названо 8: есть 2, частично 3, нет 3. У каждого «частично» под описанием сказано, чего именно не хватает.
Что у нас есть сегодня
Ряд у нас есть, но с другим шагом: контрольный день раз в месяц вместо суток. На месячном шаге LnVar посчитается арифметически — и посчитает не то: работа меряет разброс дня ото дня, а месячная точка это колебание уже усреднила. Автокорреляция соседних дней на месячном шаге не определена вовсе.
При этом место под суточный ряд заведено: посещение робота хранится отдельным событием — время начала, надоенные килограммы, номер установки, отметка «доение завершено нормально», — а суточная запись складывается из посещений и помечена как сложенная, чтобы её не путали с показанием счётчика. Приём посещений по обмену открыт. Пусто здесь не от устройства книги, а оттого, что роботы ещё не подключены.
Зато у нас есть то, чего нет в работе, — названная причина провала. События здоровья пишутся отдельной коллекцией, с датами начала и конца и с пометкой «исключать период из расчёта продуктивности». В работе провал — это статистика: четыре дня минуса и один день ниже 80 %, а отчего именно, модель не знает. У нас на часть провалов есть диагноз, и это другой вопрос, который можно задать теми же данными.
Родословная считается на девять колен, и это тот материал, на котором в принципе строится матрица родства. Проверки происхождения по ДНК среди наборов загрузки есть, а вот сколько животных ею покрыто — здесь не считается.
Счёта по живой книге на этой странице нет и быть не может: витрина отдельный домен и в базу не ходит.
Формул, посчитанных книгой
9 формул
FORMULAS в lib/formulas.ts; кривой лактации среди них нет
Минимальная длина ряда контролей, признаваемая книгой
6 контролей
MIN_TESTS в lib/completeness.ts; в работе порог — 250 суточных записей
Глубина родословной в карточке животного
9 колен
ANCESTRY_DEPTH в lib/ancestry.ts
Поле способа доения в карточке стада
0 полей
Посчитано и не найдено: в Herds.ts название, код, организация и адрес
Хранилище суточных удоев и посещений робота
2 коллекций
milking-visits и daily-milkings; суточная складывается из посещений
Ресурсов обмена, открытых на запись
7 ресурсов
ADE_WRITABLE в lib/ade/parse.ts; посещения доения среди них. Суточную среднюю сам стандарт отдаёт только на чтение
Лактаций с рядом не короче MIN_TESTS
счёт не считался
Счёт не считался: витрина не ходит в базу книги
Животных с проверенным по ДНК происхождением
счёт не считался
Счёт не считался; это же и есть предел выборки для матрицы родства
Чего не хватает
Самого суточного ряда. Полмиллиона записей за семь лет с одной фермы бывают только выгрузкой из робота — и вот эту выгрузку книга теперь принимает: посещения по обмену, готовый суточный итог загрузкой файлом. Хранилище заведено и пусто, потому что ни одно хозяйство ещё не подключило робота. Это уже не вопрос устройства книги, а работа по подключению, и она у хозяйств.
Признака стада, по которому отбирают хозяйства с роботами. Без него мы не сможем даже сказать, есть ли у нас в книге стадо, на котором вопрос вообще уместен, — а вопрос уместен только там.
Ожидаемой кривой и определения провала. Работа даёт и то и другое числами: четвёртая степень, 70-й перцентиль, четыре дня подряд, порог 80 %. Переписать это в код — задача с известным ответом, и потому самая дешёвая в списке.
Генотипов, а с ними — и права называть посчитанную величину наследуемостью, а не совпадением по родословной.
Отдельно стоит сказать, чего не хватает и самой работе: она сделана на одном хозяйстве, и авторы это оговаривают первыми. Для нас это означает, что повторять её на одном стаде бессмысленно вдвойне — расхождение будет объяснимо и стадом, и популяцией сразу. Задача соискателю тут ставится не «повторить», а «собрать выборку, на которой повторение что-то значит».
Чем наш ответ будет отличаться
Другой шаг ряда, и это здесь не оговорка, а перемена вопроса. Из четырёх показателей работы на месячном контроле осмысленно считается один — накопленные потери против ожидаемой кривой, — и то грубо. Автокорреляция соседних дней на нашем шаге не существует.
Другой способ доения и другая система содержания: у них добровольное посещение робота, у нас в большинстве стад доение по распорядку. Провал в роботе означает в том числе непришедшую корову, у нас — не означает.
Другая единица наблюдения. У них одно хозяйство и семь лет, у нас — книга Ассоциации, то есть много хозяйств с разной техникой и разным кормлением. Это в нашу пользу для наследуемости и против нас для сопоставимости рядов.
И другой инструмент объяснения: у нас есть события здоровья с датами. Мы можем спросить не только «сколько провалов», но и «сколько провалов с названным диагнозом», чего работа спросить не могла.
Чего пересчёт не докажет
Пересчёт не докажет и не опровергнет их наследуемости. Их собственная оценка на 627 коровах одного стада стоит с ошибкой почти в свою величину: 0,086 при 0,076. Расхождение с числом такой точности — не результат.
Он не покажет, что LnVar измеряет устойчивость. Это дисперсия отклонений от кривой, подобранной по тем же данным. Назвать её устойчивостью — решение, и работа его наследует у предшественников, а не проверяет.
И он ничего не скажет о найденных участках генома. Поиск по геному отбором крайних с объединением в пулы — метод для разведки, а не для доказательства: без генотипов у нас нет даже входа в этот разговор.
Что завести в книге, чтобы вопрос стал проверяемым
- поле в книге
src/collections/Herds.tsЗавести в карточке стада способ доения: робот, доильный зал, молокопровод или привязь, с числом установок и датой пуска. Сейчас в стаде четыре поля — название, код, организация, адрес.
Пока способ доения не записан, выборку «стада с роботами» нельзя составить даже вручную, а суточные ряды разной природы складываются в один незаметно. Это первое поле, которое надо завести, и самое дешёвое: заполняется один раз на стадо и не зависит ни от какого обмена.
- расчёт
FORMULAS в src/lib/formulas.tsНаписать ожидаемую кривую лактации: полиномиальная квантильная регрессия четвёртой степени по 70-му перцентилю, отдельно на животное и лактацию, с отклонением наблюдённого от ожидаемого как отдельной величиной.
Отклонение — общий вход всех четырёх показателей работы, и до него не считается ни один. Числа для повторения работа даёт целиком: степень, перцентиль, порядок подгонки. Это задача с известным ответом, и она не требует ни одного нового поля.
- расчёт
src/lib/completeness.ts рядом с MIN_TESTSЗавести правила отбраковки ряда числами: сколько дней после отёла отбрасывается, какова минимальная длина ряда и где ряд обрезается. У книги есть одно такое правило — MIN_TESTS, и оно про контрольные дни.
В работе отбраковка съедает три четверти данных: из 594 481 записи и 966 коров до расчёта доходят 627 коров первой лактации. Правила отбора здесь не подробность метода, а половина результата, и держать их в голове того, кто считает, значит получать разный результат при каждом пересчёте.
- расчёт
src/lib/herd-analytics.ts, события из health-eventsСчитать провалы продуктивности по определению работы — не менее четырёх дней подряд ниже ожидаемого, хотя бы один день ниже 80 % от кривой — и сводить их с периодами болезни, которые уже записаны датами начала и конца.
Это то место, где мы можем спросить больше работы, а не меньше. У них провал безымянный, у нас часть провалов совпадёт с записанным диагнозом. Доля провалов с названной причиной — наш собственный показатель, и считать его не на чем только потому, что провалы не выделяются.
- расчёт
FORMULAS в src/lib/formulas.ts, надёжность оценкиПечатать стандартную ошибку рядом с каждой оценкой наследуемости и надёжности, а не одно число. Формула надёжности написана, ошибки при ней нет.
Главное число этой работы — 0,086 при ошибке 0,076, и без второй половины оно читается как установленный факт. Наша книга печатает надёжность в процентах без интервала и потому продаёт то же сильное обещание. Требование пришло из чужой работы, а закрывать его надо у себя.
- вне книги
Согласие производителей доильных роботов на выгрузку в стандарте обмена.
Ресурсы стандарта описаны, но данные лежат в системах Lely, DeLaval и GEA, и открывает их не книга, а хозяйство вместе с поставщиком. Единственная строка списка, которую нельзя закрыть правкой кода, — и потому она стоит отдельно от шести, которые можно.
Требований названо 6: полей 1, загрузок и обменов 0, расчётов 4, вне книги 1.
Слова этой страницы
Определения с нашими числами и с тем, чего каждое слово не означает.
| Контрольное доение | Замер одной коровы в один день: суточный удой, жир, белок, соматические клетки. Исходная запись, из которой складывается лактация. |
|---|---|
| Метод контроля продуктивности | Чем получено число, которое хозяйство называет удоем: кто снимал показания, как часто, какие доения вошли и как брали пробу. |
| Лактация за 305 дней | Удой за первые триста пять дней лактации. Число, которое делает лактации разной длины сравнимыми между собой. |
| Дойные дни | Сколько дней корову доили в эту лактацию. По ним книга узнаёт законченную лактацию, когда дата окончания не проставлена: 305 дней и больше. |
| Наследуемость, h² | Доля различий между животными, объяснённая генами, а не кормлением и содержанием. У удоя 0,30, у фертильности 0,04. |
| Надёжность оценки, R | Доля изменчивости прогноза, объяснённая собранными данными: насколько число сдвинется, когда данных станет больше. |
| Повторяемость | Насколько животное похоже само на себя от лактации к лактации. У удоя 0,55, у смертности приплода 0,05. В надёжность по потомству не входит: n там — число дочерей, а не записей. |
| Геномная оценка | Прогноз племенной ценности по генотипу, перенесённый с референтной популяции: у молодого быка он есть до первой дочери. |
| Родословная | Дерево предков, построенное обходом связей «отец — мать». Хранится дважды — связью и текстом со свидетельства; в карточке показывается три ряда, вглубь считается до девяти колен. |
| Глубина обхода родословной | До какого колена система поднимается, когда считает родство. В карточке девять колен, в подборе шесть, в сравнении быков три. |
Читать дальше
Источники
- Strillacci M. G. et al. Mapping genomic regions affecting resilience traits in a large dairy farm of Holstein cows. Frontiers in Animal Science, 2025
Полный текст открыт: отбраковка, кривая, определения показателей, наследуемости
- ICAR. Section 2 — Cattle Milk Recording
Требования к учёту при автоматизированном доении и обозначения методов