Целью этого проекта является создание альтернативы инструменту USEARCH, разработанному Робертом Эдгаром (2010). Новый инструмент должен:
Мы внедрили инструмент под названием VSEARCH, который поддерживает обнаружение химер de novo и по эталонам, кластеризацию, полноразмерную и префиксную дерепликацию, ререпликацию, обратную комплементацию, маскирование, попарное глобальное выравнивание «все против всех», поиск точного и глобального выравнивания, перетасовку и т. д. подвыборка и сортировка. Он также поддерживает анализ файлов FASTQ, фильтрацию, преобразование и объединение операций чтения с парных концов.
VSEARCH означает векторизованный поиск, поскольку этот инструмент использует преимущества параллелизма в форме векторизации SIMD, а также несколько потоков для выполнения точного выравнивания на высокой скорости. VSEARCH использует оптимальный глобальный выравниватель (полное динамическое программирование Нидлмана-Вунша), в отличие от USEARCH, который по умолчанию использует эвристическое начальное и расширяющее выравниватель. Обычно это приводит к более точному выравниванию и общему улучшению чувствительности (напоминания) с помощью VSEARCH, особенно для выравниваний с пробелами.
Двоичные файлы VSEARCH предоставляются для GNU/Linux на пяти 64-битных процессорных архитектурах: x86_64, POWER8 (ppc64le), ARMv8 (aarch64), 64-битный RISC-V с прямым порядком байтов (riscv64) и 64-битный MIPS с прямым порядком байтов ( mips64el). Также предоставляются двоичные файлы для macOS (версия 10.9 Mavericks или новее) на Intel (x86_64) и Apple Silicon (ARMv8), а также для Windows (64-разрядная версия 7 или выше на x86_64). VSEARCH содержит собственный код SIMD для трех процессорных архитектур (SSE2/SSSE3, AltiVec/VMX/VSX, Neon). Кроме того, VSEARCH использует библиотеку SIMD Everywhere (SIMDe), позволяющую использовать riscv64, mips64el и другие архитектуры с прямым порядком байтов, но производительность может быть ниже, чем у собственной реализации.
ЦПОС | ГНУ/Линукс | macOS | Окна |
---|---|---|---|
x86_64 | ✔ | ✔ | ✔ |
ARMv8 | ✔ | ✔ | |
МОЩНОСТЬ8 | ✔ | ||
РИСК-В 64 ЛЕ | ✔ | ||
МИПС 64 ЛЕ | не проверено |
Различные пакеты, плагины и оболочки для VSEARCH также доступны из других источников — см. ниже.
Исходный код корректно компилируется с помощью gcc
(версии от 4.8.5 до 14.0) и llvm-clang
(от 3.8 до 19.0). Исходный код также должен компилироваться в системах FreeBSD и NetBSD.
VSEARCH может напрямую читать входные запросы и файлы базы данных, сжатые с помощью gzip (.gz) и bzip2 (.bz2), если доступны библиотеки zlib и bzip2.
Поддерживается большинство команд и опций на основе нуклеотидов в USEARCH версии 7, а также некоторые в версии 8. Те же имена опций, что и в USEARCH версии 7, были использованы для того, чтобы сделать VSEARCH почти полной заменой. VSEARCH не поддерживает аминокислотные последовательности или локальное выравнивание. Эти функции могут быть добавлены в будущем.
Если вы не можете найти ответ в документации VSEARCH, посетите веб-форум VSEARCH, чтобы задать вопрос или начать обсуждение.
В приведенном ниже примере VSEARCH определит последовательности в файле data.fsa, которые по крайней мере на 90 % идентичны в плюсовой цепи последовательностям запроса в файле query.fsa, и запишет результаты в файл alnout.txt.
./vsearch --usearch_global queries.fsa --db database.fsa --id 0.9 --alnout alnout.txt
Дистрибутив исходного кода. Чтобы загрузить дистрибутив исходного кода из выпуска и собрать исполняемый файл и документацию, используйте следующие команды:
wget https://github.com/torognes/vsearch/archive/v2.29.1.tar.gz
tar xzf v2.29.1.tar.gz
cd vsearch-2.29.1
./autogen.sh
./configure CFLAGS="-O3" CXXFLAGS="-O3"
make ARFLAGS="cr"
sudo make install
Вы можете настроить каталог установки, используя параметр --prefix=DIR
для configure
. Если в системе установлены библиотеки сжатия zlib и/или bzip2, они будут обнаружены автоматически, и в vsearch будет включена поддержка сжатых файлов (см. раздел «Зависимости» ниже). Поддержку сжатых файлов можно отключить с помощью параметров --disable-zlib
и --disable-bzip2
для configure
. PDF-версия руководства будет создана из файла руководства vsearch.1
, если доступен ps2pdf
, если только он не отключен с помощью параметра --disable-pdfman
для configure
. Рекомендуется запускать configure с параметрами CFLAGS="-O3"
и CXXFLAGS="-O3"
. Другие параметры также могут быть применены к configure
, запустите configure -h
чтобы просмотреть их все. Для сборки vsearch необходимы GNU autoconf (версия 2.63 или новее), automake и компилятор GCC C++ ( g++
). Для make
может потребоваться версия 3.82 или более поздняя, а для macOS достаточно версии 3.81.
Для сборки VSEARCH в Debian и подобных дистрибутивах Linux (Ubuntu и т. д.) вам потребуются следующие пакеты: autoconf, automake, g++, Ghostscript, groff, libbz2-dev, make, zlib1g-dev. Включите libsimde-dev для сборки на базе riscv64 или mips64el.
Для сборки VSEARCH в Fedora и аналогичных дистрибутивах Linux (RHEL, Centos и т. д.) вам потребуются следующие пакеты: autoconf, automake, bzip2-devel, gcc-c++, Ghostscript, groff-base, make, zlib-devel.
Вместо загрузки исходного дистрибутива в виде сжатого архива вы можете клонировать репозиторий и собрать его, как показано ниже. Опции configure
, описанные выше, по-прежнему действительны.
git clone https://github.com/torognes/vsearch.git
cd vsearch
./autogen.sh
./configure CFLAGS="-O3" CXXFLAGS="-O3"
make ARFLAGS="cr"
sudo make install
Бинарное распространение : Начиная с версии 1.4.0, файлы двоичного дистрибутива, содержащие предварительно скомпилированные двоичные файлы, а также документацию, будут доступны как часть каждого выпуска. Включенные исполняемые файлы включают поддержку входных файлов, сжатых zlib и bzip2 (файлы обычно заканчиваются на .gz
или .bz2
).
Двоичные дистрибутивы предоставляются для систем x86-64 под управлением GNU/Linux, macOS (версия 10.7 или выше) или Windows (64-разрядная версия, версия 7 или выше), 64-разрядных систем AMDv8 (aarch64) под управлением GNU/Linux или macOS, как а также POWER8 (ppc64le), 64-битный RISC-V с прямым порядком байтов (risv64) и 64-битные системы MIPS с прямым порядком байтов (mips64el), работающие под управлением GNU/Linux. Также предоставляется универсальный двоичный файл macOS. Кроме того, предоставляется двоичный файл x86_64, созданный для снятых с производства дистрибутивов Linux RHEL 7 и CentOS 7. Остальные двоичные файлы Linux построены на Debian 11 (старая стабильная версия, Bullseye). Статические двоичные файлы доступны для всех архитектур Linux, кроме x86_64, их можно использовать в системах, в которых не установлены все необходимые библиотеки. Бинарный файл Windows был собран с помощью кросс-компиляции с использованием Mingw-w64.
Загрузите соответствующий исполняемый файл для вашей системы, используя следующие команды, если вы используете систему Linux или macOS:
wget https://github.com/torognes/vsearch/releases/download/v{VERSION}/vsearch-{VERSION}-{OS}-{ARCH}.tar.gz
tar xzf vsearch-{VERSION}-{OS}-{ARCH}.tar.gz
Замените {VERSION}
номером версии VSEARCH (например 2.29.1
), {OS}
целевой операционной системой ( linux
или macos
) и {ARCH}
архитектурой ( x86_64
, aarch64
, ppc64le
, riscv64
или mips64el
). Вы можете добавить -static
после {ARCH}
, чтобы получить статически скомпилированную версию для Linux (кроме x86_64). Имя двоичного файла дистрибутивов Linux RHEL 7 и CentOS 7 заканчивается на -ubi7
.
Или, если вы используете Windows, загрузите и извлеките (разархивируйте) содержимое этого файла:
https://github.com/torognes/vsearch/releases/download/v{VERSION}/vsearch-{VERSION}-win-x86_64.zip
Linux и Mac : теперь у вас будет двоичный дистрибутив в папке vsearch-{VERSION}-{OS}-{ARCH}
, в которой вы найдете три подпапки bin
, man
и doc
. Мы рекомендуем сделать копию или символическую ссылку на двоичный файл vsearch bin/vsearch
в папке, включенной в ваш $PATH
, а также копию или символическую ссылку на справочную страницу vsearch man/vsearch.1
в папке, включенной в ваш $MANPATH
. PDF-версия руководства доступна в doc/vsearch_manual.pdf
.
Windows : теперь двоичный дистрибутив будет находиться в папке vsearch-{VERSION}-win-x86_64
. Исполняемый файл vsearch называется vsearch.exe
. Руководство в формате PDF называется vsearch_manual.pdf
. Если вы хотите иметь возможность вызывать vsearch.exe
из любого окна командной строки, вы можете поместить исполняемый файл VSEARCH в папку (например, C:Users<yourname>bin
) и добавить новую папку в Path
пользователя. : откройте окно Environment Variables
, выполнив поиск в меню «Пуск», Edit
пользовательские переменные», добавьте ;C:Users<yourname>bin
в конец переменной Path
и сохраните изменения. В дистрибутив Windows также входят файлы libbz2.dll
и zlib1.dll
необходимые для чтения сжатых входных файлов. Эти DLL были получены для mingw-w64 с платформы MSYS2.
Документация: Руководство пользователя VSEARCH доступно в папке man
в виде страницы руководства. Версия в формате PDF (vsearch_manual.pdf) будет создана командой make
. Чтобы установить man-страницу вручную, скопируйте файл vsearch.1
или создайте символическую ссылку на vsearch.1
в папке, включенной в ваш $MANPATH
. Руководство в обоих форматах также доступно в бинарном дистрибутиве. К последней версии также прилагается руководство в формате PDF (vsearch_manual.pdf).
Пакет Conda Благодаря команде BioConda в Conda теперь есть пакет vsearch.
Пакет Debian Благодаря команде Debian Med теперь в Debian есть пакет vsearch.
Пакет портов FreeBSD Благодаря Джейсону Бэкону доступен пакет портов FreeBSD для vsearch. Установите двоичный пакет с помощью pkg install vsearch
или выполните сборку из исходного кода с дополнительными оптимизациями.
Обертка Galaxy Благодаря работе членов Межгалактической комиссии по коммунальным предприятиям VSEARCH теперь является частью Galaxy ToolShed.
Пакет Homebrew Благодаря Торстену Зееману был создан пакет vsearch для Homebrew.
Пакет Pkgsrc Благодаря Джейсону Бэкону доступен пакет vsearch pkgsrc для NetBSD и других UNIX-подобных систем. Установите двоичный пакет с помощью pkgin install vsearch
или выполните сборку из исходного кода с дополнительными оптимизациями.
Плагин QIIME 2 Благодаря команде QIIME 2 теперь существует плагин под названием q2-vsearch для QIIME 2.
С помощью команды from-uc
в biom 2.1.5 или более поздней версии можно преобразовать данные из файла .uc
, созданного с помощью vsearch, в файл biom, который может быть прочитан QIIME и другим программным обеспечением. Это описано здесь.
Обратите внимание, что VSEARCH версии 2.2.0 и более поздних версий может напрямую выводить таблицы OTU в формате biom 1.0, а также в классическом формате и формате mothur.
Подробности смотрите в документе:
Рогнес Т., Флури Т., Николс Б., Айва С., Маэ Ф. (2016) VSEARCH: универсальный инструмент с открытым исходным кодом для метагеномики. PeerJ 4:e2584 doi: 10.7717/peerj.2584
Для компиляции VSEARCH требуется либо GCC ( g++
), либо clang
, make
и autotools ( ui-auto
в дистрибутивах на основе Debian). При необходимости, файлы заголовков для следующих двух дополнительных библиотек потребуются, если необходима поддержка входных файлов FASTA и FASTQ, сжатых gzip и bzip2:
zlib.h
, доступен как zlib1g-dev
в дистрибутивах на основе Debian) (необязательно)bzlib.h
, доступен как libbz2-dev
в дистрибутивах на основе Debian) (необязательно)VSEARCH автоматически проверит, доступны ли эти библиотеки, и загрузит их динамически.
В Windows эти библиотеки называются zlib1.dll
и libbz2.dll
. Эти DLL включены в дистрибутив vsearch 2.29.1 и более поздних версий.
Для создания PDF-файла с руководством требуется инструмент ps2pdf. Это часть пакета ghostscript
.
Код VSEARCH имеет двойную лицензию: либо GNU General Public License версии 3, либо лицензию BSD с двумя пунктами. Подробности см. в файле LICENSE.txt.
VSEARCH включает код из нескольких других проектов. Мы благодарим авторов за предоставление доступа к их исходному коду.
VSEARCH включает в себя код из проекта Google CityHash, созданный Джеффом Пайком и Юрки Алакуйала, предоставляющий отличные хеш-функции, доступные по лицензии MIT.
VSEARCH включает в себя код, полученный из программы Татусова и Липмана DUST, который находится в открытом доступе.
VSEARCH включает общедоступный код, написанный Александром Песляком для алгоритма дайджеста сообщений MD5.
VSEARCH включает общедоступный код, написанный Стивом Ридом и другими для алгоритма дайджеста сообщений SHA1.
Дистрибутив VSEARCH включает код GNU Autoconf, который обычно доступен по лицензии GNU General Public License, но может распространяться со специальным исключением сценария настройки autoconf.
VSEARCH может включать код из библиотеки zlib, авторские права принадлежат Жану-Лу Гайи и Марку Адлеру, распространяемой по лицензии zlib.
VSEARCH может включать код из библиотеки bzip2, авторские права принадлежат Джулиану Р. Сьюарду, распространяемой по лицензии в стиле BSD.
Код написан в основном на C++.
Файл | Описание |
---|---|
align_simd.cc | SIMD параллельное глобальное выравнивание 1 запроса с 8 последовательностями базы данных |
allpairs.cc | Оптимальное глобальное попарное выравнивание «все против всех» (без эвристики) |
арх.cc | Код конкретной архитектуры (Mac/Linux) |
атрибуты.cc | Извлечение и печать атрибутов в заголовках FASTA |
растровое изображение.cc | Реализация растровых изображений |
химера.cc | Обнаружение химеры |
город.cc | CityHash-код |
кластер.cc | Кластеризация (cluster_fast иcluster_smallmem) |
процессор.cc | Код зависит от конкретных функций процессора (например, ssse3) |
вырезать.cc | Резка сайта ограничения |
db.cc | Управляет чтением, доступом к файлу базы данных и т. д. |
dbhash.cc | Хеширование базы данных для точного поиска |
dbindex.cc | Индексирует базу данных, определяя уникальные кмеры в последовательностях. |
derep.cc | Дерепликация, полнометражный |
derep_prefix.cc | Дерепликация, префикс |
derep_smallmem.cc | Дерепликация, небольшое использование памяти |
dynlibs.cc | Динамическая загрузка библиотек сжатия |
eestats.cc | Получение статистики для команды fastq_eestats |
fasta.cc | Парсер файлов FASTA |
fasta2fastq.cc | Преобразование FASTA в FASTQ |
fastq.cc | Парсер файлов FASTQ |
fastq_chars.cc | Статистика ФАСТК |
fastq_join.cc | FASTQ парное чтение читает соединение |
fastqops.cc | Статистика файлов FASTQ и т. д. |
fastx.cc | Обнаружение файлов FASTA и FASTQ, обертка для парсеров FASTA и FASTQ |
filter.cc | Обрезка и фильтрация последовательностей в файлах FASTA и FASTQ. |
getseq.cc | Извлечение последовательностей на основе меток заголовков |
kmerhash.cc | Хэш для кмеров, используемый при слиянии парного чтения |
linmemalign.cc | Выравниватель глобальной последовательности с линейной памятью |
карты.cc | Различные массивы сопоставления символов |
маска.cc | Маскировка (ПЫЛЬ) |
md5.c | Дайджест сообщения MD5 |
mergepairs.cc | Слияние парного чтения |
minheap.cc | Реализация minheap для списка лучших совпадений kmer |
msa.cc | Простое множественное выравнивание последовательностей и вычисление консенсусной последовательности для кластеров |
orient.cc | Ориентировать направление последовательностей на основе справочной базы данных |
otutable.cc | Создание таблиц OTU в различных форматах |
rereреплицировать.cc | Ререпликация |
результаты.cc | Вывод результатов в различных форматах (alnout, userout, blast6, uc) |
search.cc | Реализует поиск с использованием глобального выравнивания |
search_exact.cc | Точные функции поиска |
searchcore.cc | Основные функции поиска для поиска, кластеризации и обнаружения химер. |
sff_convert.cc | Конвертация файлов SFF в FASTQ |
sha1.c | Дайджест сообщения SHA1 |
showalign.cc | Выведите выравнивание в удобочитаемом виде, учитывая строку CIGAR и последовательности. |
shuffle.cc | Перемешать последовательности |
sintax.cc | Таксономическая классификация с использованием метода Sintax |
сортировка по длине.cc | Код для сортировки по длине |
sortbysize.cc | Код для сортировки по размеру (обилию) |
subsample.cc | Подвыборка читает из файла FASTA |
налог.cc | Анализ таксономической информации |
udb.cc | Обработка файлов базы данных UDB |
уникальный.cc | Найдите уникальные кмеры в последовательности |
userfields.cc | Код для анализа аргумента опции userfields |
util.cc | Различные общие служебные функции |
vsearch.cc | Основной файл программы, общая инициализация, чтение аргументов и параметров анализа, запись информации. |
utils/maps.cc | Утилиты, карты для кодирования нуклеотидов |
utils/seqcmp.cc | Утилиты, сравнение последовательностей |
VSEARCH может быть скомпилирован с интеграцией zlib или bzip2, что позволяет ему читать сжатые файлы FASTA. Для этого необходимы библиотеки zlib и bzip2.
Все сообщения об ошибках высоко ценятся. Вы можете отправить отчет об ошибке здесь, на GitHub, как проблему (предпочтительно), вы можете опубликовать сообщение на веб-форуме VSEARCH или отправить электронное письмо на адрес [email protected].
VSEARCH предназначен для довольно коротких последовательностей и будет работать медленно, если последовательности длиннее примерно 5000 п.н. Это связано с тем, что он всегда выполняет оптимальное глобальное выравнивание выбранных последовательностей.
Основные участники VSEARCH:
Особая благодарность следующим людям за исправления, предложения, доступ к компьютеру и т. д.:
Если вы используете VSEARCH, цитируйте следующую публикацию:
Рогнес Т., Флури Т., Николс Б., Айва С., Маэ Ф. (2016) VSEARCH: универсальный инструмент с открытым исходным кодом для метагеномики. ПирДж 4:e2584. дои: 10.7717/peerj.2584
Обратите внимание, что ссылка на любой из базовых алгоритмов, например UCHIME, также может быть уместной.
Наборы тестовых данных (находятся в отдельном репозитории vsearch-data) были получены из проекта BioMarks (Logares et al. 2014), проекта TARA OCEANS (Karsenti et al. 2011) и Справочной базы данных по рибосомам протистов (PR 2 ) (Guillou et al. 2011). др. 2013).
Эдгар Р.К. (2010) Поиск и кластеризация на порядки быстрее, чем BLAST. Биоинформатика , 26 (19): 2460-2461. doi:10.1093/биоинформатика/btq461
Эдгар RC (2016) SINTAX: простой небайесовский классификатор таксономии для последовательностей 16S и ITS. биоRxiv . дои: 10.1101/074161
Эдгар RC (2016) UNOISE2: улучшенное исправление ошибок для секвенирования ампликонов Illumina 16S и ITS. биоRxiv . дои: 10.1101/081257
Эдгар Р.К., Фливбьерг Х. (2015) Фильтрация ошибок, сборка пар и исправление ошибок для чтения секвенирования следующего поколения. Биоинформатика , 31 (21): 3476-3482. doi:10.1093/биоинформатика/btv401
Эдгар Р.К., Хаас Б.Дж., Клементе Дж.К., Айва С., Найт Р. (2011) UCHIME повышает чувствительность и скорость обнаружения химер. Биоинформатика , 27 (16): 2194-2200. doi:10.1093/биоинформатика/btr381
Гийу Л, Башар Д, Аудик С, Басс Д, Берни С, Биттнер Л, Бутте С, Бурго Дж, де Варгас С, Деселле Дж, дель Кампо Дж, Долан Дж, Данторн М, Эдвардсен Б, Хольцманн М, Куистра В, Лара Э, Лебеско Н, Логарес Р, Маэ Ф, Массана Р, Монтрезор М, Морар Р, Нот Ф, Павловски Дж., Проберт И., Саувадет А.Л., Сиано Р., Сток Т., Волот Д., Циммерманн П. и Кристен Р. (2013) Справочная база данных по рибосомам протистов (PR2): каталог последовательностей рРНК малых субъединиц одноклеточных эукариот с тщательно подобранной таксономией. Исследования нуклеиновых кислот , 41 (D1), D597-D604. doi:10.1093/нар/gks1160
Карсенти Э, Гонсалес Ацинас С, Борк П, Боулер С, де Варгас С, Раес Дж, Салливан МБ, Арендт Д, Бензони Ф, Клавери Дж. М., Фолловер М, Джайон О, Горски Г, Хингамп П, Иудиконе Д, Кандельс-Льюис С, Кржич У, Нот Ф, Огата Х, Песант С, Рейно Э.Г., Сардет С., Сьераки М.Е., Спейч С., Велаюдон Д., Вайссенбах Дж., Винкер П. и Консорциум океанов Тары (2011) . Целостный подход к биологии морских экосистем. PLoS Biology , 9 (10), e1001177. doi:10.1371/journal.pbio.1001177
Логарес Р., Аудик С., Басс Д., Биттнер Л., Бутте К., Кристен Р., Клавери Дж.М., Деселле Дж., Долан Дж.Р., Данторн М., Эдвардсен Б., Гобет А., Кооистра WHCF, Маэ Ф., Нот Ф., Огата Х., Павловски Дж. , Пернице М.С., Ромак С., Шалчиан-Тебризи К., Саймон Н., Сток Т., Сантини С., Сиано Р., Винкер П., Зингоне А., Ричардс Т., де Варгас С. и Массана Р. (2014) Формирование структуры редких и обильных сообществ прибрежных морских планктонных микробных эукариот. Текущая биология , 24(8), 813-821. doi:10.1016/j.cub.2014.02.050
Рогнес Т. (2011) Ускоренный поиск в базе данных Смита-Уотермана за счет межпоследовательного распараллеливания SIMD. БМЦ Биоинформатика , 12:221. doi:10.1186/1471-2105-12-221.