Skip to content

Instantly share code, notes, and snippets.

@inutano
Created December 5, 2014 05:41
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save inutano/84862c5a3966697c576f to your computer and use it in GitHub Desktop.
Save inutano/84862c5a3966697c576f to your computer and use it in GitHub Desktop.

DDBJパイプラインとGalaxyによるデータ解析

情報・システム研究機構
ライフサイエンス統合データベースセンター
大田達郎 t.ohta@dbcls.rois.ac.jp

prepared for AJACS岩手
December 5, 2014


これは統合データベース講習会 AJACS岩手「DDBJパイプラインとGalaxyによるデータ解析」の資料です。プログラムはこちら


概要

本講習は、主に新型DNAシーケンサー(High-Throughput Sequencer, HTS)から得られる塩基配列データを対象に、データ解析に必要な基本的な知識と、公共のウェブツールを利用した解析の手順について学びます。デモデータを利用し、DDBJパイプラインを用いたデータ処理と、Galaxyシステムを利用したデータ解析を行います。


講習の流れ

今回の講習では、コンピュータを使って以下の内容について説明します。

  • データについて
  • データ処理について
    • データ処理の種類
      • マッピング
      • アセンブル
    • DDBJパイプラインの使い方
  • データ解析について
    • データ解析の種類
      • ゲノム多型解析
    • Galaxyの使い方

データについて

今回の講習では新型DNAシーケンサーから得られる塩基配列データを取り扱います。塩基配列データは様々な形式でファイルに保存されます。今回のデータ解析に関連するデータ形式(フォーマット)は以下のようなものです。

  • FASTQ
  • FASTA
  • SAM
  • VCF

その他の主要なフォーマットについては、こちらをご参照ください。

いずれもファイル形式はプレーンテキストです。しかし、ファイルが大きすぎるとアプリケーションがクラッシュしてしまうので、メモ帳やMicrosoft Office Excelのようなアプリケーションで開くことはお勧めしません。


FASTQ

新型シーケンサから得られる塩基配列断片は「リード」と呼ばれます。1回のシーケンス(1Run)からは機械によって数百〜数十億本のシーケンスリードが得られます。FASTQフォーマットは、1本1本のリードの塩基配列と1塩基ごとのクオリティを記述します。FASTQフォーマットは、4行で1リードの情報を記述します。

@SRR975299.998 HWI-ST1347:124:H0G13ADXX:1:1101:7299:3013 length=101
ACTGTTAGAAACAATATTCCTTCTGAAGTACCATGATAGAAATTACTATTAAAGCACTATCCTCTACCCCTTACCGTGCATGGTTCTGATGCATTCAAAGC
+SRR975299.998 HWI-ST1347:124:H0G13ADXX:1:1101:7299:3013 length=101
==?D=BDDFFDADGH?EHEHHHBFABHF:<FHAHGAGCGHIHHHGGIIICHFHHGEHIIIGGIGEHHCHGCFFD@E;DECEEA?BCB@>A;AACDCC@CCC
@SRR975299.999 HWI-ST1347:124:H0G13ADXX:1:1101:7473:3197 length=101
TCTTCACTGGCTTTCCATGATCAATGTCAAGAATCAGACTGAGAGCTTGGGAACATTCTTTTGCTCTTTGCCGTACCTAATATAATTATTAGAAGAAGGAA
+SRR975299.999 HWI-ST1347:124:H0G13ADXX:1:1101:7473:3197 length=101
CCCFFFFFHHHHHJJJJJHJJJJJJJFIHIHJIIJJJHJJJJIIIJHIJJIJJJJJJJJJJJJJJJJJJJJIJIHHHFFFFFFFEEFEEFFDDDDDDDDDD
@SRR975299.1000 HWI-ST1347:124:H0G13ADXX:1:1101:7557:3113 length=101
CCATGATTCTGTCCAGCCAGCAGGATGCAGCCTTTGCCTTTGCCTCTCTTGCCATAGTTTTCTCCTCCTATATCACTCTTGTTGTGCTCTTTGTGCCCAAG
+SRR975299.1000 HWI-ST1347:124:H0G13ADXX:1:1101:7557:3113 length=101
CCCFFFFFHHHHHIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJIJJJJJJJJJHIJJJJIJJJJIJJJJJHJHHHHHHFFFFEEEEEEEDDDDDDBD

