ab1ファイルを読み込みたい(1)
タイトルの通り。
最終的には、GUIで複数の塩基配列の混ざり物を読み込んで解析できるようにしたい。
複数回に分けて記事を書くつもり。個人的なメモのつもりだけど、誰かの何かしらの助けになれば幸いですな。
Applied BiosystemsのWebサイトに、ABIFなる規格のファイルの仕様書があるので、これを参考に。
ここからは全て仕様書に書いてあること。
ab1ファイルをバイナリエディタなんかで開いたり、UNIXならターミナルから
od -ax hoge.ab1 | less
とでもしながら作業すると便利。
ファイルの先頭には、128 Byteのヘッダが格納されている。今回はヘッダの内容についてメモ。
初めの4 Byteは"ABIF"という文字列になっている。
基本的にはビッグエンディアンで書き出されているが、仕様上はリトルエンディアンも許されているとのことだ。
この4 Byteの並び順でエンディアンを判別すればよい。't', 'd', 'i', 'r'の順に並んでいればビッグエンディアンである。
5バイト目はバージョン情報。
16進数のIntで、100の位がメジャーバージョン、1の位がマイナーバージョンである。
殆どのシーケンサーが吐き出したファイルでは、101になっていると思う。
マイナーバージョンについてはあまり気にしなくてもよいが、メジャーバージョンはこの先変更の可能性があって、後方互換性はバサバサ切り捨てられる可能性もあるので、チェックするに越したことはない。
その後、28 Byteからなる"ディレクトリ"が続く。
ディレクトリの構成とか、ヘッダ内のディレクトリの詳細については次回書こうかな。
開発にあたって、こことかを参考にした。
このblogより余程よくまとまってるし、サンプルコードとかも載ってるから急いでる人は見てみるといいかと思う。
初めにab1ファイルを読み込んだ時はエンディアンでハマった。
ちゃんと仕様書に書いてあったのに、まともに読んでなかった。
回線切って首吊りたい。
Nitrous.IOがなかなかよくなってる
ひょんなことから簡単なサイト構築をすることになった(バイト)。
サンプルが欲しいとか言われたので、前に使ったことのあるNitrous.IO というサービスを利用することに。
前に使った時は通信環境が南アフリカ並だったので、全然使えないまま終わってしまったんだけど、改めて使ってみるとなかなかよかった。
ココから登録してもらえると、あなたも私もハッピー!です
_人人人人人人人_
> 突然の勧誘 <
 ̄YYYYYY ̄
え?普通に登録するって?そんなあ!!
肝心のサービスの中身だけど、今のところRuby on Rails, Python/Django, node.js, そしてGoが使えるっぽい。
因みに僕はGoのマスコットを見るとサンドバッグにしたくて仕方が無くなる。
登録後はN2Oというポイント?のようなものが割り振られて、それをメモリとストレージに割り振る形になる。前述の登録用URLは勧誘用のもので、ユーザーを勧誘すると相手と自分にN2Oが割り振られる仕組みっぽい。
どこのソシャゲだよ。
pathが通ってなかったりすることもあった気がするけど、その辺はおいおい書こうと思っておる。 取り敢えずPython/Djangoフレームワークで遊んでみている。
少なくともDjangoに関しては最新バージョンがインストールされているようなので、気に入らなければ上書きなりなんなりすればよろし。
で、タイトルはどういうことやねん、というと
Nitrous Desktop
コレです。
こいつがなかなかスグレモノで、ローカルと同期が出来る。というかその為のものなんだけど。 "Sync Now"をクリックしてやるとWindows環境だと%HOMEPATH%の中にNitrousというディレクトリが作られて、中身がまるっと同期される。
で、ローカルで編集してsyncすると、ローカルがウェッブ上にコピーされる。どうも最新のバージョンに同期されるっぽい。試してないので分からないが。
みんなNitrous.IOに登録して僕のN2Oを増やしてね!