Kaijuによる生物種推定
はじめに

kaijuを使ってみた。という記事になります。発表から9年ほど経ってますが、主要なメタゲノムの系統分類ツールとして良い成績を残しています。
Kaijuはメタゲノムシーケンシングやメタトランスクリプトミクスのリードを高速かつ高感度に系統分類できるツールです。
系統名はNCBIの分類法を採用しています。また、kaijuは他のツールと異なり、参照データベースにBurrows-Wheeler変換したタンパク質データベースを使用するため、データベースの充実していない系統にも柔軟に対応可能だそうです。
BWTの分かりやすい解説動画↓
Kaijuに関するより詳細な情報は原著論文を読んでみて下さい。
Miniforge3によるKaiju実行環境の作成
カレントディレクトリにminiforge3のインストーラーをダウンロードします。その後、インストーラーを実行してminiforge3をインストールします。既にconda環境がある場合でも問題ないです。
wget "https://github.com/conda-forge/miniforge/releases/download/25.3.1-0/Miniforge3-25.3.1-0-Linux-x86_64.sh"
bash Miniforge3-25.3.1-0-Linux-x86_64.sh -b -p $PWD/miniforge3
導入したminiforge3のデフォルト環境にactivateしてから、Kaiju用の仮想環境を作成します。
source ${PWD}/miniforge3/etc/profile.d/conda.sh
conda activate
conda install -n base -c conda-forge mamba
mamba info -e
* マークが指定したパスのbase環境を指していればOKです。
Kaijuのインストール
同じ仮想環境にKaijuをインストールします。KaijuはBioinformatics CentreのGitHubリポジトリから入手できます。
# 必要なツールもインストール
mamba install -c bioconda -c conda-forge kaiju
USAGE
Kaiju 1.10.0
Copyright 2015-2023 Peter Menzel, Anders Krogh
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
Usage:
kaiju -t nodes.dmp -f kaiju_db.fmi -i reads.fastq [-j reads2.fastq]
Mandatory arguments:
-t FILENAME Name of nodes.dmp file
-f FILENAME Name of database (.fmi) file
-i FILENAME Name of input file containing reads in FASTA or FASTQ format
Optional arguments:
-j FILENAME Name of second input file for paired-end reads
-o FILENAME Name of output file. If not specified, output will be printed to STDOUT
-z INT Number of parallel threads for classification (default: 1)
-a STRING Run mode, either "mem" or "greedy" (default: greedy)
-e INT Number of mismatches allowed in Greedy mode (default: 3)
-m INT Minimum match length (default: 11)
-s INT Minimum match score in Greedy mode (default: 65)
-E FLOAT Minimum E-value in Greedy mode (default: 0.01)
-x Enable SEG low complexity filter (enabled by default)
-X Disable SEG low complexity filter
-p Input sequences are protein sequences
-v Enable verbose output
Kaijuのサブコマンド
- kaiju-addTaxonNames
- kaiju-gbk2faa.pl
- kaiju-mkfmi
- kaiju-convertNR
- kaiju-makedb
- kaiju-multi
- kaiju-convertRefSeq
- kaiju-mergeOutputs
- kaiju-mkbwt
サブコマンドに使用される主なファイル
- kaiju-taxonlistEuk.tsv
- kaiju-excluded-accessions.txt
その他、使用するツールをインストールします。
mamba install -c conda-forge -c bioconda fastp aria2 hostile seqkit krona
データベース作成
Kaijuはタンパク質配列のデータベースを使用して系統推定を行います。DBのボリュームや対象生物種によっていくつか種類があります。nrのサブセットデータベースであるnr_eukを使用します。
| データベース名 | 説明 |
|---|---|
| nr | NCBI BLAST 非冗長タンパク質データベース「nr」、対象は古細菌 (Archaea) 、細菌 (bacteria) 、ウイルスのみ |
| nr_euk | 上記 nr に加えて、真菌 (fungi) および微生物性真核生物 (microbial eukaryotes) を含む |
| fungi | NCBI RefSeq に収録されている全ての真菌ゲノム (アセンブリステータスは問わない) |
| viruses | NCBI RefSeq に収録されているウイルスゲノム |
| plasmids | NCBI RefSeq に収録されているプラスミドゲノム |
| rvdb | RVDB-prot 由来のウイルスタンパク質 |
| refseq | NCBI RefSeq の「完全 (Complete) 」アセンブリに属する細菌・古細菌・ウイルスゲノム |
| refseq_nr | NCBI RefSeq 非冗長タンパク質コレクションに含まれる、細菌・古細菌・ウイルス・真菌・微生物性真核生物のタンパク質 |
| refseq_ref | NCBI RefSeq の代表アセンブリ (representative assemblies) 由来の細菌・古細菌のタンパク質 + RefSeq のウイルスタンパク質 |
| progenomes | proGenomes v3 データベースに収録された代表ゲノム由来のタンパク質 + NCBI RefSeq のウイルスタンパク質 |
a.データベースのダウンロード
プレビルド済のものをすることが可能です。下記に配置されています。
ダウンロードして使用します。nr_eukのデータベースをダウンロードする場合は、以下のコマンドを実行します。
mkdir -p kaiju_db
# ダウンロード
aria2c -x 16 -c -o kaiju_db/kaiju_db_nr_euk_2023-05-10.tgz https://kaiju-idx.s3.eu-central-1.amazonaws.com/2023/kaiju_db_nr_euk_2023-05-10.tgz
# 解凍
tar kaiju_db/kaiju_db_nr_euk_2023-05-10.tgz -C kaiju_db/
# tarファイルを削除
# rm kaiju_db/kaiju_db_nr_euk_2023-05-10.tgz
b.データベースのビルド
プレビルドされたものより新しいデータベースを使いたい場合は、自身でビルドすることが可能です。kaijuが提供するkaiju-makedbコマンドでデータベースを作成します。
USAGE kaiju-makedb
kaiju-makedb --help
kaiju-makedb
Copyright 2015-2023 Peter Menzel, Anders Krogh
License GPLv3+: GNU GPL version 3 or later, http://gnu.org/licenses/gpl.html
This program creates a index for Kaiju for a reference database.
Select one of the available source databases using option -s:
refseq: bacterial, Archaeal and viral genomes in the NCBI RefSeq database with assembly status Complete
refseq_nr: proteins from bacteria, Archaea, viruses, fungi and microbial eukaryotes from the NCBI RefSeq non-redundant proteins collection
refseq_ref: proteins from bacteria, Archaea from the NCBI RefSeq representative assemblies + viral proteins from NCBI RefSeq
progenomes: proteins in the set of representative genomes from the proGenomes v3 database and viral proteins from NCBI RefSeq
nr: NCBI BLAST non-redundant protein database "nr", only Archaea, bacteria, and viruses
nr_euk: nr and additionally including fungi and microbial eukaryotes
fungi: All fungi genomes from NCBI RefSeq (any assembly status).
viruses: Viral genomes from NCBI RefSeq
plasmids: Plasmid genomes from NCBI RefSeq
rvdb: Viral proteins from RVDB-prot
For example: <Path to dir>/kaiju/miniforge3/bin/kaiju-makedb -s nr will create the kaiju index file kaiju_db_nr.fmi
Additional options:
-t X Set number of parallel threads for index construction to X \(default:5\)
The more threads are used, the higher the memory requirement becomes.
--no-download Do not download files, but use the existing files in the folder.
--index-only Only create kaiju index from kaiju_db_*.faa files, implies --no-download.
以下のコマンドを実行することでkaiju_db_nr_euk.fmiというファイルが作成されます。-sにデータベースの種類を指定します。ビルドにはかなりの量のRAMを使用します。
kaiju-makedb -s nr_euk -t 32
デモデータのダウンロード
mkdir -p 00Fastq
# ヒトメタゲノム
curl -L ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR185/017/SRR18585217/SRR18585217_1.fastq.gz -o 00Fastq/SRR18585217_R1.fastq.gz
curl -L ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR185/017/SRR18585217/SRR18585217_2.fastq.gz -o 00Fastq/SRR18585217_R2.fastq.gz
curl -L ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR185/016/SRR18585216/SRR18585216_1.fastq.gz -o 00Fastq/SRR18585216_R1.fastq.gz
curl -L ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR185/016/SRR18585216/SRR18585216_2.fastq.gz -o 00Fastq/SRR18585216_R2.fastq.gz
curl -L ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR185/014/SRR18585214/SRR18585214_1.fastq.gz -o 00Fastq/SRR18585214_R1.fastq.gz
curl -L ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR185/014/SRR18585214/SRR18585214_2.fastq.gz -o 00Fastq/SRR18585214_R2.fastq.gz
# 温泉メタゲノム
curl -L ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR288/087/SRR28812187/SRR28812187_1.fastq.gz -o 00Fastq/SRR28812187_R1.fastq.gz
curl -L ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR288/087/SRR28812187/SRR28812187_2.fastq.gz -o 00Fastq/SRR28812187_R2.fastq.gz
curl -L ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR288/085/SRR28812185/SRR28812185_1.fastq.gz -o 00Fastq/SRR28812185_R1.fastq.gz
curl -L ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR288/085/SRR28812185/SRR28812185_2.fastq.gz -o 00Fastq/SRR28812185_R2.fastq.gz
curl -L ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR288/086/SRR28812186/SRR28812186_1.fastq.gz -o 00Fastq/SRR28812186_R1.fastq.gz
curl -L ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR288/086/SRR28812186/SRR28812186_2.fastq.gz -o 00Fastq/SRR28812186_R2.fastq.gz
curl -L ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR288/084/SRR28812184/SRR28812184_1.fastq.gz -o 00Fastq/SRR28812184_R1.fastq.gz
curl -L ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR288/084/SRR28812184/SRR28812184_2.fastq.gz -o 00Fastq/SRR28812184_R2.fastq.gz
データQC
データのクォリティチェックにはfastpを使用します。
fastpは、FASTQファイルのクォリティチェックやトリミング、フィルタリングを行うためのツールです。特に、ショートリードのペアエンドリードの処理に優れています。このコマンドで、各サンプルのFASTQファイルをクォリティチェックし、必要な処理を行った後、出力ファイルを01FastqQCディレクトリに保存します。
対象のデータは処理後のものだったのか、Q30でアダプター配列はほぼ検出されませんでした。
mkdir -p 01FastqQC
for file in SRR18585217 SRR18585216 SRR18585214 SRR28812184 SRR28812185 SRR28812186 SRR28812187; do
fastp \
--in1 00Fastq/${file}_R1.fastq.gz \
--in2 00Fastq/${file}_R2.fastq.gz \
--out1 01FastqQC/${file}_R1.fastq.gz \
--out2 01FastqQC/${file}_R2.fastq.gz \
--html 01FastqQC/${file}_report.html \
--json 01FastqQC/${file}_report.json \
--qualified_quality_phred 30 \
--length_required 100 \
--detect_adapter_for_pe \
--trim_poly_g \
--cut_front \
--cut_tail \
--thread 32
done
ホストゲノムの削除
ホストゲノムの削除にはHostileを使います。Hostileは、メタゲノムのホストDNAを除去するためのツールです。
こちらの記事で紹介していますが、メージャーバージョンとしてv2がリリースされた際に挙動が変わったようです。
GitHubのREADMEに従って進めて行きます。
リファレンスゲノムはT2Tのヒトゲノム(uman-t2t-hla.argos-bacteria-985_rs-viral-202401_ml-phage-202401)を使用します。
FDA-ARGOSの985の感染性細菌ゲノムと18,719のRefSeqに登録されていたウイルスゲノム、26,928のMillard labのPhageゲノムを対象に150merでマスク処理がされています。
mkdir -p 02Hostile
for file in SRR18585217 SRR18585216 SRR18585214 SRR28812184 SRR28812185 SRR28812186 SRR28812187; do
hostile clean -t 32 \
--index human-t2t-hla.argos-bacteria-985_rs-viral-202401_ml-phage-202401 \
--fastq1 01FastqQC/${file}_R1.fastq.gz \
--fastq2 01FastqQC/${file}_R2.fastq.gz \
-o 02Hostile
done
系統推定
kaijuはv1.9からkaiju-multiオプションで一気に複数サンプルの系統推定を実行できるようになりました。系統推定のアルゴリズムにはmemとgreedyの2つのモードがあります。

