2020年2月14日金曜日

DRA での DNA 配列のメタデータ登録でハマったときのメモ

20200214_Blogger0010

MiSeq などでシーケンスした DNA 配列の登録はいつも DDBJ Sequence Read Archive (DRA) という場所に登録しています。これまではだいたい DRA に用意されているウェブツールを利用してサンプルのメタデータを入力していました。これまではせいぜい 100 サンプル程度しか登録しなかったので特に問題はなかったのですが、先日、2700 サンプル以上の情報を登録しようとした時につまづいてしまったので、同じように困っている方がいるかも知れないと思い、メモとして残すことにしました。

DDBJ Sequence Read Archive での配列登録の流れ

最初に DDBJ での次世代シーケンサーが出力した配列の登録の流れについてざっと書いておきます。詳しくは DDBJ が丁寧なマニュアルを用意してくれているので、そちらを参照してください。

  1. D-way でアカウント作成
    DDBJ で MiSeq などが出力した配列を登録するためにはまず D-way というウェブサイトでアカウントを作成します (画面は下のような感じです)。マニュアルはこちら

enter image description here

  1. BioProject と BioSample の登録
    配列とメタデータを登録する前に BioProject と BioSample という二つの情報を登録する必要があります (赤丸の部分から登録できます)。マニュアルはこちら。これらはさほど時間のかかる作業ではありません。

enter image description here

  1. DRA への FASTQ ファイルのアップロード
    FASTQ ファイルのアップロードは Cyberduck などの FTP cliant を利用して行います。これについてもここに詳細な解説があります。

  2. DRA へのメタデータのアップロード
    FASTQ ファイルがアップロードできたら D-way 内の DRA からメタデータをアップロードします (下図の赤丸)。このメタデータのアップロードがなかなか鬼門で、今回ハマりました。

enter image description here

ハマったこと

サンプルのメタデータは xml という形式で登録されます。DRA には xml を作成を支援するウェブツールが備わっています。サンプル数が少ないときはメタデータのアップロードの際に下図の赤丸で示した 「Enter/Update metadata」 のボタンを押してウェブ上で情報を入力/編集していき、それを xml に変換してもらうという方法で問題はありません。

enter image description here

しかし、サンプル数が 200 を超えると「Save」 ボタンを押すたびに、また、過去に Save した情報をロードするたびに多大な時間がかかることに今回気づきました。具体的には一回 「Save」 ボタンを押すたびに 1 時間程度の待ち時間が生じ、またしばしばその間に接続がタイムアウトしてしまい、再度 D-way にログインし直さなければならない、という状況が生じました。今回登録したかったサンプル (というかライブラリ情報; 以後 オブジェクトといいます) は 688 × 4 = 2752 でしたので、「これは一体いつ終わるんだろうか…」 という気持ちになりました。

試したこと

この状況で以下のことを行いました。

  • DDBJ にメールで問い合わせ: DDBJ の方からは 「200 以上のオブジェクトもしくは 2000 ファイル以上のデータファイルを登録する際にはそのような状況が生じうる」 とのことで、そのような場合は 「1 回の Submission で登録するオブジェクトの数を 200 程度になるように分けて登録する」 のが最もシンプルな解決法とのことです。

  • ウェブ (Twitter とか) で情報を収集: その後、ウェブでも情報を収集してみると同じように大量のサンプルを登録しようとして苦戦した方の情報がいくつか上がってきました。まとめると皆さん色々と試行錯誤して独自に (?) いくつかの解決法 (?) に行き着いていたようでした。
    – 1. 長い時間かかるのは我慢してウェブツールを使って登録
    – 2. DDBJ の人に頼んで、メタデータ (or データファイルも??) を送って登録してもらう
    – 3. xml ファイルを自身で作成・編集して登録

  • 再度 DDBJ にメールで問い合わせ: その後、上記の 「2」 ができるのかなぁと思い、再度 DDBJ の人に問い合わせてみました。すると、まずは 「1」 と 「3」 の方法で何とかできないか試してみてはとのことでした。ちなみに 「1」 の方法で 600 程度のオブジェクトを登録できたこともあり、また 「3」 の方法で 1000 程度のオブジェクトを登録する方もいるとのことでした。

