Чего не хватает

На карте соответствия против каждого раздела стоит «частично». Здесь сказано, что именно за этим словом: 16 пробелов по 9 разделам.

Список написан без оглядки на то, как он выглядит. Специалист, открывший систему, всё равно найдёт то, о чём здесь умолчали, — и дальше не поверит ничему. Знать границы за десять минут выгоднее обеим сторонам, чем узнавать их на третьем месяце внедрения.

General Rules

Section 01

Общие правила учёта: кто ведёт записи, как подтверждается их достоверность, что делает организация учёта и за что она отвечает перед заводчиком.

Как сейчас. Роли, права доступа и журнал изменений по каждой записи. Верификация записей Ассоциацией — отдельный поток заявок.

Нет внешнего аудита процедур.

Чем это грозит. Правило, которое проверяет только тот, кто его написал, — это обещание, а не правило. Раздел построен вокруг того, что достоверность подтверждает третья сторона, и заменить её собственным прогоном нельзя.

Что для этого нужно. ICAR Certificate of Quality по направлениям Herd-book recording и Data processing — единственная в мире отраслевая сертификация ведения племенной книги. Доступна только членам ICAR, и это упирается в вещи за пределами кода (см. docs/icar.md).

Процедуры учёта не описаны отдельным документом.

Чем это грозит. Порядок работы живёт в коде и в решениях разработчика. Пока систему ведёт один человек, это работает; при передаче Ассоциации или при аудите — нет.

Что для этого нужно. Регламент ведения книги: кто вносит, кто проверяет, в какие сроки, что считается ошибкой и как она исправляется. Работа Ассоциации, а не системы.

Cattle Milk Recording

Section 02

Учёт молочной продуктивности: схемы контрольных доений, интервалы между ними, расчёт лактации, обозначение метода (A4, B4 и прочие), обращение с пропусками.

Как сейчас. Контрольные доения с датой, удоем, жиром, белком и соматикой; лактация считается из них, а не вводится числом. Метод контроля записывается перечислениями стандарта: кто снимал показания, какие доения вошли, как и когда взята проба, — и привычное обозначение A4 или B4 собирается из них, а не хранится строкой. Проверки ловят разрывы в ряду доений и лактации без обязательных показателей.

Интервал между контролями не проверяется.

Чем это грозит. Раздел задаёт допустимые интервалы, и выход за них означает, что лактация посчитана по слишком редким точкам. Наша проверка ловит только полный разрыв в ряду, а не растянутый интервал.

Что для этого нужно. Правило в реестре проверок: интервал между соседними доениями в днях.

DNA Technology

Section 04

Работа с генотипами: подтверждение и уточнение происхождения, обмен генотипами между организациями, требования к лабораториям.

Как сейчас. ДНК-тест с лабораторией, датой, методом и результатом подтверждения происхождения; расхождение с записанными родителями попадает в проверки.

Хранится STR-панель ISAG, но не чиповые генотипы.

Чем это грозит. Двенадцати локусов хватает, чтобы подтвердить происхождение, и не хватает ни на геномную оценку, ни на обмен генотипами: там счёт идёт на десятки тысяч SNP. Файлы чипов книга не принимает вовсе, и при смене лаборатории от прежнего генотипирования остаётся протокол, а не данные.

Что для этого нужно. Двенадцать обязательных STR уже хранятся; чиповые генотипы требуют шести шагов, и ни один не пропускается. Первое — приём трёх форматов, в которых их отдают: отчёт чипа Illumina вместе с манифестом панели, пара файлов PLINK и VCF с объявленной сборкой генома. Второе — приведение к одной кодировке аллелей и одной сборке: один и тот же генотип в TOP, FORWARD и AB выглядит по-разному, а позиции маркеров в ARS-UCD 1.2 и 2.0 не совпадают. Третье — общая опорная панель и импутация до неё, иначе животные с разных чипов несравнимы между собой. Четвёртое — связь пробы с животным: идентификатор образца в лаборатории не равен номеру животного, и без заявки на генотипирование результат повисает. Пятое — контроль качества: доля считанных маркеров у образца и у маркера, частота редкого аллеля, сверка пола и сверка с записанной родословной. Шестое — хранение: пятьдесят тысяч маркеров на животное строками в базе не живут, нужен файл в двоичном формате с метаданными в книге — животное, лаборатория, панель, дата, число маркеров, доля считанных и контрольная сумма файла. Только после этого считаются участки гомозиготности, геномное родство и вероятности исключения. Стандарт ADE тут не помощник — генотипов в нём нет вовсе.

Нет обмена генотипами с другими организациями.