-
mem(Maximum Exact Match)-
アルゴリズム:
- リードを6フレーム翻訳 → ストップコドンで分割したアミノ酸配列を長い順に並べる
- **完全一致 (exact match)**のみ許可
- 後ろ向き探索 (BWT) で最長一致を探し、最長一致より短い断片しか残らなければ探索終了
-
アルゴリズム:
特徴として、メモリ使用量が比較的少なく高速ですが、ミスマッチや置換には弱いです。そのため、リードクオリティの高いシーケンスデータで、データベースに近縁種が含まれる場合に有効です。
-
greedy-
アルゴリズム:
- 翻訳した断片を BLOSUM(BLOcks SUbstitution Matrix)62スコア順 に並べる (点数が高い=類似度が高そうな断片を優先)
- 完全一致から左端方向に許容置換ありで延長
- 一定スコアに届かない断片は探索終了
-
アルゴリズム:
特徴として、感度が高く (真陽性を拾いやすい) 、変異・シーケンスエラー・遠縁種にも強いですが、メモリ使用量が多く、処理速度が遅いです。特に、リードクオリティが低い場合や、データベースに遠縁種が含まれる場合に有効です。
そのため、大規模メタゲノムやターゲット生物が既知・近縁種がDBにあり、スピード重視 / 高品質データ → mem、環境メタゲノムや未知種の探索、エラー率が高いデータ (Nanoporeなど) で感度重視 / 低品質データ / 遠縁探索 → Greedyを選択するのが良いでしょう。
また、実行のためにnodes.dmpとnames.dmpファイルが必要です。これらはNCBIの分類法を表すファイルで、Kaijuのデータベースと一緒に提供されます。
頻繁に更新されるので最新の情報を反映したい場合には以下のようにFTPサイトからダウンロードすることも可能です。
# nodes.dmpとnames.dmpのダウンロード
aria2c -x 16 -c https://ftp.ncbi.nlm.nih.gov/pub/taxonomy/taxdump.tar.gz
tar -xzf taxdump.tar.gz
rm taxdump.tar.gz
比較のために両モードで解析を実行します。
mkdir 03Kaiju_results_mem
kaiju-multi -z 32 -t nodes.dmp -f kaiju_db_nr_euk.fmi -v -a mem \
-i 02Hostile/SRR18585214_R1.clean_1.fastq.gz,02Hostile/SRR18585216_R1.clean_1.fastq.gz,02Hostile/SRR18585217_R1.clean_1.fastq.gz,02Hostile/SRR28812184_R1.clean_1.fastq.gz,02Hostile/SRR28812185_R1.clean_1.fastq.gz,02Hostile/SRR28812186_R1.clean_1.fastq.gz,02Hostile/SRR28812187_R1.clean_1.fastq.gz \
-j 02Hostile/SRR18585214_R2.clean_2.fastq.gz,02Hostile/SRR18585216_R2.clean_2.fastq.gz,02Hostile/SRR18585217_R2.clean_2.fastq.gz,02Hostile/SRR28812184_R2.clean_2.fastq.gz,02Hostile/SRR28812185_R2.clean_2.fastq.gz,02Hostile/SRR28812186_R2.clean_2.fastq.gz,02Hostile/SRR28812187_R2.clean_2.fastq.gz \
-o 03Kaiju_results_mem/SRR18585214.out,03Kaiju_results_mem/SRR18585216.out,03Kaiju_results_mem/SRR18585217.out,03Kaiju_results_mem/SRR28812184.out,03Kaiju_results_mem/SRR28812185.out,03Kaiju_results_mem/SRR28812186.out,03Kaiju_results_mem/SRR28812187.out
mkdir 03Kaiju_results_greedy
kaiju-multi -z 32 -t nodes.dmp -f kaiju_db_nr_euk.fmi -v -a greedy \
-i 02Hostile/SRR18585214_R1.clean_1.fastq.gz,02Hostile/SRR18585216_R1.clean_1.fastq.gz,02Hostile/SRR18585217_R1.clean_1.fastq.gz,02Hostile/SRR28812184_R1.clean_1.fastq.gz,02Hostile/SRR28812185_R1.clean_1.fastq.gz,02Hostile/SRR28812186_R1.clean_1.fastq.gz,02Hostile/SRR28812187_R1.clean_1.fastq.gz \
-j 02Hostile/SRR18585214_R2.clean_2.fastq.gz,02Hostile/SRR18585216_R2.clean_2.fastq.gz,02Hostile/SRR18585217_R2.clean_2.fastq.gz,02Hostile/SRR28812184_R2.clean_2.fastq.gz,02Hostile/SRR28812185_R2.clean_2.fastq.gz,02Hostile/SRR28812186_R2.clean_2.fastq.gz,02Hostile/SRR28812187_R2.clean_2.fastq.gz \
-o 03Kaiju_results_greedy/SRR18585214,03Kaiju_results_greedy/SRR18585216,03Kaiju_results_greedy/SRR18585217,03Kaiju_results_greedy/SRR28812184,03Kaiju_results_greedy/SRR28812185,03Kaiju_results_greedy/SRR28812186,03Kaiju_results_greedy/SRR28812187
結果の確認
krona plot
Kaijuにはkrona plot用のファイルを出力することが可能です。
kaiju2krona -t nodes.dmp -n names.dmp -o 03Kaiju_results_mem/SRR18585214.krona -i 03Kaiju_results_mem/SRR18585214
kaiju2krona -t nodes.dmp -n names.dmp -o 03Kaiju_results_greedy/SRR18585214.krona -i 03Kaiju_results_greedy/SRR18585214
ktImportText -o 03Kaiju_results_mem/SRR18585214.krona.html 03Kaiju_results_mem/SRR18585214.krona
ktImportText -o 03Kaiju_results_greedy/SRR18585214.krona.html 03Kaiju_results_greedy/SRR18585214.krona
USAGE kaiju2krona
Kaiju 1.10.1
Copyright 2015-2023 Peter Menzel, Anders Krogh
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
Usage:
kaiju2krona -t nodes.dmp -n names.dmp -i kaiju.out -o kaiju2krona.out
Mandatory arguments:
-i FILENAME Name of input file
-o FILENAME Name of output file.
-t FILENAME Name of nodes.dmp file
-n FILENAME Name of names.dmp file
Optional arguments:
-l Print taxon path containing only ranks specified by a comma-separated list,
for example: superkingdom,phylum,class,order,family,genus,species
-u Include count for unclassified reads in output.
-v Enable verbose output.
USAGE ktImportText
________________________________________________________________/ KronaTools 2.8.1 - ktImportText \___
Creates a Krona chart from text files listing quantities and lineages.
_______
__________________________________________________________________________________________/ Usage \___
ktImportText \
[options] \
text_1[,name_1] \
[text_2[,name_2]] \
...
text Tab-delimited text file. Each line should be a number followed by a list of wedges to
contribute to (starting from the highest level). If no wedges are listed (and just a
quantity is given), it will contribute to the top level. If the same lineage is listed more
than once, the values will be added. Quantities can be omitted if -q is specified. Lines
beginning with "#" will be ignored. By default, separate datasets will be created for each
input (see [-c]).
name A name to show in the list of datasets in the Krona chart (if multiple input files are
present and [-c] is not specified). By default, the basename of the file will be used.
_________
________________________________________________________________________________________/ Options \___
[-o <string>] Output file name. [Default: 'text.krona.html']
[-n <string>] Name of the highest level. [Default: 'all']
[-q] Files do not have a field for quantity.
[-c] Combine data from each file, rather than creating separate datasets within the
chart.
[-u <string>] URL of Krona resources to use instead of bundling them with the chart (e.g.
"http://krona.sourceforge.net"). Reduces size of charts and allows updates, though
charts will not work without access to this URL.
03Kaiju_results_mem/SRR18585214.krona.htmlをブラウザで開くと、Krona plotが表示されます。Krona plotは、系統分類の結果を視覚的に表現するためのツールで、各系統の割合を円グラフで示します。