そこで、覚悟を決めて 「1」 「3」 の方法を試すことにしました。自分が登録したいオブジェクトは 688 × 4 という分かれ方をしていたので、2752 オブジェクトを一度に登録するのではなく、688 オブジェクトずつ登録を試みることにしました。

  • 「長い時間かかるのは我慢してウェブツールを使って登録」 を試す
    結論から言うと、これでも何とか登録できました。688 オブジェクトのメタデータをウェブツールを使い、ボタンを押しては 0.5 〜 1.5 時間くらい待つ、を繰り返しました。メタデータの投稿までに何回ボタンを押したかは忘れましたが (10 回くらい??)、結局半日から一日で何とか最初の 688 オブジェクトの投稿を終了しました。メタデータの投稿をしたあとは 「validation」 という投稿した情報が acceptable かどうかのチェックが行われるのですが、もしここで 「validation failed」 となると もう一回やり直し の可能性がありましたが、幸いここは一度で 「validation success」 となりました。

しかし、これでは残り 688 × 3 のオブジェクトを登録するまで 最短でも あと 3 日はかかることになります。これはつらい、ということでこの段階で 「3」 を試すことにしました。

  • 「xml ファイルを自身で作成・編集して登録」 も試す
    xml ファイルを自身で作成・編集するやり方はいくつもあると思います。今回は、ぱっと思いついたのが3つの方法でした。
    – 適当なエディターを使って手で編集
    – 適当なプログラミング言語で編集
    Claident に準備されているコマンドで編集

    今回は、幸いにして一度メタデータの登録が成功しており、かつ残りの 688 × 3 のメタデータもすでに登録したメタデータと大部分が同じ、という状況でした。そのため、登録に成功した xml ファイルを少し編集するだけでうまく登録できるはず、と思いました。それでも手作業で編集するには情報が多すぎたので、まずは適当なプログラム言語で xml が編集できないかどうか調べてみました。

    すると、自分がよく使っている R 言語に xml2 というパッケージがあることが分かり、それを利用することで必要な情報をぱぱっと書き換えることができました (python の方がより簡単そうかなとは思いましたが…)。XXXXX-submission.xml, XXXXX-experiment.xml, XXXXX-run.xml という3つのファイルを用意して、「XML Upload [+]」 をクリックすると xml ファイルを直接アップロードする場所が現れるので、そこにアップロードしました (下図の赤丸部分です)。この場合は、何度もボタンを押す必要はなく、「Upload XML files」 のボタンを一度だけ押せば大丈夫です。このアップロードにもそれなりに時間がかかりましたが (1.5 時間くらい)、ボタンを押すのが一度だけで良い というのはウェブツールを使う方法に比べると大きな利点でした。

    この方法で比較的素早くメタデータが登録できたため、残りの 688 × 2 のメタデータも同様にして登録しました。全てのメタデータの validation が success になったときはかなりホッとしました。

enter image description here

この時点で全てのデータを登録できたので、「Claident に準備されているコマンドで編集」 を行いませんでしたが、結局はこれが一番効率的に xml ファイルを準備できる方法かなと思いました。今回、実際にこの方法で生成した xml ファイルを登録していないので、確実に登録に成功するとは言えないのですが、同じように大量サンプルを登録しようとしている人はまず検討すべき選択肢でしょう。

Claident を利用した xml ファイルの作成については本家にマニュアルがあるので、そこを参考にしてみてください。自分も次回このような機会があればまずは Claident による xml ファイルの作成を第一候補とするでしょう。

(ちなみに Claident のコマンド clsplitseq で demultiplex を行ったファイルはそのままでは配列名の問題で DRA にうまく登録できません [アンダーバーが2回続く記述 “__” が混じっているのが駄目?なようですが、詳細未確認]。最新の Claident の clsplitseq についているオプションの --sequencerenaming を DISABLE にするか、自分でシェルなどを使って配列名を変える必要があります)

現段階での選択肢

さて、色々と試しましたが、現状としては以下の選択肢があるでしょう。

  • Claident がインストールできている方であれば、マニュアルに従い clmaketsvclmakexml のコマンドでぱぱっと xml ファイルを生成してそれをアップロードするのが一番早そう (ただし、実際にうまくいくかどうかは確認していない)。
  • 過去に DRA に登録した経験があり、かつ似たようなメタデータを登録する場合は自分の D-way アカウントから xml ファイルがダウンロードできるはずなので、それらを何らかの方法 (例えば R の xml2 パッケージ) で編集して、アップロード。
  • ウェブツールでも気合があればおそらく登録できます。今回は 688 オブジェクトが登録できることを確認しました。
  • 最後の手段は DDBJ の人に頼み込むことですが、お忙しいと思うので、なるべく避けたい方法です…

Written with StackEdit.

Empirical Dynamic Modeling with rEDM: (2) Near-future forecasting (Simplex projection)

20231015_Blogger0021 *This is an English version of my previous post (first translated by ChatGPT, checked and edited ...