macでインフォマティクス

macでインフォマティクス

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

rawロングリードから直接MLSTタイピングを行う Krocus

2019 4/16 コマンド修正

 

 急速にコストが下がる中、Pacific Biosciences(PacBio)やOxford Nanopore Technologies(ONT)のようなロングリードシークエンシング技術がアウトブレイク調査に使われ始めている(Faria et al、2017; Quick et al、2015)。そして迅速な臨床診断のために(Votintseva et al、2017)。オックスフォードナノポアのロングリードシーケンサーはほんの数分でシークエンスリードを作成でき、PacBioのシーケンサーは数時間でシークエンスを作成することができる。 MLSTは、細菌を分類するために広く使用されている分類システムである。それはアウトブレイクから単離株を迅速に除外するために使用でき、そしてシーケンスタイプ(ST)を知ることはしばしば細菌の一般的な特徴が推測を可能にする。綿棒から実用的な答えまでの時間を短縮することによって、ゲノミクスは臨床決定に直接影響を及ぼし始めることができ、患者に大きなプラスの影響を与える可能性がある(Gardy&Loman、2018)。

 ロングリードシーケンシング技術によって得られる速度の向上に伴い、ベースエラー率が向上している。ロングリードシーケンシングリードに固有の高いエラー率は、リードを修正するための特殊なツールを必要とする(Koren et al、2017)が、これらの方法はシーケンシングデータを生成するために元の時間より実行に時間がかかるかなりの計算リソース要件をしばしば有する。 

 ショートリードシークエンシング技術のためのMLSTソフトウェアの完全な概説は、Page et al. (2017)から入手可能である。 Page et al. (2017)でレビューされているように、入力としてde novoアセンブリをとる方法だけがロングリードシークエンシング技術では使用できる。しかしながら、de novoアセンブリは、後処理のかなりの計算上のオーバーヘッドを有し、それはシーケンスを実行するのにかかる時間を超える可能性がある。 StringMLST(Gupta、Jordan&Rishishwar、2017)は、k-mer分析を実行することによってraw リードセットからMLSTを迅速に予測するように設計されている。 MentaLiST(Feijao et al、2018)は、同様のk-mer分析アプローチを採用しており、cgMLSTやwgMLSTなどの大規模なタイピングスキーム用に設計されている。それらは、高品質のショートリードシーケンシングデータでのみ機能するように設計されていた。本著者らの知る限り、未修正のロングリードシーケンスデータからMLSTをコールする方法は現在存在しない。

 単離株からの未修正ロングリードから直接STを直接推定することができるKrocusを紹介する。結果は、PacBioシークエンシング技術を使用して生成された700を超えるサンプルを含む細菌のロングリードシーケンシングデータの最大の公開データセット、およびONTデータのリアルデータセットとシミュレートデータセットについて調べられた。平均して、それは未補正のPacbioシーケンシングデータについて94%の感度および97%の特異性で90秒で正しい配列STを生成する。大腸菌リファレンスゲノムに基づく524の模擬ONTサンプルからなるデータセットでは、モデル化したフローセルに応じて感度は82〜94%だった。 12 のKlebsiella pneumoniaeのリアルONTデータセットでは、100%の感度が達成された。 Krocusは、未修正のロングリードから直接MLSTを高精度でコールできる唯一のツールである。これは完全にPython3で書かれており、オープンソースライセンスGNU GPL 3の下でhttps://github.com/andrewjpage/krocusから入手できる。

 

f:id:kazumaxneo:20190416003819p:plain

Figure 1: Flowchart of the Krocus method.  論文より転載

 


インストール

依存

  • Python3

To install Python3 on Ubuntu, as root run:(Githubより)

apt-get update -qq
apt-get install -y git python3 python3-setuptools python3-biopython python3-pip
pip3 install krocus

本体 Github

#anacondaを使っているならcondaで
conda install -c bioconda -y krocus

#pipを使うなら
pip3 install krocus

#or latest development version:
pip3 install git+git://github.com/andrewjpage/krocus.git

krocus -h

# krocus -h

usage: krocus [options] allele_directory input.fastq

 

