macでインフォマティクス

macでインフォマティクス

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

データベースのゲノム情報とAMR耐性/感受性情報から細菌のAMR表現型を予測する VAMPr

 2020 3/37 タイトル修正

 

 Antimicrobial resistance(AMR)は、公衆衛生に対する脅威の増加である。 AMRを決定する現在の方法は、非効率的な表現型アプローチに依存しており、多くの病原体と抗菌薬の組み合わせのAMRメカニズムの理解が不完全なままとなっている。多様な細菌の高密度ゲノムデータの可用性が急速に継続的に増加していることを考えると、表現型を予測するためにゲノム情報を利用できるアルゴリズムの開発は臨床的に有用であり、これまで認識されていなかったAMRパスウェイの発見を支援する可能性がある。 DNA変異と表現型AMRの関係を理解し​​やすくするために、新しいバイオインフォマティクスツールvariant mapping and prediction of antibiotic resistance  (VAMPr) を開発した。これは(1)タンパク質バリアントの遺伝子オルソログに基づく配列の特徴を導き出し、(2)AMRとの既知または新規の関連についてこれらの説明可能な遺伝子レベルのバリアントを調査し、 (3)正確なモデルを構築して、全ゲノムシーケンスデータに基づいてAMRを予測する。 29種類の抗生物質のAMR表現型を含む9 speciesから、3,393の単離された細菌分離株の公開シーケンスデータをキュレーションした。 14,615のバリアント遺伝子型を検出し、93の関連モデルと予測モデルを構築した。関連モデルにより、blaKPCやカルバペネム耐性などの既知の遺伝的抗生物質耐性メカニズムが、アプローチの性質と一致することが確認された。予測モデルは、ネストされた交差検証を通じて内部的に高い精度(すべての抗生物質と病原体の組み合わせで91.1%の平均精度)を達成し、外部臨床データセットを使用して検証された。 VAMPrバリアントの検出方法、関連付け、および予測モデルは、臨床応用の可能性を秘めた基礎科学者にとってのAMR研究の貴重なツールとなる。

 

HP

https://qbrc.swmed.edu/softwares.php

Documentation

https://cdc.biohpc.swmed.edu/VAMPr/VAMPr.cgi

f:id:kazumaxneo:20200202232122p:plain

HPより転載

 

 

ローカル環境へのインストール

依存

#perl library
cpanm Bio::DB::Fasta
cpanm Statistics::R

#R library. Rにて
> install.packages("caret", dependencies = c("Depends", "Suggests"))
> install.packages("xgboost")

#Diamond
conda install -c bioconda -y diamond

本体 Gihub

git clone https://github.com/jiwoongbio/VAMPr.git
cd VAMPr/

perl VAMP.pl -h

$ perl VAMP.pl -h

 

Usage:   perl VAMP.pl [options] genome.fasta [variant.vcf [sample [...]]] > VAMP.txt

 

Options: -h       display this help message

         -t DIR   directory for temporary files [$TMPDIR or /tmp]

         -C STR   codon and translation e.g. ATG=M [NCBI genetic code 11 (Bacterial, Archaeal and Plant Plastid)]

         -S STR   comma-separated start codons [GTG,ATG,CTG,TTG,ATA,ATC,ATT]

         -T STR   comma-separated termination codons [TAG,TAA,TGA]

         -L INT   minimum translation length [10]

         -p INT   number of threads [1]

         -e FLOAT maximum e-value to report alignments [10]

         -c FLOAT minimum coverage [0.8]

         -s FILE  output SAM file

         -a FILE  output alignment file

         -A       all variants

データベースの準備

perl VAMP_database.pl

f:id:kazumaxneo:20200203081033p:plain

 


webサービス 

https://cdc.biohpc.swmed.edu/VAMPr/VAMPr.cgi にアクセスする。

f:id:kazumaxneo:20200326214815p:plain

 

アセンブルされたゲノム配列(FASTAファイル)、またはproteome配列をアップロードする。

f:id:kazumaxneo:20200326221651p:plain

種を指定してサブミットする。

 

出力

AMR遺伝子が含まれているかどうか調べられる。含まれている場合、AMR遺伝子のバリアントが調べられる。それから予測モデルに配列のバリアントが読み込まれ、抵抗性の確率が出力される。

f:id:kazumaxneo:20200326221759p:plain

Antibiotics耐性予測結果がまとめられている。エビデンスは計算されたオッズ比とFisherの正確検定によるP値に基づく。

 

データベース構築手順と耐性モデルの構築については論文に記載されています。確認して下さい。

引用

VAMPr: VAriant Mapping and Prediction of antibiotic resistance via explainable features and machine learning
Jiwoong Kim , David E. Greenberg , Reed Pifer, Shuang Jiang, Guanghua Xiao, Samuel A. Shelburne, Andrew Koh, Yang Xie, Xiaowei Zhan
PLoS Comput Biol. 2020 Jan 13;16(1):e1007511

 

 

 

 

 

 

 

ゲノムから周期的なリピート配列を検出する SPADE

 

 周期的に繰り返されるDNAやタンパク質要素は、ゲノムの進化、遺伝子制御、タンパク質複合体の形成、免疫を含む様々な重要な生物学的事象に関与している。特筆すべきは、現在使用されているZFNs、TALENs、CRISPRsなどのゲノム編集ツールも、すべて天然の生物の周期的に繰り返される生体分子と関連していることである。周期的に繰り返される配列の生物学的重要性と、そのような周期的な繰り返しから新たなゲノム編集モジュールの発見が期待されているにもかかわらず、大規模なゲノム資源中のこのような構造要素をハイスループットかつ教師なしでグローバルに検出するソフトウェアはこれまで開発されていなかった。我々(著者ら)は、k-mer周期性評価に基づいて大規模ゲノムデータから周期的なDNAやタンパク質の繰り返しを網羅的に探索する新しいソフトウェアSPADE(Search for Patterned DNA Elements)を開発した。SPADEは、ゲノム編集に関連する配列やテトラトリコペプチド、アンキリン、WD40リピートなどの繰り返しドメインを含むタンパク質ファミリーを、配列の周期性というシンプルな制約のもとに、他の限られた繰り返し生体分子配列を対象とした他のソフトウェアに比べて優れた性能で捕捉することができ、新しい生物学的事象や新しいゲノム編集モジュールの発見に貢献できる可能性が高いことを示唆している。

 

 

テストラン

ubuntu18.04LTSのpython2.7環境でテストした(docker使用、ホストmacos10.1.4)。

依存

pip install matplotlib==2.2.3 #(*1)
pip install seaborn==0.8.1
pip install weblogo==3.6.0
pip install biopython

 本体 Github

https://github.com/yachielab/SPADE

 

#python2.7の仮想環境で使う
conda create -n python27 python=2.7
conda activate python27

git clone https://github.com/yachielab/SPADE
cd SPADE/
chmod u+x *.py

python2 SPADE.py -h

# python2 SPADE.py -h

SYNOPSIS

  SPADE [-h] [--help] [-in input_file] [-f input_file_format] [-t sequence_type] 

    [-Nk kmer_size] [-Nw window_size] [-Ns kmer_score_threshold] [-Ng gap_size] 

    [-Nm region_margin] [-Np period_threshold] [-Nq gap_frequency_threshold] 

    [-Nu motif_letter_consistency] [-Nr non_consensus_length_threshold]

    [-Pk kmer_size] [-Pw window_size] [-Ps kmer_score_threshold] [-Pg gap_size] 

    [-Pm region_margin] [-Pp period_threshold] [-Pq gap_frequency_threshold]

    [-Pu motif_letter_consistency] [-Pr non_consensus_length_threshold]

    [--mafft string] [--blast string] [-n num_threads] [-v string] [-d] [--delete] 

    [-V] [--version]

 

