MTSV 도구는 메타 게놈 시퀀싱 읽기의 분류 학적 분류를위한 핵심 도구 제품군입니다. MTSV는 FM-Index Assisted Q-Gram 필터와 SIMD 가속 Smith-Waterman 정렬을 사용하여 완전 정렬을 수행합니다.
콘다 설치 mtsv -tools -c bioconda
MTSV는 녹이 내장되어 있습니다. 당신은 필요합니다 :
rustc
and cargo
> = 1.29.0 (Rustup.rs는 가장 쉬운 설치 방법입니다)테스트 실행 :
$ cargo test
코드 적용 범위 보고서를 생성하려면 PATH
에 KCOV> = 26이 설치된 다음 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는 FM-Index 데이터 구조를 기반으로하는 맞춤형 메타 게놈 지수 (MG-Index)를 구현합니다. 분류 학적 분류를 수행하기 전에 참조 지수를 구축해야합니다.
MG-INDICE를 구성하려면 SEQID-TAXID
형식의 헤더가있는 모든 참조 시퀀스의 다중 파스트 파일이 필요합니다. 따라서 시퀀스에는 고유 한 정수 ID 12345가 있으며 NCBI 분류 ID 987에 속하며,이 시퀀스의 헤더는 12345-987
읽어야합니다. 참조 서열은 임의의 DNA 서열 컬렉션 (예 : 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 파일의 시퀀스가 연결됩니다. 접미사 어레이, BWT (Burrows-Wheeler Transform) 및 FM-Index는 Rust-Bio V0.39.1 패키지를 사용하여 연결된 시퀀스에서 구축됩니다. FM-Index 및 관련 서열 메타 데이터는 Mg-Index를 구성합니다. 하나의 mg-index는 Fasta 파일에 따라 생성되며 기존 지수를 재건 할 필요없이 참조 컬렉션이 증가함에 따라 새로운 지수를 추가 할 수 있습니다.
$ mtsv-build --fasta /path/to/chunkN.fasta --index /path/to/write/chunkN.index
기본 설정을 사용하면 인덱스는 참조 파일 크기의 ~ 3.6 배이며 Binning 단계를 실행하려면 많은 RAM이 필요합니다. 기본 샘플링 간격은 BWT Opcurance Array의 경우 64, 접미사 배열의 경우 32입니다. 접미사 배열의 경우 --sample-interval <FM_SAMPLE_INTERVAL>
또는 --sa-sample <SA_SAMPLE_RATE>
의 경우 --- 샘플-인터뷰 <fm_sample_interval>을 통과시켜 재정의 할 수 있습니다. 낮은 값은 인덱스의 크기를 증가시키고 쿼리 시간을 줄일 수 있습니다. 깃발을 늘리면 쿼리 시간이 느려지면서 인덱스 크기가 1 점까지 줄어 듭니다.
다른 옵션은 도움말 메시지를 참조하십시오.
$ 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-Index에서 읽기를 참조 시퀀스에 할당합니다 (원하는 MG-INDICE 각각에 대해 별도의 비닝 명령을 실행해야 함). 각 쿼리 시퀀스와 리버스 보완에서 특정 오프셋 ( --seed-interval
)을 사용하여 동일한 크기 ( --seed-size
)의 중첩 하위 문자 (씨앗)를 추출하여 시작됩니다. 그런 다음 MG-Index를 사용하여 각 시드에 대한 정확한 갭 이핑 된 경기를 검색합니다. 시드 일치는 위치별로 정렬되고 지정된 창을 사용하여 후보 영역으로 그룹화됩니다. 후보 당 조회수 수가 계산되고 종자 히트의 최소 수를 충족하지 않는 후보자는 필터링됩니다. 나머지 후보 위치는 가장 유망한 지역이 먼저 평가되도록 종자 히트 수에 의해 하강 순서로 정렬됩니다.
각 후보 영역에 대해, MTSV는 기준 시퀀스로부터 해당 범위를 추출하고 Mg-Index의 영역과 관련된 택시를 찾습니다. 현재 쿼리가 이미 후보 영역과 관련된 택시에 성공적으로 정렬 된 경우 추가 조정을 시도하지 않으며 다음 후보 지역이 확인됩니다. 그렇지 않으면 SIMD-Accelerated Smith-Waterman 정렬은 추출 된 참조 시퀀스와 쿼리 시퀀스 사이에 수행됩니다 (일치하는 경우 1 점, 불일치, 갭 개방 및 갭 확장의 경우 -1). 정렬 점수가 충분히 높으면 편집 거리가 사용자 지정 편집 거리 차단 ( --edit-rate
)보다 적은지 또는 동일인지 확인하기위한 최종 검사가 하나 있습니다. 정렬이 성공적인 것으로 간주되면 동일한 택시에 대한 해당 쿼리에 대한 추가 정렬을 시도하지 않습니다. 모든 추가 정렬을 택시에 건너 뛰면 많은 비용이 많이 드는 작업을 피하고 계산 시간을 줄입니다.
후보 필터링 단계는 정확한 k-mer 일치의 최소 수를 정의하는 Q-Gram 필터링 알고리즘을 기반으로합니다 ( N- 길이 읽기와 참조 시퀀스 사이에 예상 될 수있는 모든 N-K+1 중첩 k -mers에서 최악의 경우 모든 불일치가 정렬에 걸쳐 균등하게 간격을 두는 경우 , 일치하는 k -mers의 최소 수는 다음 과 같습니다. /(e+1)> k -mer 가 사용되는 경우 , 일치 --seed-size
k -mers 수는 m/l 입니다. --seed-size
) 및 씨앗의 수를 n_seeds = ceil ((n -k + 1)/l) 로 설정하는 간격 L ( --seed-interval
) 및 이는 읽기 크기에 따라 다르기 때문에 필요한 최소 판독 횟수 과제 ( --min-seed
)는 이들 씨앗 바닥의 백분율로 제공됩니다 (Min-seed * n_seeds) --edit-rate
그리고 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
읽은 경우 5
, 10
및 11
을 편집하는 분류 ID 562
, 9062
및 100
에 맵핑되는 경우 :
R1_123:562=5,9062=10,100=11
mtsv-binner
명령의 각 출력 파일은 단일 MG-Index 내의 참조에 대한 할당 만 나타나므로 모든 MG-INDICE의 결과를 추가 분석을 위해 단일 결과 파일로 결합해야합니다.
$ mtsv-collapse /path/to/chunk1_results.txt /path/to/chunk2_results.txt ...
--output /path/to/collapsed_results.txt
모든 청크 파일을 포함하십시오. 붕괴는 여러 단계로 실행될 수 있지만 일반적으로 한 번에 모든 작업을 수행하는 것이 훨씬 빠릅니다. 동일한 택시가 여러 파일에서 동일한 읽기에 할당 된 경우 편집 거리가 가장 낮은 파일이 최종 출력에 기록됩니다.
다른 옵션은 도움말 메시지를 참조하십시오.
$ 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