アセンブル、リピート検出、エラー検出などNGSの多くの方法論においてk-merカウンタが使用されている。大規模なデータのk-mersを数えるには、非常に高速で効率的なアルゴリズムが必要となる。KCMBTは、このk-merカウント問題のためのアルゴリズム。KMC2より約30%、Jellyfish2より約6倍高速に動作するとされる。
インストール
GitHub - abdullah009/kcmbt_mt: k-mer Counter based on Multiple Burst Trees (multi-threaded)
git clone https://github.com/abdullah009/kcmbt_mt.git
cd kcmbt_mt/
make
cd bin/
> ./kcmbt
$ ./kcmbt
Please specify input file
KCMBT (k-mer Counter based on Multiple Burst Trees) 1.0.0
=========================================================
Usage:
./bin/kcmbt -k <k-mer length> -i <@file_listing_fastq_files or fastq_file> -t <number_of_threads>
Example:
./bin/kcmbt -k 28 -i srr.fastq -t 4
Parameters:
-k k-mer length (10 <= k <= 32, default 28)
-i input file in fastq format (start with @ if the file contains a list of fastq files)
-t number of threads (please use 2^x threads, x = 0, , 2, 3, ..)
> ./kcmbt_dump #結果の出力コマンド
$ ./kcmbt_dump
./bin/kcmbt_dump number_of_threads_used_in_kcmbt
パスの通ったディレクトリにコピーしておく。
ラン
28-merのカウント
kcmbt -k 28 -i input.fq -t 8
全k-mer出力。kcmbtで指定したスレッド数をつける。
kcmbt_dump 8
一定頻度のk-merのみ出力。ここでは10から 20の範囲内の頻度のk-mer。
kcmbt_query output 10 20
開いてみる。
> head output
$ head output
AAAAAAAAAAAGCGAAGGTTAAATAACA 11
AAAAAAAAAAGCGAAGGTTAAATAACAA 11
AAAAAAAAACAATTAATTTTGGTGGAAA 20
AAAAAAAAACAGGCAATGATATCTCAAT 15
AAAAAAAAACGAATAGTGGGATACCAAA 16
AAAAAAAAACTATCCTTCTTTAGATCGA 18
AAAAAAAAACTGGGTCTAAAACCCCGTC 20
AAAAAAAAAGAAAAAAATTCCCCCCGCC 11
AAAAAAAAAGAAAAAACGAAAAGAAGTT 16
AAAAAAAAAGAAATAAAAGATAAGTCAG 18
カウントされている。右端が頻度。
引用
KCMBT: a k-mer Counter based on Multiple Burst Trees.
Mamun AA, Pal S, Rajasekaran S.
Bioinformatics. 2016 Sep 15;32(18):2783-90.