アメリエフの技術ブログ

Amelieff Staff Blog

バイオインフォマティクスで迷わない!R と Python の選び方

こんにちは、受託コンサルティングチームの 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 の学習法や、ツールの使い方に関してお困りごとがあれば、アメリエフにご相談ください!

*1:R には Bioconductor、Python には Bioconda というライブラリ管理システムがあります。

*2:R には ggplot2、Python には Matplotlib, Seaborn というライブラリがあります。