multi-locus sequence typing (MLST) from uncorrected long reads

 

positional arguments:

  allele_directory      Allele directory

  input_fastq           Input FASTQ file (optionally gzipped)

 

optional arguments:

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

  --filtered_reads_file FILTERED_READS_FILE, -f FILTERED_READS_FILE

                        Filename to save matching reads to (default: None)

  --output_file OUTPUT_FILE, -o OUTPUT_FILE

                        Output file [STDOUT] (default: None)

  --max_gap MAX_GAP     Maximum gap for blocks to be contigous, measured in

                        multiples of the k-mer size (default: 4)

  --margin MARGIN       Flanking region around a block to use for mapping

                        (default: 50)

  --min_block_size MIN_BLOCK_SIZE

                        Minimum block size in bases (default: 150)

  --min_fasta_hits MIN_FASTA_HITS, -m MIN_FASTA_HITS

                        Minimum No. of kmers matching a read (default: 10)

  --min_kmers_for_onex_pass MIN_KMERS_FOR_ONEX_PASS

                        Minimum No. of kmers matching a read in 1st pass

                        (default: 10)

  --max_kmers MAX_KMERS, -r MAX_KMERS

                        Dont count kmers occuring more than this many times

                        (default: 10)

  --print_interval PRINT_INTERVAL, -p PRINT_INTERVAL

                        Print ST every this number of reads (default: 500)

  --kmer KMER, -k KMER  k-mer size (default: 11)

  --divisible_by_3, -d  Genes which are not divisible by 3 are excluded

                        (default: False)

  --target_st TARGET_ST

                        For performance testing print time to find given ST

                        (default: None)

  --verbose, -v         Turn on debugging [False]

  --version             show program's version number and exit

> krocus_database_downloader -h

# krocus_database_downloader -h

usage: krocus_database_downloader [options]

 

Download

 

optional arguments:

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

  --list_species, -l    List all available species (default: False)

  --species SPECIES, -s SPECIES

                        Species to download (default: None)

  --output_directory OUTPUT_DIRECTORY, -o OUTPUT_DIRECTORY

                        Output directory (default: mlst_files)

  --verbose, -v         Turn on debugging (default: False)

  --version             show program's version number and exit

 

データベース

利用できるデータセットを確認する。

krocus_database_downloader -l

# krocus_database_downloader -l

Achromobacter spp.

Acinetobacter baumannii#1

Acinetobacter baumannii#2

Aeromonas spp.

Anaplasma phagocytophilum

Arcobacter spp.

Aspergillus fumigatus

Bacillus cereus

Bacillus licheniformis

Bacillus subtilis

Bartonella bacilliformis

Bartonella henselae

Bordetella spp.

Borrelia spp.

Brachyspira hampsonii

Brachyspira hyodysenteriae

Brachyspira intermedia

Brachyspira pilosicoli

Brachyspira spp.

Brucella spp.

Burkholderia cepacia complex

Burkholderia pseudomallei

Campylobacter concisus/curvus

Campylobacter fetus

Campylobacter helveticus

Campylobacter hyointestinalis

Campylobacter insulaenigrae

Campylobacter jejuni

Campylobacter lanienae

Campylobacter lari

Campylobacter sputorum

Campylobacter upsaliensis

Candida albicans

Candida glabrata

Candida krusei

Candida tropicalis

Candidatus Liberibacter solanacearum

Carnobacterium maltaromaticum

Chlamydiales spp.

Citrobacter freundii

Clonorchis sinensis

Clostridium botulinum

Clostridium difficile

Clostridium septicum

Corynebacterium diphtheriae

Cronobacter spp.

Dichelobacter nodosus

Edwardsiella spp.

Enterobacter cloacae

Enterococcus faecalis

Enterococcus faecium

Escherichia coli#1

Escherichia coli#2

Flavobacterium psychrophilum

Gallibacterium anatis

Haemophilus influenzae

Haemophilus parasuis

Helicobacter cinaedi

Helicobacter pylori

Helicobacter suis

Kingella kingae

Klebsiella aerogenes

Klebsiella oxytoca

