Мы рады сообщить, что размер индекса на диске снижается в 8 раз, а в памяти в 4 раза из-за перехода только к одному типу FM-индекса (2 бит.64 вместо 2-бит 64 и 8 бит.32) и 8x сжатие суффикс массив. Например, для человеческого генома размер индекса на диске снижается до ~ 10 ГБ от ~ 80 ГБ, а следов памяти снижается до ~ 10 ГБ от ~ 40 ГБ. Существует значительное сокращение времени индекса ввода -ввода -индекса из -за сокращения и вряд ли какого -либо влияния на производительность на картирование чтения. Из -за этого изменения в структуре индекса (в Commit #4B59796, 10 октября 2020 года) вам нужно будет восстановить индекс.
Добавлен флаг MC в выходном файле SAM в Commit A591E22. Вывод должен соответствовать исходной версии BWA-MEM 0.7.17.
Начиная с Commit E0AC59E, у нас есть подмодуль SafestringLib. Чтобы получить его, используйте - -рекурсивность при клонировании или используйте «GIT Submodule init» и «Обновление подмодуля GIT» в уже клонированном репозитории (см. Ниже более подробно).
# Используйте предварительные бинарии (рекомендуется) curl -l https://github.com/bwa-mem2/bwa-mem2/releases/download/v2.2.1/bwa-mem2-2.2.1_x64-linux.tar.bz2 | TAR JXF - BWA-MEM2-2.2.1_X64-LINUX/BWA-MEM2 INDEX Ref.FA BWA-MEM2-2.2.1_X64-LINUX/BWA-MEM2 MEM Ref.FA READ1.FQ READ2.FQ> OUT.SAM# COMPILE из Source (не рекомендуется для общих пользователей)# Получить клон SourceGIT--рекурсивный https: /////////// github.com/bwa-mem2/bwa-mem2cd bwa-mem2# orgit клон https://github.com/bwa-mem2/bwa-mem2cd bwa-mem2 GIT Submodule Init GIT подмодуля обновления# Compile и Runmake ./bwa-mem2
Инструмент BWA-MEM2 является следующей версией алгоритма BWA-MEM в BWA. Он производит выравнивание, идентичное BWA, и на ~ 1,3-3,1x быстрее в зависимости от использования, набора данных и работающей машины.
Оригинальный BWA был разработан Хенгом Ли (@LH3). Повышение производительности в BWA-MEM2 было сделано в основном Vasimuddin MD (@Yuk12) и Sanchit Misra (@Sanchit-Misra) из Parallel Computing Lab, Intel. BWA-MEM2 распределен по лицензии MIT.
Для общих пользователей рекомендуется использовать предварительно скомпилированные двоичные файлы со страницы выпуска. Эти двоичные файлы были скомпилированы с компилятором Intel и проходят быстрее, чем соискатели GCC. Предварительные двоичные файлы также косвенно поддерживают отправку ЦП. Двоина bwa-mem2
может автоматически выбрать наиболее эффективную реализацию на основе набора инструкций SIMD, доступного на запущенной машине. Предварительно скомпилированные двоичные файлы были сгенерированы на машине CentOS7 с использованием следующей командной строки:
Сделать CXX = ICPC Multi
Использование точно так же, как и оригинальный инструмент BWA MEM. Вот краткие синопсы. Запустите ./bwa-mem2 для доступных команд.
# Индексирование эталонной последовательности (требуется память 28N GB, где n-размер эталонной последовательности) ../ Индекс BWA-MEM2 [-p Prefix] <In.fasta> Где <in.fasta> - это путь к эталонной последовательности Fasta File и <Prefix> - это префикс имен файлов, которые хранят результирующий индекс. По умолчанию есть в. Где <prefix> является префиксом, указанным при создании индекса или пути к эталонному файлу FASTA в случае, если не было предоставлено префикс.
Наборы данных:
Справочный геном: human_g1k_v37.fasta
Псевдоним | Источник набора данных | Количество чтений | Читать длину |
---|---|---|---|
D1 | Широкий институт | 2 х 2,5 млн. Б. | 151bp |
D2 | SRA: SRR7733443 | 2 х 2,5 млн. Б. | 151bp |
D3 | SRA: SRR9932168 | 2 х 2,5 млн. Б. | 151bp |
D4 | SRA: SRX6999918 | 2 х 2,5 млн. Б. | 151bp |
Детали машины:
Процессор: Intel (R) Xeon (R) 8280 CPU @ 2,70 ГГц
ОС: Centos Linux Release 7.6.1810
Память: 100 ГБ
Мы выполнили шаги ниже, чтобы собрать результаты производительности:
A. Шаги загрузки данных:
Скачать SRA Toolkit с https://trace.ncbi.nlm.nih.gov/traces/sra/sra.cgi?view=software#header-global
tar xfzv sratoolkit.2.10.5-centos_linux64.tar.gz
Скачать D2: sratoolkit.2.10.5-centos_linux64/bin/fastq-dump-split-files srr77334443
Скачать D3: sratoolkit.2.10.5-centos_linux64/bin/fastq-dump-split-files srr9932168
Скачать D4: sratoolkit.2.10.5-centos_linux64/bin/fastq-dump-split-files srx69999918
B. Шаги выравнивания:
git clone https://github.com/bwa-mem2/bwa-mem2.git
CD BWA-MEM2
make CXX=icpc
(используя компилятор Intel C/C ++)
или make
(с помощью компилятора GCC)
./bwa-mem2 индекс <ref.fa>
./bwa-mem2 mem [-t <#threads>]
Например, в нашем двойном сокете (56 потоков каждый) и двойной вычислительный узел NUMA мы использовали следующую командную строку для выравнивания D2 с Human_g1k_v37.Fasta Справочный геном.
numactl -m 0 -C 0-27,56-83 ./bwa-mem2 index human_g1k_v37.fasta numactl -m 0 -C 0-27,56-83 ./bwa-mem2 mem -t 56 human_g1k_v37.fasta SRR7733443_1.fastq SRR7733443_2.fastq > d2_align.sam
BWA-MEM2-LISA-это ускоренная версия BWA-MEM2, где мы применяем изученные индексы на фазу посева. BWA-MEM2-LISA Franch содержит исходный код реализации. Ниже приведены особенности BWA-MEM2-LISA:
Точно так же, что и BWA-MEM2.
Все командные линии для создания индекса и отображения чтения точно такие же, как BWA-MEM2.
BWA-MEM2-LISA ускоряет фазу посева (одно из основных узких мест в BWA-MEM2) до 4,5x по сравнению с BWA-MEM2.
Основная площадь памяти индекса BWA-MEM2-LISA составляет ~ 120 ГБ для генома человека.
Код присутствует в филиале BWA-MEM2-LISA: https://github.com/bwa-mem2/bwa-mem2/tree/bwa-mem2-lisa
Ветвь ERT в репозитории BWA-MEM2 содержит кодовую базу энауэрированного ускорения дерева Radix на основе дерева RADIX BWA-MEM2. Код ERT построен в верхней части BWA-MEM2 (благодаря тяжелой работе @Arun-Sub). Ниже приведены основные моменты инструмента BWA-MEM2 на основе ERT:
Точно такой же вывод, что и BWA-MEM (2)
Инструмент имеет два дополнительных флага, чтобы включить использование решения ERT (для создания индекса и отображения), иначе он работает в режиме Vanilla BWA-MEM2
Он использует 1 дополнительный флаг для создания индекса ERT (отличается от индекса BWA-MEM2) и 1 дополнительный флаг для использования этого индекса ERT (см. ReadMe из ветви ERT)
Решение ERT на 10% -30% быстрее (тестируется на конфигурации выше машины) по сравнению с ванильным BWA -MEM2 -пользователям предлагается использовать опцию -K 1000000
чтобы увидеть ускорение
Печать ноги памяти индекса ERT составляет ~ 60 ГБ
Код присутствует в филиале ERT: https://github.com/bwa-mem2/bwa-mem2/tree/ert
Васимуддин М.Д., Санчут Мисра, Хенг Ли, Сринивас Алуру. Эффективное ускорение архитектуры BWA-MEM для многоядерных систем. IEEE Parallel и Distribute Processing Symposium (IPDPS), 2019. 10.1109/IPDPS.2019.00041