GenVario — быстрый слой между сырыми данными и анализом: собирает варианты из VCF, подтягивает внешние оценки патогенности (ClinVar, AlphaMissense) и позволяет за миллисекунды отобрать те, что помечены как патогенные или превышают заданный порог. Дальше работа идёт в обычных инструментах лаборатории. Данные не покидают вашу машину — ни байта в облако.
AI у нас — это слой, а не фундамент. Языковая модель переводит вопрос биолога в SQL, а отвечают всегда данные — DuckDB, а не фантазия модели: ни один ответ не может появиться без запроса к вашим данным, и это проверяется тестом, а не обещанием. И при этом AI можно вообще не включать — ядро продукта работает без него.
Модель работает на вашей машине и переводит вопрос на естественном языке в SQL. Облако не участвует.
Модель никогда не формулирует факт сама. Она предлагает запрос, вы его подтверждаете и видите результат из данных.
Оба слоя — надстройки над ядром. Ядро работает и без них, а включаются они по отдельности — когда понадобятся.
Мы публикуем точность как есть, вместе с оговорками: 78% — ниже нашей цели 85%, которая ставилась под набор из 50 вопросов.
Ядро не зависит ни от AI, ни от аннотаций. Оба слоя — надстройки, которые можно включить позже или не включать вовсе.
Секвенирование дешевеет, а инструменты вокруг файлов — нет. Данные есть, а ответов на простые вопросы нет.
WHERE, ни GROUP BY — только скрипты и перебор строк.Без установки кластера, без загрузки в облако, без переписывания пайплайна.
GenVario читает VCF или BCF и раскладывает его в два слоя: B — признаки варианта, C — контекст и метки. Запись идёт батчами, память не растёт вместе с файлом.
Слои регистрируются как обычные таблицы. Региональный запрос — миллисекунды, агрегат по всем 6 миллионам вариантов — меньше секунды.
| gene | n | метка |
|---|---|---|
| OBSCN | 912 | pathogenic |
| USH2A | 837 | pathogenic |
| HSPG2 | 790 | pathogenic |
| RYR2 | 769 | pathogenic |
Локальная LLM переводит вопрос на русском в SQL, вы подтверждаете запрос и видите результат. Модель никогда не отвечает сама — она только пишет запрос.
Пять шагов, и ни один не требует кластера, облака или ручных скриптов. Ниже — как это выглядит и чем это запускается.
| gene | n | метка |
|---|---|---|
| OBSCN | 912 | pathogenic |
| USH2A | 837 | pathogenic |
| HSPG2 | 790 | pathogenic |
Публичного релиза пока нет: пакет и образ готовятся к публикации. Команды ниже показывают, как это будет запускаться.
Один контейнер: сервис и htslib/bcftools внутри. Работает офлайн, в систему ничего не ставится — удобно для лабораторного сервера и для air-gap.
Обычный пакет: установка одной командой, без Docker и без прав администратора. Тот же движок, та же панель — на ноутбуке.
Мы не строим свою модель предсказания и не изобретаем новый формат. Мы убираем трение между файлом и результатом.
Вопрос на естественном языке превращается в SQL локальной моделью. Ответ всегда приходит из данных, а не из «воображения» модели. Если данных для ответа нет — ассистент говорит об этом прямо, вместо запроса, который заведомо упадёт.
Локальный сервер, локальная модель, файлы на вашем диске. Нет ни одной строки кода, которая куда-то отправляет геномы.
2.3× быстрее htslib на конвертации, 7.2× на региональном запросе, 40.6× на агрегате — на тех же данных и тех же вопросах.
DuckDB читает Parquet напрямую. Ни загрузки в базу, ни кластера — запрос выполняется за миллисекунды на 6 млн вариантов.
Слои B и C соединяются по ключу варианта. Аннотации ClinVar и AlphaMissense подключаются одной командой и становятся признаками.
MIT-лицензия, никакой привязки к вендору. Стандартный вход и выход: ничего не ломается в существующих пайплайнах.
Продукт сообщает, у какой доли вариантов нашлась клиническая метка, и объясняет, почему покрытие именно такое. Тихий ноль совпадений при сопоставлении справочников — известная проблема отрасли; здесь он виден числом, а не остаётся незамеченным.
Один и тот же вход даёт побайтово одинаковый выход — на разных движках разбора и на разных дисках. Это проверено, а не заявлено: хеши файлов совпадают.
1000 Genomes, сборка GRCh38, хромосома 1: 63.84 ГБ, 2548 сэмплов, 6 191 833 варианта. Все замеры воспроизводимы скриптами из bench/.
BENCHMARK.md.
Публичного релиза пока нет: доступ выдаётся по запросу. При этом ни Docker, ни кластера, ни аккаунта не требуется — Python 3.9+ и один файл на входе.
Публичного релиза пока нет. Напишите в Telegram @AlexMeAntipov или на 92.antipov@gmail.com — пришлём пакет, команды установки и примеры.
Движок определится сам: для BCF подключится htslib, для текстового VCF — встроенный парсер. Результат побайтово одинаковый.
Из командной строки, из Python или из браузерной панели — везде одни и те же слои.
ClinVar и AlphaMissense подключаются одной командой, дальше обычный scikit-learn.
Мы публикуем не только то, что получилось. Так честнее и для вас, и для нас.
Публичного релиза пока нет — доступ выдаётся по запросу. Локально, без регистрации и без выгрузки: один файл VCF, и видно, сколько времени и диска это экономит. Напишите, и пришлём ссылку на пакет, команды установки и примеры.
Telegram: @AlexMeAntipov · почта: 92.antipov@gmail.com