Как подружить биологию с GPT - разбираем проект scGPT

29 апр 2026
1,626
340
34
5 месяцев

Биологи годами собирали данные по отдельным клеткам, пытаясь понять, как работают наши органы на самом детальном уровне. Проблема в том, что этих данных стало слишком много, и они «разговаривают» на разных языках. Представьте миллионы таблиц, где записана активность генов, но в каждой лаборатории свои протоколы и форматы. Свести это в единую картину вручную почти невозможно.

Тут на сцену выходит scGPT. Разработчики из bowang-lab решили: если трансформеры научились понимать человеческий язык, почему бы им не выучить язык клеток?

Зачем это нужно разработчику и дата-сайентисту

Обычно в биоинформатике используют специфические пакеты вроде Scanpy или Seurat. Они крутые, но часто требуют ручной настройки под каждый датасет. scGPT — это попытка создать Foundation Model (базовую модель) для биологии одиночных клеток.

Это не просто скрипт для отрисовки графиков. Проект берет архитектуру GPT и обучает ее на колоссальном объеме данных — более 33 миллионов человеческих клеток. В итоге модель начинает понимать внутренние зависимости между генами так же, как ChatGPT понимает связь между словами в предложении.

Что внутри репозитория

Проект написан на Python и активно использует PyTorch. Если вы привыкли работать с HuggingFace, то здесь почувствуете себя как дома (хотя полноценная интеграция в хаб еще в процессе).

Реклама

Ключевые возможности

Одна из самых полезных фишек — Reference Mapping. Если у вас есть новые данные, вы можете буквально за секунду сопоставить их с базой из 33 миллионов клеток. Благодаря библиотеке faiss поиск по индексу занимает меньше секунды для 10 000 клеток на GPU. При этом индекс весит меньше гигабайта.

Еще одна важная штука — Zero-shot приложения. Модель можно использовать для аннотации типов клеток или интеграции данных без дополнительного дообучения. Это экономит кучу времени и вычислительных ресурсов.

Для тех, кому нужно специфическое решение, авторы выложили целый «зоопарк» предобученных моделей:

  • whole-human: универсальный вариант, обученный на 33 млн клеток.
  • Специализированные модели для мозга, крови, сердца, легких и почек.
  • Pan-cancer: модель, заточенная под раковые клетки разных типов.

Как запустить

Установка стандартная через pip, но есть нюанс с зависимостью flash-attn. Она сильно ускоряет работу, но капризна к версиям CUDA. Авторы рекомендуют версию 11.7.

pip install scgpt "flash-attn<1.0.5"

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

Технические особенности

В отличие от классического текстового GPT, здесь используется генеративное маскирование внимания. Это позволяет модели предсказывать экспрессию генов и восстанавливать пропущенные значения в данных (imputation).

Интересно, что проект поддерживает работу и на CPU, и на GPU. Функцию load_pretrained переписали так, что веса загружаются без боли на любом бэкенде. А если вы фанат мониторинга обучения, то в коде есть нативная поддержка wandb.

Практические кейсы

Для чего это реально используют:

  1. Пакетная интеграция: когда нужно объединить данные из десяти разных лабораторий в один непротиворечивый датасет.
  2. Предсказание возмущений: модель может прикинуть, как клетка отреагирует на определенное лекарство или генетическую манипуляцию.
  3. Анализ генных сетей: выявление того, какие гены «работают в команде».

Стоит ли пробовать

Если вы работаете в биоинформатике или системной биологии, scGPT — это маст-хэв в закладках. Это один из самых живых проектов в нише Single-Cell Foundation Models.

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

Начать изучение советую с папки tutorials/zero-shot. Там лежат ноутбуки, которые наглядно показывают, как модель переваривает данные без долгого обучения.

Проект активно развивается: недавно добавили поддержку HuggingFace в отдельной ветке и обновили документацию на ReadTheDocs. Видно, что команда не просто выложила код для статьи, а реально поддерживает инструмент.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.