サマリーテーブル
Kaijuの結果をテーブル形式でまとめるにはkaiju2tableを使用します。
kaiju2table -t nodes.dmp -n names.dmp -r species -p -o 03Kaiju_results_mem/SRR18585214.table.tsv 03Kaiju_results_mem/SRR18585214
kaiju2table -t nodes.dmp -n names.dmp -r species -p -o 03Kaiju_results_greedy/SRR18585214.greedy.table.tsv 03Kaiju_results_greedy/SRR18585214
USAGE kaiju2table
Kaiju 1.10.1
Copyright 2015-2023 Peter Menzel, Anders Krogh
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
Usage:
kaiju2table -t nodes.dmp -n names.dmp -r species -o kaiju.table input1.tsv [input2.tsv ...]
Mandatory arguments:
-o FILENAME Name of output file.
-t FILENAME Name of nodes.dmp file
-n FILENAME Name of names.dmp file.
-r STRING Taxonomic rank, must be one of: phylum, class, order, family, genus, species
Optional arguments:
-m FLOAT Number in [0, 100], denoting the minimum required percentage for the taxon (except viruses) to be reported (default: 0.0)
-c INT Integer number > 0, denoting the minimum required number of reads for the taxon (except viruses) to be reported (default: 0)
-e Expand viruses, which are always shown as full taxon path and read counts are not summarized in higher taxonomic levels.
-u Unclassified reads are not counted for the total reads when calculating percentages for classified reads.
-p Print full taxon path.
-l Print taxon path containing only ranks specified by a comma-separated list,
for example: superkingdom,phylum,class,order,family,genus,species
-v Enable verbose output.
Only one of the options -m and -c may be used at a time.
以下のようなLong Tableが出力されます。このテーブルは、各系統の分類名、リード数、割合などを含んでいます。-rオプションで指定した分類階級 (ここではspecies) に基づいて集計されます。