Чем это грозит. Международный обмен идёт через GenoEx-PSE, и он закрыт: нужно членство ICAR плюс сертификация как DNA Data Interpretation Centre. Российских организаций в списке двадцати семи центров нет.

Что для этого нужно. Сначала — хранение генотипов у себя; обмен возможен только после того, как изменится внешняя ситуация.

Conformation Recording

Section 05

Оценка экстерьера: линейные признаки на девятибалльной шкале, сводные оценки по стобалльной, требования к бонитёру и к повторяемости оценок.

Как сейчас. Линейная оценка по признакам 1–9, сводные оценки 50–100 и оценка молодняка. У каждой оценки записан бонитёр и дата. Шестнадцать линейных признаков и четыре сводных отображаются в номенклатуру ICAR при обмене по ADE.

Два сводных признака в номенклатуру ICAR не ложатся.

Чем это грозит. «Объём туловища» и «задняя треть туловища» — наши составные показатели, и соответствия им в перечислении icarConformationTraitType нет. При обмене они просто не уезжают. Выдать их за соседние по смыслу значило бы отправить чужой системе число под чужим именем.

Что для этого нужно. Либо решение Ассоциации перейти на состав признаков ICAR, либо признание того, что эти два остаются внутренними. Решение зоотехническое, не техническое.

Повторяемость оценок бонитёрами не проверяется.

Чем это грозит. Раздел требует, чтобы разные бонитёры ставили одному животному близкие оценки, и чтобы это измерялось. Без такой проверки экстерьерный рейтинг отражает не столько корову, сколько привычки конкретного бонитёра.

Что для этого нужно. Повторные оценки одного животного разными бонитёрами и расчёт расхождения. Данные для этого надо собирать специально — из обычной работы они не берутся.

AI and ET Data and Fertility Analysis

Section 06

Учёт осеменений и пересадок эмбрионов, расчёт показателей воспроизводства: сервис-период, межотельный период, индекс осеменения.

Как сейчас. Осеменения с быком, дозой, техником и результатом; сервис-период и межотельный считаются из событий. Проверки ловят слишком короткий межотельный период и осеменение раньше отёла.

Трансплантация эмбрионов не ведётся.

Чем это грозит. Раздел покрывает и ЭТ, а у нас нет ни вымывания, ни донора с реципиентом, ни документации на эмбрион. Телёнок от пересадки записывается как обычный, и родословная у него получается неверной: мать-реципиент попадает в неё вместо генетической матери.

Что для этого нужно. Событие вымывания, карточка эмбриона, тип родства «реципиент» в родословной. В ADE для этого всё есть: icarReproEmbryoFlushingEventResource, icarReproEmbryoResource и значение Recipient в icarAnimalRelationType. Требуется правилами WHFF при регистрации.

Bovine Functional Traits

Section 07

Функциональные признаки: здоровье вымени, лёгкость отёла, сохранность приплода, долголетие — что именно записывать и как это кодировать.

Как сейчас. Соматика по контрольным доениям, лёгкость отёла, живой и мёртвый приплод, выбытие с датой и причиной.

Единый код здоровья ICAR (Central Health Key) не используется.

Чем это грозит. Записи о болезнях ведутся свободнее, чем требует справочник, и сравнить частоту мастита у нас и в другой стране нельзя: там код, у нас текст. Это же закрывает дорогу к международной оценке признаков здоровья.

Что для этого нужно. Справочник Central Health Key, поле кода у лечения и диагноза, перевод существующих записей. Тот же код использует ADE в icarDiagnosisEventResource.

Лёгкость отёла в трёх степенях вместо пяти.

Чем это грозит. У нас «лёгкий, с помощью, тяжёлый», в международной шкале пять степеней с отдельным кесаревым. При обмене наши три растягиваются в чужие пять однозначно, а обратно — уже нет: два разных чужих значения приходят в одно наше, и различие теряется молча.

Что для этого нужно. Расширить справочник до пяти степеней по icarReproCalvingEaseType и перевести существующие записи.

Dairy Cattle Genetic Evaluation

Section 09

Генетическая оценка молочного скота: из чего складывается племенная ценность, как считается достоверность, как публикуются результаты и база сравнения.

Как сейчас. Индекс племенной ценности с профилями весов, достоверностью по каждому признаку и по индексу в целом, с версией базы сравнения рядом со значением. Рейтинг по книге публикуется поимённо.

База сравнения заимствована, а не своя.

Чем это грозит. Стандартные отклонения и наследуемости взяты из американской базы CDCB-2025 и переведены в метрические единицы. Для российской популяции они приблизительны: индекс внутренне согласован, но его абсолютное значение не означает того же, что в стране, где база своя.

Что для этого нужно. Расчёт генетических параметров по российской популяции — работа научного учреждения, а не системы. Наша часть — версия базы рядом с каждым значением, чтобы смена была прослеживаема; это уже сделано.

