2021-メタゲノム・edna

メタゲノム・eDNA解析

先週の実験で、三四郎池、多摩川、海辺の水からDNAを抽出し、12S rRNAのMiFishプライマー領域(160-190 bp)、16S rRNA全長(1,500 bp程度)をPCR増幅しました。また、発酵食品の「味噌」、「醤油」、「酢」、「酒」、「パン」からから抽出したDNAを、18S rRNA全長(1,800 bp程度)をPCR増幅しました。本日は、Oxford Nanoporeという次世代シーケンサーで増幅したPCR産物をシーケンスしたデータを使って解析を行います。

本日のデータ解析のワークフローを以下に示します。

大雑把なデータ解析の流れとしては、 まずシーケンスデータの品質チェックをFastQCというツールを用いて行います。それから、コンピュータにインストールしたBLASTを使って、すべてのシーケンスデータをデータベースと照合させ、各リードがどの種と相同性があるかを調べます。それからMEGANを使ってBLASTのヒットを集計し、各サンプルに含まれていたバクテリアの種類を網羅的に解析します。

環境DNAのサンプルは、MEGANの結果で検出された種と、実際に池にいそうな魚なのかの考察や、使用したプライマーの種類(12S全長 or 12S MiFish)の違いが結果に与える影響などを考えてみてください。メタゲノムのほうでは、食品のデータはシャッフルしてお渡ししますので、含まれるバクテリアの種類から、食品サンプルが上記4つの食品のどれであるかを推定します。また、池の水と水槽の水で微生物叢にそれぞれ特徴があるかを考察してください。

サンプルリード数
group1-12S-Hiraisokaihinkoen.fq 1
group2-12S-Sanshiroike1.fq 399
group2-16S-Sanshiroike1.fq 258
group2-18S.fq 111
group3-12S-Okutama-kawa1.fq 1645
group3-16S-Okutama-kawa1.fq 657
group3-18S.fq 3919
group4-16S-Sanshiroike2.fq 40
group4-18S.fq 4709
group5-12S-Bisyamontenhama.fq 666
group5-16S-Bisyamontenhama.fq 577
group5-18S.fq 464
group6-12S-Okutama-kawa2.fq 844
group6-16S-Okutama-kawa2.fq 110
group6-18S.fq 953

FastQCは主にIllumina用のクオリティチェックツールなので、Nanoporeのデータに対しては適切な評価ができておらず、評価値の〇×は気にしなくてよいです。下記はシーケンスデータのクオリティスコアに関する、平均値等の情報。

Nanoporeのデータだとクオリティスコア10強(精度90%強)となるはずである。

