Le but de ce projet est de créer une alternative à l'outil USEARCH développé par Robert C. Edgar (2010). Le nouvel outil devrait :
Nous avons implémenté un outil appelé VSEARCH qui prend en charge la détection de chimères de novo et basée sur la référence, le clustering, la déréplication complète et de préfixe, la réplication, la complémentation inverse, le masquage, l'alignement global par paire tout contre tous, la recherche d'alignement exact et global, le brassage, sous-échantillonnage et tri. Il prend également en charge l'analyse de fichiers FASTQ, le filtrage, la conversion et la fusion de lectures appariées.
VSEARCH signifie recherche vectorisée, car l'outil profite du parallélisme sous la forme de vectorisation SIMD ainsi que de plusieurs threads pour effectuer des alignements précis à grande vitesse. VSEARCH utilise un aligneur global optimal (programmation dynamique complète Needleman-Wunsch), contrairement à USEARCH qui utilise par défaut un aligneur heuristique de départ et d'extension. Cela se traduit généralement par des alignements plus précis et une sensibilité (rappel) globalement améliorée avec VSEARCH, en particulier pour les alignements avec des espaces.
Les binaires VSEARCH sont fournis pour GNU/Linux sur cinq architectures de processeur 64 bits : x86_64, POWER8 (ppc64le), ARMv8 (aarch64), RISC-V petit-boutiste 64 bits (riscv64) et MIPS petit-endien 64 bits ( mips64el). Des binaires sont également fournis pour macOS (version 10.9 Mavericks ou ultérieure) sur Intel (x86_64) et Apple Silicon (ARMv8), ainsi que pour Windows (64 bits, version 7 ou supérieure, sur x86_64). VSEARCH contient du code SIMD natif pour trois architectures de processeur (SSE2/SSSE3, AltiVec/VMX/VSX, Neon). De plus, VSEARCH utilise la bibliothèque SIMD Everywhere (SIMDe) pour permettre la construction sur riscv64, mips64el et d'autres architectures petit-boutiste, mais les performances peuvent être inférieures à celles d'une implémentation native.
Processeur Système d'exploitation | GNU/Linux | macOS | Fenêtres |
---|---|---|---|
x86_64 | ✔ | ✔ | ✔ |
ARMv8 | ✔ | ✔ | |
PUISSANCE8 | ✔ | ||
RISC-V 64 LE | ✔ | ||
MIPS 64 LE | non testé |
Divers packages, plugins et wrappers pour VSEARCH sont également disponibles à partir d'autres sources - voir ci-dessous.
Le code source se compile correctement avec gcc
(versions 4.8.5 à 14.0) et llvm-clang
(3.8 à 19.0). Le code source doit également être compilé sur les systèmes FreeBSD et NetBSD.
VSEARCH peut lire directement les requêtes d'entrée et les fichiers de base de données compressés à l'aide de gzip (.gz) et bzip2 (.bz2) si les bibliothèques zlib et bzip2 sont disponibles.
La plupart des commandes et options basées sur les nucléotides dans USEARCH version 7 sont prises en charge, ainsi que certaines dans la version 8. Les mêmes noms d'options que dans USEARCH version 7 ont été utilisés afin de faire de VSEARCH un remplacement presque instantané. VSEARCH ne prend pas en charge les séquences d'acides aminés ni les alignements locaux. Ces fonctionnalités pourraient être ajoutées à l’avenir.
Si vous ne trouvez pas de réponse dans la documentation VSEARCH, veuillez visiter le forum Web VSEARCH pour poster une question ou démarrer une discussion.
Dans l'exemple ci-dessous, VSEARCH identifiera les séquences du fichier database.fsa qui sont au moins 90 % identiques sur le brin plus aux séquences de requête dans le fichier queries.fsa et écrira les résultats dans le fichier alnout.txt.
./vsearch --usearch_global queries.fsa --db database.fsa --id 0.9 --alnout alnout.txt
Distribution source Pour télécharger la distribution source à partir d'une version et créer l'exécutable et la documentation, utilisez les commandes suivantes :
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
Vous pouvez personnaliser le répertoire d'installation en utilisant l'option --prefix=DIR
pour configure
. Si les bibliothèques de compression zlib et/ou bzip2 sont installées sur le système, elles seront détectées automatiquement et la prise en charge des fichiers compressés sera incluse dans vsearch (voir la section Dépendances ci-dessous). La prise en charge des fichiers compressés peut être désactivée à l'aide des options --disable-zlib
et --disable-bzip2
pour configure
. Une version PDF du manuel sera créée à partir du fichier manuel vsearch.1
si ps2pdf
est disponible, à moins qu'il ne soit désactivé à l'aide de l'option --disable-pdfman
pour configure
. Il est recommandé d'exécuter configure avec les options CFLAGS="-O3"
et CXXFLAGS="-O3"
. D'autres options peuvent également être appliquées à configure
, veuillez exécuter configure -h
pour les voir toutes. GNU autoconf (version 2.63 ou ultérieure), automake et le compilateur GCC C++ ( g++
) sont requis pour construire vsearch. La version 3.82 ou ultérieure de make
peut être requise sous Linux, tandis que la version 3.81 est suffisante sous macOS.
Pour créer VSEARCH sur Debian et des distributions Linux similaires (Ubuntu, etc.), vous aurez besoin des packages suivants : autoconf, automake, g++, ghostscript, groff, libbz2-dev, make, zlib1g-dev. Incluez libsimde-dev pour construire sur riscv64 ou mips64el.
Pour créer VSEARCH sur Fedora et des distributions Linux similaires (RHEL, Centos, etc.), vous aurez besoin des packages suivants : autoconf, automake, bzip2-devel, gcc-c++, ghostscript, groff-base, make, zlib-devel.
Au lieu de télécharger la distribution source sous forme d'archive compressée, vous pouvez cloner le dépôt et le créer comme indiqué ci-dessous. Les options à configure
comme décrit ci-dessus sont toujours valables.
git clone https://github.com/torognes/vsearch.git
cd vsearch
./autogen.sh
./configure CFLAGS="-O3" CXXFLAGS="-O3"
make ARFLAGS="cr"
sudo make install
Distribution binaire : À partir de la version 1.4.0, les fichiers de distribution binaire contenant les binaires précompilés ainsi que la documentation seront mis à disposition dans le cadre de chaque version. Les exécutables inclus incluent la prise en charge des fichiers d'entrée compressés par zlib et bzip2 (avec des fichiers se terminant généralement par .gz
ou .bz2
).
Les distributions binaires sont fournies pour les systèmes x86-64 exécutant GNU/Linux, macOS (version 10.7 ou supérieure) ou Windows (64 bits, version 7 ou supérieure), les systèmes AMDv8 64 bits (aarch64) exécutant GNU/Linux ou macOS, comme ainsi que POWER8 (ppc64le), RISC-V petit-boutiste 64 bits (risv64) et MIPS petit-boutiste 64 bits (mips64el) exécutant GNU/Linux. Un binaire macOS universel est également fourni. De plus, un binaire x86_64 conçu pour les distributions Linux abandonnées RHEL 7 et CentOS 7 est fourni. Les autres binaires Linux sont construits sur Debian 11 (oldstable, Bullseye). Les binaires statiques sont disponibles pour toutes les architectures Linux à l'exception de x86_64, ils peuvent être utilisés sur des systèmes sur lesquels toutes les bibliothèques nécessaires ne sont pas installées. Le binaire Windows a été construit avec une compilation croisée à l'aide de Mingw-w64.
Téléchargez l'exécutable approprié pour votre système à l'aide des commandes suivantes si vous utilisez un système Linux ou 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
Remplacez {VERSION}
par le numéro de version de VSEARCH (par exemple 2.29.1
), {OS}
par le système d'exploitation cible ( linux
ou macos
) et {ARCH}
par l'architecture ( x86_64
, aarch64
, ppc64le
, riscv64
ou mips64el
). Vous pouvez ajouter -static
après {ARCH}
pour obtenir une version compilée statiquement pour Linux (sauf x86_64). Le nom du binaire des distributions Linux RHEL 7 et CentOS 7 se termine par -ubi7
.
Ou, si vous utilisez Windows, téléchargez et extrayez (décompressez) le contenu de ce fichier :
https://github.com/torognes/vsearch/releases/download/v{VERSION}/vsearch-{VERSION}-win-x86_64.zip
Linux et Mac : Vous aurez maintenant la distribution binaire dans un dossier appelé vsearch-{VERSION}-{OS}-{ARCH}
dans lequel vous trouverez trois sous-dossiers bin
, man
et doc
. Nous vous recommandons de faire une copie ou un lien symbolique vers le binaire bin bin/vsearch
de vsearch dans un dossier inclus dans votre $PATH
, et une copie ou un lien symbolique vers la page de manuel de vsearch man/vsearch.1
dans un dossier inclus dans votre $MANPATH
. La version PDF du manuel est disponible dans doc/vsearch_manual.pdf
.
Windows : Vous aurez maintenant la distribution binaire dans un dossier appelé vsearch-{VERSION}-win-x86_64
. L'exécutable vsearch s'appelle vsearch.exe
. Le manuel au format PDF s'appelle vsearch_manual.pdf
. Si vous souhaitez pouvoir appeler vsearch.exe
à partir de n'importe quelle fenêtre d'invite de commande, vous pouvez placer l'exécutable VSEARCH dans un dossier (par exemple C:Users<yourname>bin
) et ajouter le nouveau dossier au Path
utilisateur. : ouvrez la fenêtre Environment Variables
en la recherchant dans le menu Démarrer, Edit
les variables utilisateur, ajoutez ;C:Users<yourname>bin
à la fin de la variable Path
et enregistrez vos modifications. La distribution Windows comprend également les fichiers libbz2.dll
et zlib1.dll
requis pour la lecture des fichiers d'entrée compressés. Ces DLL ont été obtenues pour mingw-w64 à partir de la plateforme MSYS2.
Documentation : Le manuel utilisateur de VSEARCH est disponible dans le dossier man
sous la forme d'une page de manuel. Une version pdf (vsearch_manual.pdf) sera générée par make
. Pour installer la page de manuel manuellement, copiez le fichier vsearch.1
ou créez un lien symbolique vers vsearch.1
dans un dossier inclus dans votre $MANPATH
. Le manuel dans les deux formats est également disponible avec la distribution binaire. Le manuel au format PDF (vsearch_manual.pdf) est également joint à la dernière version.
Package Conda Grâce à l'équipe BioConda, il existe désormais un package vsearch dans Conda.
Paquet Debian Grâce à l'équipe Debian Med, il existe désormais un paquet vsearch dans Debian.
Package de ports FreeBSD Grâce à Jason Bacon, un package de ports FreeBSD vsearch est disponible. Installez le package binaire avec pkg install vsearch
ou créez à partir des sources avec des optimisations supplémentaires.
Wrapper Galaxy Grâce au travail des membres de l'Intergalactic Utilities Commission, VSEARCH fait désormais partie du Galaxy ToolShed.
Package Homebrew Grâce à Torsten Seeman, un package vsearch pour Homebrew a été réalisé.
Package Pkgsrc Grâce à Jason Bacon, un package vsearch pkgsrc est disponible pour NetBSD et d'autres systèmes de type UNIX. Installez le package binaire avec pkgin install vsearch
ou créez à partir des sources avec des optimisations supplémentaires.
Plugin QIIME 2 Grâce à l'équipe QIIME 2, il existe désormais un plugin appelé q2-vsearch pour QIIME 2.
Avec la commande from-uc
dans biom 2.1.5 ou version ultérieure, il est possible de convertir les données d'un fichier .uc
produit par vsearch en un fichier biom pouvant être lu par QIIME et d'autres logiciels. Il est décrit ici.
Veuillez noter que VSEARCH version 2.2.0 et versions ultérieures sont capables de générer directement des tables OTU au format biom 1.0 ainsi qu'aux formats classique et mothur.
Veuillez consulter le document pour plus de détails :
Rognes T, Flouri T, Nichols B, Quince C, Mahé F. (2016) VSEARCH : un outil open source polyvalent pour la métagénomique. PeerJ 4:e2584 est ce que je:10.7717/peerj.2584
La compilation de VSEARCH nécessite soit GCC ( g++
) soit clang
, make
et les autotools ( ui-auto
sur les distributions basées sur Debian). En option, les fichiers d'en-tête des deux bibliothèques facultatives suivantes sont requis si la prise en charge des fichiers d'entrée FASTA et FASTQ compressés gzip et bzip2 est nécessaire :
zlib.h
, disponible en tant que zlib1g-dev
sur les distributions basées sur Debian) (facultatif)bzlib.h
, disponible en tant que libbz2-dev
sur les distributions basées sur Debian) (facultatif)VSEARCH vérifiera automatiquement si ces bibliothèques sont disponibles et les chargera dynamiquement.
Sous Windows, ces bibliothèques sont appelées zlib1.dll
et libbz2.dll
. Ces DLL sont incluses dans la distribution publiée de vsearch 2.29.1 et versions ultérieures.
Pour créer le fichier PDF avec le manuel, l'outil ps2pdf est requis. Il fait partie du package ghostscript
.
Le code VSEARCH est sous double licence soit sous la licence publique générale GNU version 3, soit sous la licence BSD à 2 clauses. Veuillez consulter LICENSE.txt pour plus de détails.
VSEARCH inclut le code de plusieurs autres projets. Nous remercions les auteurs d'avoir mis à disposition leur code source.
VSEARCH inclut le code du projet CityHash de Google de Geoff Pike et Jyrki Alakuijala, fournissant d'excellentes fonctions de hachage disponibles sous licence MIT.
VSEARCH inclut du code dérivé du programme DUST de Tatusov et Lipman qui est dans le domaine public.
VSEARCH inclut du code du domaine public écrit par Alexander Peslyak pour l'algorithme de résumé de message MD5.
VSEARCH inclut du code du domaine public écrit par Steve Reid et d'autres pour l'algorithme de résumé de message SHA1.
La distribution VSEARCH inclut du code de GNU Autoconf qui est normalement disponible sous la licence publique générale GNU, mais peut être distribué avec l'exception spéciale de script de configuration autoconf.
VSEARCH peut inclure du code de la bibliothèque zlib copyright Jean-loup Gailly et Mark Adler, distribué sous licence zlib.
VSEARCH peut inclure du code de la bibliothèque bzip2 copyright Julian R. Seward, distribué sous une licence de style BSD.
Le code est écrit principalement en C++.
Déposer | Description |
---|---|
align_simd.cc | Alignement global parallèle SIMD de 1 requête avec 8 séquences de base de données |
allpairs.cc | Alignement global par paire optimal tout contre tous (pas d'heuristique) |
arch.cc | Code spécifique à l'architecture (Mac/Linux) |
attributs.cc | Extraction et impression des attributs dans les en-têtes FASTA |
bitmap.cc | Implémentation de bitmaps |
chimère.cc | Détection de chimère |
ville.cc | Code CityHash |
cluster.cc | Clustering (cluster_fast et cluster_smallmem) |
cpu.cc | Code dépendant de fonctionnalités spécifiques du processeur (par exemple ssse3) |
couper.cc | Coupe des sites de restriction |
db.cc | Gère la lecture, l'accès, etc. du fichier de base de données |
dbhash.cc | Hachage de base de données pour des recherches exactes |
dbindex.cc | Indexe la base de données en identifiant les kmers uniques dans les séquences |
derep.cc | Déréplication, version complète |
derep_prefix.cc | Déréplication, préfixe |
derep_smallmem.cc | Déréplication, faible utilisation de la mémoire |
dynlibs.cc | Chargement dynamique des bibliothèques de compression |
eestats.cc | Produire des statistiques pour la commande fastq_eestats |
fasta.cc | Analyseur de fichiers FASTA |
fasta2fastq.cc | Conversion FASTA en FASTQ |
fastq.cc | Analyseur de fichiers FASTQ |
fastq_chars.cc | Statistiques FASTQ |
fastq_join.cc | Lectures appariées FASTQ se joignant |
fastqops.cc | Statistiques des fichiers FASTQ, etc. |
fastx.cc | Détection des fichiers FASTA et FASTQ, wrapper pour les analyseurs FASTA et FASTQ |
filtre.cc | Découpage et filtrage des séquences dans les fichiers FASTA et FASTQ |
geteq.cc | Extraction de séquences basées sur les étiquettes d'en-tête |
kmerhash.cc | Hachage pour les kmers utilisés par la fusion de lectures appariées |
linmemalign.cc | Aligneur de séquence global à mémoire linéaire |
cartes.cc | Divers tableaux de mappage de caractères |
masque.cc | Masquage (POUSSIÈRE) |
md5.c | Résumé des messages MD5 |
mergepairs.cc | Fusion de lectures appariées |
minheap.cc | Une implémentation minheap pour la liste des meilleurs matchs kmer |
msa.cc | Alignement simple de séquences multiples et calcul de séquences consensus pour les clusters |
orienter.cc | Orienter la direction des séquences en fonction de la base de données de référence |
otutable.cc | Générer des tables OTU dans différents formats |
rerépliquer.cc | Réplication |
résultats.cc | Résultats de sortie dans différents formats (alnout, userout, blast6, uc) |
recherche.cc | Implémente la recherche en utilisant l'alignement global |
recherche_exact.cc | Fonctions de recherche exactes |
searchcore.cc | Fonctions de recherche de base pour la recherche, le regroupement et la détection de chimères |
sff_convert.cc | Conversion de fichier SFF en FASTQ |
sha1.c | Résumé des messages SHA1 |
showalign.cc | Afficher un alignement d'une manière lisible par l'homme étant donné une chaîne CIGAR et les séquences |
shuffle.cc | Mélanger les séquences |
sintax.cc | Classification taxonomique selon la méthode Sintax |
sortbylength.cc | Code de tri par longueur |
trier par taille.cc | Code de tri par taille (abondance) |
sous-échantillon.cc | Lectures de sous-échantillonnage à partir d'un fichier FASTA |
taxe.cc | Analyse des informations taxonomiques |
udb.cc | Gestion des fichiers de base de données UDB |
unique.cc | Trouver des kmers uniques dans une séquence |
champsutilisateur.cc | Code pour analyser l'argument d'option userfields |
util.cc | Diverses fonctions utilitaires courantes |
vsearch.cc | Fichier programme principal, initialisation générale, lit les arguments et analyse les options, écrit les informations. |
utils/maps.cc | Utilitaires, cartes pour le codage des nucléotides |
utils/seqcmp.cc | Utilitaires, comparaison de séquences |
VSEARCH peut être compilé avec l'intégration zlib ou bzip2 qui lui permet de lire des fichiers FASTA compressés. Les bibliothèques zlib et bzip2 sont nécessaires pour cela.
Tous les rapports de bogues sont très appréciés. Vous pouvez soumettre un rapport de bogue ici sur GitHub en tant que problème (de préférence), vous pouvez publier un message sur le forum Web VSEARCH ou envoyer un e-mail à [email protected].
VSEARCH est conçu pour des séquences plutôt courtes et sera lent lorsque les séquences sont plus longues qu'environ 5 000 pb. En effet, il effectue toujours un alignement global optimal sur les séquences sélectionnées.
Les principaux contributeurs à VSEARCH :
Un merci spécial aux personnes suivantes pour les correctifs, les suggestions, l'accès à l'ordinateur, etc. :
Veuillez citer la publication suivante si vous utilisez VSEARCH :
Rognes T, Flouri T, Nichols B, Quince C, Mahé F. (2016) VSEARCH : un outil open source polyvalent pour la métagénomique. PeerJ 4 : e2584. est ce que je: 10.7717/peerj.2584
Veuillez noter que citer l'un des algorithmes sous-jacents, par exemple UCHIME, peut également être approprié.
Des ensembles de données de test (trouvés dans le référentiel vsearch-data séparé) ont été obtenus à partir du projet BioMarks (Logares et al. 2014), du projet TARA OCEANS (Karsenti et al. 2011) et de la base de données de référence Protist Ribosomal (PR 2 ) (Guillou et al.2013).
Edgar RC (2010) Recherche et regroupement d'ordres de grandeur plus rapides que BLAST. Bioinformatique , 26 (19) : 2460-2461. est ce que je:10.1093/bioinformatique/btq461
Edgar RC (2016) SINTAX : un classificateur de taxonomie non bayésien simple pour les séquences 16S et ITS. bioRxiv . est ce que je:10.1101/074161
Edgar RC (2016) UNOISE2 : correction d'erreur améliorée pour le séquençage des amplicons Illumina 16S et ITS. bioRxiv . est ce que je:10.1101/081257
Edgar RC, Flyvbjerg H (2015) Filtrage des erreurs, assemblage de paires et correction d'erreurs pour les lectures de séquençage de nouvelle génération. Bioinformatique , 31 (21) : 3476-3482. est ce que je:10.1093/bioinformatique/btv401
Edgar RC, Haas BJ, Clemente JC, Quince C, Knight R (2011) UCHIME améliore la sensibilité et la vitesse de détection des chimères. Bioinformatique , 27 (16) : 2194-2200. est ce que je:10.1093/bioinformatique/btr381
Guillou L, Bachar D, Audic S, Bass D, Berney C, Bittner L, Boutte C, Burgaud G, de Vargas C, Decelle J, del Campo J, Dolan J, Dunthorn M, Edvardsen B, Holzmann M, Kooistra W, Lara E, Lebescot N, Logares R, Mahé F, Massana R, Montresor M, Morard R, Not F, Pawlowski J, Probert I, Sauvadet AL, Siano R, Stoeck T, Vaulot D, Zimmermann P & Christen R (2013) La base de données Protist Ribosomal Reference (PR2) : un catalogue de séquences d'ARNr de petites sous-unités d'eucaryote unicellulaire avec une taxonomie organisée. Recherche sur les acides nucléiques , 41 (D1), D597-D604. est ce que je:10.1093/nar/gks1160
Karsenti E, González Acinas S, Bork P, Bowler C, de Vargas C, Raes J, Sullivan MB, Arendt D, Benzoni F, Claverie JM, Follows M, Jaillon O, Gorsky G, Hingamp P, Iudicone D, Kandels-Lewis S, U Krzic, Not F, Ogata H, Pesant S, Reynaud EG, Sardet C, Sieracki ME, Speich S, Velayoudon D, Weissenbach J, Wincker P & the Tara Oceans Consortium (2011) Une approche holistique de la biologie des écosystèmes marins. PLoS Biologie , 9(10), e1001177. est ce que je:10.1371/journal.pbio.1001177
Logares R, Audic S, Bass D, Bittner L, Boutte C, Christen R, Claverie JM, Decelle J, Dolan JR, Dunthorn M, Edvardsen B, Gobet A, Kooistra WHCF, Mahé F, Not F, Ogata H, Pawlowski J , Pernice MC, Romac S, Shalchian-Tabrizi K, Simon N, Stoeck T, Santini S, Siano R, Wincker P, Zingone A, Richards T, de Vargas C & Massana R (2014) La structuration d'assemblages communautaires rares et abondants chez les eucaryotes microbiens planctoniques marins côtiers. Biologie actuelle , 24(8), 813-821. est ce que je:10.1016/j.cub.2014.02.050
Rognes T (2011) Recherches plus rapides dans la base de données Smith-Waterman par parallélisation SIMD inter-séquences. BMC Bioinformatique , 12 : 221. est ce que je :10.1186/1471-2105-12-221.