こんにちは、受託コンサルティングチームの hosor です。
お客様より、「バイオインフォマティクスを始めてみたいが、R と Python のどちらを使えば良いか分からない」とご相談をいただくことがよくあります。
今回は、それぞれの特徴をまとめつつ、選び方についての個人的な考えを簡単に書いてみようと思います。
結論
無理やり一言で書いてみます。
どちらでも基本的な解析はできるが、統計解析や NGS 解析に重きを置きたい場合は R を、機械学習や汎用性 (web アプリ開発など) に重きを置きたい場合は Python を選ぶ。
それでは、実際にそれぞれの特徴を見ていきましょう。
できること
バイオインフォマティクス
どちらの言語もバイオ系のライブラリが非常に充実しています*1。
ただ、R には bulk RNA-seq 解析のライブラリ DESeq2, edgeR や、エンリッチメント解析のライブラリ clusterProfiler, ReactomePA などがあり、NGS 解析は R の方がやりやすい印象があります。
もちろん、Python で解析できることも多く、バイオ特有のデータの処理が得意な BioPython というツールもあります。
ちなみに可視化という点で比べると、ほとんど差はないかなと思います*2。
結局は何をやりたいか次第ですが、R の方が優勢かなと思います。
バイオインフォマティクス以外
Python の方が圧倒的に汎用性があります。
R は統計解析にしか使うことができないのに対し、Python では機械学習・web アプリ開発・組み込み開発など様々な用途で使用することができます。
もし、バイオインフォマティクス以外にもやりたいことがある場合には、Python を学習することをおすすめします。
使いやすさ
どちらの言語も比較的文法がシンプルであり、初心者でも学習しやすいと思います。
しかし、R は 1-indexed (配列のインデックスが 1 から始まる) であったり、代入の際に x <- 1
のように <-
(矢印) が推奨されていたりと、クセのある言語だと個人的に思っています。
また、Python の方が R よりも実行速度が 5~10 倍ほど速いことも知られています。
使いやすさの点では、Python に軍配が上がると思います。
最後に
色々と書いてきましたが、例えば、「どうしても使いたいツールが R でしか動かない!」という場合は R を選ばざるを得ないので、あくまで参考程度にしていただけると嬉しいです。
R や Python の学習法や、ツールの使い方に関してお困りごとがあれば、アメリエフにご相談ください!