クオリティスコアQは、エラーの生じる確率 perror から下記のように計算されます。 (出典: https://bi.biopapyrus.jp/rnaseq/qc/fastq-quality-score.html )

  • クオリティスコアが 10 ならば、シーケンシングエラーが生じる確率は 10.0% であるから、読み取られた塩基の信頼度は 90.0% 。
  • クオリティスコアが 20 ならば、シーケンシングエラーが生じる確率は 1.0% であるから、読み取られた塩基の信頼度は 99.0% 。
  • クオリティスコアが 30 ならば、シーケンシングエラーが生じる確率は 0.1% であるから、読み取られた塩基の信頼度は 99.9% 。

リード長の分布が想定される長さになっているかなども確認すること。 (16S全長は1.5 kbp程度、12S全長は1 kbp程度、12S MiFishは250 bp程度)

FASTQCを実行するには、シーケンスデータをダウンロードしたディレクトリが「ダウンロード」フォルダの場合、次のようにする。

cd ダウンロード           # ダウンロードフォルダへ移動する。Macだと「Downloads」、WinのWSLだと「/mnt/c/Users/ユーザ名/c/Downloads/」などになる。
unzip 2021nanopore.zip     # nanopore.zipファイルを解凍する
fastqc 2021nanopore/*.fq   # nanoporeフォルダ以下のすべてのFASTQファイルに対してFASTQCを実行する

出来上がったhtmlファイルを開いてみると、次のようなQC結果が見られる。

FASTQファイルをメモ帳などで開いてみると次のように表示されます。

FASTQ形式は 塩基配列とクオリティが両方含まれるファイル形式になりますが、BLASTのプログラムはFASTQ形式では入力ファイルとして受け付けてくれません。BLASTが対応しているのは、塩基配列だけの情報であるFASTA形式になります。

FASTA形式は1つのシーケンスにつき、「>」 で始まる1行のヘッダ行と、2行目以降のACGTのシーケンス文字列で構成されます。

そこで、まずFASTQのクオリティを削除して、FASTA形式に変換します。

awk 'NR%4==1{print ">"substr($1,2)} NR%4==2{print $0}' input_file.fastq > output_file.fasta 

> output_file.fasta をつけると、出力をファイルに保存できます。 input_file.fastq, output_file.fastaは適当に変更すること。

SILVAデータベースのFASTAファイル、MitoFishデータベースのFASTAファイルから、makeblastdbコマンドによってBLASTのデータベースを作成します。ターミナルで下記のように入力します。

## SILVA
#gzipファイルを解凍する
gzip -d SILVA_138.1_SSURef_NR99_tax_silva_trunc.fasta.gz

#Blastデータベースを作成
makeblastdb -in SILVA_138.1_SSURef_NR99_tax_silva_trunc.fasta -dbtype nucl


## MitoFish
#ファイルを解凍しておく
unzip complete_partial_mitogenomes.zip   #complete_partial_mitogenomes.zipを解凍する

#都合により、ヒトのミトコンドリアも追加しておく
#ヒトのFASTAファイルダウンロードする。curlはファイルをダウンロードするためのコマンド。
curl -o NC_012920.fasta "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nucleotide&id=NC_012920&rettype=fasta&retmode=text"

#MitoFishにヒトを追加する。catはファイルの中身を表示するためのコマンド。
cat NC_012920.fasta complete_partial_mitogenomes.fa > MitoFish-Human.fasta

#Blastデータベースを作成
makeblastdb -in MitoFish-Human.fasta -dbtype nucl

-in には入力となるFASTAファイルを指定します。

-dbtype はFASTAファイルがDNA配列であれば「nucl」、アミノ酸配列であれば「prot」を指定します。

FASTA形式に変換したシーケンスデータをクエリーとして、SILVAデータベースもしくはMitoFishデータベースで相同性検索を行います。ターミナルで次のように入力してください。

#16S, 18S用
blastn -db SILVA_138.1_SSURef_NR99_tax_silva_trunc.fasta -query input.fasta -num_threads 16 -out input.fasta.blastn

#12S用
blastn -db MitoFish-Human.fasta -query input.fasta -num_threads 16 -out input.fasta.blastn

-db には、BLASTデータベースファイルのprefixを指定します。今回の場合は元となったSILVAもしくはMitoFishのFASTAファイルを指定すれば良いです。

-query にはデータベースに対して相同性検索を行いたい問い合わせ配列が含まれるFASTAファイルを指定します。ここではFASTA形式に変換したシーケンスデータを指定します。(ファイル名は適宜変更すること。)

-num_threads には並列計算時に使用するCPUの数を指定します。演習で使用している研究室のLinuxはCPUが16スレッドあるので、16を指定します。(自分のPCで計算するときは、各自のPCに合わせて設定すること)

-out には出力ファイルの名前を書く。(拡張子はMEGANに読み込ませるために「.blastn」とし、ファイル名は出来れば「入力FASTAファイル名」+「.blastn」としておくとMEGANがFASTAファイルを認識してくれて情報がリッチになる。)

下記のように入力すると、結果ファイルの中身を見ることが出来ます。結果表示を抜けるときは「q」を押します。

more input.fasta.blastn
# input.fasta.blastn は適当なファイル名に変更します。

1.MEGANではLowest Common Ancestor (LCA)法によってtaxon (分類群)を推測している。LCA法とは、1つのリードがデータベース中の複数の配列にヒットした場合、ヒットした配列に共通の分類群を求める方法です。 http://bio4j.com/blog/2012/02/finding-the-lowest-common-ancestor-of-a-set-of-ncbi-taxonomy-nodes-with-bio4j/ ただ、MEGANのデフォルト値はIlluminaシーケンサー用(精度99.9%)に設定されているので、ナノポアのように80~90%程度の精度では変更する必要があります。

2.まずはMEGANを起動します。 ターミナルで下記を入力してMEGANを起動してください。

~/megan/MEGAN

3.MEGANが起動したら、「File」→「Import From BLAST」からBLAST結果を開きます。

4.ダイアログ右上のボタンをクリックして、BLASTの結果ファイルを選択し、「Open」をクリックします。(複数ファイルを選択できますが、結果がマージされてしまうので、ファイルを一つだけ選択します。}

5.「LCA Params」タブを開いて、Top Percent: の値を0.5に変更しておきます。このパラメータは、BLASTの結果の中で最もスコアの高いトップヒットからどの程度離れたヒットまで使用するかの閾値になります。ナノポアではシーケンス精度が悪く、無関係な生物も似たようなスコアでヒットしてしまうため、ほぼトップヒットしか使わないように厳しめに閾値を設定しておきます。

6.結果が表示されたら、 種名まで表示するために、「Rank」→「Species」を選択します。

                  ↓

7.マウスホイールで拡大・縮小できます。もしくはメニューバーの下記のボタンをクリックしても拡大できます。

8.各生物種に割り当てられたBLASTの生データを見たい場合、ノードを右クリックし、「Inspector」を開けば見れます。本当にその生物はいるのか確認したくなった時などに、アライメント長や塩基配列そのものを確認するのに便利です。

9.BLASTファイルを読み込むときに設定したLCAのパラメータを後から変更したい場合は、「Options」→「Change LCA Parameters」から可能です。

10.MEGANで複数サンプルを比較する場合は、blastnファイルを複数回開いたら、開いたウィンドウをそのままにした状態で、「File」→「Compare」とクリックして比較したいサンプルを選択し、「Apply」をクリックします。

11.複数結果の表示を変更する場合、円グラフのボタンなどを押すと良いです。

12.ExcelやR等で解析する場合は、データをタブ区切りテキスト形式でExportする必要があります。Exportしたいノードをクリックして(全部Exportする場合は全部選択(WidnowsならCtrl+a)して)、「File」→「Export」→「CSV Format」をクリックします。

13.Exportするデータを「taxonPathtocount」に変更します。(ほかのデータ形式でも勿論可)

14.適当な名前を付けて保存します。

リモートデスクトップ先で「ファイル管理」を開いて、保存したファイルをコピーしてから、手元のWindowsでファイルエクスプローラーを開いて貼り付けるとファイルを簡単に転送できる。もしくは、メールやGoogle Driveなどで転送するなどしてもよい。

ExportしたファイルをExcelで開くには、Excelを起動しておき、ExportしたファイルをExcel上にドラッグアンドドロップすれば良いです。

Excelでデータの概要を把握するのに役立つテクニックとして、条件付き書式を設定することで、データの大小を一目でわかるようにできたりします。

そのほか、「データ」→「フィルター」を使ってみたり、グラフを描いてみたりするのが通常の解析の流れになるかと思います。

当研究室で開発中のデータベースで、FASTQファイルをアップロードすると、その微生物叢組成に近いデータをパブリックデータ100万件の中から探してくれるデータベースがあります。このデータベースを使うことで、自分のデータと同じバクテリアはどういった環境に多いのか調べることが出来ます。メタゲノムの16S, 18Sのデータをアップロードすると、通常は数時間で結果が返ってきます。

https://meta.fs.a.u-tokyo.ac.jp/metasearch/

各班次の内容について「目的」、「方法」、「結果」、「考察」の4つのパートを明確に区別してプレゼンテーションを作成する。班ごとに発表し、発表時間は質疑応答を入れて20分。

1班.池・川・海のメタゲノム
2班.池・川・海のeDNA
3班.食品メタゲノム
4班.ゼブラフィッシュ卵へのプラスミド導入
5班.制限酵素地図、電気泳動写真からDNA量定量
6班.魚肉からの品種判別、系統解析

各テーマごとに例えば下記のような項目について考察をすること。インターネットを積極的に使用して調べることを推奨します。また、ある程度調べてもわからないことがあればTA・スタッフに聞いてみてください。

・制限酵素地図作成、電気泳動写真からDNA量定量

未切断のプラスミドDNAの大きさは検量線から推定できたかどうか。DNA量の定量では検量線の直線が綺麗に引けたか、外れた点があれば理由を考えてみてください。

・魚肉からの魚種判定、系統解析

NCBIのデータベースとMitoFishのデータベースを比べて、ヒットした種が同じかどうか調べてみてください。どちらのデータベースのほうが良さそうでしょうか。

・食品からのメタゲノム解析

メタゲノムの結果からワイン(group6)、日本酒(group2)、醤油(group1)、味噌(group3)、酢(group4)、食パン(group5)がどれだったかを推測してもらおうと思ってましたが、DNAのコンタミやデータベースの不足等によって判断が難しいと思われます。そのため、考察の代わりに、精度の悪いナノポアのリードの精度を向上させる方法を実践してみてください。具体的にはGeneiousでマルチプルアライメントを作成して、コンセンサス配列を作ることで、NCBIのBlastで一致率99%程度のヒットが得られるようになることを確認し、ナノポアのリードはどのような間違いが多いのか考察してみてください。

・水からのメタゲノム解析

海、川、池でそれぞれ特異的なバクテリアはいるでしょうか?

・eDNA解析

検出された魚はそれぞれの水系に棲息していそうな魚でしょうか?棲息している魚の数と検出されたリード数には関係がありそうでしょうか?

・プラスミド導入

実際に手を動かして実験したわけではないのでイメージするのは難しいと思いますが、考察の代わりに水産対象種でのゲノム編集やトランスジェニックの現状と将来展望について調べ、まとめてください。

明日のプレゼン資料の完成版を11月16日(火)23:55までにITC-LMSの課題に提出すること。


Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 20480 bytes) in /home/webpark1634/www/yosh/lib/plugins/authplain/auth.php on line 420
dokuwiki\Exception\FatalException: Allowed memory size of 536870912 bytes exhausted (tried to allocate 20480 bytes)

dokuwiki\Exception\FatalException: Allowed memory size of 536870912 bytes exhausted (tried to allocate 20480 bytes)

An unforeseen error has occured. This is most likely a bug somewhere. It might be a problem in the authplain plugin.

More info has been written to the DokuWiki error log.