バイオインフォマティクスの競技プログラミング!? Rosalindの紹介

以前の記事ではざっくり無料で学べるバイオインフォマティクス関連コンテンツに関してご紹介しました。

www.kimoton.com

その中でも特にオススメなのが今回紹介するRosalindです。 競技プログラミング!?と書きましたが、形式が競プロ(課題を解き答えをsubmitする)というだけでコンテストのような形式はとっていません。
AtCorderなど、アルゴリズムに自信のある方は是非チャレンジしてみて頂きたいです。

Rosalindとは

Rosalindは、カリフォルニア大学サンディエゴ校とサンクトペテルブルク大学、およびロシア科学アカデミーの共同プロジェクトです。プロジェクトの名前はX線結晶構造解析によりDNA二重らせん構造の解明に貢献したロザリンド・フランクリンに敬意を示して名づけられています。

世界的にみると、75,000以上のアクティブユーザーが存在し、大学やハッカソン、さらには就職の面接を行う企業にも600回以上採用されているそうです。

Rosalindプロジェクト発端の経緯等については、Phillip Compeauのホームページに詳しく書かれています。

http://compeau.cbd.cmu.edu/home/online-education/rosalind/

Rosalindを構成する5つのコース

プログラミング未経験者は、Python Villageから始めることが推奨されています。

Python Vilege

全6問から構成されています。
プログラミングにまったく慣れていない場合は、これらの初期の問題を試して、Pythonプログラミング言語に関するいくつかの基本を学ぶことが推奨されています。

バイオインフォマティクスの課題解決のために必要なPythonの知識をサクッと学ぶことができます。

例:Pythonのインストール(http://rosalind.info/problems/ini1/

Bioinformatics Stronghold

全105問から構成されています。 Stronghold = 「拠点、本拠地」を意味します。バイオインフォマティクスの基礎となる拠点を築き上げることができます。
算質量分析、アラインメント、動的計画法、ゲノムアセンブリ、ゲノム再配列、系統発生、確率、文字列アルゴリズムなど、さまざまなバイオインフォマティクストピックの基礎となるアルゴリズムを学ぶことができます。

例:スクラッチで特定のDNA配列の各塩基数を導出(http://rosalind.info/problems/dna/

Bioinformatics Armory

全16問から構成されています。

Armory = 「武器庫」を意味します。 すぐに使えるソフトウェアツールは、バイオインフォマティクス分析のためにたくさんあります。Stronghold(拠点)では独自にアルゴリズムを実装しますが、Armory(武器庫)では既存のツールを使用して同様の問題を解決します。
主に無料のインターネットベースのソフトウェアと複数のOSと互換性のあるプログラムを利用して、課題解決に挑みます。

例:DNA statsを使用して特定のDNA配列の各塩基数を導出(http://rosalind.info/problems/ini/

Bioinformatics Textbook Track

全124問から構成されています。

2014年にPhillip CompeauとPavelPevznerにより発行された Bioinformatics Algorithms の演習課題となっています。書籍の内容は全てWEBページで公開されているため、書籍と併用することで内容理解の確認に役立てることができます。

本教材は多くの教育機関で使用されていることもあり、バイオインフォマティクスを学ぶ人なら読んでみる価値はあるでしょう。

www.bioinformaticsalgorithms.org

例:ビタビアルゴリズムの実装(http://rosalind.info/problems/ba10c/

Algorithmic Heights

全34問から構成されています。
C. H. Papadimitriou と U. V. Vaziraniによる人気の著書である「Algorithms」に付随する入門アルゴリズムの演習となっています。

例:フィボナッチ数の計算(http://rosalind.info/problems/fibo/

Rosalindの特徴

Levels、Badges、Achievements

Rosalindでは問題を解くごとに(解いた問題数が2の階上に達するごとに)Levelが上がっていく仕組みがあります。また、特定の条件を満たすごとにBadgeやAchievementを獲得することができます。

取得したBadgeやAchievementはプロフィールページに載るため、プロフィールページを見ればその人の戦闘力が分かるようになっています。

下記は世界1位に君臨するMark Mammel氏のプロフィールページです(…強い!!)

ランキングシステム

Top100ページでは、XPによる世界ランキングが公開されています。
これ上位になったら欧米では就活で使えるのかもしれませんね。目指せNo.1!

悲報

久しぶりに開いたら何故かFacebookでログインできなくなっておりました。
これまで行ってきたRosalindの結果が消えたのでご注意ください…。

ということで新規にアカウントを作成しました。
コツコツ積み上げていこうと思います。