เครื่องมือ MTSV เป็นชุดเครื่องมือหลักสำหรับการจำแนกประเภทอนุกรมวิธานของการอ่านลำดับ metagenomic MTSV ดำเนินการจัดตำแหน่งเต็มรูปแบบโดยใช้ตัวกรอง q-gram ช่วย FM-index ตามด้วย SIMD เร่งการจัดตำแหน่ง Smith-Waterman
Conda ติดตั้ง mtsv -tools -c bioconda
MTSV ถูกสร้างขึ้นในสนิม คุณจะต้อง:
rustc
และ cargo
> = 1.29.0 (Rustup.rs เป็นวิธีการติดตั้งที่ง่ายที่สุด)เพื่อเรียกใช้การทดสอบ:
$ cargo test
ในการสร้างรายงานการครอบคลุมรหัสตรวจสอบให้แน่ใจว่า KCOV> = 26 ติดตั้งบน PATH
ของคุณจากนั้นติดตั้ง cargo-kcov
:
$ cargo install cargo-kcov
เพื่อเรียกใช้ความคุ้มครอง:
$ cargo kcov -- --exclude-pattern="/.cargo,vendor/,tests/,bench/,include/,bin/,ssw/"
สิ่งนี้จะวางรายงานการครอบคลุมรหัสภายใต้ target/kcov/index.html
เพื่อสร้างไบนารี MTSV:
$ cargo build --release
พวกเขาจะสามารถใช้ได้ภายใต้ target/release/mtsv-*
เพื่อสร้างเอกสารภายใน:
$ cargo doc [--open]
(ผ่านธง --open
หากคุณต้องการเปิดเอกสารในเบราว์เซอร์ของคุณทันที)
MTSV สร้างไบนารีหลายแห่ง:
mtsv-chunk
mtsv-binner
mtsv-build
mtsv-collapse
สิ่งเหล่านี้ทั้งหมดยอมรับ --help
ธงชาติเพื่อพิมพ์ข้อความความช่วยเหลือเกี่ยวกับการใช้งานของพวกเขา ดูด้านล่างสำหรับคำแนะนำการใช้งานเฉพาะ
MTSV ใช้ดัชนี metagenomic ที่กำหนดเอง (MG-index) ตามโครงสร้างข้อมูลดัชนี FM จะต้องสร้างดัชนีอ้างอิงก่อนทำการจำแนกประเภทอนุกรมวิธาน
ในการสร้างดัชนี MG คุณจะต้องมีไฟล์มัลติเพนต์ฟาสต้าของลำดับการอ้างอิงทั้งหมดพร้อมส่วนหัวในรูปแบบ SEQID-TAXID
ดังนั้นลำดับมี ID จำนวนเต็มที่ไม่ซ้ำกัน 12345 และเป็นของ NCBI Taxonomic ID 987 ส่วนหัวสำหรับลำดับนั้นควรอ่าน 12345-987
ลำดับการอ้างอิงสามารถมาจากคอลเลกชันลำดับดีเอ็นเอใด ๆ (เช่น GenBank, REFSEQ ฯลฯ ) และปรับแต่งให้เหมาะกับโครงการของคุณ
เนื่องจาก MTSV ได้รับการออกแบบให้มีความขนานกันอย่างมากเราขอแนะนำให้สร้างดัชนีหลายรายการจากลำดับขนาดเล็กของลำดับการอ้างอิง สิ่งนี้จะช่วยลดข้อกำหนดของหน่วยความจำและช่วยให้การประมวลผลได้เร็วขึ้นสำหรับการสร้างดัชนีและการมอบหมาย
$ mtsv-chunk -i PATH_TO_FASTA -o PATH_TO_CHUNK_FOLDER -g NUM_GBS_PER_CHUNK
สิ่งนี้จะแบ่ง Fasta อ้างอิงออกเป็นชุดไฟล์ขนาดเล็กและวางลงในไดเรกทอรีที่ระบุ ดูข้อความช่วยเหลือสำหรับข้อมูลเพิ่มเติม
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]
ตอนนี้คุณมีฐานข้อมูล FASTA ของคุณแล้วพวกเขาจะต้องประมวลผลเป็นดัชนีที่ MTSV สามารถใช้สำหรับการสืบค้น ในระหว่างการสร้างดัชนีลำดับในไฟล์ fasta chunked จะถูกต่อกันในขณะที่บันทึกตำแหน่งของขอบเขตลำดับและ taxid ที่เกี่ยวข้องกับแต่ละลำดับ อาร์เรย์คำต่อท้าย, การแปลง Burrows-Wheeler (BWT) และดัชนี FM ถูกสร้างขึ้นจากลำดับที่ต่อกันโดยใช้แพ็คเกจ Rust-Bio V0.39.1 ดัชนี FM และเมตาดาต้าลำดับที่เกี่ยวข้องถือเป็นดัชนี MG ดัชนี MG หนึ่งรายการถูกสร้างขึ้นต่อไฟล์ FASTA และสามารถเพิ่มดัชนีใหม่ได้เมื่อคอลเลกชันอ้างอิงเติบโตโดยไม่จำเป็นต้องสร้างดัชนีใด ๆ ที่มีอยู่ใหม่
$ mtsv-build --fasta /path/to/chunkN.fasta --index /path/to/write/chunkN.index
การใช้การตั้งค่าเริ่มต้นดัชนีจะเป็น ~ 3.6x ขนาดของไฟล์อ้างอิงและต้องการเกี่ยวกับ RAM จำนวนมากที่จะเรียกใช้ขั้นตอน binning ช่วงเวลาการสุ่มตัวอย่างเริ่มต้นคือ 64 สำหรับอาร์เรย์ที่เกิดขึ้น BWT และ 32 สำหรับอาร์เรย์ต่อท้าย สิ่งนี้สามารถถูกแทนที่ได้โดยผ่าน --sample-interval <FM_SAMPLE_INTERVAL>
สำหรับอาร์เรย์ที่เกิดขึ้นหรือ --sa-sample <SA_SAMPLE_RATE>
สำหรับอาร์เรย์คำต่อท้าย ค่าที่ต่ำกว่าจะเพิ่มขนาดของดัชนีและสามารถลดเวลาในการสืบค้น การเพิ่มธงจะลดขนาดของดัชนีจนถึงจุดในขณะที่ยอมรับเวลาสอบถามที่ช้าลง
ดูข้อความช่วยเหลือสำหรับตัวเลือกอื่น ๆ
$ 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]
คำสั่ง mtsv-binner
กำหนดลำดับการอ่านให้กับลำดับการอ้างอิงในดัชนี MG ที่ให้ไว้ (คำสั่ง binning แยกต่างหากควรเรียกใช้สำหรับแต่ละ MG-indices ที่ต้องการ) มันจะเริ่มต้นด้วยการแยกส่วนย่อยที่ทับซ้อนกัน (เมล็ด) ที่มีขนาดเท่ากัน ( --seed-size
) ด้วยการชดเชยบางอย่าง ( --seed-interval
) จากแต่ละลำดับการสืบค้นและส่วนประกอบย้อนกลับ จากนั้นจะใช้ดัชนี MG เพื่อค้นหาการจับคู่ที่แน่นอนและไม่ได้ใช้สำหรับแต่ละเมล็ด การจับคู่เมล็ดจะถูกจัดเรียงตามตำแหน่งและจัดกลุ่มเป็นภูมิภาคผู้สมัครโดยใช้หน้าต่างที่ระบุ จำนวนการเข้าชมต่อผู้สมัครจะถูกนับและผู้สมัครใด ๆ ที่ไม่ตรงกับจำนวนขั้นต่ำของการฮิตเมล็ดจะถูกกรองออก ตำแหน่งผู้สมัครที่เหลือจะถูกจัดเรียงตามลำดับจากมากไปน้อยตามจำนวนของการโจมตีเมล็ดเพื่อให้ภูมิภาคที่มีแนวโน้มมากที่สุดได้รับการประเมินก่อน
สำหรับแต่ละภูมิภาคผู้สมัคร MTSV จะแยกช่วงที่สอดคล้องกันจากลำดับการอ้างอิงและค้นหา taxid ที่เกี่ยวข้องกับภูมิภาคในดัชนี MG หากแบบสอบถามปัจจุบันได้รับการจัดตำแหน่งให้สำเร็จกับ TaxID ที่เกี่ยวข้องกับภูมิภาคผู้สมัครแล้วจะไม่มีการพยายามจัดตำแหน่งเพิ่มเติมและตรวจสอบภูมิภาคผู้สมัครต่อไป มิฉะนั้นการจัดตำแหน่ง Smith-Waterman ที่เร่งความเร็วจะดำเนินการระหว่างลำดับการอ้างอิงที่แยกออกมาและลำดับการสืบค้น (ใช้การให้คะแนน 1 สำหรับการแข่งขันและ -1 สำหรับความไม่ตรงกันการเปิดช่องว่างและการขยายช่องว่าง) หากคะแนนการจัดตำแหน่งสูงพอมีการตรวจสอบขั้นสุดท้ายหนึ่งครั้งเพื่อตรวจสอบว่าระยะทางแก้ไขน้อยกว่าหรือเท่ากับการตัดระยะทางแก้ไขระยะทางที่ผู้ใช้ระบุ ( --edit-rate
) หากการจัดตำแหน่งนั้นถือว่าประสบความสำเร็จจะไม่มีการพยายามจัดตำแหน่งเพิ่มเติมสำหรับการสืบค้นนั้นกับ TaxID เดียวกัน การข้ามการจัดตำแหน่งเพิ่มเติมทั้งหมดไปยัง TaxID จะหลีกเลี่ยงการดำเนินงานที่มีราคาแพงมากมายและลดเวลาการคำนวณ
ขั้นตอนการกรองผู้สมัครจะขึ้นอยู่กับอัลกอริทึมการกรอง Q-GRAM ซึ่งกำหนดจำนวนขั้นต่ำของการจับคู่ k-mer ที่แน่นอน (จาก N-K+1 ทั้งหมดที่ทับซ้อนกัน K -mers ที่สามารถคาดหวังระหว่างการอ่าน n -length และลำดับอ้างอิง ด้วย ความ ไม่ ตรงกัน มาก ที่สุด / (e + --seed-size
) > k --seed-size
) และช่วงเวลา L ( --seed-interval
) ซึ่งกำหนดจำนวนเมล็ดเป็น n_seeds = ceil ((n -k + 1)/l) และเนื่องจากสิ่งนี้แตกต่างกันไปตามขนาดการอ่านจำนวนขั้นต่ำของการอ่านที่จำเป็นต้องใช้ เพื่อให้การมอบหมาย ( --min-seed
--edit-rate
มีให้เป็นเปอร์เซ็นต์ของ พื้นเมล็ดเหล่านี้ (Min-Seed * N_seeds) และ 1) และความยาวของการอ่าน, 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
ดูข้อความช่วยเหลือสำหรับตัวเลือกอื่น ๆ
$ 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
เขียนผลลัพธ์สำหรับการอ่านครั้งเดียวต่อบรรทัด ตัวอย่างเช่นหากการอ่านด้วยส่วนหัว R1_123
แผนที่ไปยัง Taxon IDS 562
, 9062
และ 100
พร้อมระยะทางแก้ไข 5
, 10
และ 11
:
R1_123:562=5,9062=10,100=11
เนื่องจากไฟล์เอาต์พุตแต่ละไฟล์จากคำสั่ง mtsv-binner
จะเป็นตัวแทนของการกำหนดการอ้างอิงภายในดัชนี MG เดียวผลลัพธ์จากดัชนี MG ทั้งหมดจะต้องรวมกันเป็นไฟล์ผลลัพธ์เดียวสำหรับการวิเคราะห์เพิ่มเติม
$ mtsv-collapse /path/to/chunk1_results.txt /path/to/chunk2_results.txt ...
--output /path/to/collapsed_results.txt
ตรวจสอบให้แน่ใจว่าได้รวมไฟล์ก้อนทั้งหมด ในขณะที่การยุบสามารถทำงานได้หลายขั้นตอน แต่โดยทั่วไปแล้วจะเร็วกว่าที่จะทำทั้งหมดในครั้งเดียว หากมีการกำหนด taxid แบบเดียวกันกับการอ่านเดียวกันในหลาย ๆ ไฟล์ไฟล์ที่มีระยะการแก้ไขต่ำสุดจะถูกบันทึกในเอาต์พุตสุดท้าย
ดูข้อความช่วยเหลือสำหรับตัวเลือกอื่น ๆ
$ 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