memモードとgreedyモードの比較
memモードとgreedyモードの結果を簡単に比較するため、ヒトのメタゲノムデータ (SRR18585214) と温泉メタゲノムデータ (SRR28812184) の結果を各モードで出力します。SRR18585214は先程出力したので、SRR18585214の結果を追加で取得します。
# krona plotの出力
kaiju2krona -t nodes.dmp -n names.dmp -o 03Kaiju_results_mem/SRR28812184.krona -i 03Kaiju_results_mem/SRR28812184
kaiju2krona -t nodes.dmp -n names.dmp -o 03Kaiju_results_greedy/SRR28812184.krona -i 03Kaiju_results_greedy/SRR28812184
ktImportText -o 03Kaiju_results_mem/SRR28812184.krona.html 03Kaiju_results_mem/SRR28812184.krona
ktImportText -o 03Kaiju_results_greedy/SRR28812184.krona.html 03Kaiju_results_greedy/SRR28812184.krona
mem(左)とgreedy(右)モードそれぞれで出力したkrona plotが以下になります。
- ヒト メタゲノム(SRR18585214)

- 温泉メタゲノム(SRR28812184)

ヒトのメタゲノムについてはモードによる顕著な違いは無いように思いますが、温泉メタゲノムについてはgreedyモードの方が多様な系統を検出していることがわかります。加えて温泉メタゲノムでは、greedyモードの方がより多くの系統を検出しているため、感度が高いことがわかります。
続いて、サマリーテーブルを比較します。上位10の系統を横並びに比較します。
# tableの出力
kaiju2table -t nodes.dmp -n names.dmp -r species -p -o 03Kaiju_results_mem/SRR28812184.table.tsv 03Kaiju_results_mem/SRR28812184
kaiju2table -t nodes.dmp -n names.dmp -r species -p -o 03Kaiju_results_greedy/SRR28812184.greedy.table.tsv 03Kaiju_results_greedy/SRR28812184
一番右の列の色分けは、赤がモード間で共通した順位で検出されている系統、緑は含まれているが順位が共通していない系統で、記載されている数値は比較対象のモードの検出順位、青は比較対象のモードの上位20に含まれなかった系統を示しています。
- ヒト メタゲノム(SRR18585214)