DESCRIPTION

  SPADE 1.0.0

 

OPTIONAL ARGUMENTS

 -h, --help

   Print USAGE, DESCRIPTION and ARGUMENTS; ignore all other parameters

 -V, --version

   Print software version; ignore all other parameters

 

 *** Input query options

 -in <File_In>

   Input file name

 -f <String, Permissible values: ‘genbank’ ‘fasta’ ‘auto’>

   Input file type

   Default = ‘auto’

 -t <String, Permissible values: ‘nucl’ ‘prot’ ‘auto’>

   Sequence type, nucleotide (nucl) or protein (prot)

   Default = ‘auto’

 

 *** General screening options for nucleotide periodic repeats

 -Nk <Integer>

   k-mer size

   Default = 10

 -Nw <Integer>

   Size of sliding window to calculate cumulative k-mer distribution

   Default = 1000

 -Ns <Integer>

   Threshold for peak height of each cumulative k-mer count area

   Default = 20 

 -Ng <Integer>

   Threshold for gap size between significant k-mer count areas

   Default = 200

 -Nm <Integer>

   Size of margin to be evaluated with each detected highly repetitive region

   Default = 1000

 -Np <Real>

   Periodicity score threshold for each detected highly repetitive region

   Default = 0.5

 -Nq <Real>

   Gap frequency threshold for each position of a repeat motif to be removed

   Default = 0.5

 -Nu <Real>

   Threshold for letter consistency score at each position of a repeat motif 

   Default = 0.8

 -Nr <Integer>

   Threshold for length of non-consensus region to be removed from a repeat motif

   Default = 5

 

 *** General screening options for protein periodic repeats

 -Pk <Integer>

   k-mer size

   Default = 3

 -Pw <Integer>

   Size of sliding window to calculate cumulative k-mer distribution

   Default = 300

 -Ps <Integer>

   Threshold for peak height of each cumulative k-mer count area

   Default = 6

 -Pg <Integer>

   Threshold for gap size between significant k-mer count areas

   Default = 50

 -Pm <Integer>

   Size of margin to be evaluated with each detected highly repetitive region

   Default = 300

 -Pp <Real>

   Periodicity score threshold for each detected highly repetitive region

   Default = 0.3

 -Pq <Real>

   Gap frequency threshold for each position of a repeat motif to be removed

   Default = 0.5

 -Pu <Real>

   Threshold for letter consistency score at each position of a repeat motif 

   Default = 0.8

 -Pr <Integer>

   Threshold for length of non-consensus region to be removed from a repeat motif

   Default = 5

 

 *** MAFFT and BLAST+ options 

 --mafft <'String'>

   Optional arguments for MAFFT can be defined with single quotations 

   Default = '--auto'

   For MAFFT optional arguments, see 

   https://mafft.cbrc.jp/alignment/software/manual/manual.html

 --blastn <'String'>

   Optional arguments for BLAST+ can be defined with single quotations

   Default = '-strand plus -task blastn-short -penalty -2 –outfmt "6 qseqid qseq sseqid sseq pident qlen length mismatch gapopen qstart qend sstart send gaps evalue bitscore"'

 --blastp <'String'>

   Optional arguments for BLAST+ can be defined with single quotations

   Default = '-task blastp-short –outfmt "6 qseqid qseq sseqid sseq pident qlen length mismatch gapopen qstart qend sstart send gaps evalue bitscore"'

   For BLAST+ optional arguments, see

   https://www.ncbi.nlm.nih.gov/books/NBK279684/

 

 *** Other options

 -n <Integer>

   Number of CPU threads. If this is set to more than 1, SPADE runs multiple 

   processes for multiple sequence entries in parallel.

   Default = 1

 -v <String, Permissible values: 'Y' 'N'>

   Generate pdf files to visualize results for each detected repeat region

   Default = Y

 -d, --delete

   This option deletes descendant output folders of highly repetitive regions

   that are detected not to contain periodic repeats

 

 

 

テストラン

genbankファイルを指定する。

SPADE.py -in GCF_000014485.1_ASM1448v1_genomic.gbff

 出力

テストファイルには3つのシーケンス(chr + 2plasmids)が含まれている。シーケンスごとにディレクトリが出力されるため、3つのディレクトリが生成される。

それぞれのディレクトリでは、リピートごとにサブフォルダができる。

f:id:kazumaxneo:20200326070435p:plain

サブフォルダ

f:id:kazumaxneo:20200326070441p:plain

periodic_repeat.pdf

f:id:kazumaxneo:20200326070459p:plain

 

出力についてはGithubで説明されています。確認して下さい。

引用

Fast and global detection of periodic sequence repeats in large genomic resources
Hideto Mori, Daniel Evans-Yamamoto, Soh Ishiguro, Masaru Tomita, Nozomu Yachie
Nucleic Acids Research, Volume 47, Issue 2, 25 January 2019, Page e8

 

 

 *1

Ghostscriptがないとのエラーが出たので、https://www.ghostscript.com/download/gsdnld.htmlからバイナリをダウンロードしてgsにリネームして/usr/local/binに置いた。

 

https://stackoverflow.com/questions/53091128/ghostscript-ps2pdf-not-working-correctly-from-matlab

 

 

 

 

第3世代ロングリードを使ってアセンブリのギャップを閉じる TGS-GapCloser

2020 9/8 論文追記

2020 10/2 condaインストール追記

