Как данные и модели ускоряют поиск механизмов болезней печени
Секвенирование единичных клеток, публичные атласы тканей и модели машинного обучения меняют то, как исследователи ищут причины фиброза и НАЖБП. Разбираем инструменты и данные, с которыми можно работать самому.

Что изменилось в исследованиях печени
Печень собирает на себя удары метаболизма, лекарств и вирусов, а её болезни — от неалкогольной жировой болезни (НАЖБП) до фиброза и цирроза — годами описывали на уровне гистологических срезов и биохимии крови. Сейчас точка входа сместилась к данным. Одна биопсия печени, пропущенная через single-cell RNA-секвенирование, даёт профили экспрессии для десятков тысяч отдельных клеток. На таком масштабе видно то, что усреднённый образец ткани прятал: какие именно клетки звёздчатого ряда включают программу фиброза и в каком окружении это происходит.
Для инженера данных и биоинформатика это меняет задачу. Раньше вы работали с таблицей «образец × ген» на сотни строк. Теперь — с матрицей на сотни тысяч клеток и десятки тысяч признаков, разреженной на 90 с лишним процентов, и вопрос не в том, где взять данные, а в том, как их корректно обработать и не утонуть в артефактах.
Почему single-cell стал рабочим инструментом, а не экзотикой
Публичные атласы сделали вход дешёвым. Human Cell Atlas и связанные консорциумы выложили размеченные наборы клеток печени, которые можно скачать и использовать как референс для аннотации собственных данных. Вместо того чтобы вручную определять типы клеток по маркерным генам, вы переносите разметку с эталонного атласа на свой датасет.
Главный сдвиг не в том, что данных стало больше. Он в том, что механизм болезни теперь можно искать вычислительно — на уровне отдельных клеточных популяций и их взаимодействий, а не догадок по усреднённому образцу.
Пайплайн обработки: от матрицы до гипотезы
Экосистема сложилась вокруг Python и R. В Python это scanpy и формат AnnData, в R — Seurat. Оба решают одну задачу разными руками: контроль качества, нормализация, снижение размерности, кластеризация, аннотация.
Типичный порядок шагов для одного образца выглядит так:
- Контроль качества. Отбрасываете клетки с подозрительно малым числом обнаруженных генов (часто пустые капли или дебрис) и с высокой долей митохондриальной РНК — признак умирающих клеток. Для печени это особенно важно: гепатоциты крупные и легко повреждаются при диссоциации ткани.
- Нормализация. Приводите счётчики к сопоставимому масштабу между клетками, обычно с логарифмированием.
- Отбор вариабельных генов. Оставляете гены, которые реально различают клетки, а не шумят одинаково везде.
- Снижение размерности. PCA, затем построение графа соседей и укладка UMAP для визуализации.
- Кластеризация и аннотация. Разбиваете клетки на группы и присваиваете им типы — по маркерам или переносом с референсного атласа.
Минимальный скелет на scanpy, который читатель может повторить на своих данных:
import scanpy as sc
adata = sc.read_10x_mtx("filtered_feature_bc_matrix/")
# доля митохондриальных генов как метрика качества
adata.var["mt"] = adata.var_names.str.startswith("MT-")
sc.pp.calculate_qc_metrics(
adata, qc_vars=["mt"], inplace=True
)
# фильтрация: порог подбирайте по своим данным
adata = adata[adata.obs.n_genes_by_counts > 200]
adata = adata[adata.obs.pct_counts_mt < 20]
sc.pp.normalize_total(adata, target_sum=1e4)
sc.pp.log1p(adata)
sc.pp.highly_variable_genes(adata, n_top_genes=2000)
sc.pp.pca(adata)
sc.pp.neighbors(adata)
sc.tl.leiden(adata)
sc.tl.umap(adata)Пороги здесь намеренно даны как отправная точка, а не как истина: 200 генов и 20 процентов митохондриальной РНК подходят для многих датасетов, но для тканей с крупными клетками их приходится сдвигать. Слепое копирование чужих порогов — самый частый способ выбросить хорошие клетки или оставить мусор.
Batch-эффект: то, что портит выводы
Как только вы объединяете образцы из разных экспериментов, приборов или дней, появляется batch-эффект* — систематические различия, не связанные с биологией. Клетки одного типа из двух образцов расходятся на UMAP просто потому, что их обработали в разные дни. Если это не поправить, вы найдёте «различия между больными и здоровыми», которые на деле различают партии реагентов.
Для интеграции используют алгоритмы вроде Harmony, scVI или BBKNN. Они выравнивают представления клеток между образцами, стараясь сохранить биологический сигнал. Проверять результат нужно глазами и метриками: типы клеток должны смешиваться между образцами, а состояния болезни — оставаться различимыми.
Где именно машинное обучение ускоряет открытие механизма
Кластеризация и аннотация — это инвентаризация клеток. Механизм болезни начинается там, где вы спрашиваете, как одно клеточное состояние переходит в другое и что между клетками происходит.
- Траектории и псевдовремя. Инструменты вроде PAGA или RNA velocity восстанавливают порядок переходов между состояниями клеток. Для фиброза это способ увидеть, как покоящиеся звёздчатые клетки активируются в миофибробласты, производящие рубцовый коллаген.
- Модели межклеточной коммуникации. CellPhoneDB и подобные оценивают, какие пары «лиганд—рецептор» могут работать между популяциями клеток. Это даёт кандидатов на сигнальные пути, которые поддерживают воспаление в печени.
- Вариационные автоэнкодеры. scVI и его расширения моделируют экспрессию как вероятностную и работают лучше на шумных, разреженных данных, заодно решая интеграцию образцов.
- Модели-фундаменты для клеток. Появились предобученные трансформеры на миллионах клеток, которые претендуют на перенос знаний в задачи с малым числом размеченных данных. Это направление молодое: результаты стоит проверять на своих данных, а не принимать заявления о превосходстве на веру.
Сравнение подходов к аннотации клеток
| Подход | Когда уместен | Риск |
|---|---|---|
| Маркерные гены вручную | Хорошо изученная ткань, немного типов клеток | Субъективность, пропуск редких популяций |
| Перенос с референсного атласа | Есть подходящий атлас той же ткани | Отсутствие в референсе патологических состояний |
| Обучение классификатора | Много размеченных данных, повторяемые эксперименты | Переобучение под конкретную партию |
Что учитывать до того, как доверять результату
Красивый UMAP убеждает, но не доказывает. Три вещи ломают выводы чаще всего:
- Артефакты диссоциации. Разрушение ткани для получения отдельных клеток само включает стрессовые гены. Их легко принять за сигнал болезни.
- Дисбаланс образцов. Если больных образцов три, а здоровых двенадцать, статистика различий требует осторожности и поправок, а не наивного сравнения.
- Отсутствие валидации. Вычислительная гипотеза — это гипотеза. Её подтверждают на независимой когорте, в пространственной транскриптомике или в эксперименте, а не на том же датасете, где её нашли.
Практический смысл всего этого — сокращение цикла. Раньше от вопроса «какие клетки гонят фиброз» до кандидатного механизма проходили месяцы мокрой лаборатории. Сейчас первый круг гипотез строится на публичных данных за дни, и лаборатория проверяет уже сфокусированный список, а не поле вслепую.
* Batch-эффект — систематические различия в данных, вызванные условиями эксперимента (прибор, реагенты, день, оператор), а не биологией изучаемого объекта. Игнорирование batch-эффекта — распространённая причина ложных открытий в геномике.
Prompt-инженер: Идеальные запросы для Midjourney, ChatGPT и других моделей.
Спросить за 15 ₽Источники: Scanpy documentation, Human Cell Atlas
Частые вопросы
Нужен ли доступ к суперкомпьютеру для анализа single-cell данных?
scanpy или Seurat — что выбрать новичку?
Можно ли доверять аннотации клеток, перенесённой с чужого атласа?
Что такое псевдовремя и зачем оно при изучении болезней печени?
Заменят ли модели-фундаменты классический пайплайн?
Как отличить биологический сигнал от артефакта обработки?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.