- 温泉メタゲノム(SRR28812184)

ヒトメタゲノムのサンプルは順位は違えどmemとgreedyモード間で検出された主要な系統に違いは無いようです。一方、多様性が高い温泉メタゲノムの場合は、各モードで比較対象の上位20に無い系統を検出していました。
そのため、論文でよくあるような「主要な検出種上位XX」の見せ方については注意する必要がありそうです (どちらが正解というのは環境サンプルなのでわかりません)。
まとめ
今回の検討でKaiju を用いたメタゲノム解析の環境構築から実行、そして mem / greedy モードの比較までを一通り実施しました。その結果を整理すると以下のようになります。
- 環境構築
-
miniforge3+mambaをベースに環境を構築し、Kaiju と付随ツール (krona, hostile, fastp など) を導入 - データベースについては、プレビルド済み
nr_eukを利用する方法と、自前でkaiju-makedbを用いて最新データからビルドする方法を紹介- 後者は比較的のnrを反映できますが、RAMやディスク容量を大量に消費する点に注意が必要です。
-
- Kaijuによる系統分類
- Kaiju の2つのアルゴリズムモード (mem, greedy) を比較。
-
memモード- 完全一致のみを許可するため高速・省メモリ。
- 高品質リードや近縁種がデータベースに含まれる場合に有効。
-
-
greedyモード- 部分的な置換を許容し、遠縁種やエラーデータにも対応。
- 感度が高いが、速度が遅くメモリ使用量が増大。
- Kaiju の2つのアルゴリズムモード (mem, greedy) を比較。
- 結果の可視化と解釈
- Kaijuの出力を krona plot で可視化し、系統ごとの構成比を直感的に把握。
- kaiju2table によるサマリーテーブルで、各分類群のリード数や割合を定量的に比較。
- 実際のデータでは以下の傾向を確認
- ヒトメタゲノムでは mem / greedy の結果に大きな違いはなし。
- 温泉メタゲノムのように多様性が高いサンプルでは greedy モードがより多くの分類群を検出。
→ 感度の高さが有利に働く。
- モードの総評
- 速度優先 & 高品質リード (Illuminaショートリード、近縁種がDBに存在) →
memモード - 感度優先 & 多様性の高い環境試料、遠縁探索、エラー率が高いリード →
greedyモード
- 速度優先 & 高品質リード (Illuminaショートリード、近縁種がDBに存在) →
Information
- 自作PC
Discussion