2020 10/9 helpとインストール手順更新

 

 ゲノムシーケンシング技術の開発は、この10年間でコストの削減とムーアの法則を超えるスピードでスループットを向上させてきた[ref.1]。遺伝子配列データベースは飛躍的に充実し、細菌や真菌の小さなゲノムから真核生物の大きなゲノムへと焦点が移っている。第三世代ロングリード(TGS)[2,3]、合成ロングリード(SLR)[ref.4-8]、Hi-C[ref.9]、BioNano physicalマップ[ref.10]などの最先端技術を応用することで、異なる長さスケールの情報が得られ、結果的に充実したゲノムアッセンブリが実現している。しかし、ヒトやモデル生物の場合は、scaffold island chainsのバミューダ三角形の領域のように、未知の核酸(Nsで表される)を含んでおり、すべての完全なアセンブリは不完全であり、その結果、ゲノムのリピートの性質が明らかになっていない。ゲノムのrepetitivenessや多型、シークエンシング技術の限界、アルゴリズムトレードオフなどがバミューダ領域につながる可能性がある。ギャップクロージャーやギャップフィリングは、配列を発見し、コンティグを完全にまたは部分的に欠落している遺伝子コード領域まで拡張することができる。そのため、特に複雑性の高い大規模な真核生物ゲノムについては、de novo ゲノムアセンブリのギャップを閉じ、より完全で正確なゲノムを得るためのツールの開発が求められている。
 ドラフトゲノムアセンブリのギャップを埋める最初の試みは、Fosmids、BACs ライブラリ、Sanger リードを用いて、1~100 kb の大規模な範囲で行われた[ref.11]。しかし、手作業や半自動化されたプロセスでは、莫大なコストを考慮して応用が制限されている。次世代シーケンシング(NGS)技術と複数のインサートサイズのペアエンド情報やペメイトペア情報は、このようなコストの問題を克服し、ギャップ領域に到達するためのいくつかのベンチマークツールが設計されてきた[ref.12-16]。これらの戦略はタンデムリピートのような反復的な DNA 断片には対応できず、多くの場合、隣接するコンティグが重なった場合の処理に失敗し、リード/kmer の長さが短いため、より多くのミスアセンブリを引き起こす原因となる。
 Pacific Biosciences (Pacbio)やOxford Nanopore Techniques (ONT)などの一分子TGS技術のリードは一般的にほとんどのDNAリピートよりも長く(~10kb)、これらの制限を解決する可能性を秘めている[ref.17]。ロングリードを用いたde novoゲノムアセンブリは、段階的な改善を可能にするかもしれないが、NGSプラットフォームと比較して費用が高く、精度が低いため、一般化には至っていない。また、一般的なTGSシーケンスエラー(挿入や欠失)は、遺伝子コード領域のフレームシフトを引き起こし、遺伝子アノテーションを混乱させる可能性がある。TGSの商用プラットフォームがリリースされて以来、両プラットフォームの利点を組み合わせて設計されたハイブリッドアセンブラがいくつか登場している。主な原理としては、OLCやストリンググラフアルゴリズムに基づいてNGSのコンティグとTGSのロングリードを混合して最終的なアセンブリグラフを構築したり[ref.18]、NGSで生成されたショートコンティグをロングリードのアラインメントに依存してスキャホールドにしたりするが[ref.19, 20]、ロングロードからの中距離情報のみ利用し、他の技術で提供される長距離情報は無視することがある。しかし、ギャップクローズアルゴリズムは、欠落している領域をアップグレードするだけで、既存のアセンブリの大部分を残して、計算の複雑さとコストを大幅に削減する。PBJelly[ref.21]は、ギャップ領域にマッピングされたロングリードを局所的にアセンブルすることでギャップを閉じる、PacBioデータセットを使用した最初のソフトウェアだった。ギャップの数は、BLASTアルゴリズム[ref.23]を用いてロングリードをギャップにアラインさせるFGAP[ref.22]によっても効率的に削減することができた。このアルゴリズムを改良したり、目的に応じて拡張したりするツールが増えてきた[ref.24-28]。しかし、上記のほとんどのツールは、エラー修正済みのロングリードか、あるいは代替的にアセンブリされたコンティグしか受け付けないという重大な欠点を共有している。TGSデータを用いたエラー修正では、高価なロングリードを十分にカバーする必要があり、通常は短い断片に分割して貴重な長さ情報を失うことになり、NGSデータを用いたエラー修正では膨大なメモリを必要とし、大規模なゲノムには容易に使用できないため、長距離情報の応用に支障をきたす。
 TGSのギャップクローズアルゴリズムを開発するためには、3つのポイントを考慮する必要がある。第一に、TGSデータの使用量をできるだけ少なくすること。TGSの価格は下がってきているが[ref.29] 、効率性を第一に考えた場合、特に小規模な研究室や小規模なプロジェクトの場合には効率性が優先されることに変わりはない。そのため、ロングリードを重ね合わせて局所的に再構成したり、前もってエラー修正を行うことは好ましくない。もう一つの重要な要因は、ギャップを埋めるためのロングリードの選択の精度である。ほとんどのギャップクローズツールによって引き起こされるアセンブリエラーの数は、de novoアセンブリられたコンティグのそれよりも高いことが実証されている[ref.25]。エラー率の高さとリピートの存在は、大きなミスアセンブリイベントの確率を高める可能性がある。最後に、ギャップフィルされた領域の塩基レベルの精度を低下させるべきではない、これは下流の解析の品質を決定するためである。挿入された配列のエラー修正やポリッシュの必要性はまだある。最新のPacbioではベースコール精度が99.8%に向上していて[ref.30]、このことで問題が直接的に単純化する可能性はあるが、これはスループットやリード長を大幅に犠牲にして達成している事に注意してほしい。
 本研究では、TGS-GapCloserと名付けられたソフトウェアツールを説明する。これは、エラーが発生しやすいロングリードを低カバレッジで使用して、効率的かつ正確にギャップを合理的な時間内に閉じるものである。ONTまたはPacbioのロングリードを用いて、ヒトの3つのドラフトゲノムアセンブリに適用したところ[ref.31, 32]、コンティグNG50を5.5倍から44.9倍、NGA50を5.1倍から30.7倍に改善し、 positive predictive value (PPV) 93.96%、感度65.97%で90%以上のギャップを得ることができた。また、イチョウの超大規模ゲノムアセンブリにおける71.6%のギャップは、修正されたPacbioロングリードの11.9カバレッジを用いてクローズされ、コンティグN50が48kbから365kbに増加した。 

 

 


テストラン

ubuntu18.04LTSでcondaの仮想環境を作ってテストした(docker使用、ホストmacos10.1.4)。

本体 Github

https://github.com/BGI-Qingdao/TGS-GapCloser

#bioconda
conda create -n TGSgapcloser python=3.7 -y
conda activate TGSgapcloser
conda install -c bioconda tgsgapcloser -y

#from source
git clone https://github.com/BGI-Qingdao/TGS-GapCloser.git
cd TGS-GapCloser/
git submodule init
git submodule update
cd main_src_ont/
make -j
cd ../

minimap2がなければシンボリックリンクを張る。

ln -s <PATh>/<TO>/minimap2 TGS-GapCloser/minimap2/

 > tgsgapcloser

$ tgsgapcloser 

INFO  :   Run tgsgapcloser from /Users/kazu/miniconda3/envs/TGSgapcloser/bin ;

          Version : 1.1.1 ;

          Release time : 2019-12-31 .

 

 

INFO  :   Parsing args starting ...

Usage:

      tgsgapcloser    --scaff SCAFF_FILE --reads TGS_READS_FILE --output OUT_PREFIX [options...]

      required :

          --scaff     <scaffold_file>      the input scaffold file.

          --reads     <tgs_reads_file>     the input TGS reads file.

          --output    <output_prefix>      the output prefix.

      part required :  

          --ne                             do not error correct. error correct by default.

          or

          --racon     <racon>              the installed racon.

          or

          --ngs       <ngs_reads>          the ngs reads used for pilon

          --pilon     <pilon>              the installed pilon.

          --samtools  <samtools>           the installed samtools.

          --java      <java>               the installed java.

      optional:

          --tgstype   <pb/ont>             TGS type . ont by default.

          --min_idy   <min_idy>            min_idy for filter reads .

                                           0.3 for ont by default.

                                           0.2 for pb by default.

          --min_match <min_idy>            min match length for filter reads .

                                           300bp for ont by default.

                                           200bp for pb by default.

          --thread    <t_num>              thread uesd . 16 by default.

          --chunk     <chunk_num>          split candidate into chunks to error-correct separately.

          --pilon_mem <t_num>              memory used for pilon , 300G for default.

          --p_round   <pilon_round>        pilon error-correction round num . 3 by default.

          --r_round   <racon_round>        racon error-correction round num . 1 by default.

          --g_check                        gapsize diff check , none by default.

 

実行方法

第3世代のロングリードを指定する。エラー修正済みのリードを使う場合、"--ne"フラグを立ててランするとエラー修正をオフにできる。

