macでインフォマティクス

macでインフォマティクス

HTS (NGS) 関連のインフォマティクス情報についてまとめています。

ウイルスコンセンサスゲノム配列をコールする高速でメモリ効率の良い実装 ViralConsensus

 

 ウイルス分子疫学において、配列データからコンセンサスゲノムを再構成することは、懸念される変異やバリアントを追跡するために重要である。しかし、配列決定されるサンプル数が急増するにつれ、コンセンサスゲノムの再構築に必要な計算リソースは法外に大きくなる可能性がある。ViralConsensusは、リードアライメントデータから直接ウイルスコンセンサスゲノム配列を呼び出すための高速でメモリ効率の高いツールである。ViralConsensusは、既存の手法と比較して、桁違いに高速で、メモリ効率も優れている。さらに、既存の手法とは異なり、ViralConsensusはリードマッパーから標準入力で直接データをパイプし、オンザフライでウイルスコンセンサスコールを行うことができるため、ウイルス配列決定パイプラインとして最適なツールとなっている。
ViralConsensusは、オープンソースソフトウェアプロジェクトとして、https://github.com/niemasd/ViralConsensusで自由に利用できる。

 

インストール

ubuntu18でテストした。

  • ViralConsensus is written in C++ and depends on htslib.

Github

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