Описание представляет собой адаптированный перевод англоязычной документации. Рекомендуем в первую очередь обращаться к англоязычной версии.
MIGEC – программное обеспечение для исправление ошибок на основе уникального молекулярного баркодирования.
Исходный код и двоичные файлы VDJtools находятся по ссылке.
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 для обработки нескольких образцов:
Если файл «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/
Пример работы с 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.
Команда предназначена для выполнения демультиплексирования и извлечения 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 |
Применяются следующие правила:
Те же, что и в Checkout-manual, см. ниже.
Команда Checkout создает файлы в формате FASTQ, к заголовку которых добавляется поле с экстрагированными UMI. Каждое прочтение, успешно обработанное Checkout, будет выведено следующим образом:
@ILLUMINA_HEADER UMI:NNNN:QQQQ
АТАГАТТАТГАГТАТГ
+
##II#IIIIIIIIIIII
Исходный заголовок прочтения ( ILLUMINA_HEADER) сохраняется, добавленный UMI:NNNN:QQQQ содержит последовательность тега UMI (основания NNNN) и его строку качества ( QQQQ).
Команда выполняет демультиплексирование и извлечение 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).
Например, в случае 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).
java -jar migec.jar Histogram checkout/ histogram/
Запуск этой команды создаст несколько файлов в папке histogram/, один из которых важен для базовой обработки данных — overseq.txt. Заголовок таблицы содержит размеры MIG (в масштабе log2), а каждая строка соответствует демультиплексированной выборке и содержит количество чтений в MIG заданного размера (кумулятивная численность).
Скрипт для выполнения сборки с помощью UMI.
java -jar migec.jar AssembleBatch [options] checkout_output_folder/ histogram_output_folder/ output_folder/
Выполняет сборку всех файлов FASTQ, созданных командой checkout, все параметры сборки устанавливаются в соответствии с результатами работы команды histogram.
Команда для выполнения сборки с помощью 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/
Команда для извлечения последовательностей 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, обработка будет выполняться только для оставшихся входных данных, это полезно, например. если хочется быстро обработать собранные данные. В противном случае будут использоваться только сэмплы и типы файлов (парные, перекрывающиеся или одиночные), которые присутствуют в обоих выходных файлах. Обработка как необработанных, так и собранных данных необходима для исправления ошибок второго этапа.
Команда для извлечения последовательностей 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