TGS-GapCloser.sh --scaff scaffold.fasta --reads long-reads.fasta \
--output output_dir --ne

 

raocnを使いエラー修正してギャップクローズする。

TGS-GapCloser.sh --scaff scaffold.fasta --reads long-reads.fasta \
--output output_dir \
--racon racon-path/bin/racon

 

ショートリードでエラー修正してギャップクローズする。

TGS-GapCloser.sh --scaff scaffold.fasta long-reads.fasta \
--output output_dir \
--pilon <pilon-path>/pilon-1.23.jar \
--ngs illumina.reads.fastq.gz \
 --samtools <path>/<to>/samtools \
--java <java-pat>h/bin/java

 

テストラン

cd TGS-GapCloser/
make -j
cd example/
../TGS-GapCloser.sh --scaff input.scaff.fasta --reads ont.reads.fasta --output out --pilon ../pilon-1.23.jar --ngs ngs.reads.fastq --samtools /root/anaconda3/bin/samtools --java /root/anaconda3/bin/java

*他のプログラムはcondaを使ってanaconda/binに導入した。

 

              -      -   round 2 end. 

              -   3.B.2 , merge chunk results ... 

 

INFO  :   Step 3 , done .

 

INFO  :   Step 4 , gap filling ... 

              -   Use out.ont.pilon.fasta as final TGS READS input

              -   4,1 , mapping contig into reads ... 

              -   4,2 , extra filling seq ... 

 

引用

TGS-GapCloser: fast and accurately passing through the Bermuda in large genome using error-prone third-generation long reads

Mengyang Xu, Lidong Guo, Shengqiang Gu, Ou Wang, Rui Zhang, Guangyi Fan, Xun Xu, Li Deng, Xin Liu

bioRxiV, Posted November 05, 2019

 

TGS-GapCloser: A fast and accurate gap closer for large genomes with low coverage of error-prone long reads
Mengyang Xu, Lidong Guo, Shengqiang Gu, Ou Wang, Rui Zhang, Brock A Peters, Guangyi Fan, Xin Liu, Xun Xu, Li Deng, Yongwei Zhang
GigaScience, Volume 9, Issue 9, 1 September 2020

公開されている真核生物アセンブリを分析する BlobToolKit

 2020 6/15 追記

 

 種の起源について不可知なシーケンスデバイスによって作成されたシーケンシングデータから標的ゲノムを再構築する場合、汚染された DNA によって混同される可能性がある。サンプル処理中に混入した場合でも、標的DNAとの共抽出によって混入した場合でも、アセンブルプロセス中に十分な注意を払わなければ、最終的にアセンブルされたゲノムは複数の種からのデータの混合物になる可能性がある。そのようなアセンブリは、配列ベースの生物学的推論を混乱させる可能性があり、公開データベースに寄託された場合、根本的な問題に気づかないユーザーによって下流の解析に含まれる可能性がある。ブラウザベースのビューアで完全に再現可能なインタラクティブな探索のためのアセンブリファイル、リードファイル、解析ファイルを処理するBlobToolKitを紹介する。BlobToolKitはアセンブリ中に非ターゲットDNAをフィルタリングするために使用でき、研究者が高い生物学的信頼性を持ったアセンブリ配列を生成するのに役立つ。我々(著者ら)は、 International Nucleotide Sequence Data Collaboration で公開されている真核生物アセンブリにて自動化されたBlobToolKitパイプラインを実行しており、その結果を https://blobtoolkit.genomehubs.org/view の公開インスタンスを通して利用可能にしている。我々(著者ら)は、公開されているすべてのゲノムの解析を完了させ、新しいゲノムの流れに合わせて、その流れを維持することを目的としている。これらの見解をEuropean Nucleotide Archiveのゲノムアセンブリの表示に組み込むことで、公開されている記録と並んでアセンブリーの品質を示す指標を提供し、ビューアでの完全な探索を可能にするためのリンクを提供する。

 

HP

https://blobtoolkit.genomehubs.org

viewer

https://blobtoolkit.genomehubs.org/btk-viewer/

Viewer Tutorials

https://blobtoolkit.genomehubs.org/btk-viewer/viewer-tutorials/

help

https://blobtoolkit.genomehubs.org/view/Nematoda/dataset/ANCG01/cumulative#Help

 

ここではビューアを紹介します。コマンドラインで動作するBlobTools2は別に紹介します。

https://blobtoolkit.genomehubs.org/blobtools2/

 

web viewer

https://blobtoolkit.genomehubs.org/view/Nematoda/dataset/ANCG01/cumulative#Datasets にアクセスする。

f:id:kazumaxneo:20200323213342p:plain

 

"all"で検索すると利用可能な全データが確認できる。

2272 dataset 利用可能

f:id:kazumaxneo:20200323213838p:plain

 

"Oryza sative japonica"と検索してみる。

f:id:kazumaxneo:20200323214522p:plain

4つのアクセッションがヒットした。

f:id:kazumaxneo:20200323214541p:plain

 

クリックするとそのゲノムアセンブリ評価ページにジャンプする。

f:id:kazumaxneo:20200323215056p:plain

 

N50が最大のアクセッションを選択する。大半はストレプト植物 だが、それ以外のtaxonomyがアサインされた配列も見つかる。

f:id:kazumaxneo:20200323215241p:plain

 

左側のphylumレベルからストレプト植物 をオフにしてみた。

f:id:kazumaxneo:20200323215357p:plain

ストレプト植物 のアセンブリが除かれ、Virus-undefがアサインされた配列が強調された。40Mbpほどある。

 

現在はアセンブリ累積長だが、左上のメニューから表示内容を切り替え可能。

f:id:kazumaxneo:20200323221849p:plain

 

busco

f:id:kazumaxneo:20200323220320p:plain

detail

f:id:kazumaxneo:20200323220338p:plain

snail

f:id:kazumaxneo:20200323220433p:plain

 

table

f:id:kazumaxneo:20200323220448p:plain

 

categoryでソートしてvirus undefのcontigを視覚化してみた。

f:id:kazumaxneo:20200323220655p:plain

contig全長のうち、特定の領域だけがvirus undefとアサインされていることが分かる。

 

report(全部)

f:id:kazumaxneo:20200323220505p:plain

 

 

blobplotが利用できるデータもある。

f:id:kazumaxneo:20200323221941p:plain

 

settingのタブからは作図のパラメータを変更できる。

f:id:kazumaxneo:20200323215712p:plain

 詳細はhelpから確認してください。

 

追記

taxaから辿ることもできます。

https://blobtoolkit.genomehubs.org/view/

f:id:kazumaxneo:20200615163019p:plain

()内の数値をクリックして展開していく。0になったら1つもゲノムがないということ。

引用

BlobToolKit - Interactive Quality Assessment of Genome Assemblies
Richard Challis, Edward Richards, Jeena Rajan, Guy Cochrane, Mark Blaxter
G3: GENES, GENOMES, GENETICS Early online February 18, 2020

 

関連

http://kazumaxneo.hatenablog.com/entry/2017/09/11/232442

medakaを使ってコンセンサスコールを行う

2020 3/23 コマンドの間違いを修正

2020 3/24 説明追記

2020 10/10 ツイート追記

 

 Documentation

 

 

