Документация
Описание представляет собой адаптированный перевод англоязычной документации. Рекомендуем в первую очередь обращаться к англоязычной версии.
MIGEC – программное обеспечение для исправление ошибок на основе уникального молекулярного баркодирования.
Исходный код и двоичные файлы MIGEC находятся по ссылке.
ФУНКЦИИ MIGEC
- Демультиплексирование, обрезка адаптеров, поиск перекрытий в ридах для данных NGS. Извлечение последовательностей UMI
- Сборка консенсусов для исходных молекул, поступивших в подготовку библиотеки, путем группировки прочтений с идентичными молекулярными идентификаторами.
- Картирование сегментов V, D и J, извлечение областей CDR3 и сборка клонотипов для всех иммунных рецепторов человека и мыши (TRA/TRB/TRG/TRD и IGH/IGL/IGK)
- Дополнительная фильтрация ошибок в последовательности CDR3
- Гибкая и простая обработка множества образцов
- В настоящее время поддерживаются все пары «вид-ген», имеющие последовательности зародышевой линии (на основе IMGT), позволяющие идентифицировать CDR3
| Species | Gene |
|---|---|
| HomoSapiens | TRA, TRB, TRG, TRD, IGL, IGK, IGH |
| MusMusculus | TRB, TRG, TRD, IGL, IGK, IGH |
| MacacaMulatta | TRB, IGK, IGH |
| OryctolagusCuniculus | IGL, IGK, IGH |
| RattusNorvegicus | IGL, IGH |
| CanisLupusFamiliaris | TRB, TRG |
| SusScrofa | IGL, IGK |
| BosTaurus | TRD |
| MusSpretus | IGL |
| GallusGallus | TRB |
| AnasPlatyrhynchos | TRB |
Установка и запуск
MIGEC написан на Groovy (языке сценариев Java) и распространяется в виде исполняемого JAR-файла. Чтобы установить его, получите последнюю версию JRE и загрузите исполняемый файл из раздела релизов.
Чтобы запустить определенную команду MIGEC, скажем, Checkout, выполните
java -jar MIGEC-$VERSION.jar Checkout [arguments ].
Где $VERSION означает версию MIGEC (например, 1.2.1). Далее это обозначение опускается в документации MIGEC.
Для просмотра списка доступных команд выполните:
java -jar MIGEC-$VERSION.jar -h .
Также вы можете загрузить репозиторий и скомпилировать его из исходного кода с помощью Maven. Требуется Maven версии 3.0.
git clone https://github.com/mikessh/MIGEC.git
cd MIGEC/
mvn clean install
java -jar target/MIGEC-$VERSION.jar
Это должно показать вам список доступных команд MIGEC.
Запуск команд
Все процедуры в MIGEC доступны для работы с единичными образцами и группами образцов. Варианты команд, предназначенные для автоматической обработки нескольких входных образцов используют минимальное количество скриптов между этапами анализа. Это рекомендуемый способ использования MIGEC.
Список команд MIGEC для обработки нескольких образцов:
- Checkout-batc
- MIG statistics
- Assemble-batch
- CdrBlast-batch
- FilterCdrBlastResults-batch
Если файл «barcodes» написан правильно, всю анализ можно произвести следующим образом:
MIGEC="java -Xmx8G -jar MIGEC-$VERSION.jar"
$MIGEC CheckoutBatch -cu barcodes.txt checkout/
$MIGEC Histogram checkout/ histogram/
$MIGEC AssembleBatch -c checkout/ histogram/ assemble/
$MIGEC CdrBlastBatch -R TRB checkout/ assemble/ cdrblast/
$MIGEC FilterCdrBlastResultsBatch cdrblast/ cdrfinal/
Обработка единичных файлов
- Checkout-manual
- MIG statistics
- Assemble-manual
- CdrBlast-manual
- FilterCdrBlastResults-manual
Пример работы с IGH библиотекой, отсеквенированной на MiSeq в режиме парных прочтений длиной 300 пар нуклеотидов, на Unix-сервере с 16 ГБ RAM. Такая длина прочтений при секвенировании обеспечивает полное секвенирование IGH, таким образом, что концы ридов перекрываются. Сначала необходимо создать файл barcodes.txt, содержащий последовательности адаптеров; рекомендации см. в разделе ниже. Затем, предполагая, что соответствующие файлы FASTQ — это IGH_SAMPLE_R1.fastq.gz и IGH_SAMPLE_R2.fastq.gz, адаптер, содержащий UMI- и мультиплексный индекс, находится рядом с 5'UTR сегмента V и установлен NCBI-BLAST+, запустите все 6 команд следующим образом:
$MIGEC Checkout -cute --overlap barcodes.txt IGH_S1-10_R1.fastq.gz IGH_S1-10_R2.fastq.gz checkout/
$MIGEC Histogram checkout/ histogram/
$MIGEC Assemble -c --mask 0:0 checkout/S1_R12.fastq.gz . assembly/
$MIGEC CdrBlast -R IGH checkout/S1_R12.fastq.gz cdrblast/S1_raw.txt
$MIGEC CdrBlast -a -R IGH assembly/S1_R12.fastq.gz cdrblast/S1_asm.txt
$MIGEC FilterCdrBlastResults cdrblast/S1_asm.txt cdrblast/S1_raw.txt cdrfinal/S1.txt
Примечание
Поскольку точка (.) зарезервирована MIGEC для указания пустых полей метаданных и неиспользуемых аргументов, используйте ./, если вы хотите указать путь к текущей директории.
Анализ прочтений, покрывающих всю последовательность иммуноглобулина
MIGEC можно использовать в качестве инструмента предварительной обработки для получения полноценных консенсусов для дальнейшего пост-анализа с помощью инструмента HIgBlast. Обратите внимание, что из-за типичного низкого качества считываний MiSEQ 300+300bp режим --overlap команды Checkout не гарантирует хорошей работы. Вместо этого мы рекомендуем сначала собрать консенсусы, а затем выполнять перекрытие с использованием внешних инструментов. Например, команду merge MiTools можно использовать с опцией --same-strand, последняя имеет решающее значение, поскольку собранные консенсусы находятся на одной и той же цепи в отличие от обычной ориентации прочтений Illumina.
Качество консенсуса и эффективность перекрытий можно значительно улучшить, используя опцию --only-first-read команд Histogram и Assemble. Если этот параметр установлен, он предписывает процедурам использовать только первое чтение, качество которого обычно выше второго. Это применимо к неориентированным чтениям и лучше работает для дизайна асимметричного секвенирования, например 400+200bp.
Демультиплексирование
Команда Checkout-batch
Описание
Команда предназначена для выполнения демультиплексирования и извлечения UMI из файлов FASTQ, которые ранее были разделены с использованием индексов Illumina.
Использование
java -jar migec.jar CheckoutBatch [options] barcodes_file output_dir barcodes_file определяет правила мультиплексирования образцов и извлечения UMI. Он имеет следующую структуру.
| Sample ID | Master barcode sequence | Slave barcode sequence | Read#1 FASTQ | Read#2 FASTQ |
|---|---|---|---|---|
| S0 | acgtacgtAGGTTAcadkgag | |||
| S1 | acgtacgtGGTTAAcadkgag | ctgkGTTCaat | ILM1_R1_L001.fastq.gz | ILM1_R2_L001.fastq.gz |
| S2 | acgtacgtAAGGTTcadkgagNNNNNN | ILM2_R1_L001.fastq.gz | ILM2_R2_L001.fastq.gz | |
| S3 | acgtacgtTAAGGTcadkgagNNNNNN | NNNNNNctgkGTTCaat | ILM1_R1_L001.fastq.gz | ILM1_R2_L001.fastq.gz |
Применяются следующие правила:
- Все указанные файлы FASTQ последовательно обрабатываются с помощью Checkout.
- Если для данного баркода не указан файл FASTQ, он будет искаться во всех файлах FASTQ.
- CheckoutBatch агрегирует чтения из нескольких файлов FASTQ с одинаковым идентификатором образца (Sample ID).
- Тем не менее, не должно быть случаев, когда в файле FASTQ один и тот же баркод указан более одного раза.
Параметры
Те же, что и в Checkout-manual, см. ниже.
Формат выходных данных
Команда Checkout создает файлы в формате FASTQ, к заголовку которых добавляется поле с экстрагированными UMI. Каждое прочтение, успешно обработанное Checkout, будет выведено следующим образом:
@ILLUMINA_HEADER UMI:NNNN:QQQQ
АТАГАТТАТГАГТАТГ
+
##II#IIIIIIIIIIII
Исходный заголовок прочтения ( ILLUMINA_HEADER) сохраняется, добавленный UMI:NNNN:QQQQ содержит последовательность тега UMI (основания NNNN) и его строку качества ( QQQQ).
Checkout-manual
Описание
Команда выполняет демультиплексирование и извлечение UMI.
Использование
java -jar migec.jar Checkout [options] barcodes_file R1.fastq[.gz] [. or R2.fastq[.gz]] output_dir
Для парных прочтений:
java -jar migec.jar Checkout -cute barcodes.txt R1.fastq.gz R2.fastq.gz ./checkout/
Для непарной библиотеки:
java -jar migec.jar Checkout -cute barcodes.txt R.fastq.gz . ./checkout/
Для перекрывающихся парных ридов:
java -jar migec.jar Checkout -cute --overlap barcodes.txt R1.fastq.gz R2.fastq.gz . checkout/
barcodes.txt представляет собой таблицу, разделенную табуляцией, и имеющую следующую структуру:
| Sample ID | Master barcode sequence | Slave barcode sequence |
|---|---|---|
| S0 | acgtacgtAGGTTAcadkgag | |
| S1 | acgtacgtGGTTAAcadkgag | ctgkGTTCaat |
| S2 | acgtacgtAAGGTTcadkgagNNNNNN | |
| S3 | acgtacgtTAAGGTcadkgagNNNNNN | NNNNNNctgkGTTCaat |
Рид сканируется на наличие главного адаптера (Master barcode sequence), а затем, если он обнаружен, сканируется на наличие подчиненного адаптера (Slave barcode sequence).
- Последовательность подчиненного адаптера можно опустить.
- Последовательность адаптера может содержать любые буквы ДНК IUPAC.
- Буквы верхнего и нижнего регистра обозначают ключевую часть и часть области нечеткого поиска соответственно.
- N символов обозначают область UMI, которую необходимо извлечь.
- Несколько строк могут соответствовать одному и тому же образцу.
- Чтобы иметь возможность запускать команду для множества образцов, все образцы должны содержать область UMI одинакового размера.
Например, в случае S2 Checkout будет искать точное совпадение с AAGGTT, затем оставшуюся последовательность адаптера с двумя разрешенными несовпадениями и выводить регион NNNNNN в заголовок. В случае S3, в дополнение к поиску в подчиненном адаптере наличия GTTC, выполняется нечеткое сопоставление с остальной частью баркода, а область NNNNNN извлекается и объединяется с областью UMI основного рида.
Параметры
-c сжатие gzip.
-u выполнить извлечение региона UMI и вывести его в заголовок демультиплексированных файлов FASTQ.
-t обрезать последовательность адаптера из вывода.
-e также удалить следы template-switching (poly-G) в случае, когда адаптер, содержащий UMI, добавляется с использованием обратной транскрипции (библиотеки кДНК).
--overlap попытается найти перекрытия в ридах (только для парных прочтений), неперекрывающиеся и перекрывающиеся риды будут помещены в файлы *_R1/_R2* и *_R12* FASTQ соответственно. При перекрытии будет взят нуклеотид более высокого качества, чтобы улучшить общее качество данных.
--overlap-max-offset X управляет степенью поиска перекрывающейся области. ВАЖНО. Если глубина библиотеки очень большая, следует установить значение ~40.
Поиск по баркоду:
-o позволяет ускорить вычисления, предполагая, что чтение ориентировано, т. е. главный адаптер должен находиться в R1
-r применить пользовательский шаблон RC. По умолчанию предполагается, что риды Illumina являются комплементарными, поэтому выполняется обратное дополнение чтения с помощью подчиненного адаптера, так что выходные риды будут на главной цепи.
--rc-barcodes также ищет обе адаптерные последовательности в обратном дополнении. Используйте его, если не уверены в структуре вашей библиотеки.
--skip-undef не будет сохранять риды, в которых нет последовательности адаптера, чтобы сэкономить место на диске.
MIG statistics
Описание
Команда для генерации статистики консенсусного покрытия, то есть распределения размеров групп молекулярных идентификаторов (MIG).
Использование
java -jar migec.jar Histogram checkout/ histogram/
Запуск этой команды создаст несколько файлов в папке histogram/, один из которых важен для базовой обработки данных — overseq.txt. Заголовок таблицы содержит размеры MIG (в масштабе log2), а каждая строка соответствует демультиплексированной выборке и содержит количество чтений в MIG заданного размера (кумулятивная численность).
Consensus assembly
Assemble-batch
Описание
Скрипт для выполнения сборки с помощью UMI.
Использование
java -jar migec.jar AssembleBatch [options] checkout_output_folder/ histogram_output_folder/ output_folder/
Выполняет сборку всех файлов FASTQ, созданных командой checkout, все параметры сборки устанавливаются в соответствии с результатами работы команды histogram.
Assemble-manual
Описание
Команда для выполнения сборки с помощью UMI.
Использование
java -jar migec.jar Assemble [options] R1.fastq[.gz] [. or R2.fastq[.gz]] output_folder.
Непарные и перекрывающиеся FASTQ:
java -jar migec.jar Assemble -c checkout/S1_R0.fastq.gz . assembly/
Парные FASTQ:
java -jar migec.jar Assemble -c checkout/S1_R1.fastq.gz checkout/S1_R2.fastq.gz ./assembly/
Парные FASTQ, требующий сборки только вторых прочтений:
java -jar migec.jar Assemble -c --mask 0:1 checkout/S1_R1.fastq.gz checkout/S1_R2.fastq.gz assembly/
CdrBlast-batch
Описание
Команда для извлечения последовательностей CDR3. Будет правильно комбинировать чтения, полученные из парных и перекрывающихся прочтений, и выполнять анализ как необработанных, так и собранных данных.
Использование
java -jar migec.jar CdrBlastBatch [options] -R gene [checkout_output_folder/ or .] [assemble_output_folder/ or .] output_folder
Выполняет извлечение CDR3 и определение сегмента V/J как для необработанных (выходные данные Checkout), так и для собранных данных. Параметр -R является обязательным, если не предоставлены метаданные ( --sample-metadata), указывающие ген для каждого образца; поддерживаемые гены: TRA, TRB, TRG, TRD, IGH, IGK и IGL. Если не указаны assembly_output_folder или checkout_output_folder, обработка будет выполняться только для оставшихся входных данных, это полезно, например. если хочется быстро обработать собранные данные. В противном случае будут использоваться только сэмплы и типы файлов (парные, перекрывающиеся или одиночные), которые присутствуют в обоих выходных файлах. Обработка как необработанных, так и собранных данных необходима для исправления ошибок второго этапа.
CdrBlast-manual
Команда для извлечения последовательностей CDR3
Использование
java -jar migec.jar CdrBlast [options] -R gene file1.fastq[.gz] [file2.fastq[.gz] ...] output_file
Пример библиотеки, содержащей последовательности альфа-цепи Т-клеточного рецептора.
в случае данных, собранных по MIG:
java -jar migec.jar CdrBlast -a -R TRA assembly/S1_R2.fastq.gz cdrblast/S1_asm.cdrblast.txt
Для сырых данных
java -jar migec.jar CdrBlast -R TRA checkout/S1_R2.fastq.gz cdrblast/S1_raw.cdrblast.txt
для объединения и обработки двух или более файлов FASTQ одновременно:
java -jar migec.jar CdrBlast -R TRA checkout/S1_R2.fastq.gz checkout/S2_R2.fastq.gz cdrblast/S12_raw.cdrblast.txt