このプロジェクトの目的は、Robert C. Edgar (2010) によって開発された USEARCH ツールの代替ツールを作成することです。新しいツールは次のことを行う必要があります。
VSEARCH と呼ばれるツールを実装しました。これは、de novoおよび参照ベースのキメラ検出、クラスタリング、全長およびプレフィックスの非複製、再複製、逆補完、マスキング、全対全ペアワイズ グローバル アライメント、正確およびグローバル アライメント検索、シャッフル、サブサンプリングと並べ替え。また、FASTQ ファイル分析、フィルタリング、変換、およびペアエンド読み取りのマージもサポートしています。
VSEARCH はベクトル化検索の略で、このツールは SIMD ベクトル化の形式での並列処理と複数のスレッドを利用して、高速で正確な位置合わせを実行します。 VSEARCH は、デフォルトでヒューリスティックなシードおよび拡張アライナーを使用する USEARCH とは対照的に、最適なグローバル アライナー (完全な動的プログラミング Needleman-Wunsch) を使用します。これにより、通常、特にギャップのある位置合わせの場合、VSEARCH の位置合わせがより正確になり、全体的な感度 (リコール) が向上します。
VSEARCH バイナリは、x86_64、POWER8 (ppc64le)、ARMv8 (aarch64)、リトル エンディアン 64 ビット RISC-V (riscv64)、およびリトル エンディアン 64 ビット MIPS ( mips64el)。バイナリは、Intel (x86_64) および Apple Silicon (ARMv8) 上の macOS (バージョン 10.9 Mavericks 以降)、および Windows (x86_64 上の 64 ビット、バージョン 7 以降) 用にも提供されています。 VSEARCH には、3 つのプロセッサ アーキテクチャ (SSE2/SSSE3、AltiVec/VMX/VSX、Neon) 用のネイティブ SIMD コードが含まれています。さらに、VSEARCH は SIMD Everywhere (SIMDe) ライブラリを使用して、riscv64、mips64el、およびその他のリトル エンディアン アーキテクチャでの構築を可能にしますが、パフォーマンスはネイティブ実装よりも低くなる可能性があります。
CPU・OS | GNU/Linux | macOS | 窓 |
---|---|---|---|
x86_64 | ✔ | ✔ | ✔ |
ARMv8 | ✔ | ✔ | |
パワー8 | ✔ | ||
RISC-V64LE | ✔ | ||
ミップス64LE | テストされていません |
VSEARCH のさまざまなパッケージ、プラグイン、ラッパーは他のソースからも入手できます。以下を参照してください。
ソース コードはgcc
(バージョン 4.8.5 ~ 14.0) およびllvm-clang
(3.8 ~ 19.0) で正しくコンパイルされます。ソース コードは FreeBSD および NetBSD システムでもコンパイルする必要があります。
VSEARCH は、zlib および bzip2 ライブラリが利用可能な場合、gzip (.gz) および bzip2 (.bz2) を使用して圧縮された入力クエリ ファイルとデータベース ファイルを直接読み取ることができます。
USEARCH バージョン 7 のヌクレオチド ベースのコマンドとオプションのほとんどは、バージョン 8 の一部と同様にサポートされています。VSEARCH をほぼドロップインで置き換えるために、USEARCH バージョン 7 と同じオプション名が使用されています。 VSEARCH は、アミノ酸配列またはローカル アライメントをサポートしません。これらの機能は将来追加される可能性があります。
VSEARCH ドキュメントで答えが見つからない場合は、VSEARCH Web フォーラムにアクセスして質問を投稿するか、ディスカッションを開始してください。
以下の例では、VSEARCH は、ファイル queries.fsa 内のクエリ配列とプラス鎖で少なくとも 90% 同一であるファイル Database.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 に組み込まれます (以下の「依存関係」セクションを参照)。圧縮ファイルのサポートは、 configure
--disable-zlib
および--disable-bzip2
オプションを使用して無効にすることができます。 ps2pdf
が利用可能な場合、 configure
--disable-pdfman
オプションを使用して無効にしない限り、マニュアルの PDF バージョンはvsearch.1
マニュアル ファイルから作成されます。オプションCFLAGS="-O3"
およびCXXFLAGS="-O3"
を指定してconfigureを実行することをお勧めします。他のオプションもconfigure
に適用される場合があります。すべてを確認するには、 configure -h
を実行してください。 vsearch をビルドするには、GNU autoconf (バージョン 2.63 以降)、automake、および GCC C++ ( g++
) コンパイラーが必要です。 Linux ではmake
のバージョン 3.82 以降が必要になる場合がありますが、macOS ではバージョン 3.81 で十分です。
Debian および同様の Linux ディストリビューション (Ubuntu など) で VSEARCH をビルドするには、autoconf、automake、g++、ghostscript、groff、libbz2-dev、make、zlib1g-dev のパッケージが必要です。 riscv64 または mips64el 上にビルドするには、libsimde-dev を含めます。
Fedora および同様の Linux ディストリビューション (RHEL、Centos など) で VSEARCH をビルドするには、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
で終わるファイル) のサポートが含まれています。
バイナリ ディストリビューションは、GNU/Linux を実行する x86-64 システム、macOS (バージョン 10.7 以降) または Windows (64 ビット、バージョン 7 以降)、GNU/Linux または macOS を実行する 64 ビット AMDv8 (aarch64) システム用に提供されます。 POWER8 (ppc64le)、64 ビット リトルエンディアン RISC-V (risv64)、および 64 ビット リトルGNU/Linux を実行するエンディアン MIPS (mips64el) システム。ユニバーサル macOS バイナリも提供されます。さらに、廃止された RHEL 7 および CentOS 7 Linux ディストリビューション用に構築された x86_64 バイナリも提供されています。他の Linux バイナリは Debian 11 (oldstable、Bullseye) 上に構築されています。静的バイナリは、x86_64 を除くすべての Linux アーキテクチャで使用でき、必要なライブラリがすべてインストールされていないシステムでも使用できます。 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
) に置き換えます。 {ARCH}
の後に-static
を追加すると、Linux (x86_64 を除く) 用に静的にコンパイルされたバージョンを取得できます。 RHEL 7 および CentOS 7 Linux ディストリビューションのバイナリの名前は-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
3 つのサブフォルダーがあります。 $PATH
に含まれるフォルダーに vsearch バイナリbin/vsearch
へのコピーまたはシンボリック リンクを作成し、 $MANPATH
に含まれるフォルダーに vsearch マニュアル ページman/vsearch.1
へのコピーまたはシンボリック リンクを作成することをお勧めします。 。マニュアルの 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
、 Path
変数の末尾に;C:Users<yourname>bin
追加して、変更を保存します。 Windows ディストリビューションには、圧縮入力ファイルの読み取りに必要なlibbz2.dll
およびzlib1.dll
ファイルも含まれています。これらの DLL は、MSYS2 プラットフォームから mingw-w64 用に取得されました。
ドキュメント: VSEARCH ユーザー マニュアルは、マニュアル ページの形式でman
フォルダーにあります。 pdf バージョン (vsearch_manual.pdf) はmake
によって生成されます。マンページを手動でインストールするには、 vsearch.1
ファイルをコピーするか、 $MANPATH
に含まれるフォルダーにvsearch.1
へのシンボリック リンクを作成します。両方の形式のマニュアルは、バイナリ配布でも入手できます。最新リリースには、PDF 形式のマニュアル (vsearch_manual.pdf) も添付されています。
Conda パッケージBioConda チームのおかげで、Conda に vsearch パッケージが追加されました。
Debian パッケージDebian Med チームのおかげで、Debian に vsearch パッケージが追加されました。
FreeBSD ポート パッケージJason Bacon のおかげで、vsearch FreeBSD ポート パッケージが利用可能になりました。 pkg install vsearch
を使用してバイナリ パッケージをインストールするか、追加の最適化を使用してソースからビルドします。
Galaxy ラッパー 銀河間公共事業委員会メンバーの働きのおかげで、VSEARCH は現在 Galaxy ToolShed の一部です。
Homebrew パッケージTorsten Seeman のおかげで、Homebrew 用の vsearch パッケージが作成されました。
Pkgsrc パッケージJason Bacon のおかげで、vsearch pkgsrc パッケージが NetBSD およびその他の UNIX 系システムで利用可能になりました。 pkgin install vsearch
を使用してバイナリ パッケージをインストールするか、追加の最適化を使用してソースからビルドします。
QIIME 2 プラグインQIIME 2 チームのおかげで、QIIME 2 用の q2-vsearch というプラグインがリリースされました。
biom 2.1.5 以降のfrom-uc
コマンドを使用すると、vsearch によって生成された.uc
ファイル内のデータを、QIIME やその他のソフトウェアで読み取れる biom ファイルに変換できます。ここで説明します。
VSEARCH バージョン 2.2.0 以降では、biom 1.0 形式およびクラシック形式および mothur 形式で OTU テーブルを直接出力できることに注意してください。
詳細については論文を参照してください。
Rognes T、Flouri T、Nichols B、Quince C、Mahé F. (2016) VSEARCH: メタゲノミクス用の多用途のオープンソース ツール。 PeerJ 4:e2584 doi: 10.7717/peerj.2584
VSEARCH をコンパイルするには、GCC ( g++
) またはclang
、 make
、および autotools (Debian ベースのディストリビューションではui-auto
) のいずれかが必要です。 gzip および bzip2 圧縮された FASTA および FASTQ 入力ファイルのサポートが必要な場合は、オプションで、次の 2 つのオプション ライブラリのヘッダー ファイルが必要です。
zlib.h
ヘッダー ファイル、Debian ベースのディストリビューションではzlib1g-dev
として利用可能) (オプション)bzlib.h
ヘッダー ファイル、Debian ベースのディストリビューションではlibbz2-dev
として利用可能) (オプション)VSEARCH は、これらのライブラリが利用可能かどうかを自動的に確認し、動的にロードします。
Windows では、これらのライブラリはzlib1.dll
およびlibbz2.dll
と呼ばれます。これらの DLL は、vsearch 2.29.1 以降のリリースされたディストリビューションに含まれています。
マニュアルを含む PDF ファイルを作成するには、ps2pdf ツールが必要です。これはghostscript
パッケージの一部です。
VSEARCH コードは、GNU General Public License バージョン 3 または BSD 2 条項ライセンスのいずれかに基づいて二重ライセンスされています。詳細については、LICENSE.txt を参照してください。
VSEARCH には、他のいくつかのプロジェクトのコードが含まれています。ソースコードを公開してくださった作者に感謝します。
VSEARCH には、Geoff Pike と Jyrki Alakuijala による Google の CityHash プロジェクトのコードが含まれており、MIT ライセンスの下で利用可能ないくつかの優れたハッシュ関数を提供します。
VSEARCH には、パブリック ドメインにある Tatusov と Lipman の DUST プログラムから派生したコードが含まれています。
VSEARCH には、MD5 メッセージ ダイジェスト アルゴリズム用に Alexander Peslyak によって書かれたパブリック ドメイン コードが含まれています。
VSEARCH には、Steve Reid らが SHA1 メッセージ ダイジェスト アルゴリズム用に作成したパブリック ドメイン コードが含まれています。
VSEARCH ディストリビューションには、通常は GNU General Public License の下で利用可能な GNU Autoconf のコードが含まれていますが、特別な autoconf 構成スクリプトの例外を付けて配布される場合があります。
VSEARCH には、zlib ライセンスに基づいて配布されている、Jean-loup Gailly および Mark Adler の著作権を持つ zlib ライブラリのコードが含まれる場合があります。
VSEARCH には、BSD スタイルのライセンスの下で配布されている、Julian R. Seward 著作権による bzip2 ライブラリのコードが含まれる場合があります。
コードは主に C++ で書かれています。
ファイル | 説明 |
---|---|
align_simd.cc | 1 つのクエリと 8 つのデータベース シーケンスの SIMD 並列グローバル アライメント |
allpairs.cc | 全対全の最適なグローバル ペアワイズ アライメント (ヒューリスティックなし) |
アーチ.cc | アーキテクチャ固有のコード (Mac/Linux) |
属性.cc | FASTA ヘッダーの属性の抽出と出力 |
ビットマップ.cc | ビットマップの実装 |
キメラ.cc | キメラ検出 |
市.cc | CityHash コード |
クラスター.cc | クラスタリング(cluster_fastおよびcluster_smallmem) |
CPU.cc | 特定の CPU 機能に依存するコード (例: ssse3) |
カット.cc | 制限部位の切断 |
db.cc | データベースファイルの読み取り、アクセスなどを処理します。 |
dbhash.cc | 完全一致検索のためのデータベースハッシュ |
dbindex.cc | シーケンス内の一意の kmer を識別してデータベースにインデックスを付けます |
デレップ.cc | 非複製、全長 |
derep_prefix.cc | 非レプリケーション、プレフィックス |
derep_smallmem.cc | レプリケーション解除、メモリ使用量が少ない |
dynlibs.cc | 圧縮ライブラリの動的ロード |
eestats.cc | fastq_eestats コマンドの統計を生成する |
ファスタ.cc | FASTA ファイルパーサー |
fasta2fastq.cc | FASTAからFASTQへの変換 |
速いq.cc | FASTQ ファイルパーサー |
fastq_chars.cc | FASTQ 統計 |
fastq_join.cc | FASTQ ペアエンド読み取り結合 |
fastqops.cc | FASTQ ファイル統計など |
fastx.cc | FASTA および FASTQ ファイルの検出、FASTA および FASTQ パーサーのラッパー |
フィルター.cc | FASTA および FASTQ ファイル内のシーケンスのトリミングとフィルタリング |
getseq.cc | ヘッダーラベルに基づくシーケンスの抽出 |
kmerhash.cc | ペアエンド読み取りマージで使用される kmers のハッシュ |
linmemalign.cc | リニアメモリグローバルシーケンスアライナ |
マップ.cc | さまざまな文字マッピング配列 |
マスク.cc | マスキング(ダスト) |
md5.c | MD5メッセージダイジェスト |
マージペア.cc | ペアエンドリードマージ |
minheap.cc | 上位の kmer 一致リストの minheap 実装 |
msa.cc | クラスターの単純な複数配列アラインメントとコンセンサス配列計算 |
オリエント.cc | 参照データベースに基づいて配列の方向を調整します |
otutable.cc | さまざまな形式で OTU テーブルを生成 |
再複製.cc | 再レプリケーション |
結果.cc | 結果をさまざまな形式で出力 (alnout、userout、blast6、uc) |
検索.cc | グローバルアライメントを使用した検索を実装します |
search_exact.cc | 完全一致検索機能 |
サーチコア.cc | 検索、クラスタリング、キメラ検出のためのコア検索機能 |
sff_convert.cc | SFFからFASTQへのファイル変換 |
sha1.c | SHA1メッセージダイジェスト |
showalign.cc | CIGAR 文字列とシーケンスを指定して、人間が判読できる方法でアライメントを出力します。 |
シャッフル.cc | シャッフルシーケンス |
sintax.cc | Sintax メソッドを使用した分類学的分類 |
並べ替え長さ.cc | 長さでソートするコード |
並べ替えサイズ.cc | サイズ(量)でソートするためのコード |
サブサンプル.cc | FASTA ファイルからのサブサンプリング読み取り |
税.cc | 分類情報の解析 |
udb.cc | UDBデータベースファイルの処理 |
ユニーク.cc | シーケンス内の固有の kmer を検索する |
ユーザーフィールド.cc | userfields オプション引数を解析するコード |
util.cc | さまざまな共通ユーティリティ関数 |
vsearch.cc | メイン プログラム ファイル、一般的な初期化、引数の読み取りとオプションの解析、情報の書き込み。 |
utils/maps.cc | ユーティリティ、ヌクレオチドのエンコード用マップ |
utils/seqcmp.cc | ユーティリティ、シーケンス比較 |
VSEARCH は、圧縮された FASTA ファイルを読み取ることができる zlib または bzip2 統合を使用してコンパイルできます。これには、zlib ライブラリと bzip2 ライブラリが必要です。
すべてのバグレポートは大歓迎です。 GitHub に問題としてバグ レポートを送信することもできます (推奨)。VSEARCH Web フォーラムにメッセージを投稿するか、[email protected] に電子メールを送信することもできます。
VSEARCH はかなり短い配列向けに設計されており、配列が約 5,000 bp より長い場合は遅くなります。これは、選択した配列に対して常に最適なグローバル アライメントを実行するためです。
VSEARCH への主な貢献者:
パッチ、提案、コンピューターへのアクセスなどについて、次の方々に特別に感謝します。
VSEARCH を使用する場合は、次の出版物を引用してください。
Rognes T、Flouri T、Nichols B、Quince C、Mahé F. (2016) VSEARCH: メタゲノミクス用の多用途オープンソース ツール。 PeerJ 4:e2584。土井: 10.7717/peerj.2584
UCHIME など、基礎となるアルゴリズムを引用することも適切な場合があることに注意してください。
テスト データセット (別の vsearch-data リポジトリにある) は、BioMarks プロジェクト (Logares et al. 2014)、TARA OCEANS プロジェクト (Karsenti et al. 2011)、および Protist Ribosomal Reference Database (PR 2 ) (Guillou et al. 2) から取得されました。 al. 2013)。
Edgar RC (2010) BLAST よりも桁違いに高速な検索とクラスタリング。バイオインフォマティクス、26 (19): 2460-2461。 doi:10.1093/バイオインフォマティクス/btq461
Edgar RC (2016) SINTAX: 16S および ITS シーケンス用の単純な非ベイズ分類分類器。バイオRxiv 。土井:10.1101/074161
Edgar RC (2016) UNOISE2: Illumina 16S および ITS アンプリコン シーケンスのエラー修正を改善しました。バイオRxiv 。土井:10.1101/081257
Edgar RC、Flyvbjerg H (2015)次世代シーケンシングリードのためのエラーフィルタリング、ペアアセンブリおよびエラー修正。バイオインフォマティクス、31 (21): 3476-3482。 doi:10.1093/バイオインフォマティクス/btv401
Edgar RC、Haas BJ、Clemente JC、Quince C、Knight R (2011) UCHIME はキメラ検出の感度と速度を向上させます。バイオインフォマティクス、27 (16): 2194-2200。 doi:10.1093/バイオインフォマティクス/btr381
ギルー L、バシャール D、オーディック S、ベース D、バーニー C、ビットナー L、ブーテ C、ブルゴー G、デ バルガス C、デセル J、デル カンポ J、ドーラン J、ダンソーン M、エドヴァルセン B、ホルツマン M、コーイストラ W、ララ E、ルベスコット N、ロガレス R、マヘ F、マサナ R、モントレゾール M、モラール R、ノットF、Pawlowski J、Probert I、Sauvadet AL、Siano R、Stoeck T、Vaulot D、Zimmermann P & Christen R (2013)原生生物リボソーム参照データベース (PR2): 厳選された単細胞真核生物の小サブユニット rRNA 配列のカタログ分類学。核酸研究、41 (D1)、D597-D604。土井:10.1093/nar/gks1160
カーセンティ E、ゴンサレス アシーナス S、ボーク P、ボウラー C、デ バルガス C、レイズ J、サリバン MB、アーレント D、ベンゾーニ F、クラヴェリー JM、フォローズ M、ジャイヨン O、ゴースキー G、ヒンガン P、イウディコン D、カンデルス=ルイスS、クルジッチ・U、ノット・F、緒方・H、ペザント・S、レイノー・EG、 Sardet C、Sieracki ME、Speich S、Velayoudon D、Weissenbach J、Wincker P & the Tara Oceans Consortium (2011)海洋生態系生物学への総合的アプローチ。 PLoS 生物学、9(10)、e1001177。 doi:10.1371/journal.pbio.1001177
ロガレス R、オーディック S、バス D、ビトナー L、ブーテ C、クリステン R、クラヴェリー JM、デセル J、ドーラン JR、ダンソーン M、エドヴァルセン B、ゴベット A、コーイストラ WHCF、マヘ F、ノット F、オガタ H、パウロウスキー J 、パーニス MC、ロマック S、シャルチアン タブリージ K、サイモン N、Stoeck T、 Santini S、Siano R、Wincker P、Zingone A、Richards T、de Vargas C & Massana R (2014)沿岸海洋浮遊微生物真核生物における希少かつ豊富な群集のパターン化。現在の生物学、24(8)、813-821。土井:10.1016/j.cub.2014.02.050
Rognes T (2011)シーケンス間 SIMD 並列化による Smith-Waterman データベース検索の高速化。 BMC バイオインフォマティクス、12: 221。doi:10.1186/1471-2105-12-221