||| |:--:|:--:|:--:| |1行目|リードID| |2行目|塩基配列| |3行目|+から始まるコメント| |4行目|クオリティスコア|

参考: FASTQ format / Wikipedia


Phred Quality Score

FASTQフォーマットで記述される塩基配列のクオリティはPhred Quality Scoreを示す記号で表されます。リードの1塩基ごとに、「その塩基を読み取った(BaseCall)精度」を記述します。

Phred Quality Score エラー確率 Base Callの精度
10 1/10 90%
20 1/100 99%
30 1/1000 99.9%
40 1/10000 99.99%

参考: Phred quality score / Wikipedia


FASTA

FASTAはDNA塩基配列を記述するために最もシンプルで一般的なフォーマットです。塩基配列だけでなくアミノ酸配列もこのフォーマットで記述されます。BLASTなどのtradな塩基配列解析においてもよく用いられます。2行で1本の塩基配列を記述します。1行目は">"から始まるコメント、2行目は塩基配列です。

>gi|129295|sp|P01013|OVAX_CHICK GENE X PROTEIN (OVALBUMIN-RELATED)
QIKDLLVSSSTDLDTTLVLVNAIYFKGMWKTAFNAEDTREMPFHVTKQESKPVQMMCMNNSFNVATLPAE
KMKILELPFASGDLSMLVLLPDEVSDLERIEKTINFEKLTEWTNPNTMEKRRVKVYLPQMKIEEKYNLTS
VLMALGMTDLFIPSANLTGISSAESLKISQAVHGAFMELSEDGIEMAGSTGVIEDIKHSPESEQFRADHP
FLFLIKHNPTNTIVYFGRYWSP

参考: FASTA format description


SAM/BAM

新型シーケンサのデータ解析では、得られたリードがゲノムDNAのどの領域に由来するのかを調べるために「マッピング」という操作を行います。これは「リファレンス・マッピング」とも呼ばれます。リファレンス、つまり既に読まれたゲノム配列と、リードのデータをマッピング・ツールに与えると、どのリードがどの領域にアラインメントされたかを示すデータが得られます。SAM(Sequence Alignment/Map format)フォーマットは、このデータを記述するためのもので、BAMフォーマットは、SAMをバイナリ形式に変換したものです。

参考: Hts-specs by samtools


VCF

VCF(Variant Call Format)は、ゲノム上の塩基配列多型の位置とそのIDや精度を記述するためのフォーマットです。データの他に、日付やデータを生成したプログラム名、リファレンス配列などを記述するメタ情報を含みます。リファレンス配列にマッピングされたリードの情報を多型解析プログラムに入力すると、この形式のファイルが生成されます。

参考: File Specifications - The Global Alliance Data Working Group File Formats Task Team


データ処理について

新型シーケンサから得られる一次データ(シークエンスリードデータ)は、そのままでは何の情報も持たないため、情報解析を行うことができません。そのため、データ解析を行う前にデータ処理を行う必要があります。代表的なものは以下の2つです。

  • マッピング
    • ゲノム塩基配列やCDSなどを参照配列(リファレンス)として、それぞれのリードがどの領域から得られたかを調べる
  • アセンブル
    • 参照配列がない場合などに、リード同士の端の部分の相同性を元にリードを繋ぎあわせコンティグ配列を得る

どちらの処理も、リードの長さや数、リファレンス配列の大きさ、計算機の性能や並列化などに応じて計算時間が変わります。


DDBJパイプラインの使い方

マッピングやアセンブルのようなデータ処理には大きな計算機が必要でしたが、静岡県三島市にある遺伝学研究所のDDBJが提供する「DDBJ Read Annotation Pipeline」では、DDBJが保有するスーパーコンピュータを用いて、データ処理をウェブブラウザ上の操作のみで行うことができます。

