Пайплайн для предобработки и базового анализа экспериментов одноклеточного RNAseq. Является сборкой лучших пакетов и программ для анализа scRNAseq. Текущая версия пайплайна состоит из трёх основных частей, которые могут быть использованы как вместе так и по отдельности
- Препроцессинг сырых ридов.
- На вход:
GEO id
эксперимента, конфигурационный файл с описанием схемы баркодирования и числа клеток - Выход: рид-каунт матрицы, в которых при наличии UMI уже произведено удаление ПЦР-дубликатов
- На вход:
- Предбработка рид-каунтов:
- На вход: ридкаут-матрица
- Выход: нормализованные, почищенные от выбросов, лог-нормированные ридкаунты (условно «экспрессия»)
- Кластеризация клеток и поиск маркеров
- На вход: матрица экспрессии
- Выход:
Seurat-объект
в котором содержится информация о финальных, неделимых более кластерах и таблица с перечислением найденных для каждого кластера маркеров с учётом информации о маркерах промежуточных кластеров. Таблица содержит стандартные скорыadj_pval, fold_change
а так же информацию опроценте клеток кластера
для которых этот ген является маркером
В полностью автоматическом режиме от SRR (1)
до маркеров пайплайн ограничен следующими протоколами:
inDrop v1 & v2, inDrop v3
и совместимыми с ними на уровне схемы баркодирования Cell-Seq, Cell-Seq2,...
При анализе от рид-каут матриц (2)
не поддерживается протокол Nanostring и сходные, дающие на выходе менее 500 генов
10X временно не поддерживается для автоматической загрузки
Смешивание различных организмов и типов аннотации в пределах одного датасета на текущий момент не поддерживается
Оптимальные входные данные: матрица сырых, ненормированных ридкаунтов с числом клеток от 30 до 5000 и числом генов от 1000 до 12000. Строки - гены, столбцы - клетки
При подаче заранее нормализованных данных TPM, RPKM, FPKMF
к ним автоматически будет применена функция rel2abs из пакета monocle2.
Поддерживаемые имена генов:
Ensembl, Symbol(MGI, HGNC)
ENSG00000111704, ENSG00000181449
ENSMUSG00000012396, ENSMUSG00000074637
Nanog, Sox2
Поддерживаемый формат имён клеток: <тип_клетки>.<номер_клетки>
d7.122 d0.484 d2.39 d2.213
mef.1 mef.2 early2cell.1 zy.1
В текущем состоянии поддерживаются протоколы:
inDrop v1 & v2, inDrop v3, 10x, iCLIP
и имеющие идентичную названным структуру баркодов.
По умолчанию поддерживаются мышиный
и человеческий
геномы.
При первом запуске будут автоматически подгружены mm10
и hg19
соответственно в зависимости от
выбранного в настройках организма. Так же будет загружена gencode
-аннотация к ним.
- SRA tools prefetch – загрузка ридов по
SRR id
или id эксперимента, стандартно - fastq-dump – разбиение парных ридов, стандартно
- droptag – демультиплексирование баркодов, тримминг низкокачественных ридов
- STAR – выравнивание, стандартно. Так как
droptag
генерирует несколько SRR из исходного, запускаем выравнивание для каждого - dropest – подсчёт рид-каунтов, а так же удаление ПЦР-дубликатов с использованием
Unique molecular identifiers (UMI)
в случае их наличия в протоколе - Если при запуске препроцессинга установлен флаг
clean
, все промежуточные файлы удаляютсяSRA, SRR, BAM
, оставляя только финальный файл с матрицей рид-каунтов
Полученная матица находится в папке
$reads_path/$srr_id/cell.counts.matrices.rds
По умолчанию
reads_path=/home/SingleCellRNASeq/reads
srr_id
берётся из имени входного SRR
/home/SingleCellRNASeq/reads/SRR1784310/cell.counts.matrices.rds
/home/SingleCellRNASeq/reads/SRR1784311/cell.counts.matrices.rds
В текущем состоянии поддерживаются протоколы выход которых может быть представлен в виде матрицы с числом клеток>50
и числом генов>500
:
Поддерживаются мышиный и человеческий геномы
Формат идентификаторов генов автоматически будет конвертирован в требуемый промежуточным пакетам
Выходной формат идентификаторов генов идентичен исходному
По умолчанию выполняется фильтрация выбросов по размеру библиотеки, числу клеток и генов а так же проценту митохондриальных генов.
При наличии спайк-ин генов, которые могут быть найдены регулярными выражениями ^ERCC-
либо ^ercc-
:
ERCC-2 ERCC-12 ercc-1 ercc2
они будут использованы автоматически.
Ручной выбор генов для спайк-ин нормализации временно невозможен.
По желанию фильтрация может быть проведена с учётом фазы клеточного цикла cell_cycle = T
и/или процедурой коррекции дропаутов (попытка восстановления нулевых значений,
являющихся не реальными нулями, а погрешностью детектирования/выборки используемого метода) impute = T
- scater – фильтрация выбросов, основной дата-контейнер предобработки, стандартно
- scran – нормализация
- SAVER – коррекция дропаутов, подтверждённо один из лучших методов, используется совместно с M3Drop
- M3Drop - поиск диффэкспрессирующихся генов для процедуры коррекции дропаутов, для снижения общего времени работы
- monocle – rel2abs ре-нормализация пред-нормализованных либо сложно-нормализуемых ридкаунтов
- biomaRt – конвертация аннотаций
- cyclone - классификация по фазам клеточного цикла
Исполнение не прерывается при невозможности применения любого из шагов, расчёт продолжается с пропуском этапа вызвавшего ошибку
- Конвертирование аннотаций. Формат аннотации и организм определяется пересечением с известной аннотацией как Коэффициент Жаккара
- Базовый препроцессинг:
- фильтрация выбросов более 3 nmad
- для размера библиотеки фильтр установлен только по
нижним
значениям - для числа клеток, экспрессирующих заданный ген так же
нижний
порог - митохондриальные гены фильтруются по
верхнему
пределу - спайк-ины фильтруются и по
обеим
границам
- для размера библиотеки фильтр установлен только по
- нормализация считается отдельно для спайк-инов и основных генов, параметры нормализации подбираются автоматически В случае возникновения ошибки нормализации (например отрицательные size-факторы) производится переход на linear inverse models вариант реализации В случае сохранения ошибки, к исходной матрице применяется функция rel2abs и стандартная нормализация проводится заново
- фильтрация выбросов более 3 nmad
- Декомпозиция по фазам клеточного цикла
- Если выбран параметр
cell_cycle = T
генная аннотация конвертируется в формат Ensembl и отдаётся в cyclone для аннотации. После получения оценки фазы исходная матрица разбирается на три, соответствующиеG1, G2M и S
фазам клеточного цикла. По умолчанию порог принадлежности к фазе установлен>= 0.5
и не может быть изменён пользователем. - Каждая из полученных матриц пропускается через процедуру
Базового препроцессинга (1)
- В случае
impute = F
производится обратное слияние матриц, иначе перед слиянием над каждой из матриц коррекция дропаутов производится отдельно
- Если выбран параметр
- Коррекция дропаутов
- В случае, если число генов в датасете превышает 2000 процедура коррекции проводится
только для дифф-экспрессирующихся генов. Гены ищутся в исходной матрице всеми алгоритмами,
доступными в M3Drop
holm, hochberg, hommel, bonferroni, BH, BY, fdr
с порогомfdr_threshold = 0.05
для миксимизации количества генов. Для датасета в 12000 генов такой подход позволяет выбрать около 3000 генов. - Полученные гены разбиваются на две подвыборки чётные-нечётные и выбираются в качестве цели для коррекции дропаутов. Такой подход позволит впоследствии дополнительно применить на этих же данных magic, не влияя на "маркерную" картину, поскольку для анализа диффэкспрессии на следующих этапах используется MAST, устойчиво работающий на zero-inflated данных. Из-за отличия в алгоритмах работы SAVER и Magic они способны более качественно фокусироваться на различных аспектах финальной картины. Saver способен качественно улучшать глобальную картину кластеризации, а MAGIC - детектирование маркеров. Процедура экспериментальная, по умолчанию Magic отключён.
- После коррекции дропаутов процедура
Базового препроцессинга (1)
производится повторно
- В случае, если число генов в датасете превышает 2000 процедура коррекции проводится
только для дифф-экспрессирующихся генов. Гены ищутся в исходной матрице всеми алгоритмами,
доступными в M3Drop
- После выполнения предыдущих пунктов финальная матрица экспрессии переводится из
log2
в обычный вид2^exprs_mtx-1
и передаётся в процедуру кластеризации