ウイルス分子疫学において、配列データからコンセンサスゲノムを再構成することは、懸念される変異やバリアントを追跡するために重要である。しかし、配列決定されるサンプル数が急増するにつれ、コンセンサスゲノムの再構築に必要な計算リソースは法外に大きくなる可能性がある。ViralConsensusは、リードアライメントデータから直接ウイルスコンセンサスゲノム配列を呼び出すための高速でメモリ効率の高いツールである。ViralConsensusは、既存の手法と比較して、桁違いに高速で、メモリ効率も優れている。さらに、既存の手法とは異なり、ViralConsensusはリードマッパーから標準入力で直接データをパイプし、オンザフライでウイルスコンセンサスコールを行うことができるため、ウイルス配列決定パイプラインとして最適なツールとなっている。
ViralConsensusは、オープンソースソフトウェアプロジェクトとして、https://github.com/niemasd/ViralConsensusで自由に利用できる。
インストール
ubuntu18でテストした。
- ViralConsensus is written in C++ and depends on htslib.
git clone https://github.com/niemasd/ViralConsensus.git
cd ViralConsensus
make
#パスを通す。公式ではプログラムのバイナリを/usr/local/bin/に移動している
sudo mv viral_consensus /usr/local/bin/
#Docker(link)
docker pull niemasd/viral_consensus:latest
> viral_consensus -h
$ viral_consensus -h
USAGE: viral_consensus -i IN_READS -r REF_GENOME -o OUT_CONSENSUS [-op OUT_POS_COUNTS] [-oi OUT_INS_COUNTS] [-q MIN_QUAL] [-d MIN_DEPTH] [-f MIN_FREQ] [-a AMBIG] [-p PRIMER_BED] [-po PRIMER_OFFSET]
-i/--in_reads IN_READS Input reads file (CRAM/BAM/SAM), or '-' for standard input
-r/--ref_genome REF_GENOME Input reference genome (FASTA)
-o/--out_consensus OUT_CONSENSUS Output consensus genome (FASTA), or '-' for standard output
-op/--out_pos_counts OUT_POS_COUNTS Output position counts (TSV), or '-' for standard output (default: don't output)
-oi/--out_ins_counts OUT_INS_COUNTS Output insertion counts (JSON), or '-' for standard output (default: don't output)
-q/--min_qual MIN_QUAL Minimum base quality to count base in counts (default: 20)
-d/--min_depth MIN_DEPTH Minimum depth to call base/insertion in consensus (default: 10)
-f/--min_freq MIN_FREQ Minimum frequency to call base/insertion in consensus (default: 0.5)
-a/--ambig AMBIG Ambiguous symbol (default: N)
-p/--primer_bed PRIMER_BED Primer file (BED)
-po/--primer_offset PRIMER_OFFSET Number of bases after primer to also trim (default: 0)
-v/--version Print version number
-h/--help Print this usage message
実行方法
ViralConsensusは読み込んだデータをソートする必要がないため、データをマッパーから ViralConsensus にパイプすることで不要なディスク I/O を回避できる。
#ペアエンドfastq
minimap2 -t 20 -a -x sr reference.fa sample_R*.fq.gz | viral_consensus -i - -r reference.fas -o consensus.fa
#シングルエンドfastq
minimap2 -t 20 -a -x sr reference.fa sample_R1.fq.gz | viral_consensus -i - -r reference.fas -o consensus.fa
動作は非常に高速、ウィルスゲノムは1秒以内に出力可能(論文Fig.1)。
レポジトリより
- ViralConsensus はシングルスレッドなので、多くのサンプルを実行する場合は、マッパーもシングルスレッドで実行し、サンプル間で並列化する。
引用
ViralConsensus: A fast and memory-efficient tool for calling viral consensus genome sequences directly from read alignment data
Niema Moshiri
Bioinformatics, Published: 12 May 2023