パイプラインログイン画面


ログイン

アカウントを持っていない場合は「New Account」をクリックして必要な情報を入力、届いたEmailを確認してアカウントを作成してください。今回は「Login as "guest"」を利用して、実際の流れを体験してみます(guestアカウントでは解析の実行はできません)。既にアカウントをお持ちの方は、ユーザIDとパスワードでログインしてください。ログインすると、以下のような画面が表示されます。

パイプラインログイン後画面


データのインポート

解析するデータのインポートには2つの方法があります。

  1. 手元のデータをアップロードする
  2. 公共DBのデータを利用する

手元のデータをアップロードする場合は、「FTP Upload」をクリックして、「Add New files」をクリックします。

データアップロード1


今回は、デモデータをHTTP経由でアップロードします。ページ下部の「Browse and Upload」をクリックして、こちらのページからダウンロードした「demo.fastq」を選択します。今回は軽量なデータなので、すぐに完了しますが、実際のシーケンスデータはFTPでの転送を行ってください。インポートが完了したら「Next Step」をクリックします。

データアップロード2


Read Layoutは「Single-end」を選択して、先ほどアップロードしたデータが選択されているのを確認して、「Next Step」をクリックします。

データアップロード3


今回はイルミナ社のシーケンサーのデータなので、Instrument Modelは「ILLUMINA」を選択して、Study Titleを入力します。例では「ddbj pipeline demo」と入力しています。入力したら「SUBMIT」をクリックして、確認ダイアログでOKをクリックします。これでデータのインポートは完了です。

データアップロード4


公共の新型シーケンスデータ・レポジトリであるDDBJ Sequence Read Archive (DRA)で公開されているデータを利用する場合は、「Import public DRA」を選択して、「Input DRA/ERA/SRA Accession Number」にアクセッション番号を入力し、「Add my DRA entry」をクリックします。今回のデモデータのオリジナルデータの番号は「SRA073646」です。Confirmationのダイアログで「Send a mail when completed importing」をチェックしておくと、アカウントで登録したEmailにインポート終了後、Emailが届きます。(guestアカウントではメールアカウントが登録されていないのでメールは受け取れません)。

DRAインポート


クオリティ値によるフィルタリング

シークエンスエラーの多いリードをそのまま処理すると、誤ったマッピング結果の原因となり、その後の解析での結果解釈に大きな影響があります。ここでは、QV=19を基準としてリードをフィルタリングします。画面左の「Analysis」中の「Step-1」から「Preprocessing」を選択し、「FTP Upload」で先ほどインポートしたデータを選択します。「Next」をクリックします。

プリプロセス1


クオリティ値によるフィルタリング

次の画面で、フィルタリングの条件を設定します。Step1では「Phred+33」を、Step2ではQV Thresholdに「19」を入力します。Step3では、QV Thresholdに「14」を、Percentage Thresholdに「30」を入力します。「Next」をクリックして、完了を待ちます。進行状況は、画面左の「JOB STATUS」から確認できます。

プリプロセス2


マッピング

続いてマッピングの処理を行います。左側のAnalysisから「Mapping / de novo Assembly」をクリックして、先ほどと同様に「FTP upload」をクリックして、データを選択し、Nextをクリックします。

マッピング1


「Reference Genome Mapping」が選択されていることを確認して、利用するツールを選択します。今回は代表的なマッピングツールである「BWA」を選択します。Nextをクリックします。

マッピング2


今回はSingle-Endのリードとしてマッピングを行うので、「demo.fastq」を選択して、「confirm」をクリックします。項目が追加されたら、「Next」をクリックします。

マッピング3


次にリードをマップするリファレンスゲノムを選択します。今回は「Homo sapiens」の「Homo sapiens Feb. 2009 (hg19)」の「All.fa」を選択して、「Next」をクリックします。

マッピング4


次にマッピングを行うbwaとその後のファイル操作を行うツールのオプションを設定します。今回は「Step 1) Convert reference sequence」で「-a bwtsw (for large-size reference 2GB~)」を選択する以外は、デフォルトのまま実行します。