Нет валидации генетического тренда.

Чем это грозит. Раздел требует проверять, что оценка не «плывёт» год от года: методы I–III Interbull именно об этом. Без такой проверки медленный сдвиг базы выглядит как генетический прогресс, и заметить подмену нельзя.

Что для этого нужно. Реализация валидационных тестов трендов методами I–III. Делается без всякого членства и остаётся правильной архитектурой, даже если участие в Interbull никогда не случится.

Оценка не участвует в международном сравнении.

Чем это грозит. MACE Interbull приводит оценки разных стран к общей шкале. Без этого наш индекс несопоставим с чужим ни в какую сторону — ни быка сравнить, ни импортную корову оценить.

Что для этого нужно. Требует членства ICAR и валидированной национальной оценки в единой базе. Сегодня закрыто.

Data Exchange

Section 15

Обмен данными между системами: словари, форматы, схемы. Современная линия — открытый стандарт ADE на JSON и REST, спецификация лежит на GitHub под Apache 2.0.

Как сейчас. Обмен с ФГИАС ПР по двадцати шаблонам реестра — выгрузка и обратная загрузка. Собственный REST-интерфейс книги. Отдача 14 коллекций ADE по адресам из спецификации (animals, test-day-results, parturitions, inseminations, type-classifications, weights, breeding-values, arrivals, departures, deaths, pregnancy-checks, milking-visits, daily-milking-averages, diagnoses). Приём POST по 7 из них (test-day-results, parturitions, inseminations, weights, milking-visits, diagnoses, breeding-values) с распознаванием повторной отправки по паре «источник + его номер записи», построчным ответом icarBatchResult и отказами в виде icarErrorResource. Отдаваемое сверяется с настоящими схемами из репозитория adewg/ICAR, а не с нашей копией перечислений. Отбор выборки — именами самого стандарта: meta-modified-from и meta-modified-to по дате записи, date-from и date-to по дате события, пара animal-id с animal-scheme по животному; непонятые параметры называются в заголовке ответа, а не отбрасываются молча. Животные, оценка экстерьера, племенная ценность и перемещения на запись закрыты намеренно: запись животного и переход прав — утверждения, за которые Ассоциация отвечает, и они идут заявкой с проверкой, а не строкой в потоке обмена; каждой отвечается 405 с объяснением.

В обмене 14 ресурсов стандарта, а их около полусотни.

Чем это грозит. Оба способа обмена работают целиком, но возят они то, что книга ведёт. Лечение, кормление, групповые события, убой, показания приборов — ресурсы стандарта, которых у нас нет в самой книге, и обмен тут ни при чём: возить нечего. У лечения причина отдельная и названа клиенту в отказе: срок ожидания хранить негде, а принять запись и потерять его хуже, чем не принять.

Что для этого нужно. Ведение соответствующих разделов в книге. Обмен подхватит их без правки протокола: адрес коллекции и набор данных заводятся одной строкой — ровно ради этого стандарт и сделан не зависящим от типа ресурса.

Breed Associations

Section 18

Работа породных ассоциаций и ведение племенных книг: правила записи животного в книгу, разделы книги, требования к происхождению и к членству.

Как сейчас. Ведение книги, членство хозяйств, выпуск племенных свидетельств, разбор заявок, верификация записей.

Разделов племенной книги нет.

Чем это грозит. В международной практике книга делится по степени чистопородности (основная часть, приложения), и от раздела зависит, что животное может получить и по какой цене продаётся. У нас книга одна и плоская.

Что для этого нужно. Решение Ассоциации о структуре разделов, затем поле раздела у животного и правила попадания в него. Первое важнее второго и не наша работа.

Родословная не гарантирует пяти поколений.

Чем это грозит. Registration Guidelines WHFF требуют пять поколений с данными продуктивности и флаг не-голштинского предка в них. Мы собираем столько, сколько есть в данных, и не отмечаем, где родословная обрывается или где в неё входит чужая порода.

Что для этого нужно. Признак полноты родословной у животного, флаг чужой породы в пяти поколениях, коды рецессивов Mulefoot, BLAD, CVM, DUMPS.

Что из этого зависит не от кода

Часть пробелов закрывается работой, часть — решением, и путать их не стоит. Разделы племенной книги, состав признаков экстерьера и структура методов контроля — это решения Ассоциации: система умеет и так, и иначе, а выбирать должен тот, кто отвечает за породу. Расчёт генетических параметров по российской популяции — работа научного учреждения. Международное сравнение оценок и сертификация качества ведения книги упираются в членство в ICAR, и это отдельный разговор, в котором от нас зависит немногое.