特徴

  • basecallされたデータのみ必要(.fastaまたは.fastq)
  • グラフベースのメソッド(Raconなど)よりも精度が向上
  • Nanopolishよりも50倍高速(GPU実行できるため)
  • オーダーメイドの補正ネットワーク実装とトレーニングのための追加機能
  • オープンソースMozilla Public License 2.0)

 

 

インストール

Linuxで動作する。ここではbiocondaを使ってubuntu18.04LTSに導入した(docker使用、GPU未使用)。

  • gcc
  • zlib1g-dev
  • libbz2-dev
  • liblzma-dev
  • libffi-dev
  • libncurses5-dev
  • make
  • wget
  • python3-all-dev
  • python-virtualenv

本体 Github

#bioconda (link)
#ここでは仮想環境medaka-envにmedakaを導入する。
conda create -n medaka-env -y
conda activate medaka-env
conda install -c conda-forge -c bioconda -y medaka

#pip
pip install medaka
#To enable the use of GPU resource it is necessary to install the
#tensorflow-gpu package. In outline this can be achieve with:
pip uninstall tensorflow
pip install tensorflow-gpu
#note that The tensorflow-gpu GPU package is compiled against a specific version of the NVIDIA CUDA library; users are directed to the tensorflow installation pages for further information.

medaka -h

$ medaka -h

usage: medaka [-h] [--version]

              {compress_bam,features,train,consensus,smolecule,consensus_from_features,fastrle,stitch,variant,snp,methylation,tools}

              ...

 

optional arguments:

  -h, --help            show this help message and exit

  --version             show program's version number and exit

 

subcommands:

  valid commands

 

  {compress_bam,features,train,consensus,smolecule,consensus_from_features,fastrle,stitch,variant,snp,methylation,tools}

                        additional help

    compress_bam        Compress an alignment into RLE form.

    features            Create features for inference.

    train               Train a model from features.

    consensus           Run inference from a trained model and alignments.

    smolecule           Create consensus sequences from single-molecule reads.

    consensus_from_features

                        Run inference from a trained model on existing

                        features.

    fastrle             Create run-length encoded fastq (lengths in quality

                        track).

    stitch              Stitch together output from medaka consensus into

                        final output.

    variant             Decode probabilities to VCF.

    snp                 Decode probabilities to SNPs.

    methylation         methylation subcommand.

    tools               tools subcommand.

様々なサブコマンドが利用できるが、ここではconsensusのみ記載。

medaka consensus -h

$ medaka consensus -h

usage: medaka consensus [-h] [--debug | --quiet] [--batch_size BATCH_SIZE]

                        [--regions REGIONS [REGIONS ...]]

                        [--chunk_len CHUNK_LEN] [--chunk_ovlp CHUNK_OVLP]

                        [--model MODEL] [--disable_cudnn] [--threads THREADS]

                        [--check_output] [--save_features]

                        [--tag_name TAG_NAME] [--tag_value TAG_VALUE]

                        [--tag_keep_missing]

                        bam output

 

positional arguments:

  bam                   Input alignments.

  output                Output file.

 

optional arguments:

  -h, --help            show this help message and exit

  --debug               Verbose logging of debug information. (default: 20)

  --quiet               Minimal logging; warnings only). (default: 20)

  --batch_size BATCH_SIZE

                        Inference batch size. (default: 100)

  --regions REGIONS [REGIONS ...]

                        Genomic regions to analyse, or a bed file. (default:

                        None)

  --chunk_len CHUNK_LEN

                        Chunk length of samples. (default: 10000)

  --chunk_ovlp CHUNK_OVLP

                        Overlap of chunks. (default: 1000)

  --model MODEL         Model definition, default is equivalent to

                        r941_min_high_g344. {r941_min_fast_g303,

                        r941_min_high_g303, r941_min_high_g330,

                        r941_min_high_g344, r941_prom_fast_g303,

                        r941_prom_high_g303, r941_prom_high_g344,

                        r941_prom_high_g330, r10_min_high_g303,

                        r10_min_high_g340, r103_min_high_g345,

                        r941_prom_snp_g303, r941_prom_variant_g303,

                        r941_min_high_g340_rle} (default:

                        /Users/kazu/anaconda3/envs/medaka-

                        env/lib/python3.6/site-

                        packages/medaka/data/r941_min_high_g344_model.hdf5)

  --disable_cudnn       Disable use of cuDNN model layers. (default: False)

  --threads THREADS     Number of threads used by inference. (default: 1)

  --check_output        Verify integrity of output file after inference.

                        (default: False)

  --save_features       Save features with consensus probabilities. (default:

                        False)

 

filter tag:

  Filtering alignments by an integer valued tag.

 

  --tag_name TAG_NAME   Two-letter tag name. (default: None)

  --tag_value TAG_VALUE

                        Value of tag. (default: None)

  --tag_keep_missing    Keep alignments when tag is missing. (default: False)

 

medaka_consensus -h

$ medaka_consensus -h

 

medaka 0.11.5

------------

 

Assembly polishing via neural networks. The input assembly should be

preprocessed with racon.

 

medaka_consensus [-h] -i <fastx>

 

    -h  show this help text.

    -i  fastx input basecalls (required).

    -d  fasta input assembly (required).

    -o  output folder (default: medaka).

    -m  medaka model, (default: r941_min_high_g344).

        Available: r941_min_fast_g303, r941_min_high_g303, r941_min_high_g330, r941_min_high_g344, r941_prom_fast_g303, r941_prom_high_g303, r941_prom_high_g344, r941_prom_high_g330, r10_min_high_g303, r10_min_high_g340, r103_min_high_g345, r941_prom_snp_g303, r941_prom_variant_g303, r941_min_high_g340_rle.

        Alternatively a .hdf file from 'medaka train'.

    -f  Force overwrite of outputs (default will reuse existing outputs).

    -t  number of threads with which to create features (default: 1).

    -b  batchsize, controls memory use (default: 100).

 

 

実行方法

canuやminiasm+raconで作成したraw de novo aasemblyを入力とする。 oxford nanopoporeが想定しているのはraconでポリッシュしたアセンブリ配列となる。

medaka_consensus -i basecalled.fa -d draft-assembly.fa -o output
  • -i     fastx input basecalls (required).
  • -d    fasta input assembly (required).
  • -o    output folder (default: medaka).
  • -m    Model definition (default: r941_min_high_g344_model.hdf5)

 結果は指定したディレクトリに出力される。

 

引用 

medaka/README.md at master · nanoporetech/medaka · GitHub

 

関連


 

 

 

 

 

 

単離バクテリアゲノムのアセンブリ、アノテーション、比較ゲノム解析を行う高度に自動化されたパイプライン ASA3P

2020 3/22 ツイート、関連ツールリンク追記

2020 3/25 コメント追記

2020 3/26 誤字修正