Klebsiella pneumoniae

Kudoa septempunctata

Lactobacillus salivarius

Leptospira spp.

Leptospira spp.#2

Leptospira spp.#3

Listeria monocytogenes

Macrococcus canis

Macrococcus caseolyticus

Mannheimia haemolytica

Melissococcus plutonius

Moraxella catarrhalis

Mycobacteria spp.

Mycobacterium abscessus

Mycobacterium massiliense

Mycoplasma agalactiae

Mycoplasma bovis

Mycoplasma hyopneumoniae

Mycoplasma hyorhinis

Mycoplasma iowae

Mycoplasma pneumoniae

Mycoplasma synoviae

Neisseria spp.

Orientia tsutsugamushi

Ornithobacterium rhinotracheale

Paenibacillus larvae

Pasteurella multocida#1

Pasteurella multocida#2

Pediococcus pentosaceus

Photobacterium damselae

Piscirickettsia salmonis

Porphyromonas gingivalis

Propionibacterium acnes

Pseudomonas aeruginosa

Pseudomonas fluorescens

Pseudomonas putida

Rhodococcus spp.

Riemerella anatipestifer

Salmonella enterica

Saprolegnia parasitica

Sinorhizobium spp.

Staphylococcus aureus

Staphylococcus epidermidis

Staphylococcus haemolyticus

Staphylococcus hominis

Staphylococcus lugdunensis

Staphylococcus pseudintermedius

Stenotrophomonas maltophilia

Streptococcus agalactiae

Streptococcus bovis/equinus complex (SBSEC)

Streptococcus canis

Streptococcus dysgalactiae equisimilis

Streptococcus gallolyticus

Streptococcus oralis

Streptococcus pneumoniae

Streptococcus pyogenes

Streptococcus suis

Streptococcus thermophilus

Streptococcus thermophilus#2

Streptococcus uberis

Streptococcus zooepidemicus

Streptomyces spp

Taylorella spp.

Tenacibaculum spp.

Treponema pallidum

Trichomonas vaginalis

Ureaplasma spp.

Vibrio cholerae

Vibrio cholerae#2

Vibrio parahaemolyticus

Vibrio spp.

Vibrio tapetis

Vibrio vulnificus

Wolbachia

Xylella fastidiosa

Yersinia pseudotuberculosis

Yersinia ruckeri

Yersinia spp.

例えばSalmonella entericaのデータセットをダウンロードする。

krocus_database_downloader --species "Salmonella enterica" --output_directory Salmonella_enterica

>ls -alh Salmonella_enterica/

# ls -alh Salmonella_enterica/

total 3.2M

drwxr-xr-x 10 root root  320 Apr 15 15:49 .

drwxr-xr-x  6 root root  192 Apr 15 15:48 ..

-rw-r--r--  1 root root 417K Apr 15 15:48 aroC.tfa

-rw-r--r--  1 root root 415K Apr 15 15:48 dnaN.tfa

-rw-r--r--  1 root root 339K Apr 15 15:48 hemD.tfa

-rw-r--r--  1 root root 582K Apr 15 15:49 hisD.tfa

-rw-r--r--  1 root root 145K Apr 15 15:48 profile.txt

-rw-r--r--  1 root root 348K Apr 15 15:49 purE.tfa

-rw-r--r--  1 root root 429K Apr 15 15:49 sucA.tfa

-rw-r--r--  1 root root 489K Apr 15 15:49 thrA.tfa

root@1fd6

 

実行方法

ダウンロードしたデータベースディレクトリと入力のロングリードfastqを指定し、Krocusを実行する。ここではSalmonella_entericaのディレクトリを指定している。

krocus Salmonella_enterica input.fastq -k 11 -o output
  • -k    k-mer size (default: 11)
  • -o   Output file [STDOUT] (default: None)
  • --filtered_reads_file    Filename to save matching reads to (default: None)

出力の詳細についてはGithubで確認して下さい。

引用

Rapid multi-locus sequence typing direct from uncorrected long reads using Krocus
Andrew J. Page​, Jacqueline A. Keane

PeerJ. 2018 Jul 31;6:e5233