biorubyのメモ

自分用メモ

bioruby には多数の問題がある

とりあえず文句をはきまくる。

ツールが古い

バイオインフォマティックスの主戦場がどんどん移動しているため、biorubyも古臭くなっている。次世代シークエンサーの普及によって、使用するツールが移り変わっており、その流れにBioRubyはついていけていない。結果として新しい形式のファイルに対応できている感じがしない。

開発者が少ない

2015年頃を最後に、活発な開発が終了してしまったような印象を受ける。この分野ではやっぱりRが一番強くて、2番目にPythonが強くて、3番目がPerlで、Rubyはほとんど存在感がない。サポートする企業があるとよいのだが。

ドキュメンテーションがよくない

他の人はどうしているか知らないけれども、僕はGemを新しくインストールしたら、

を起動して勉強することにしている。ところがBioRubyはRDocでドキュメンテーションを行っており、Yardではきれいに表示されないことがある。これが結構ストレスになる。また多くのクラスの説明が初心者には不十分である。特に、今では使う機会が非常に少なくなったようなデータベースや、ファイルフォーマットが多数のこされており非常にわかりにくくなっている。

データベースの勃興と消滅のスピードが早い

バイオ情報のデータベースは無数にあり、無数に消えていくようである。BioRubyなどのバイオ情報Gemの最大の目標は、サーバーから情報を簡単に取得することにあると思うが、サーバー側が新しく生まれたり消えたりするため、なかなか編集が追いつかない。この問題を解消するためにTogoWSというサービスが生まれたようだが、必ずしも広く利用されるには至っていないようである。

サーバーサイドから xml や json のファイルを手に入れる方が合理的

上記のように、データベースの発生・変更・消滅のサイクルが早いため、専用のファイル形式をパースするクラスを用意するのは、コードを書く側としては気持ちが良いが、実際には煩雑すぎて、bioinformatics をやっている人間の人数を考えると全く維持できない。それよりもサーバーから、xmlやjsonをダウンロードしてパースする方法の方が汎用性が高くて頻用されている。こうなってくるとBioRubyに多種多様なクラスが存在すること自体が良いことなのかどうかよくわからなくなってくる。

モジュールの入れ子構造と、ファイルの入れ子構造が一致していない。

これも少しストレスに感じる点の一つ。githubでソースコードのディレクトリを眺めていると、それなりに整理整頓されているが、Yardで観察すると、ディレクトリの構造とモジュールの入れ子構造がかならずしも一致していないので、直感的に理解しにくくなっていると思う。かといって、Bio::Untara::Kantara::Yatarato::Nagattarashii.new みたいなのはすごく嫌いなので、その点ではバランスが取れているのかも知れない。

そのほか思いついた愚痴を何でもかくチラシの裏

  • aa.rb とか na.rb とかは、今となっては aminoacid.rb とか nucleicacids.rb とか明瞭な名前にするべきだと思う。
  • IOとDBの関係がちょっとわかりにくかった。IOはFetchするグループで、DBは実はファイルフォーマットのグループみたいな感じ。

参照情報

BioRuby の使い方
・独自のシェル機能の説明が続いてなかなか本論に入らない。本当にシェル機能は必要なのだろうか

塩基・アミノ酸配列を処理する (Bio::Sequence クラス)

・Bio::Sequence::NA クラス
・Bio::Sequence::AA クラス

ファイルを開く

bioconda

biocondaを利用してNGS関連のソフトウェアを一括でインストールする