macでインフォマティクス

macでインフォマティクス

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

prokaryotic virusのcontigをクラスタリングしTaxonomic assignmentを行う vContact2

2019 9/25 誤字修正

 

 細菌と古細菌は、海洋と土壌の生態系での栄養とエネルギーのサイクルに役割を果たしており、人間の健康にも重要な役割を果たしている。細菌や古細菌に感染するウイルスは、殺害、代謝再プログラミング、または遺伝子導入によってこれらの「生態系の役割」を調節する。ただし、ウイルスダイナミクスの生態系スケールの理解は、正式な分類または比較調査を可能にする普遍的なウイルス遺伝子または方法の欠如によって妨げられている。たとえば、ウイルスには単一の普遍的なマーカー遺伝子がないため、微生物スタイルの16S rRNAベースの系統発生とoperational taxonomic unit(OTU)は不可能である。

 ウイルスシーケンシングにより、種の定義および集団の遺伝的支持が明らかになり、原核生物のウイルスの多様な進化を説明する仮説が提唱された。これらの進歩により、急速に拡大するウイルスゲノムデータベースとともに、国際ウイルス分類委員会(ICTV)は、「従来の」分類基準(ビリオンの形態や単一または複数の遺伝子など)系統発生-ゲノム中心からの、おそらくはいつかのほぼ自動化されたウイルス分類学に向けて、移行を示唆するコンセンサスステートメントを提示した。

 ウイルス発見のペースを考えると、ウイルスの分類が緊急に必要である。数十万のメタゲノム由来のウイルスゲノムと大きなゲノムフラグメント(IMG / VR23で700,000以上)は、NCBIGenBankデータベースに存在する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が大規模なメタゲノムデータセットに対して堅牢かつスケーラブルであることを示す。

 

vConTACT 2: a tool to automate the classification of microbial ...https://pag.confex.com › Recording3981 › paper36846_1

 


  

インストール

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 {ClusterONEMCL}   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

https://www.protocols.io/view/applying-vcontact-to-viral-sequences-and-visualizi-wijfccn?version_warning=no