BWAセットアップ

samtools


設定した内容を確認した後、ジョブ終了通知用のメールアドレスを入力し、「Run」をクリックします。(guestアカウントではRUNボタンは表示されません)

confirm


実行したジョブは画面左の「JOB STATUS」から確認することができます。完了したら、「View」をクリックします。

status

status-finished


「View」をクリックしたあとの画面です。実行されたプロセスとその結果が表示され、結果ファイルのダウンロードができます。

view


その他の資料

DDBJパイプラインの使い方について、Pipeline TutorialをDDBJが提供しています。また、DBCLSでは今日からはじめるDDBJ Read Annotation PipelineDDBJ Read Annotation Pipelineによるde novo Assembly解析といった統合TVも公開しておりますので、ご覧下さい。


データ解析について

新型シーケンサから得られたデータは、マッピング、アセンブルなどのデータ処理を行ったあと、それぞれの目的に応じた解析を行うことで、サンプルの持つ特徴的なゲノム領域をリストアップしたり、サンプル間の差を比べたりすることができます。新型シーケンサを用いた実験は、どのようなシーケンサを使うか(リードの数や長さ)、どのようにサンプルDNAを得るかによって区別することができます。サンプルDNAの抽出方法を工夫することで様々な情報をハイスループットに得られることが新型シーケンサが強力なツールとして用いられる理由ですが、そのシーケンシングの種類は非常に多岐にわたります(*-Seq)。それぞれの目的に応じた解析の手順と、それに用いられる代表的なツールは、既存研究の論文やオンラインフォーラムで調べることができます。

*-Seq


データ解析の種類

それぞれのシーケンシングにおける解析については、次世代シークエンス解析スタンダード〜NGSのポテンシャルを活かしきるWET&DRYという書籍としてもまとめられています。非常に参考になります。おすすめです。

dritoshi-book


NGS現場の会

NGS現場の会は新型シーケンサを利用した研究に関わる人が集まる研究会です。アカデミア、企業、研究者、テクニシャン、学生などなどの垣根のいっさいない情報交換のための会を目指しています。データ解析で困ったときに助けてくれる人もいます。

ngs-genbanokai


Galaxyの使い方

Galaxyは複数のツールを組み合わせたデータ解析ワークフローを構築するためのオープンソースでウェブ・ベースの解析プラットフォームです。新型シーケンサのデータ解析に限らず、さまざまな生命科学のデータ解析のために、世界中で広く利用されています。

Galaxyには2つの使い方があります。1つは、Public Galaxy Serverと呼ばれる、世界中で様々な機関によって公開されているサーバを使う方法です。日本ではDBCLS, DDBJ, Pitagora-Galaxyプロジェクトなどによって誰でも利用できるサーバが公開されています。

もう1つの使い方は、自分でGalaxyのサーバを起動する方法です。大量のデータを生み出し大規模にデータを解析する研究室では、専用のGalaxyを立ち上げて利用しています。


本家Galaxy

今回の講習では本家であるusegalaxy.orgを利用します。

honke


Galaxyの基本的な使い方

Galaxyの画面は常に左サイドバー、中央のブラウザ、右サイドバーに三分割されています。左サイドバーは利用できるツールのリストです。中央のブラウザは選択中のツールをコントロールしたり結果を見るために使います。右サイドバーでは、ツールを実行するごとにプロセスがスタックして、履歴として機能します。履歴表示だけでなく、それぞれのプロセスの情報を見たり、再実行したりできます。

galaxy-ss


アカウントの作成

[本家Galaxy]のウェブサイトの右上の「User」をクリックして、「Register」をクリックします。Emailアドレス、パスワード、名前を入力してから「Submit」をクリックします。しばらく待つとメールが届くので、メールの中のアクティベーションのURLをクリックして、confirmしたあと、作成したアカウントでログインします。

create-account


データのインポート

