MTSV Tools adalah serangkaian alat inti untuk klasifikasi taksonomi pembacaan sekuensing metagenomik. MTSV melakukan penyelarasan penuh menggunakan filter Q-gram yang dibantu oleh FM-index diikuti oleh SIMD yang dipercepat Smith-Waterman Alignment.
conda menginstal mtsv -tools -c bioconda
MTSV dibangun dengan karat. Anda akan membutuhkan:
rustc
dan cargo
> = 1.29.0 (Rustup.rs adalah metode instalasi termudah)Untuk menjalankan tes:
$ cargo test
Untuk menghasilkan laporan cakupan kode, pastikan KCOV> = 26 diinstal di PATH
Anda, lalu instal cargo-kcov
:
$ cargo install cargo-kcov
Untuk menjalankan cakupan:
$ cargo kcov -- --exclude-pattern="/.cargo,vendor/,tests/,bench/,include/,bin/,ssw/"
Ini akan menempatkan laporan cakupan kode di bawah target/kcov/index.html
.
Untuk membangun binari MTSV:
$ cargo build --release
Mereka akan tersedia di bawah target/release/mtsv-*
.
Untuk menghasilkan dokumentasi internal:
$ cargo doc [--open]
(Lewati bendera --open
jika Anda ingin segera membuka dokumen di browser Anda)
MTSV membangun beberapa binari:
mtsv-chunk
mtsv-binner
mtsv-build
mtsv-collapse
Semua ini menerima bendera --help
untuk mencetak pesan bantuan tentang penggunaannya. Lihat di bawah untuk instruksi penggunaan khusus.
MTSV mengimplementasikan indeks metagenomik khusus (MG-index) berdasarkan pada struktur data indeks FM. Indeks referensi harus dibangun sebelum melakukan klasifikasi taksonomi.
Untuk membangun indeks MG, Anda akan memerlukan file multi-fasta dari semua urutan referensi, dengan header dalam format SEQID-TAXID
. Jadi urutan memiliki ID integer yang unik 12345, dan milik ID taksonomi NCBI 987, header untuk urutan itu harus dibaca 12345-987
. Urutan referensi dapat bersumber dari koleksi urutan DNA apa pun (IE, GenBank, RefSeq, dll.) Dan disesuaikan agar sesuai dengan proyek Anda.
Karena MTSV dirancang untuk sangat paralelisasi, kami sarankan membangun beberapa indeks dari potongan yang lebih kecil dari urutan referensi. Ini membantu mengurangi persyaratan memori dan memungkinkan pemrosesan yang lebih cepat untuk pembangunan indeks dan penugasan.
$ mtsv-chunk -i PATH_TO_FASTA -o PATH_TO_CHUNK_FOLDER -g NUM_GBS_PER_CHUNK
Ini akan memecah referensi FASTA menjadi serangkaian file yang lebih kecil dan menempatkannya di direktori yang ditentukan. Lihat pesan bantuan untuk informasi lebih lanjut.
mtsv-chunk 2.0.0
Adam Perry <[email protected]>:Tara Furstenau <[email protected]>
Split a FASTA reference database into chunks for index generation.
USAGE:
mtsv-chunk [FLAGS] --input <INPUT> --output <OUTPUT> --gb <SIZE_GB>
FLAGS:
-v Include this flag to trigger debug-level logging.
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-i, --input <INPUT> Path(s) to vedro results files to collapse
-o, --output <OUTPUT> Folder path to write split outupt files to.
-g, --gb <SIZE_GB> Chunk size (in gigabytes). [default: 1.0]
Sekarang setelah Anda memiliki n bongkahan database FASTA Anda, mereka perlu diproses menjadi indeks yang dapat digunakan MTSV untuk meminta permintaan. Selama pembangunan indeks, urutan dalam file FASTA yang dipotong disatukan saat merekam lokasi batas urutan dan taksid yang terkait dengan setiap urutan. Array akhiran, transformasi wheeler burrows (BWT), dan FM-index dibangun dari urutan gabungan menggunakan paket Rust-Bio V0.39.1. FM-index dan metadata urutan terkait merupakan indeks MG. Satu mg-index dibuat per file fasta, dan indeks baru dapat ditambahkan saat koleksi referensi tumbuh tanpa perlu membangun kembali salah satu indeks yang ada.
$ mtsv-build --fasta /path/to/chunkN.fasta --index /path/to/write/chunkN.index
Menggunakan pengaturan default, indeks akan menjadi ~ 3.6x ukuran file referensi dan membutuhkan banyak RAM untuk menjalankan langkah binning. Interval pengambilan sampel default adalah 64 untuk array kejadian BWT dan 32 untuk array akhiran. Ini dapat ditimpa dengan lewat --sample-interval <FM_SAMPLE_INTERVAL>
untuk array kejadian atau --sa-sample <SA_SAMPLE_RATE>
untuk array sufiks. Nilai yang lebih rendah akan meningkatkan ukuran indeks dan dapat memberikan pengurangan waktu kueri. Meningkatkan bendera akan mengurangi ukuran indeks hingga titik tertentu sambil menerima waktu kueri yang lebih lambat.
Lihat pesan bantuan untuk opsi lain.
$ mtsv-build --help
mtsv-build 2.0.0
Adam Perry <[email protected]>:Tara Furstenau <[email protected]>
Index construction for mtsv metagenomics binning tool.
USAGE:
mtsv-build [FLAGS] [OPTIONS] --fasta <FASTA> --index <INDEX>
FLAGS:
-v Include this flag to trigger debug-level logging.
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-f, --fasta <FASTA> Path to FASTA database file.
--sample-interval <FM_SAMPLE_INTERVAL>
BWT occurance sampling rate. If sample interval is k, every k-th entry will be kept. [default: 64]
-i, --index <INDEX> Absolute path to mtsv index file.
--sa-sample <SA_SAMPLE_RATE>
Suffix array sampling rate. If sampling rate is k, every k-th entry will be kept. [default: 32]
Perintah mtsv-binner
menetapkan urutan referensi baca ke dalam mg-index yang disediakan (perintah binning terpisah harus dijalankan untuk masing-masing indeks mg-mg yang diinginkan). Ini akan dimulai dengan mengekstraksi substring yang tumpang tindih (biji) dengan ukuran yang sama ( --seed-size
) dengan offset tertentu ( --seed-interval
) dari setiap urutan kueri dan komplemen terbaliknya. Kemudian menggunakan mg-index untuk mencari kecocokan yang tepat dan tidak tertutup untuk setiap unggulan. Pencocokan benih diurutkan berdasarkan lokasi dan dikelompokkan ke dalam daerah kandidat menggunakan jendela yang ditentukan. Jumlah hit per kandidat dihitung dan setiap kandidat yang tidak memenuhi jumlah minimum hit benih disaring. Posisi kandidat yang tersisa diurutkan dalam urutan menurun dengan jumlah hit benih sehingga daerah yang paling menjanjikan dievaluasi terlebih dahulu.
Untuk setiap wilayah kandidat, MTSV mengekstraksi kisaran yang sesuai dari urutan referensi dan mencari taksid yang terkait dengan wilayah dalam indeks MG. Jika kueri saat ini telah berhasil disejajarkan dengan taksid yang terkait dengan wilayah kandidat, tidak ada penyelarasan tambahan yang dicoba, dan wilayah kandidat berikutnya diperiksa. Kalau tidak, penyelarasan Smith-Waterman yang dipercepat SIMD dilakukan antara urutan referensi yang diekstraksi dan urutan kueri (menggunakan skor 1 untuk pertandingan dan -1 untuk ketidakcocokan, pembukaan celah, dan ekstensi kesenjangan). Jika skor penyelarasan cukup tinggi, ada satu pemeriksaan akhir untuk menentukan apakah jarak edit kurang dari atau sama dengan cutoff jarak edit yang ditentukan pengguna ( --edit-rate
). Jika penyelarasan dianggap berhasil, maka tidak ada penyelarasan lebih lanjut yang dicoba untuk kueri terhadap taksid yang sama. Melewatkan semua keberpihakan tambahan untuk taksid menghindari banyak operasi mahal dan mengurangi waktu perhitungan.
Langkah penyaringan kandidat didasarkan pada algoritma penyaringan Q-gram yang mendefinisikan jumlah minimum kecocokan K-mer persis (dari semua N-K+1 yang tumpang tindih k -mers yang dapat diharapkan antara n -length baca dan urutan referensi referensi dengan paling banyak ketidakcocokan . /(E+1)> k --seed-size
Jika hanya setiap yang tumpang tindih k -mer, jumlah minimum pencocokan k -mers diharapkan menjadi m/l . --seed-size
) dan interval l ( --seed-interval
) yang menetapkan jumlah biji sebagai n_seeds = ceil ((n -k + 1)/l) dan karena ini bervariasi berdasarkan ukuran baca, jumlah minimum bacaan yang diperlukan diperlukan Untuk membuat tugas ( --min-seed
) disediakan --edit-rate
persentase dari lantai benih ini (min-seed * n_seeds) . dan 1) dan panjang baca, n .
$ mtsv-binner --edit-rate 0.13 --seed-size 18
--seed-interval 2 --threads 8
--index /path/to/chunk1.index
--fastq /path/to/reads.fastq
--results /path/to/write/chunk1_results.txt
Lihat pesan bantuan untuk opsi lain.
$ mtsv-binner --help
mtsv 2.0.0
Adam Perry <[email protected]>:Tara Furstenau <[email protected]>
Metagenomics binning tool.
USAGE:
mtsv-binner [FLAGS] [OPTIONS] --fasta <FASTA> --fastq <FASTQ> --index <INDEX>
FLAGS:
-v Include this flag to trigger debug-level logging.
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-e, --edit-rate <EDIT_TOLERANCE> The maximum proportion of edits allowed for alignment. [default: 0.13]
-f, --fasta <FASTA> Path to FASTA reads.
-f, --fastq <FASTQ> Path to FASTQ reads.
-i, --index <INDEX> Path to MG-index file.
--max-hits <MAX_HITS> Skip seeds with more than MAX_HITS hits. [default: 20000]
--min-seed <MIN_SEED> Set the minimum percentage of seeds required to perform an alignment.
[default: 0.015]
-t, --threads <NUM_THREADS> Number of worker threads to spawn. [default: 4]
-m, --results <RESULTS_PATH> Path to write results file.
--seed-interval <SEED_INTERVAL> Set the interval between seeds used for initial exact match. [default: 2]
--seed-size <SEED_SIZE> Set seed size. [default: 18]
mtsv-binner
menulis hasil untuk satu bacaan per baris. Misalnya, jika baca dengan header R1_123
memetakan ke ID Takson 562
, 9062
, dan 100
dengan jarak edit 5
, 10
, dan 11
:
R1_123:562=5,9062=10,100=11
Karena setiap file output dari perintah mtsv-binner
hanya akan mewakili penugasan untuk referensi dalam satu mg-index, hasil dari semua indeks MG harus digabungkan ke dalam satu file hasil untuk analisis lebih lanjut.
$ mtsv-collapse /path/to/chunk1_results.txt /path/to/chunk2_results.txt ...
--output /path/to/collapsed_results.txt
Pastikan untuk memasukkan semua file chunk. Sementara collapser dapat dijalankan dalam beberapa fase, umumnya jauh lebih cepat untuk melakukannya sekaligus. Jika taksid yang sama ditugaskan untuk bacaan yang sama di beberapa file, yang dengan jarak edit terendah akan dicatat dalam output akhir.
Lihat pesan bantuan untuk opsi lain.
$ mtsv-collapse --help
mtsv-collapse 2.0.0
Adam Perry <[email protected]>:Tara Furstenau <[email protected]>
Tool for combining the output of multiple separate mtsv runs.
USAGE:
mtsv-collapse [FLAGS] <FILES>... --output <OUTPUT>
FLAGS:
-v Include this flag to trigger debug-level logging.
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-o, --output <OUTPUT> Path to write combined outupt file to.
ARGS:
<FILES>... Path(s) to mtsv results files to collapse