2020 5/12 インストール追記

 

 1977年に、DNAシーケンスがフレデリックサンガーによってサイエンスコミュニティに導入された[ref.1]。それ以来、DNAシーケンスは、ジデオキシチェーンターミネーションから数百万の短いDNAフラグメントのハイスループットシーケンス、そして最終的にDNA1分子のリアルタイムシーケンスに至るまでの長い道のりを歩んできた[ref.2,3]。いわゆる次世代シーケンシング(NGS)と第三世代シーケンシングの技​​術により、時間とコストが大幅に削減され、公的に利用可能なゲノムが爆発的に増加した。 1995年に、M. genitaliumH. influenzaeの最初の細菌ゲノムが公開された[ref.4,5]。現在(2020年)、NCBI RefSeqデータベースリリース93には、54,85​​4の異なる細菌ゲノムが含まれている[ref.6]。 NGSテクノロジーの成熟により、細菌の全ゲノムシーケンス(WGS)の骨の折れる作業は単純なルーチン[ref.7]に変わり、今日では数時間以内に実行可能になった[ref.8]。

 シーケンシングプロセスはもはや制限要因ではないため、焦点は単一ゲノムのより深い分析、および例えば細菌集団の多様性と遺伝的景観を促進する遺伝的メカニズムを解明するため、臨床から単離された菌を比較ゲノムで解析する[ref.9]。細菌を包括的に特徴付けることは、環境微生物学および医学微生物学を含む多くの応用分野で望ましい必須の課題になっている[ref.10]。最近の世界的な多剤耐性菌の急増により、適切な対策を講じなければ、2050年には抗菌剤耐性菌のみの感染により毎年最大1,000万人が死亡する可能性がある[ref.11]。したがって、多数の細菌ゲノムのシーケンシングとタイムリーな特性評価は、アウトブレイク検出の成功、新しい病原菌の適切なサーベイランス、抗生物質耐性遺伝子の広がりのサーベイランスのための重要な要素である[ref.12]。比較分析により、病原性および抗生物質耐性菌の蔓延を防ぐための新規治療薬ターゲットの特定につながる可能性がある[ref.13-16]。

 微生物ゲノムシーケンシングのための別の非常に有望で重要な応用分野は、現代のバイオテクノロジーである。基礎となるゲノム機構のより深い知識により、遺伝子および細菌ゲノム全体の遺伝子工学は、複雑な化学物質生産[ref.17]、価値のある薬物の合成、およびバイオ燃料[ref.21]、毒素および廃棄物の除染および分解[ref.22,23]、ならびに腐食保護[ref.24]など、膨大な用途を持つ生物化学工場に遺伝子を変換するための不可欠なツールとなっている[ref.18-20]。

 現在、WGSの技術的障壁が低下したため、ゲノミクスは最終的にビッグデータサイエンス[ref.25]に変わり、新しい問題と課題を誘発した[ref.26]。これらの開発に対応するには、以下の問題に関して継続的な努力が必要であると考えている。

a)Automation:手動分析を繰り返すと時間がかかり、エラーが発生しやすくなる。よく知られている「繰り返さない」というマントラと、パレートの法則に従って、科学者はデータ処理タスクを繰り返すことなく、データ分析の興味深い有望な側面に集中できるはずである。

b)Standard operating procedures (SOPs):高スループットのデータ作成と生物情報ツールの複雑な組み合わせの世界では、再現性と比較可能性の両方を向上させ維持するためにSOPが不可欠である[ref.27, pubmed]。