先ほどと同じくこちらのページから「demo.fastq」というデータをダウンロードします。Galaxyの左パネルの「Get Data」をクリックして、開いたリストの一番上にある「Upload File」をクリックするとダイアログが開くので、「Choose local file」をクリックしてダウンロードしたdemo.fastqファイルを選択します。リストの「Genome」をクリックして、「Human Feb. 2009 (hg19)」を選択したら、「Start」をクリックします。しばらく待つと完了するので、「Close」をクリックします。

import-data


目玉ボタンをクリックしてみましょう。インポートが完了したデータの様子です。

imported


FastQCを実行する

インポートしたFASTQデータのクオリティを確認します。今回は、最もポピュラーな新型シーケンサデータ用クオリティ・コントロールのツールであるFastQCを利用します。左パネルの検索ボックスに「fastqc」と入力して出る「FastQC: Read QC」をクリックします。「Short read data from your current history」でdemo.fastqを選んでから「Execute」をクリックすると、プロセスが右パネルの履歴に追加され、しばらくすると実行されます。

fastqc


実行が完了したら、目玉ボタンをクリックします。FastQCの結果を見ることができます。

fastqc-done


ワークフローのインポート

Galaxyではデータのインポート、ツールの選択、実行を繰り返すことでワークフローを作ることができます。ここでは、公開されているワークフローを利用してデータ解析を行ってみます。まず、画面上部の「Shared Data」をクリックして「Published Workflow」をクリックします。

published-workflow


Exome Sequencing Workflow

左上の検索ボックスに「exome」と入力してエンターキーを押します。表示された「Exome Analysis」をクリックします。ワークフローの概要が表示されるので、右上のフロッピーディスクアイコンの隣にある緑色の+ボタンをクリックします。この操作は、ログインしていないとできないため、失敗した場合はログインできているかを画面上部の「User」から確認してください。

workflow-detail


完了しました。「start using this workflow」をクリックします。

done


ワークフローを編集する

表示されたページで再び「Exome Analysis」をクリックして「View」をクリックすると、詳細を見ることができます。このワークフローでは、FASTQデータを入力として、BWAによるマッピングを行ったのち、多型を検出するツールを実行しています。しかし、BWAの操作は時間がかかるので、先ほどDDBJのパイプラインでの結果を使って、この工程をはぶきます。まず、こちらのページから、demo.samをダウンロードします。これを先ほどと同じ手順でgalaxyにインポートしてから、画面上部の「Workflow」をクリックして再度ワークフローのページを表示します。「Imported: Exome Analysis」をクリックして、「Edit」をクリックします。

workflow


ワークフロー・エディターが表示されます。表示されている「Map with BWA for Illumina」のボックスの✕ボタンをクリックしてこのプロセスを消します。

workflow-editor


消えた様子です。

eliminated


次に、ワークフローを「SAM-to-BAM」からスタートさせるために、2つある「Input dataset」のどちらか片方を消して、残った「Input datase」のボックス右側のボタンをドラッグ&ドロップで「SAM-to-BAM」のボックスに繋げます。

connect


エディタ右上の歯車ボタンを押して「save」をクリックします。そのあと、同じく歯車ボタンを押して「Run」をクリックします。

save


表示されたワークフローの入力ファイルに「demo.sam」が表示されているのを確認したら、中央ページ下部の「Run Workflow」をクリックします。

edited-workflow


ワークフローが実行されました。あとは待つだけです。

running


Pitagora-Galaxy

Galaxyはこのように、ウェブブラウザで誰でも簡単にデータ解析ができるようになっています。しかし、自分のラボで独自のGalaxyを使いたいという場合には、インストールや、ワークフローの構築が難しいという難点があります。そこで、日本国内のGalaxyユーザが集まってお互いのワークフローを持ち寄って、簡単にインストールできる形で配るというプロジェクトが始まりました。それがPitagora Galaxyです。誰でも使えるテストサイトもありますが、「Oracle VirtualBox」と呼ばれるフリーのソフトウェアを使って簡単にGalaxyを自分のコンピュータにインストールすることができます。また、Amazon Web Service上で動くクラウド版もあります。

pg


以上

おつかれさまでした!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment