ウイルスは、遺伝的に関連のある突然変異株のコレクションであるquasispeciesとして宿主に寄生する。Viral quasispeciesのアセンブリは、リードデータから株固有のハプロタイプを再構築することであり、株間の相対的な存在量を予測することは、治療に関連した様々な理由から重要なステップとなる。リファレンスゲノムに依存しない(「de novo」)アプローチは、リファレンスガイド型アプローチに比べて利点があるが、これは発散している株を扱う場合、リファレンスに起因するバイアスが圧倒的に大きくなるからである。現存するDe novo法は非常に正確ではあるが、コンティグが短いものしか得られない。残る課題は、このようなコンティグから完全長のハプロタイプを再構築することと、それに伴うその豊富さを再構築することである。
本研究では、あらかじめアセンブリされたコンティグからウイルスのハプロタイプを再構成するためのデノボアプローチとしてVirus-VGを提案する。この手法では、リファレンスゲノムを使用せずに、短い入力コンティグからバリエーショングラフを構築する。次に、元のハプロタイプを反映したバリエーショングラフのパスを得るために、最小化問題を解き、バリエーショングラフのノードに対して計算されたリードカバレッジとの互換性の観点から最適な最大長のパスを選択する。結果として得られた最大長のパスの選択をハプロタイプとその豊富さとともに出力する。困難なシミュレーションおよび実データセット上でのベンチマーク実験では、入力コンティグと比較してアセンブリの連続性が大幅に改善されていることが示された。Virus-vgは、https://bitbucket.org/jbaaijens/virus-vg から自由に利用できる。
インストール
condaでpython3.7の仮想環境を作ってテストした(macos10.14使用)。
依存
Bitbucket
git clone https://bitbucket.org/jbaaijens/virus-vg.git
cd virus-vg/
conda create --name virus-vg-deps --file conda_list_explicit.txt
conda activate virus-vg-deps
#gurobiのライセンスアクティベート(参考)
#vgのバイナリダウンロード
wget https://github.com/vgteam/vg/releases/download/v1.7.0/vg-v1.7.0
chmod u+x vg-v1.7.0
> python build_graph_msga.py -h
$ python build_graph_msga.py -h
usage: build_graph_msga.py [-h] -f FORWARD [-r REVERSE] -c CONTIGS -vg VG [-t THREADS] [-w MSGA_W] [--reuse_graph]
Build contig variation graph using vg msga and compute node abundances.
optional arguments:
-h, --help show this help message and exit
-f FORWARD, --forward FORWARD
Forward reads in fastq format
-r REVERSE, --reverse REVERSE
Reverse reads in fastq format
-c CONTIGS, --contigs CONTIGS
Input contigs in fastq format
-vg VG, --vg_path VG Path to vg executable
-t THREADS, --threads THREADS
Set number of threads used for vg.
-w MSGA_W, --msga_w MSGA_W
Set alignment band width parameter for vg msga.
--reuse_graph
> python optimize_strains.py -h
# python optimize_strains.py -h
usage: python opt_edge.py [-h] -m M -c MIN_COV [-d MIN_DEPTH] [-o FASTA]
[-p PATHS] [-r REDUCE_OBJ] [-t THREADS]
[--trim TRIM] [--max_strains MAX_STRAINS]
abundancefile graphfile
Build strains from contigs in variation graph and estimate their abundances.
positional arguments:
abundancefile Node abundance file
graphfile GFA file containing the contig variation graph
optional arguments:
-h, --help show this help message and exit
-m M, --min_abundance M
Minimal node abundance; nodes below this threshold are
considered erroneous and allowed to match any other
node.
Minimum coverage required per strain
-d MIN_DEPTH, --min_depth MIN_DEPTH
Output a list of nodes with sequence depth less than
<min_depth>.
Output fasta file with final haplotypes
-p PATHS, --paths PATHS
Read candidate paths from file instead of enumerating
them.
-r REDUCE_OBJ, --reduce_obj REDUCE_OBJ
Use a reduced objective function by specifying how
many times a given combination of paths will be
evaluated (reduces runtime and memory usage).
-t THREADS, --threads THREADS
Set number of threads used for Gurobi.
--trim TRIM number of bases trimmed on either end of contig
--max_strains MAX_STRAINS
set an upper bound on the number of strains predicted
テストラン
example/のペアエンドfastqを指定する。実行時にはvgのバイナリのパスを指定する必要がある。
cd virus-vg/example/
python ../scripts/build_graph_msga.py -f forward.fastq -r reverse.fastq -c input.fasta -vg ../vg-v1.7.0 -t 8
optimize_strains.py -m <node_ab> -c <strain_ab> node_abundance.txt contig_graph.final.gfa
引用
Full-length de novo viral quasispecies assembly through variation graph construction
Jasmijn A Baaijens, Bastiaan Van der Roest, Johannes Köster, Leen Stougie, Alexander Schönhuth
Bioinformatics, Volume 35, Issue 24, 15 December 2019, Pages 5086–5094