c)Scalability:利用可能なデータに対応するために、バイオインフォマティクスソフトウェアは最新のコンピューティングテクノロジーを活用する必要がある。e.g. マルチスレッドとクラウドコンピューティングなど。

 これらの問題に対処するために、近年、NCBI Prokaryotic Genome Annotation Pipeline (PGAPのこと)[ref.6]、RAST [ref.28]、およびPATRIC [ref.29]など、原核生物ゲノムの自動アノテーションおよび分析のためのいくつかの主要なプラットフォームが進化した。 3つすべてが高度なゲノム解析アノテーションパイプラインを提供し、アノテーション品質の点で事実上のコミュニティ標準を提示している。さらに、いくつかのオフラインアノテーションツール、たとえばProkka [ref.30]は、前述のオンラインツールの主要な欠点に対処するために公開されている。つまり、ローカルコンピュータまたはon-premises(wiki)のクラウドコンピューティング環境では実行できない。ただし、細菌のWGSデータの包括的な分析は、アノテーションだけのプロセスに限定されず、生データのシーケンス技術に依存する前処理とその後の特性評価ステップも必要である。細菌分離株およびコホートの分析は近い将来多くの応用分野で標準的な方法となるため、洗練されたローカルアセンブリアノテーション、および高レベルの分析パイプラインの需要は絶えず高まっている。さらに、DNAシーケンスにポータブルデバイスを使用すると、分析がセントラルのソフトウェアインストールから分散型オフラインツールまたはスケーラブルなクラウドソリューションに移行すると考えられる。著者の知る限り、現在、前述のすべての問題に対処するバイオインフォマティクスソフトウェアツールは公開されていない。このボトルネックを克服するために、 closely related細菌な単離株のアセンブリアノテーション付け、および高レベル分析のための自動でスケーラブルなソフトウェアパイプラインであるASA3Pを導入する。

 ASA3Pは、Java仮想マシン用の動的スクリプト言語であるGroovy(http://groovy-lang.org)のモジュラーコマンドラインツールとして実装されている。幅広い細菌属、シーケンシング技術、およびシーケンシングの深さで可能な限り最高の結果を達成するために、ASA3Pは、リーンでスケーラブルな実装の観点から利用可能かつ適用可能な場合はいつでも、公開された高性能のバイオインフォマティクスツールを組み込み、利用する。パイプラインは、より専門的な分析の前処理ツールとしても使用されることを意図しているため、設計によりユーザーが調整可能なパラメーターを提供しないため、堅牢なSOPの実装が容易になる。したがって、使用される各ツールは、コミュニティのベストプラクティスと知識(論文S1 table)に従ってパラメーター化される。

 データ生成に使用されたシーケンステクノロジーに応じて、ASA3Pは適切なツールとパラメーターを自動的に選択する。各ツールにどのツールが選択されたかの説明は、S2表に記載されている。意味的に、パイプラインのワークフローは4つの段階に分かれている(論文図1)。最初の必須ステージA(論文図1A)では、提供された入力データが処理され、アノテーション付きゲノムが作成される。したがって、生のシーケンシングリードはFastQC(https://github.com/s-andrews/FastQC)、FastQ Screen(https://www.bioinformatics.babraham.ac.uk/projects/fastq_screen)、 Trimmomatic [ref.31]およびFiltlong(https://github.com/rrwick/Filtlong)で品質管理される。フィルタリングされたリードは、イルミナのシーケンシングリードの場合はSPAdes [ref.32]、Pacific Bioscience(PacBio)の場合はHGAP 4 [ref.33]、Oxford Nanopore Technology(ONT)の場合はUnicycler [ref.34]を介してそれぞれアセンブリされる。イルミナとONTのリードのハイブリッドアセンブリも、Unicyclerを介して実行される。アセンブリされたゲノムにProkka [ref.30]でアノテーションを付ける前に、コンティグは再参照され、マルチリファレンススキャフォールダーMeDuSa [ref.35]を介して順序付けられる。後続のシュードゲノムのアノテーションのために、ASA3Pは、ビニングされたRefSeqゲノム[ref.6]に基づくカスタム属固有のデータベースと、特殊なタンパク質データベース、つまりCARD [ref.36]およびVFDB [ref.37]を使用する。公開または外部で分析されたゲノムを統合するために、ASA3Pは、コンティグ、スキャホールド、アノテーション付きゲノムなど、さまざまなタイプの前処理されたデータを組み込むことができる。

 

 

f:id:kazumaxneo:20200314210610p:plain

Githubより転載

 

インストール

本体 Github

サンプル数が200以下のスモールデータセットの場合、解析の再現性とツール全体の可搬性を考えてdockerイメージを利用することが提案されている。

#dockerhub (link)ここではlatestではなくテストランの:v1.2.2を入れる。
docker pull oschwengers/asap:v1.2.2

#2020 5/12追記
#test runで一部サンプルのみエラーが出たため、2020 5/12時点のlatestに変更した。
docker pull oschwengers/asap:latest

 

テストラン

1、データベースの準備。圧縮状態で71GBほどあるので注意。

( コメント;途中でdisconnectして何回かダウンロードに失敗しました。バイト指定での再開はできなかったため、太い回線で10回ほど自動で繰り返し、ようやくダウンロードできました。) 

wget https://zenodo.org/record/3606300/files/asap.tar.gz?download=1
tar -xzf asap.tar.gz?download=1
rm asap.tar.gz

wget https://zenodo.org/record/3606761/files/example-lmonocytogenes-4.tar.gz?download=1
tar -xzf example-lmonocytogenes-4.tar.gz?download=1
rm example-lmonocytogenes-4.tar.gz

 

 

2、 実行。docker用のラッパースクリプトが同梱されているので、それをランする。

asap/asap-docker.sh -p example-lmonocytogenes-4/
  •  -p    mandatory: path to the actual project directory (containing config.xls and data directory)

指定したテストデータディレクトリexample-lmonocytogenes-4/は、ラン前で以下のようになっている。

f:id:kazumaxneo:20200322001950p:plain

Githubに解説があるが、example-lmonocytogenes-4/は以下のようなディレクトリ構造になっている(図はGihtubから)。

f:id:kazumaxneo:20200322002211p:plain

config.xlsは2つのシートからなる。GithubのPDFマニュアルに詳細があるが、シート;Projectではプロジェクト名、ユーザー名、リファレンスゲノムファイル名などを記載する。

f:id:kazumaxneo:20200322002631p:plain

シート;Strainsではシーケンシングデータの種類(illumina、pacbio、ONTに対応)、fastqファイル名などを記載する。

f:id:kazumaxneo:20200322002635p:plain

 

出力

f:id:kazumaxneo:20200322003238p:plain

report

f:id:kazumaxneo:20200322003351p:plain

 

assembly

f:id:kazumaxneo:20200322003431p:plain

annotation

f:id:kazumaxneo:20200322003438p:plain

taxonomic classification

f:id:kazumaxneo:20200322003550p:plain

MLST

f:id:kazumaxneo:20200322003553p:plain

Antibiotic Resistances

f:id:kazumaxneo:20200322003827p:plain

Reference Mapping

f:id:kazumaxneo:20200322003832p:plain

SNP Detection

f:id:kazumaxneo:20200322003843p:plain

Core/Pan Genome

f:id:kazumaxneo:20200322003849p:plain

f:id:kazumaxneo:20200322003854p:plain

Phylogeny

f:id:kazumaxneo:20200322003855p:plain

 

それぞれのレポートは、左上(または右上)のDashboardボタンからグラフにして見ることができるようになっている。下はアセンブリ結果。

f:id:kazumaxneo:20200322004343p:plain

 


数百、数千のバクテリアの分析のため、ASA3PはSGEの計算機クラスタでも最低限の手間で導入、利用できるようになっている。詳細はGIhtubで確認して下さい。

引用

ASA3P: An automatic and scalable pipeline for the assembly, annotation and higher level analysis of closely related bacterial isolates
Oliver Schwengers , Andreas Hoek, Moritz Fritzenwanker, Linda Falgenhauer, Torsten Hain, Trinad Chakraborty , Alexander Goesmann
PLOS Computational Biology , Published: March 5, 2020

https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1007134

 

関連


 

 

 

WGSのリードから倍数体ゲノムのゲノムサイズやヘテロ接合度を推定する GenomeScope 2.0

2020 3/21 コマンドの修正と結果追記、タイトル修正、誤字修正

2020 3/23 誤字修正

 

 ゲノムシーケンシングは、現代の分子生物学の不可欠な部分となっている。ただし、利用可能な分析方法の大半は、染色体レベルのリファレンスゲノムと詳細なアノテーションがすぐに利用できる確立されたモデル生物向けに設計されている。対照的に、非モデル生物のゲノムアセンブリは、断片化されている、不完全である、または存在しないことがよくある。さらに、モデル生物は通常、比較的複雑さが控えめで、通常、比較的遺伝的多様性が低く、リピートが少ない半数体または二倍体種でである。逆に、非モデル種はしばしば倍数性が高いか、ヘテロ接合率が高いため、分析が実質的に困難である。結果として、倍数体種または他の異常なゲノム構造を持つ種は、ゲノミクス研究の中で非常に過小評価されている。

 これは、そのような研究から収集できる生物学的洞察の一般性を低下させる。倍数体は、特に植物や菌類の間で一般的であることが知られている。リンゴ、バナナ、ジャガイモ、イチゴ、小麦など人間の消費と使用に不可欠な多くの一般的な作物を含む開花植物の70%以上は倍数体である。より高い倍数性レベルは、多くの真菌種でも実証されている(ref.3, link)。動物の倍数体はこれらの他の分類群ほど一般的ではないが、多くの

種のカエル、魚、甲殻類、軟体動物、および多くの線虫を含み、珍しいものではない。倍数体作物の主要な害虫である線虫種も偶然ではあるが倍数体である。より一般的には、倍数体化イベントはゲノム進化に重要な結果をもたらす。したがって、倍数体がゲノムおよび種の進化にどのように影響するかを理解するには、断片化された倍数体ゲノムを分析するツールの開発が不可欠である。

 倍数体ゲノムを分析する方法は、通常、リードを一倍体リファレンスにマッピングすることに依存している。ただし、完全な半数体のリファレンスを取得することは通常、困難な作業である。種の基本的なゲノムの特徴が不明な場合(サイズ、ヘテロ接合性、倍数性など)、ゲノムアセンブリにはさらに複雑なレイヤーがある。二倍体生物のコンテキストでは、ゲノムサイズとヘテロ接合または反復性とヘテロ接合を含む、アセンブリされていないシーケンシングリードから直接ゲノム特性を推定するためのいくつかの計算アプローチが開発された。ただし、これらのアプローチはいずれも倍数体ゲノムをモデル化しない。

 以前に、GenomeScopeを導入した。これは、k-merスペクトラムとも呼ばれる、アセンブルされていないリードのk-merの統計分析を使用した、二倍体ゲノムのリファレンスフリー分析である。ここでは、GenomeScope 2.0を紹介する。GenomeScope2.0は、このアプローチを倍数体対応の混合モデルで拡張し、アセンブリされていないシーケンスデータからゲノムの特性を計算的に推測する。 GenomeScope 2.0は、負の混合二項分布をシーケンスデータのk-merスペクトルに適合させ、より高い倍数性レベルでk-merをキャプチャする追加コンポーネントを備えている。種の分析をさらに支援するために、非モデル生物ではしばしば未知である倍数性を推定するためのゲノム構造の視覚化技術であるSmudgeplotも開発している。これらのツールが、シミュレートされた倍数体ゲノムのアンサンブルといくつかの実際の倍数体ゲノムからのシーケンスデータを迅速かつ正確に分析することを示す(分析された11種の要約については、論文補足表1を参照)。これらのツールは、ゲノムアセンブリの評価と解釈を改善するために使用でき、倍数体または複雑なゲノムの将来の研究を大幅に支援する。

 

 

インストール

ubuntu18.04LTSでテストした。

KMCかjellyfishでk-merカウントする必要がある。ここではKMC3を導入。

conda install -c bioconda -y kmc

本体 Github

git clone https://github.com/tbenavi1/genomescope2.0.git
cd genomescope2.0/
mkdir ~/R_libs
echo "R_LIBS=~/R_libs/" >> ~/.Renviron
Rscript install.R

./genomescope.R -h

# ./genomescope.R -h

usage: ./genomescope.R [-h] [-v] [-i INPUT] [-o OUTPUT] [-p PLOIDY]

                       [-k KMER_LENGTH] [-n NAME_PREFIX] [-l LAMBDA]

                       [-m MAX_KMERCOV] [--verbose] [--no_unique_sequence]

                       [-t TOPOLOGY]

                       [--initial_repetitiveness INITIAL_REPETITIVENESS]

                       [--initial_heterozygosities INITIAL_HETEROZYGOSITIES]

                       [--transform_exp TRANSFORM_EXP] [--testing]

                       [--true_params TRUE_PARAMS] [--trace_flag]

                       [--num_rounds NUM_ROUNDS]

 

optional arguments:

  -h, --help            show this help message and exit

  -v, --version         print the version and exit

  -i INPUT, --input INPUT

                        input histogram file

  -o OUTPUT, --output OUTPUT

                        output directory name

  -p PLOIDY, --ploidy PLOIDY

                        ploidy (1, 2, 3, 4, 5, or 6) for model to use [default

                        2]

  -k KMER_LENGTH, --kmer_length KMER_LENGTH

                        kmer length used to calculate kmer spectra [default

                        21]

  -n NAME_PREFIX, --name_prefix NAME_PREFIX

                        optional name_prefix for output files

  -l LAMBDA, --lambda LAMBDA, --kcov LAMBDA, --kmercov LAMBDA

                        optional initial kmercov estimate for model to use

  -m MAX_KMERCOV, --max_kmercov MAX_KMERCOV

                        optional maximum kmer coverage threshold (kmers with

                        coverage greater than max_kmercov are ignored by the

                        model)

  --verbose             optional flag to print messages during execution

  --no_unique_sequence  optional flag to turn off yellow unique sequence line

                        in plots

  -t TOPOLOGY, --topology TOPOLOGY

                        ADVANCED: flag for topology for model to use

  --initial_repetitiveness INITIAL_REPETITIVENESS

                        ADVANCED: flag to set initial value for repetitiveness

  --initial_heterozygosities INITIAL_HETEROZYGOSITIES

                        ADVANCED: flag to set initial values for nucleotide

                        heterozygosity rates

  --transform_exp TRANSFORM_EXP

                        ADVANCED: parameter for the exponent when fitting a

                        transformed (x**transform_exp*y vs. x) kmer histogram

                        [default 1]

  --testing             ADVANCED: flag to create testing.tsv file with model

                        parameters

  --true_params TRUE_PARAMS

                        ADVANCED: flag to state true simulated parameters for

                        testing mode

  --trace_flag          ADVANCED: flag to turn on printing of iteration

                        progress of nlsLM function

  --num_rounds NUM_ROUNDS

                        ADVANCED: parameter for the number of optimization

                        rounds

 

 

実行方法

1、k-merカウントする。KMCやjellyfishが使える。ここでは KMC3を使う。fastqはgzip圧縮されていても、解凍してあってもOK。リスト指定しない場合、ペアエンドなどのfastqはあらかじめ結合しておく(cat pair*.fq.gz > concatenated.fq.gz)。fastqの場合は”-fq”、fastaの場合は"-fa"フラグを立ててファイルを指定する。

mkdir working_dir
kmc -k21 -m32 -ci1 -fq input.fq.gz database working_dir
  • -f<a/q/m>     input in FASTA format (-fa), FASTQ format (-fq) or multi FASTA (-fm); default: FASTQ
  • -ci     exclude k-mers occurring less than <value> times (default: 2)
  • -m    max amount of RAM in GB (from 1 to 1024); default: 12
  • -k     k-mer length (k from 1 to 256; default: 25)
  • -t      total number of threads (default: no. of CPU cores)

database.kmc_preとdatabase.kmc_sufが出力される。21-merはラージゲノムにおいてもユニークな長さが期待できる十分な長さで、十分な頻度出現すると期待されるため推奨値となっている。半数体で10Gbを超すようなより大きなゲノムでは、より大きなk-mer値を検討する必要があるかもしれない。

 

2、histgramファイルを出力する。database.~はdatabaseと指定すれば認識する。

kmc_tools transform database histogram reads.histo -cx10000
  • -cx     exclude k-mers occurring more of than <value> times

 

3、genomescopeの実行。ここでは2倍体を指定。

./genomescope.R -i reads.histo -o output_dir2 -k 21 -p 2
  • -k   kmer length used to calculate kmer spectra [default 21]
  • -i     input histogram file
  • -o   output directory name
  • -p   ploidy (1, 2, 3, 4, 5, or 6) for model to use [default 2]

 

3の視覚化はオンラインでも行うことができる。使用したk-mer長、ploidy、primary peakの値などを記載してランする。

http://qb.cshl.edu/genomescope/genomescope2.0/

f:id:kazumaxneo:20200320213142p:plain

Rを使えない環境ならweb版は重宝します。コピー数の多いオルガネラゲノムのカバレッジピークが混ざると推定値に大きな誤差が出る可能性がある。よって、データによってはmax k-mer coverageを指定し、ハイコピーなオルガネラゲノムのピークを除いて計算する。

 

シロイヌナズナのillumina シーケンシングデータ(ERR2173372)を2倍体設定で分析してみた。論文の例ほど顕著ではないが、主要なピークの左側に肩があり、ヘテロ接合性の領域の配列と推測される(観測値にはない)。AA=99.6%、AB=0.383%だった。

f:id:kazumaxneo:20200321104839p:plain 

f:id:kazumaxneo:20200321104840p:plain

x軸が対数の図も出力される。unique sequence(黄色)外のモデルにフィッティングしきっていない右側の肩部分がrepettitive sequence由来ピークと思われる。

f:id:kazumaxneo:20200321113345p:plain

理論モデルへのフィッティング率も表示される。

f:id:kazumaxneo:20200321104915p:plain

Haploidゲノムサイズは117.6-Mbpとなった。

f:id:kazumaxneo:20200321112636p:plain

GenomeScope2を走らせる時に、何倍体かの指定を間違えると推定値が変わってしまう。そもそも倍数性が不明で、何倍体であるか、また異質倍数体か同質倍数体かを推測したいなら、先にsmudgeplotを使用する。

 

 

GenomeScope 2.0は6倍体ゲノムまでのゲノムサイズ推定を行うことができる。ただし、aneuploid cancer genomesなどの性染色体数が不均等なゲノムサイズの推定には適していない(Q&Aより)。 その他、モデル適合のためには半数体ゲノムの15倍のシーケンシングデータが必要であること、ONTやPacbioはエラー率が高く(数十塩基ごとにエラーが発生する)、GenomeScope 2.0では利用できないことに注意して下さい。

引用

GenomeScope 2.0 and Smudgeplot for reference-free profiling of polyploid genomes

T. Rhyker Ranallo-Benavidez, Kamil S. Jaron & Michael C. Schatz
Nature Communications volume 11, Article number: 1432 (2020)

 

関連