
В прошлой части мы говорили о прямом анализе генома ИИ-моделями и о базовых функциях опенсурсной программы Just-DNA-Lite, а также о простой пересборке генома.
В этой статье поговорим о том, как подойти к анализу генома более профессионально: о специальном плагине к Claude Code, MCP-сервере и более подробно о том, как получить полигенные оценки от Just-DNA-Lite. Ну и о диагностике по геному.
Важные оговорки
Прочитав этот текст и поставив себе Just-DNA-Lite с парой плагинов, вы не станете врачом-генетиком. Даже в связке с сильной моделью вроде Opus инструмент не заменяет ни специалиста, ни клиническое подтверждение: он не ставит диагноз, не назначает лечение и не отменяет поход к врачу.
Но порог входа снижается. Ещё пару лет назад, чтобы получить из своего VCF что-то осмысленное, нужен был биоинформатик или платный сервис с загрузкой генома на чужой сервер. Теперь тот же разбор — полигенные оценки, перцентили по популяции, проверка находок — собирается локально, на вашей машине, а ИИ объясняет по ходу дела. Так что скорее не «сам себе врач», а «сам себе читатель собственного генома».
Почему геномные базы избегают диагноза
Первое, обо что спотыкаешься, начав всерьёз читать полигенные оценки, — их подчёркнутая уклончивость. Я прогнал несколько оценок через кнопку «Ask Claude» (впервые об этих кнопках упомянуто тут), и Opus почти на каждую отвечал в духе: сам по себе этот результат конкретно ни о чём не говорит, уверенности он не даёт. Ждёшь вердикта, а получаешь что-то размытое.
Так устроены сами базы моделей полигенных оценок из PGS Catalog. Они дают не диагноз, а степень риска, ранг относительно популяции (об этом была третья часть). Основной разработчик Just-DNA-Lite объяснил это на пальцах так.
Представь штаны, у которых на коленях ткань оказалась тоньше обычного. Это гарантия, что порвётся на колене? Нет. Но на колене вероятнее, чем в других местах и чем у соседа. Полигенная оценка — такой же индикатор: где у вас «прочнее» среднего, а где «слабее». Это карта тонких мест.
Уклончивость встроена намеренно, и причина не только техническая. Разработчики персональной геномики поголовно заточены под то, чтобы не выдать медицинский диагноз, — трактовка чужих геномов упирается в регулирование (историю с FDA и 23andMe я разбирал в прошлой части). Поэтому на выходе — вероятностный ранг, а не строка «у вас болезнь X». Степень неуверенности ответа модели, можно сказать, намеренно преувеличивается.
Чего вам не скажут
Уклончивость баз — ещё цветочки. Есть уровень глубже. Даже когда речь о настоящей клинике и настоящем диагнозе, вам могут его не сообщить — сознательно.
Логика биоэтики такая. Если у человека находят что-то тяжёлое и неизлечимое, сказать ему — значит взять на себя риск. Лечения нет, а вероятность, что пациент сорвётся в депрессию или наложит на себя руки раньше срока, вполне реальна. Скажут — и виноватыми окажутся они. Проще промолчать.
Медицина по умолчанию не обязана сообщать вам худшее — и нередко не сообщает.
Разработчик рассказал случай (без имён): человек сам заподозрил у себя серьёзное, сделал полногеномное секвенирование и нашёл проблему, полез в собственный генетический отчёт, сделанный солидной клиникой, — а там про это молчок. Спрашивает: как же вы такое не нашли? Ему отвечают то же, что выше («в интересах вашего психического здоровья»). Не покопался бы сам — не узнал бы. А так у него появился шанс попасть в исследования на ранней стадии, пока что-то ещё можно сделать. И это не особенность одной страны — примерно такой консенсус во всём мире; где-то жёстче, вплоть до того, что пациенту не отдают на руки медкарту по принципу «вы не врач, вам знать незачем».
Крайний случай институционального недоверия — Франция: там прямые потребительские ДНК-тесты запрещены законом. По Гражданскому кодексу Франции (статья 16-10) исследовать генетику человека можно только с медицинским обоснованием или по решению суда и с письменного согласия; заказ бытового теста из-за границы формально грозит штрафом до 3750 евро, хотя на практике почти не наказывают. Народная молва считает, что этот запрет сделан для сохранения семей: якобы, если выяснится, кто реально чей отец, то полстраны разведётся. Официальная причина иная — обязательное посредничество специалиста. Французский закон исходит из того, что генетическая информация слишком весома, чтобы попадать к человеку без квалифицированного сопровождения — врача с генетическим консультированием. Как формулирует философ-биоэтик Бернар Бертши (Bernard Baertschi), почётный профессор Женевского университета и член этического комитета французского Inserm (национального института здоровья и медицинских исследований), ни отцовство ребёнка, ни риск тяжёлой болезни вроде рака или Альцгеймера «не относятся к развлекательному».
На этом фоне «безопасная» геномика — та, что про еду: что вам стоит есть, а чего избегать. Самое практически полезное из персональной геномики — нутрициогеномные панели, которые сдают в клиниках: усвояемость лактозы, нарушения фолатного цикла, метаболизм витамина B12, обмен железа (гемохроматоз, ферритин) и подобное. Тут выводы прямые и действенные. Пример: человек по генетике узнаёт, что обычный B12 — цианокобаламин — его организм плохо переводит в активную форму (её сперва надо «включить» ферментами). Значит, стоит принимать сразу метилированную, метил-B12, готовую к работе. А если тот же разбор показывает, что B12 у него ещё и выводится быстрее нормы, — принимать малыми дозами и часто. Это уже не просто риск, а конкретная, практически полезная поправка к образу жизни.
Раз система по умолчанию отдаёт вам только безопасную часть, а страшное придерживает, копаться в собственном геноме самому — необходимость. Это способ узнать про тонкие места раньше, чем они всплывут в виде страшных диагнозов по факту, и успеть: сходить к врачу с конкретным вопросом, попасть в скрининг или в раннее исследование.
Мой знакомый биоинформатик рассказывал такое — почти дословно:
По полигенной оценке у меня риск СДВГ — 99-й перцентиль. Я такой: да ну, фигня какая-то, нет у меня такого диагноза. Потом начал читать, изучать — и к концу четвёртого десятка узнал, что таки есть, все симптомы в наличии. Просто советская медицина не фокусировалась и не искала СДВГ.
Перцентиль сам по себе диагнозом не был, но стал поводом копнуть — и попал в цель.
Кнопка и агент: два интерфейса к одному движку
Разобравшись, что полигенные оценки — это про риск, а не про диагноз, посмотрим, как с ними работать удобнее. Функционал Just-DNA-Seq теперь есть в двух вариантах.
Первый — привычная веб-интерфейс Just-DNA-Lite (её я показывал в третьей части): кнопки, таблицы, графики, а рядом с находкой — кнопки «Ask Claude», «Ask ChatGPT». Нажимаешь — готовый промт с цифрами оценок уходит LLM с просьбой объяснить.

