リファレンスゲノムがまだこの世に存在しないけど Amazon Omics Storage へリードを保存したいときに試した方法

リファレンスストアにダミーのリファレンスゲノムを保存する方法試してみました。
2023.02.04

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Omics Storage のシーケンスストアにデータを保存するときの仕様にリファレンスゲノムと紐付ける必要があります。 リファレンスゲノムがまだないときはどうしたらよいのだろうか?というご相談いただき検証しました。

Omics Storage についてはこちらの記事を参考にしてください。

確認結果

リファレンスストアへダミーのリファレンスゲノムを保存し、ダミーのリファレンスゲノムに紐づけてシーケンスストアへリードを保存することができた。また、FASTA 形式のバリデーションチェックがあるため、チェックを通せたダミーのリファレンスゲノムのファイルは以下になります。

dummy.fasta

>DUMMY Dummy reference
N

ゲノムデータ管理、運用面でデメリットも見つかり管理上良いのか?という新たな課題が生まれた。

リファレンスゲノムがない?

バイオインフォマティクスに疎くリファレンスゲノムがない状況を調べてみました。

リファレンスゲノムを作成すにはゲノムアセンブリーツールを用いてアセンブルすることになり、

ゲノム配列の断片をつなげて元のゲノム配列を復元していく作業をアセンブリーという。現在では、シークエンサーを利用してゲノムアセンブリーが一般的である。具体的には、DNA または mRNA の塩基配列を断片化し、シークエンサーで読み取る。次に、シークエンサーで読み取られたこれらの断片(リード)をつなげていき、元の DNA または mRNA の塩基配列を復元していく。DNA-Seq の場合は全ゲノムの塩基配列を復元できる可能性があるが、RNA-Seq の場合は転写領域の塩基配列をしか復元できない

アセンブリー | シークエンサーデータを使用したゲノムアセンブリー

ゲノムアセンブリーの手法では以下の2つがよく知られているようです。個人的には1番の de novo アセンブリーをイメージをしていました。

  1. 次世代シーケンサーで読みとったリードから元の塩基配列を復元する de novo assembly
  2. 近縁種のリファレンスゲノムをガイドとして利用する reference-guided assembly

アセンブリーの作業は計算量が多くいわゆるスパコンと呼ばれる高性能な演算力を持つマシンが必要になってきます。計算量に関しては以下の記事が興味深く面白かったです。

de Bruijn Graph を使った de novo アセンブリの発想がすごい件 - ほくそ笑む

抱えた悩み

例として de novo アセンブリーを行う研究で Omics Storage の利用を想定してみます。

リファレンスゲノム作成するため大量のリードが手元にあります。このリードをシーケンスストアに保存しようと思うと、リファレンスストアに保存してあるリファレンスゲノムと紐付けが必要になります。ですが、リファレンスゲノムをこれから作成しようとしており、卵が先か鶏が先かとなってしまいます。

リファレンスゲノムと紐付けてリードを保存する仕様だと Omics Storage を活用できないのでは?という疑問が生まれました。

対策としてリファレンスゲノムのダミーファイルを事前に用意し、ダミーのリファレンスゲノムに紐付けてリードを保存することはできるのか?という仮設を検証してみます。

やってみた

リファレンスストアの操作

最初にリファレンスストアへ保存するダミーのリファレンスゲノムを用意します。FASTA フォーマットのダミーファイルを作成しました。リファレンスストアへインポートするために S3 へアップロードして準備完了です。

dummy.fasta

>DUMMY Dummy reference
N

ダミーのリファレンスゲノムと判別できるように名前を設定しておきます。

ダミーのリファレンスゲノムをリファレンスストアへインポートは成功しました。詳細は後述しますがインポート時にバリデーションチェックが行われており、不適切なフォーマットだとインポートに失敗しました。

シーケンスストアの操作

リファレンスゲノムの指定でさきほどインポートしたダミーのリファレンスゲノムを指定しました。シーケンスストアにインポートするリードは他の検証で使用していて S3 に保存してあったものを流用してテストしています。

シーケンスストアへリードのインポートも成功しました。

紐づくリファレンスゲノムが指定したダミーのリファレンスゲノムとして登録されています。

確認できたこと

リファレンスストアに保存済みの何かしらのリファレンスゲノムを指定さえできればシーケンスストアにリードを保存することはできる。

ダミーのリファレンスゲノム失敗集

リファレンスストアへリファレンスゲノムをインポート時にバリデーションチェックが行われていました。 ただ、FASTA 形式のバリデーションチェック内容は公開されていません。数パターン試してどのようなバリデーションチェックがあるのか確認してみました。

エラーメッセージ

これから紹介する失敗パターンはすべて下記のステータスメッセージが返ってきました。メッセージからは具体的に何が悪いかまで特定はできません。

Status language=message

Status Code: 400, Reason: File validation failed. Incorrect source file provided.

配列を未記載

FASTA 形式で2行目以降の配列に何かしら文字がないとインポートに失敗しました。

dummy.fasta

>Dummy file

Status language=message

Status Code: 400, Reason: File validation failed. Incorrect source file provided.

配列を追加

不明の意味でNを配列として書き加えるとインポートに成功していました。本文で紹介したダミーのリファレンスゲノムはこのパターンです。

dummy.fasta

>Dummy file
N

カラのファイル

拡張子は.fastaとしてファイルの内容はカラで試しても同様に失敗しました。

dummy.fasta

Status language=message

Status Code: 400, Reason: File validation failed. Object is empty.

おわりに

リファレンスゲノムがないときにリードをシーケンスストアへ保存する方法として検証してみました。何かしらのリファレンスゲノムに紐付けすればリードを保存できることを確認できました。

今後の課題はダミーのリファレンスゲノムを登録したことで、検索性などの運用・管理面での影響や、リファレンスゲノムが完成したときに紐付け直しが現状できないものと思われます。検証を続けてメリット・デメリット、より良い管理方法が分かり次第、ブログで共有したいと思います。