2019 9/25 誤字修正
細菌と古細菌は、海洋と土壌の生態系での栄養とエネルギーのサイクルに役割を果たしており、人間の健康にも重要な役割を果たしている。細菌や古細菌に感染するウイルスは、殺害、代謝再プログラミング、または遺伝子導入によってこれらの「生態系の役割」を調節する。ただし、ウイルスダイナミクスの生態系スケールの理解は、正式な分類または比較調査を可能にする普遍的なウイルス遺伝子または方法の欠如によって妨げられている。たとえば、ウイルスには単一の普遍的なマーカー遺伝子がないため、微生物スタイルの16S rRNAベースの系統発生とoperational taxonomic unit(OTU)は不可能である。
ウイルスシーケンシングにより、種の定義および集団の遺伝的支持が明らかになり、原核生物のウイルスの多様な進化を説明する仮説が提唱された。これらの進歩により、急速に拡大するウイルスゲノムデータベースとともに、国際ウイルス分類委員会(ICTV)は、「従来の」分類基準(ビリオンの形態や単一または複数の遺伝子など)系統発生-ゲノム中心からの、おそらくはいつかのほぼ自動化されたウイルス分類学に向けて、移行を示唆するコンセンサスステートメントを提示した。
ウイルス発見のペースを考えると、ウイルスの分類が緊急に必要である。数十万のメタゲノム由来のウイルスゲノムと大きなゲノムフラグメント(IMG / VR23で700,000以上)は、NCBIのGenBankデータベースに存在する34,091の原核ウイルスゲノムを小さくする。最近提案された「未培養ウイルスゲノムに関する最小情報」(MIUViG)コミュニティガイドライン(ref.25)とともに、スケーラブルなゲノムベースのウイルス分類法を確立するためのアプローチの評価が、普遍的な分類フレームワークを可能にするために必要である。
細菌ウイルスの分類学的フレームワークを開発するために、複数のゲノムベースの戦略が提案されている。細菌ウイルス(「ファージ」)の場合、初期のアプローチの1つは、系統発生フレームワーク(「ファージプロテオームツリー」)で完全なゲノムペアワイズタンパク質配列比較を行い、これは当時のICTV承認ウイルスのグループと広く一致していた。しかし、このアプローチは広く採用されておらず、「横行モザイク」が分類学的境界を曖昧にし、分析で使用される基礎となる系統発生アルゴリズムの仮定に違反する可能性があると考えられていた(ref.34)。他のアプローチは、共有される遺伝子の割合と共有される遺伝子カットオフの同一性パーセントを推定して属とサブファミリーの所属を定義した。しかし、このアプローチは、原核ウイルスの進化は非常に多様で(ref.20)、いくつかの既知のウイルスグループの分類および分類が定義できなかった。原核生物の分類アルゴリズムに基づいて構築された、Genome Blast Distance Phylogeny(GBDP)は、自由にアクセスできるオンラインツール(VICTOR)に付属しており、系統発生とクラスタリングの手法を組み合わせることにより、ファージゲノムを分類する。この方法は、スケーラビリティが不十分であり(100ゲノムに制限)、リファレンスゲノムを持たないウイルスに対する分類上の割り当てが制限されている。
ウイルスゲノム間の共有タンパク質クラスター(PC)に基づく遺伝子共有ネットワークは、monopartite(単一ノードタイプ;つまり、ウイルスゲノム)かどうかに関係なく、ICTVが承認した分類群とほぼ一致することが示されている。一元的な遺伝子共有ネットワークを使用してiVirusアプリ(vConTACT v.1.0、以降v.1.0)を構築し、原核生物ウイルスのネットワークベースの分類を自動化した。 v.1.0は、ICTV原核ウイルス属と最大75%一致したウイルスクラスター(VC)を生成した(ref.28)。ネットワークベースの分析は、海洋、淡水、土壌の大規模研究および単一ウイルス増幅ゲノム(vSAG)の研究におけるウイルス分類に適用されている。これらすべての環境で、ウイルスは遺伝子共有ネットワーク法の適用によってのみ分類できた。ただし、v.1.0では、暫定的な分類割り当てを行うことはできない。これは、v.1.0が、アンダーサンプリングされたゲノムとウイルスシーケンススペースの高度に重複した領域の両方のアーティファクトVCを作成し、階層分類を確立するために必要なVC単位の信頼性メトリックがないためである。
この論文では、新しいクラスタリングアルゴリズム、クラスターの信頼度スコアリング、ネットワークアナリティクスを備えたvConTACT v.2.0(以降v.2.0)を紹介する。これらにより、自動化、分類アサインの改善、より大規模なデータセットへのスケーラビリティが実現する。 v.2.0を適用して、集中化された「生きている」分類基準ネットワークをコミュニティリソースとして確立し、v.2.0が大規模なメタゲノムデータセットに対して堅牢かつスケーラブルであることを示す。
Our paper on the phage classifier vConTACT2 is out! Check it out and RT please! https://t.co/djFPXZrrkJ
— Olivier Zablocki (@OlivierZablo) May 6, 2019
インストール
ubuntu18.0.4のminiconda3-4.3.1で環境でテストした。
依存
- python ~3.6 (not python 2.7 safe)
- networkx>=1.11
- numpy>=1.12.1
- scipy>=0.19.0
- pandas>=0.19.2
- scikit-learn>=0.18.1
- biopython>=1.68
- hdf5>=1.8.17
- pytables>=3.3.0
- psutils
vConTACT also requires several executables, depending on use.
- MCL (always required)
- BLASTP (only if using BLASTP for PC construction)
- DIAMOND (only if using DIAMOND for PC construction)
- ClusterONE (only if using for PC or VC construction)
本体
conda create --name vContact2 python=3
source activate vContact2
#Install python dependencies.
conda install -y -c conda-forge hdf5 pytables pypandoc biopython networkx numpy pandas scipy scikit-learn psutil
conda install -y -c bioconda mcl blast diamond
#Install ClusterONE
wget http://www.paccanarolab.org/static_content/clusterone/cluster_one-1.0.jar
cp cluster_one-1.0.jar $HOME/conda/bin/
#Finally, install vConTACT2 from source file.
wget https://bitbucket.org/MAVERICLab/vcontact2/get/master.tar.gz
tar xvf master.tar.gz
cd MAVERICLab-vcontact2-a3541dd53c3e/
pip install .
> vcontact -h
$ vcontact -h
usage: vcontact [-h] [-r RAW_PROTEINS] [--rel-mode {BLASTP,Diamond,MMSeqs2}]
[-b BLAST_FP] [-p PROTEINS_FP]
[--db {None,ProkaryoticViralRefSeq85-ICTV,ProkaryoticViralRefSeq85-Merged,ProkaryoticViralRefSeq88-Merged,ProkaryoticViralRefSeq94-Merged,ArchaeaViralRefSeq85-Merged,ArchaeaViralRefSeq94-Merged}]
[--pcs-mode {ClusterONE,MCL}] [--vcs-mode {ClusterONE,MCL}]
[--c1-bin CLUSTER_ONE] [--blastp-bin BLASTP_FP]
[--diamond-bin DIAMOND_FP] [-o OUTPUT_DIR] [-t THREADS]
[--blast-evalue EVALUE] [--max-overlap PC_OVERLAP]
[--penalty PC_PENALTY] [--haircut PC_HAIRCUT]
[--pc-inflation PC_INFLATION] [--vc-inflation VC_INFLATION]
[--min-density VC_DENSITY] [--min-size VC_SIZE]
[--vc-overlap VC_OVERLAP] [--vc-penalty VC_PENALTY]
[--vc-haircut VC_HAIRCUT] [--merge-method {single,multi}]
[--similarity {match,simpson,jaccard,dice}]
[--seed-method {unused_nodes,nodes,edges,cliques}]
[--optimize] [--sig SIG] [--max-sig MAX_SIG] [--permissive]
[--mod-inflation MOD_INFLATION] [--mod-sig MOD_SIG]
[--mod-shared-min MOD_SHARED_MIN] [--link-sig LINK_SIG]
[--link-prop LINK_PROP] [-e [EXPORTS [EXPORTS ...]]]
[--cluster-filter [CLUSTER_FILTER [CLUSTER_FILTER ...]]]
[--criterion CRITERION] [--contigs CONTIGS] [--pcs PCS]
[--pc-profiles PCPROFILES] [-v] [-f]
vConTACT 2 - Copyright 2018 Benjamin Bolduc, Guilhem Doulcier.
vConTACT2 (viral Contig Automatic Cluster Taxonomy) is tool to perform
"Guilt-by-contig-association" automatic classification of viral
contigs.
This program is ditributed under the term of the GNU General Public
Licence v3 (or later) with ABSOLUTELY NO WARRANTY. This is free
software, and you are welcome to redistribute it.
optional arguments:
-h, --help show this help message and exit
Main Arguments:
-r RAW_PROTEINS, --raw-proteins RAW_PROTEINS
FASTA-formatted proteins file. If provided alongside
--proteins-fn, vConTACT will start prior to PC
generation. (default: None)
--rel-mode {BLASTP,Diamond,MMSeqs2}
Method to use to create the protein-protein similarity
edge file. This is what the PC clustering is applied
against. (default: Diamond)
-b BLAST_FP, --blast-fp BLAST_FP
Blast results file in CSV or TSV format. Used for
generating the protein clusters. If provided alongside
--proteins-fn, vConTACT will start from the PC-
generation step. If raw proteins are provided, THIS
WILL BE SKIPPED. Reference DBs CANNOT BE USED IF THIS
OPTION IS ENABLED!! (default: None)
-p PROTEINS_FP, --proteins-fp PROTEINS_FP
A file linking the protein name (as in the blast file)
and the genome names (csv or tsv). If provided
alongside --blast-fp, vConTACT will start from the PC-
generation step. If provided alongside --raw-proteins,
vConTACT will start from creating the all-verses-all
protein comparison and then generate protein clusters.
(default: None)
--db {None,ProkaryoticViralRefSeq85-ICTV,ProkaryoticViralRefSeq85-Merged,ProkaryoticViralRefSeq88-Merged,ProkaryoticViralRefSeq94-Merged,ArchaeaViralRefSeq85-Merged,ArchaeaViralRefSeq94-Merged}
Select a reference database to de novo cluster
proteins against. If 'None' selected, be aware that
there will be no references included in the analysis.
(default: ProkaryoticViralRefSeq85-ICTV)
--pcs-mode {ClusterONE,MCL}
Whether to use ClusterONE or MCL for Protein Cluster
(PC) generation. (default: MCL)
--vcs-mode {ClusterONE,MCL}
Whether to use ClusterONE or MCL for Viral Cluster
(VC) generation. (default: ClusterONE)
--c1-bin CLUSTER_ONE Location for clusterONE java file. This MUST SPECIFY
the full path to "cluster_one-1.0.jar". (default:
None)
--blastp-bin BLASTP_FP
Location for BLASTP executable. Path only used if
vConTACT cant find in $PATH. (default: None)
--diamond-bin DIAMOND_FP
Location for DIAMOND executable. Path only used if
vConTACT cant find in $PATH. (default: None)
-o OUTPUT_DIR, --output-dir OUTPUT_DIR
Output directory (default: vContact_Output)
-t THREADS, --threads THREADS
Number of CPUs to use. If nothing is provided,
vConTACT will attempt to identify the number of
available CPUs. (default: 28)
Protein Cluster (PC) Arguments:
--blast-evalue EVALUE
E-value used by BLASTP when creating the protein-
protein similarity network. (--rel-mode BLASTP only)
(default: 0.0001)
--max-overlap PC_OVERLAP
Specifies the maximum allowed overlap between two
clusters. (ClusterONE only) (default: 0.8)
--penalty PC_PENALTY Sets a penalty value for the inclusion of each node.
It can be used to model the possibility of uncharted
connections for each node, so nodes with only a single
weak connection to a cluster will not be added to the
cluster as the penalty value will outweigh the
benefits of adding the node. (ClusterONE only)
(default: 2.0)
--haircut PC_HAIRCUT Apply a haircut transformation as a post-processing
step on the detected clusters. A haircut
transformation removes dangling nodes from a cluster.
(ClusterONE only) (default: 0.1)
--pc-inflation PC_INFLATION
Inflation value to define proteins clusters with MCL.
(default: 2.0) (MCL only) (default: 2.0)
Viral Cluster (VC) Arguments:
--vc-inflation VC_INFLATION
Inflation parameter to define contig clusters with
MCL. (MCL only) (default: 2.0)
--min-density VC_DENSITY
Sets the minimum density of predicted complexes.
(ClusterONE only) (default: 0.3)
--min-size VC_SIZE Minimum size for the Viral Cluster. (default: 2)
--vc-overlap VC_OVERLAP
Specifies the maximum allowed overlap between two
clusters. (ClusterONE only) (default: 0.9)
--vc-penalty VC_PENALTY
Sets a penalty value for the inclusion of each node.
It can be used to model the possibility of uncharted
connections for each node, so nodes with only a single
weak connection to a cluster will not be added to the
cluster as the penalty value will outweigh the
benefits of adding the node. (ClusterONE only)
(default: 2.0)
--vc-haircut VC_HAIRCUT
Apply a haircut transformation as a post-processing
step on the detected clusters. A haircut
transformation removes dangling nodes from a cluster.
(ClusterONE only) (default: 0.55)
--merge-method {single,multi}
Specifies the method to be used to merge highly
overlapping complexes. (ClusterONE only) (default:
single)
--similarity {match,simpson,jaccard,dice}
Specifies the similarity function to be used in the
merging step. (ClusterONE only) (default: match)
--seed-method {unused_nodes,nodes,edges,cliques}
Specifies the seed generation method to use.
(ClusterONE only) (default: nodes)
--optimize Optimize hierarchical distances during second-pass of
the viral clusters (default: False)
Similarity Network and Module Options:
--sig SIG Significance threshold in the contig similarity
network. (default: 1.0)
--max-sig MAX_SIG Significance threshold in the contig similarity
network. (default: 300)
--permissive Use permissive affiliation for associating VCs with
reference sequences. (default: False)
--mod-inflation MOD_INFLATION
Inflation parameter to define protein modules with
MCL. (default: 5.0)
--mod-sig MOD_SIG Significance threshold in the protein cluster
similarity network. (default: 1.0)
--mod-shared-min MOD_SHARED_MIN
Minimal number (inclusive) of contigs a PC must appear
into to be taken into account in the modules
computing. (default: 3)
--link-sig LINK_SIG Significitaivity threshold to link a cluster and a
module (default: 1.0)
--link-prop LINK_PROP
Proportion of a module's PC a contig must have to be
considered as displaying this module. (default: 0.5)
Output Options:
-e [EXPORTS [EXPORTS ...]], --exports [EXPORTS [EXPORTS ...]]
Export backend. Suported values are "csv", "krona" and
"cytoscape" (default: ['csv'])
--cluster-filter [CLUSTER_FILTER [CLUSTER_FILTER ...]]
Id of the clusters to export (Cytoscape export only).
(default: [0])
--criterion CRITERION
Pooling criterion for cluster export (Cytoscape export
only). (default: predicted_family)
Legacy Options:
--contigs CONTIGS Contig info file (tsv or csv) (default: None)
--pcs PCS Protein clusters info file (tsv or csv) (default:
None)
--pc-profiles PCPROFILES
Protein cluster profiles of the contigs (tsv or csv)
(default: None)
Misc. Options:
-v, --verbose Verbosity level : -v warning, -vv info, -vvv debug,
(default info) (default: -2)
-f, --force-overwrite
Overwrite existing files (default: False)
実行方法
proteinのFASTAファイルを指定する。clusteroneは上でwgetで取ってきたcluster_one-1.0.jarを指定する。
vcontact --raw-proteins proteins.fa \
--rel-mode ‘Diamond’ \
--proteins-fp $HOME/conda/bin/cluster_one-1.0.jar \
--db 'ProkaryoticViralRefSeq85-Merged' \
--pcs-mode MCL \
--vcs-mode ClusterONE \
--c1-bin <path to ClusterONE> \
--threads 28
--output-dir output_dir
- --raw-proteins <RAW_PROTEINS> FASTA-formatted proteins file. If provided alongside
- --proteins-fp <PROTEINS_FP> A file linking the protein name (as in the blast file)
- --rel-mode {BLASTP, Diamond, MMSeqs2} Method to use to create the protein-protein similarity edge file. This is what the PC clustering is applied against. (default: Diamond)
- --db {None, ProkaryoticViralRefSeq85-ICTV, ProkaryoticViralRefSeq85-Merged, ProkaryoticViralRefSeq88-Merged, ProkaryoticViralRefSeq94-Merged,ArchaeaViralRefSeq85-Merged, ArchaeaViralRefSeq94-Merged} Select a reference database to de novo cluster proteins against. If 'None' selected, be aware that there will be no references included in the analysis (default: ProkaryoticViralRefSeq85-ICTV).
- --pcs-mode {ClusterONE, MCL} Whether to use ClusterONE or MCL for Protein Cluster (PC) generation. (default: MCL)
- --vcs-mode {ClusterONE, MCL} Whether to use ClusterONE or MCL for Viral Cluster (VC) generation. (default: ClusterONE)
- --c1-bin Location for clusterONE java file. This MUST SPECIFY the full path to "cluster_one-1.0.jar". (default: None)
- --output-dir <OUTPUT_DIR> Output directory (default: vContact_Output)
- --threads <THREADS> Number of CPUs to use. If nothing is provided, vConTACT will attempt to identify the number of available CPUs. (default: 28)
引用
Taxonomic assignment of uncultivated prokaryotic virus genomes is enabled by gene-sharing networks
Bin Jang H, Bolduc B, Zablocki O, Kuhn JH, Roux S, Adriaenssens EM, Brister JR, Kropinski AM, Krupovic M, Lavigne R, Turner D, Sullivan MB
Nat Biotechnol. 2019 Jun;37(6):632-639
vConTACT: an iVirus tool to classify double-stranded DNA viruses that infect Archaea and Bacteria
Benjamin Bolduc, Ho Bin Jang, Guilhem Doulcier, Zhi-Qiang You, Simon Roux, Matthew B. Sullivan
PeerJ. Published online 2017 May 3
参考
Applying vContact to Viral Sequences and Visualizing the Output (Cyverse) V.4