Это официальная база кода для scGPT: На пути к построению базовой модели для одноклеточной мультиомики с использованием генеративного искусственного интеллекта .
!ОБНОВЛЕНИЕ : Мы выпустили несколько новых предварительно обученных контрольных точек scGPT. Дополнительную информацию см. в разделе «Предварительно обученные контрольные точки scGPT».
[2024.02.26] Мы предоставили предварительную поддержку для запуска рабочего процесса предварительного обучения с помощью HuggingFace в ветке интегрируемой-huggingface-модели. Мы проведем дальнейшее тестирование и в ближайшее время объединим его с основной веткой.
[2023.12.31] Теперь доступны новые руководства по приложениям с нулевым выстрелом! Пожалуйста, найдите их в каталоге Tutorials/zero-shot. Мы также предоставляем новую непрерывную предварительно обученную контрольную точку модели для задач, связанных с внедрением ячеек. Подробности смотрите в блокноте.
[2023.11.07] По просьбам многих, теперь мы сделали flash-attention необязательной зависимостью. Предварительно обученные веса можно загрузить в процессоры, графические процессоры и флэш-аттн pytorch, используя одну и ту же функцию load_pretrained, load_pretrained(target_model, torch.load("path_to_ckpt.pt"))
. Пример использования также находится здесь.
[2023.09.05] Мы выпустили новую функцию для сопоставления эталонных образцов с пользовательским эталонным набором данных или со всеми миллионами клеток, собранными из CellXGene! С помощью библиотеки faiss мы добились отличной эффективности использования времени и памяти. Индекс из более чем 33 миллионов ячеек занимает менее 1 ГБ памяти, а поиск по сходству занимает менее 1 секунды для 10 000 ячеек запроса на графическом процессоре . Дополнительную информацию см. в руководстве по сопоставлению ссылок.
scGPT теперь также доступен в следующих онлайн-приложениях, так что вы можете начать работу с помощью браузера!
scGPT работает с Python >= 3.7.13 и R >= 3.6.1. Перед установкой убедитесь, что у вас установлена правильная версия Python и R.
scGPT доступен на PyPI. Чтобы установить scGPT, выполните следующую команду:
pip install scgpt " flash-attn<1.0.5 " # optional, recommended
# As of 2023.09, pip install may not run with new versions of the google orbax package, if you encounter related issues, please use the following command instead:
# pip install scgpt "flash-attn<1.0.5" "orbax<0.1.8"
[Необязательно] Мы рекомендуем использовать wandb для регистрации и визуализации.
pip install wandb
Для разработки мы используем менеджер пакетов Poetry. Чтобы установить Poetry, следуйте инструкциям здесь.
$ git clone this-repo-url
$ cd scGPT
$ poetry install
Примечание . Для зависимости flash-attn
обычно требуется конкретная версия графического процессора и CUDA. Если у вас возникнут какие-либо проблемы, обратитесь к репозиторию flash-attn за инструкциями по установке. На данный момент, май 2023 г., мы рекомендуем использовать CUDA 11.7 и flash-attn<1.0.5 из-за различных проблем, возникающих при установке новых версий flash-attn.
Вот список предварительно обученных моделей. Пожалуйста, найдите ссылки для загрузки папок контрольных точек. Мы рекомендуем по умолчанию использовать модель whole-human
для большинства приложений. Если ваш набор данных для точной настройки имеет аналогичный контекст типа клеток с обучающими данными моделей, специфичных для органов, эти модели обычно также могут демонстрировать конкурентоспособную производительность. В каждой папке контрольной точки имеется парный словарный файл, сопоставляющий имена генов с идентификаторами. Если необходимы идентификаторы ENSEMBL, найдите преобразование в файле Gene_info.csv.
Название модели | Описание | Скачать |
---|---|---|
цельночеловеческий (рекомендуется) | Предварительно обучен на 33 миллионах нормальных человеческих клеток. | связь |
постоянное предварительное обучение | Для задач, связанных с внедрением ячеек с нулевым выстрелом. | связь |
мозг | Предварительно обучен на 13,2 миллионах клеток мозга. | связь |
кровь | Предварительно обучен на 10,3 миллионах клеток крови и костного мозга. | связь |
сердце | Предварительно обучен на 1,8 миллионах клеток сердца | связь |
легкое | Предварительно обучен на 2,1 миллионе клеток легких | связь |
почка | Предварительно обучен на 814 тысячах клеток почек. | связь |
панрак | Предварительно обучен на 5,7 миллионах клеток различных типов рака. | связь |
См. наш пример кода в файле example/finetune_integration.py. По умолчанию сценарий предполагает, что папка контрольной точки scGPT хранится в каталоге examples/save
.
Мы очень приветствуем вклад в scGPT. Пожалуйста, отправьте запрос на включение, если у вас есть какие-либо идеи или исправления ошибок. Мы также приветствуем любые проблемы, с которыми вы можете столкнуться при использовании scGPT.
Мы искренне благодарим авторов следующих проектов с открытым исходным кодом:
@article { cui2023scGPT ,
title = { scGPT: Towards Building a Foundation Model for Single-Cell Multi-omics Using Generative AI } ,
author = { Cui, Haotian and Wang, Chloe and Maan, Hassaan and Pang, Kuan and Luo, Fengning and Wang, Bo } ,
journal = { bioRxiv } ,
year = { 2023 } ,
publisher = { Cold Spring Harbor Laboratory }
}