NCBI XMLフォーマットの配列のClustalX 2.0.5への流し込み

 XMLフォーマットでダウンロードした配列用にXSLTファイルを書いて、ブラウザにFASTA形式で表示できるようにした。
 以前TinyXMLで試した時には、タグの構造も単純であまり苦労した記憶がないのだが、ヘビーなXML形式は枝が複雑に伸びていて、それを刈り込んでいくのが大変であった。NCBI_Seqset.dtdのありかはこのあたりである。普通にURLを指定してもシンタックスエラーが出てブラウズできなかったのだが、これでやっと溜飲が下がる。
 で、XMLの枝振りが立派すぎてテンプレートのルートを枝のどこにして(そこから先の分岐を指定し)データを表示させるのに何通りかの表現が可能であるように思われる。いろいろ試してうまくいったのは概略こんな感じ:
 次に、このファイルをClustalX (for Windows)に読みこませると、「配列は同じラベルを持っていてはいけない」というメッセージが出てくる。意訳するに「アクセッションナンバーが重複しとろうがゴルァ」ということである。しようがないので、一度xyzzycsvファイル化してExcelに読み込み、ソートをかけて重複分を除去。4300本のうち110本あまりが重複していた。もう一度、データの間にセパレータ文字を付加してcsv形式で保存し、xyzzyFASTAに戻す。
 再度ClustalXに読み込ませると、再び同じメッセージが出る。さすがに今度は重複する配列はないので、ClustalXのバグを疑う。
 EBIの本家サイトで、バグfix版を発見、インストールして試してみるとこちらだと(時間はかかるが)エラー終了せずにちゃんと読み込むことができた。で、あとはひたすら計算なのであるが、今回も1455913.43秒のオーダー、あるいはそれ以上の時間を要するのは間違いあるまい。以前には4454本あったのだから約100本見落としがあるということだが、多くは同じ種の別名の配列であると推測。あまり深く考えないことにする。
 計算開始から約30,000秒経過して、タスクマネージャでモニタすると、CPU使用率は50 %で頭打ちになる。すなわち、clustalx.exeプロセスを「リアルタイム」実行にすると片方のコアの使用率が100 %に張りついたままになり、優先度「高」の状態なら両方のコアの使用率が平均50 %になるようにプロセスを振り分けているようである。Windows XPカーネルは2つのコアに交互にプロセスを振り分けて逐次動作させるが、複数コアで並列動作させるわけではない。また、使用率が上がっていきなりマウスの応答性が悪くなったり排気ファンがスピンアップするようなこともない。これはこれで省エネのあかしかもしれないが、あまり早そうに思えない。[XML]

本ブログではamazon associate広告を利用しています。