Второй — работа через агента: MCP-сервер и плагин к Claude Code. Здесь модель не получает готовый ответ, а сама управляет расчётом: выбирает признак, грузит геном, считает оценку, читает карточку модели. Разница, по словам разработчика, вот в чём. С кнопкой вы даёте языковой модели результат «в руки» и говорите: объясняй. С MCP вы отдаёте ей не результат, а все те кнопки, что нажимали бы сами. Модель ведёт процесс — и на выходе у неё больше контекста: не только «что получилось», но и «как считалось». А чем больше контекста, тем точнее её объяснения. Это предпочтительный способ из-за большего контекста для LLM.
Кнопка «обсудить с ИИ» |
Агент (MCP / плагин) |
|
|---|---|---|
Что получает модель |
готовый результат расчёта |
доступ к самим расчётам |
Кто ведёт процесс |
вы кликами, модель комментирует |
модель, вызывает инструменты сама |
Контекст у модели |
итоговое число |
итоговые числа и промежуточные расчёты |
Кому удобнее |
привыкшим к графическому интерфейсу |
тем, кто хочет диалог по ходу |
Это часть общего сдвига к agent-first: всё больше людей делают Claude или Claude Code единой точкой входа, откуда запускается вся работа. Красивые графики при этом никуда не деваются — просто сохраняются картинками.
Полигенные оценки: по чертам или по моделям
Внутри вкладки полигенных оценок в интерфейсе Just-DNA-Lite есть два раздела: по чертам/признакам (by trait) и по отдельным моделям (individual).
По моделям — это конкретные модели из PGS Catalog поштучно: одна модель, один балл. По чертам — группировка: одна черта или болезнь, а под ней все модели, которые её оценивают. Разработчик советует смотреть по чертам: под один признак обычно подобрано несколько независимых моделей, и вместе они дают более устойчивую картину, чем любая одна в отдельности.
Откуда программа знает, какие модели относятся к одной черте? У каждой модели в каталоге есть карточка с классификаторами EFO и MONDO — двумя международными онтологиями, унифицированными машинночитаемыми справочниками. EFO (Experimental Factor Ontology, «онтология экспериментальных факторов», из европейского института биоинформатики EMBL-EBI) каталогизирует переменные исследований: признаки, фенотипы, типы клеток. MONDO (Mondo Disease Ontology, «онтология болезней») сводит разрозненные медицинские классификации — OMIM, Orphanet, МКБ и прочие — в один согласованный список болезней. По ним оценки и группируются: не по названиям на глаз, а по общему коду черты.
Плагин для Claude Code
Практика показывает: всё больше людей идут за разбором генома сразу к ИИ, а не к графическому интерфейсу. Разработчики Just-DNA-Lite это учли и сделали хорошие инструменты для ИИ-агентов — MCP-сервер и плагин к Claude Code (плагин появился уже после прошлой статьи и, по наблюдениям команды, стал основным сценарием у энтузиастов). Веб-морду ради расчёта ставить при этом необязательно — всё работает из агента. Я как автор её всё же очень рекомендую поставить (почему — показывал в третьей части), но обязательной она больше не является.
Ставится в три команды. Первая подключает каталог плагинов (как репозиторий в Linux), две другие ставят сами плагины:
claude plugin marketplace add dna-seq/dna-seq-claude-marketplace claude plugin install ensembl@dna-seq claude plugin install just-prs@dna-seq
Это команды для Claude Code. Codex поддерживается тоже, двумя путями.
Codex CLI: тот же каталог регистрируется командой codex plugin marketplace add dna-seq/dna-seq-claude-marketplace, дальше плагины ставятся по той же схеме.
Codex Desktop: клонируете этот репозиторий, открываете его как проект в Codex Desktop, во вкладке Plugins выбираете DNA Seq Genomics и ставите ensembl, just-prs или оба; затем запускаете новую сессию, чтобы подхватились скиллы и MCP-серверы.
Специально ради этого ставить Codex не нужно — команды пригодятся, только если он у вас уже есть.
just-prs считает полигенные оценки по локальному VCF (геном никуда не загружается), ensembl добавляет справки по генам, транскриптам и вариантам из публичной базы Ensembl. Оба плагина включают в себя MCP-сервер — ставить его отдельно не нужно.
Что оба плагина поднялись, проверяется командой /mcp прямо в сессии Claude Code — она показывает подключённые MCP-серверы и число инструментов у каждого. У меня обе строки — ✔ connected:
plugin:ensembl:ensembl · ✔ connected · 32 tools plugin:just-prs:just-prs · ✔ connected · 16 tools
Шестнадцать инструментов just-prs — это весь конвейер полигенных оценок: поиск моделей в каталоге, нормализация генома, расчёт балла, перевод в перцентиль и абсолютный риск, оценка качества и график. Всё нужное для разбора уже подключено.
Что под капотом. У веб-версии и плагина общая кодовая база: и то и другое опирается на одну библиотеку just-prs. Разница в том, что у плагина нет графического интерфейса — его функции выведены языковой модели через MCP. То есть плагин не «устанавливает проект» скрытно от вас: его ядро — тот же расчётный движок, просто доступный не через кнопки, а через вызовы модели.
Пользоваться проще, чем звучит. Никаких допзнаний, кроме командной строки, не нужно: даёте Claude ссылку на свой файл, ставите плагины и просите обычными словами — например, «посчитай мои генетические риски по диабету, объясни и разложи по полочкам». Дальше модель сама выбирает подходящие модели, считает оценки и по ходу объясняет, что происходит и что это значит. В Claude Code это особенно удобно: пока модель печатает ответ, ей можно подкидывать уточняющие вопросы прямо в процессе — не как в обычном чате, где ждёшь конца ответа.
Правда, из ходовых функций одной пока нет — плагин не умеет проверять отцовство.
Подводный камень: variant-only VCF
Дальше я сделал очевидное: дал Claude Code путь к своему VCF и попросил посчитать полигенный риск. И упёрся в стену — модель отчиталась, что покрытие низкое, около 25%, и корректно посчитать оценку так не может.
Это баг в MCP-сервере, который разработчики обещают оперативно исправить. Я объясню в чём дело и как его обойти. Это несложно.
Причина — в том, каким получился мой файл. Это variant-only VCF: в нём записаны только позиции, где я отличаюсь от эталона, а совпавшие с эталоном места — гомозиготы по референсу — не перечислены вовсе. Для diff’а это нормально (как устроен VCF, разбирал во второй части), а для полигенной оценки плохо.
В модели PGS у каждой позиции есть «эффектный» аллель — тот, к которому привязан вес. Примерно у половины позиций этим эффектным аллелем оказывается референсный. Человек, гомозиготный по референсу в такой точке, несёт две копии эффектного аллеля, и вклад его — удвоенный вес позиции. Но в variant-only VCF таких точек попросту нет, — и наивный расчёт считает, что эффектных аллелей там ноль. Так теряется до трёх четвертей всей весовой массы модели, а «покрытие» падает до тех же ~25%. MCP-сервер в базовом (essentials) режиме референс в этих позициях не восстанавливает — поэтому его прямому compute_prs на таком файле верить нельзя.
Лечится это восстановлением референса. Расчёту нужно знать эталонный аллель в каждой позиции, которую используют модели: тогда любую точку, которой нет в вашем VCF, можно уверенно считать гомозиготой по референсу и досчитать её вклад. Но нам для этого не потребуется эталонный геном на 1 ГБ. Для этого есть готовая таблица эталонных оснований в тех самых позициях, которые используются для полигенных оценок, — около 75 МБ, он скачается автоматически с HuggingFace, и эталонный геном для этого не нужен. LLM посчитает напрямую через через Python-библиотеку just-prs с флагом восстановления, нужно лишь правильно попросить.
Промт, которым я в итоге считаю (скопировать, подставить путь к файлу и болезнь или PGS-ID):
У меня геном человека — variant-only WGS VCF, сборка GRCh38 (только вариантные позиции, без hom-ref блоков): <ПУТЬ>. Посчитай полигенный риск для <болезнь или PGS-ID> по каталогу PGS. Важно по методике — иначе результат будет неверным: - Это variant-only VCF: наивный расчёт теряет ~75 % весовой массы (у ~половины SNP эффектный аллель — референсный, и гомозиготный по референсу человек должен давать вклад 2·β). - MCP-сервер just-prs в essentials-режиме НЕ делает reference-restoration и выдаёт мусор (покрытие ~25 %, невозможные z-оценки). Не доверяй его compute_prs напрямую. - Правильный путь: установи Python-библиотеку just-prs (uv pip install just-prs или pip) и вызови compute_prs из библиотеки с параметрами: reference_restoration=True, genotype_input_mode="variant_only", sample_build="GRCh38", и подготовленным reference_universe. Таблица референсных аллелей скачается автоматически с HuggingFace (репозиторий just-dna-seq/pgs-catalog, data/reference/reference_allele_universe.parquet, ~75 МБ — полный геном FASTA НЕ нужен). - Самопроверка: после расчёта убедись, что weight_mass_coverage ≈ 0,99. Если ~0,25 — restoration не применился, исправь, прежде чем показывать результат. - Затем дай перцентиль (percentile) и абсолютный риск (absolute_risk), и сравни несколько моделей по доказательности.
Главная самопроверка — в конце: доля учтённого веса weight_mass_coverage должна выйти около 0,99. Если она осталась в районе 0,25, восстановление референса не сработало и результату верить рано. Когда покрытие в порядке, уже осмысленно просить перцентиль, абсолютный риск и сравнение нескольких моделей по доказательности.
Пример мегапромта для LLM, который считает самые частозапрашиваемые оценки
После установки плагинов для Claude Code или Codex можно одним запросом попросить сгенерировать большой отчёт по вашему геному.
Вот пример такого промта (внутри нужно подставить путь к vcf-файлу с геномом):
Пример мегапромта для создания большого отчёта по геному
ЗАДАЧА
Ты — ассистент по интерпретации личного генома. У меня WGS-геном в формате variant-only VCF (только вариантные позиции, без hom-ref блоков), сборка GRCh38. Составь наглядную сводную HTML-страницу (Artifact) с полигенными рисками (PRS) и ключевыми точечными вариантами.
ВХОД
VCF: <ПУТЬ_К_VCF>
Происхождение: европейское (EUR) # поменяй при необходимости
Пол: мужской # для пол-специфичных моделей
ТРЕБОВАНИЯ ОКРУЖЕНИЯ
MCP-плагин just-prs (поиск/percentile/absolute_risk) и, желательно, Ensembl (аннотация вариантов). Python для библиотеки just-prs.
КРИТИЧЕСКАЯ МЕТОДИКА (без неё результат НЕВЕРНЫЙ)
Это variant-only VCF: наивный PRS теряет ~75% весовой массы (у ~половины SNP эффектный аллель — референсный, и hom-ref человек должен давать вклад 2·β). MCP-сервер just-prs в essentials-режиме reference-restoration НЕ делает и выдаёт мусор (покрытие ~25%, невозможные z). Поэтому:
Модели ищи через MCP: search_traits, trait_info, best_performance, score_info.
Нормализуй VCF через MCP normalize_vcf ОДИН раз, переиспользуй parquet.
Скоринг-файл КЭШИРУЙ, один раз вызвав MCP compute_prs (это скачивает
САМИ БАЛЛЫ считай Python-библиотекой just-prs (при отсутствии:
uv pip install just-prs) вызовом compute_prs с: reference_restoration=True, genotype_input_mode=“variant_only”, sample_build=“GRCh38”, reference_universe = catalog.prepare_reference_universe(“GRCh38”) (таблица ~72 МБ с HuggingFace, полный FASTA НЕ нужен), genotypes_lf = pl.scan_parquet(<нормализованный parquet>), scoring_file = <кэшированный hmPOS parquet>.ОБЯЗАТЕЛЬНАЯ САМОПРОВЕРКА: показывай результат ТОЛЬКО если weight_mass_coverage (C_wt) >= 0.95 (цель ~0.99). Иначе — попробуй другую модель этого же трейта или пометь «надёжно не оценивается».
ЦИКЛ НА КАЖДЫЙ ТРЕЙТ
search_traits → выбери 1–2 сильнейшие модели по best_performance (крупная валидация, приоритет EUR; для пол-специфичных — верный пол).
MCP compute_prs (кэш скоринг-файла).
Библиотечный compute_prs с restoration → проверь C_wt.
MCP percentile (score, superpopulation=“EUR”, weight_mass_coverage=C_wt).
MCP absolute_risk по z_score — но абсолютные % НЕ показывай как реальный риск (они считаются от когортных долей и недостоверны); показывай перцентиль и относительный сдвиг.
ТЕМЫ (полигенные)
Метаболизм/вес: BMI/ожирение, подагра, ферритин, B12; рост, кофе, хронотип. Диабет 2 типа (2–3 полногеномные модели). Сердце: ИБС; липиды: LDL, HDL, триглицериды. Онкология: колоректальный, рак желудка, меланома, мозг/глиома, простата. Психиатрия: шизофрения (несколько моделей), депрессия, биполярное, СДВГ, аутизм, нейротизм. Нейродегенеративные: Альцгеймер (+ читай APOE напрямую), Паркинсон. Аутоиммунные: целиакия, псориаз, рассеянный склероз, ВЗК (СД1/РА HLA-зависимы — часто не покрываются, помечай).
ТОЧЕЧНЫЕ ВАРИАНТЫ (читай напрямую из VCF по rsID; отсутствие = hom-ref,
подтверди по GVCF если есть; аллели/ориентацию бери из Ensembl batch_get_variants_by_rsid, интерпретируй по известной биологии) Здоровье: MTHFR C677T rs1801133, A1298C rs1801131; HFE C282Y rs1800562, H63D rs1799945; LCT −13910 rs4988235 (лактоза); APOE rs429358+rs7412 (Альцгеймер/долголетие); FUT2 rs602662, TCN2 rs1801198 (B12). Черты: ACTN3 rs1815739, CYP1A2 rs762551, ALDH2 rs671, ADH1B rs1229984, ABCC11 rs17822931, TAS2R38 rs713598, OR6A2 rs72921001, COMT rs4680, OXTR rs53576.
КООРДИНАТЫ ВАРИАНТОВ — ПРАВИЛО (иначе перепутаешь сборку)
НИКОГДА не подставляй позицию варианта «по памяти»: у одного rsID разные координаты в GRCh37 и GRCh38 (расхождение может быть десятки тысяч п.н.).
Позицию и аллели (ref/alt) бери ТОЛЬКО из надёжного источника: (а) из самого VCF — для вариантов, которые в нём присутствуют (present); (б) из Ensembl (batch_get_variants_by_rsid, assembly=GRCh38) — для отсутствующих (absent) вариантов, которые надо подтвердить как hom-ref.
Если Ensembl временно недоступен (перемежающиеся 500/503) — это транзиентно: повтори с задержкой (backoff). НЕ переходи на координату из памяти; лучше пометь вариант «отложен» и вернись, когда Ensembl ответит.
При подтверждении hom-ref по GVCF:
ref/genotypeв записи блока относятся к СТАРТУ блока, а не к твоей позиции внутри него. Для интерпретации генотипа 0/0 бери референсный аллель ИМЕННО с позиции варианта (из Ensembl), а не из блочной записи.Быстрая самопроверка: убедись, что твоя позиция попадает в интервал start…end блока и что сборка VCF (GRCh37/38) совпадает с запрошенной у Ensembl.
ПРАВИЛА ИНТЕРПРЕТАЦИИ
Сравнивай модели по OR/HR на 1 SD, НЕ по AUROC (AUROC PRS-only ≈ 0,6; 0,8 — это модель с ковариатами возраст/пол/ИМТ).
z: 0→50-й перцентиль, +1→~84, +2→~98, −1→~16. За ±2,5–3 — экстраполяция (панель ~500 чел.), читать «у края». Полногеномные «все-плюс» модели в хвосте склонны к завышению (артефакт restoration) — помечай (пример: очень высокий z при крошечной SD референса).
Ничего не диагноз; PRS объясняют лишь часть риска; среда/образ жизни для многих признаков важнее.
ВЫВОД — HTML-СТРАНИЦА (Artifact)
Заголовок + дисклеймер (не диагноз; почему абс. % не показаны).
«Как читать»: перцентиль, z, доказательность.
«Главное»: карточки того, что требует внимания.
Разделы по системам, таблицы: признак | модель/генотип | перцентиль | z | чтение.
Пометки: ? обратить внимание / ? слабый-смешанный / ? благоприятно / ℹ инфо.
Тёмная/светлая тема, адаптив, tabular-nums для чисел.
Опубликуй приватный Artifact и сохрани локальную копию HTML в рабочую папку.
Действуй по шагам: сначала нормализуй VCF, показывай прогресс, в конце опубликуй страницу и дай ссылку + путь к локальному файлу.
Почему полигенные оценки трудно посчитать
Расчёт полигенных оценок разработчик называет самой технически сложной частью проекта.
Сама формула проста: найти позиции модели в геноме, умножить на веса, сложить. Считать это умеет и стандартная утилита PLINK2 — по ней у Just-DNA-Seq идёт сверка. Сложность не в арифметике, а вокруг неё. Чтобы результат имел смысл, модели надо правильно подобрать — под свою популяцию, под сборку генома — и правильно подготовить данные, а это требует багажа, которого у обычного человека нет. И даже когда всё подобрано, расчёт легко не влезает в память: типичный сервер под биоинформатику — это 64 ГБ и выше. Just-DNA-Lite свёл это к нескольким кликам: тяжёлые места алгоритмизированы, требования к железу снижены — работает даже на ноутбуках.
Вытянул это движок под капотом — на основе DuckDB.
Чем хорош DuckDB и при чём тут ваш ноутбук
DuckDB — встраиваемая аналитическая СУБД (в прошлой части я упоминал её как «SQLite для аналитики»). Для пользователя важен один её эффект: тяжёлый геномный расчёт, которому раньше подавай сервер, теперь идёт на ноутбуке и быстро.
Биоинформатические инструменты обычно не стесняются в аппетитах к оперативной памяти — 64 ГБ там нередко нижняя планка. DuckDB умеет соединять большие таблицы по общим столбцам (на языке баз данных — делать join’ы), контролируя при этом расход памяти: обрабатывает данные партиями, а не загоняет всё в RAM разом. Пока этого движка не было, серверная версия расчёта с её 16 ГБ памяти периодически падала, когда оценки одновременно запускало несколько человек.
Технически это SQL-СУБД на диалекте PostgreSQL, заточенная под аналитику: векторизованные запросы ради скорости, пакетная обработка с эффективным использованием SIMD и родная поддержка колоночного формата Parquet, в котором проект держит данные. Для задачи «посчитать полигенную оценку» — соединить таблицу вариантов из VCF с таблицей весов модели и свернуть в число — это оптимальный инструмент.
Заключение
Честно говоря, у меня был некоторый психологический барьер перед словами — «MCP-сервер», «плагин для Claude Code». А оказалось, что это всего несколько команд в терминале, после чего ваш ИИ получает нужные инструменты для профессионального анализа генома. И дальше можно общаться на естественном языке.
Про создание собственных модулей под интересующие лично вас мутации и про более точную граф-пангеномную сборку генома расскажу в следующей части.
© 2026 ООО «МТ ФИНАНС»