パスワードを忘れた? アカウント作成
4129 story

バイオインフォマティクスのプログラミングコンテスト 34

ストーリー by Oliver
生物情報学 部門より

skimsr 曰く、 "文科省の特定領域研究「ゲノム情報科学」班および「統合ゲノム」班の主催で,バイオインフォマティクスに関するプログラミングコンテスト「BIP2002」が開催されます(課題や注意事項については告知ページを参照下さい)。締切は2003/02/28で,誰でも応募可能とのこと。腕に覚えのある方はぜひチャレンジを。ちなみに「バイオインフォマティクス」とは,生物学と情報科学とを融合した学問分野で,このコンテストでは生物学の問題を情報処理技術を用いて解こうとする研究を指すそうです。
ところで,「ゲノム情報科学」班のページでは,そのような研究用途に利用可能なソフトウェア・DBが公開されており,その中にはRubyを用いたオープンソースプロジェクト「BioRuby」なんてものもあります。研究成果をお互いに共有・検証・相互利用できるという観点から,学術研究分野とオープンソースの考え方は親和性が高いような気もしますね。"

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • "研究成果をお互いに共有・検証・相互利用できるという観点から,学術研究分野とオープンソースの考え方は親和性が高いような気もしますね。"

    bioinformatics はオープンソースによって支えられていますね。日常的に使うDNA/タンパク質配列解析プログラムBLAST [nih.gov], Wise [sanger.ac.uk], HMMER [wustl.edu]などソースが公開されているものがたくさんあります。

    また、オープンソースで進められているプロジェクトも多数あります。

    • BioDas [biodas.org] (ゲノム配列上の遺伝子に関する情報交換システム)
    • BioPerl [bioperl.org] (バイオインフォマティクスのためのPerlモジュール)
    • BioJava [biojava.org] (バイオインフォマティクスのためのJavaツール群)
    • Ensembl [ensembl.org] (自動ゲノムアノテーションとゲノムビューア)
    • GMOD [gmod.org] (汎用ゲノムビューア)
    など。

    バイオインフォマティクスの世界では、Perlが好んで使われますが、Perlとゲノムサイエンスのかかわりについては(古いですが)、 How Perl Saved the Human Genome Project [bioperl.org]が参考になるかと。

    必然的にPerlコミュニティーに対する貢献も多く、

    use CGI;
    use GD;
    use DBI;

    した時点で、バイオインフォマティクス研究者である Lincoln Stein [cshl.org]のお世話になっているわけですね。

    --
    -eu
    • by Anonymous Coward on 2002年10月17日 18時46分 (#184883)
      でもね、その「成果」はお金になるから、全部は「オープン」じゃないんですね。結局今はこの段階だからオープンな部分も許される、という感じですか。ITから引き上げた投資家はまずこちらの方をみんな向いているからね。いまは「バイオ」というだけで投資家はうるさいよ。

      日本でも、かなり前から経済産業省のお金で北野共生システムプロジェクト [jst.go.jp]がかなりいろいろやってるね。

      表向き「ロボット」「人工知能」が出てるように見えるけど、よく読むとこの分野です。もっともこちらはシステム・バイオロジーと言ってますけど。ここではXMLを使って「SBML(System Biology Markup Language)」というのも策定してますね。

      省庁どうしの縄張り争いでこの分野がダメにならないことを、切に祈ります。
      親コメント
      • その「成果」はお金になるから、全部は「オープン」じゃないんですね。結局今はこの段階だからオープンな部分も許される、という感じですか。

        「全部は」というところがポイントでしょうね。大体はその辺りを狙ってバイオベンチャーが出来たりしてるわけで。
        ただソースを完全に公開はしなくても、少なくともアルゴリズムなどは*まともな*論文で公開したようなものでないと、結果そのものの「科学的な」信頼性に関わります。「よく判らないけど何か計算してる」ってソフトから出てきたデータを無邪気に信用して研究を進める、というわけにはいきませんからね。
        肝心な処理のアルゴリズムがオープンであったとしても、高速化/効率化や、UIや使い勝手に工夫がされて研究のスピードアップに役立つものであれば十分商品価値はあると思います。
        #なので、アルゴリズム特許は勘弁して欲しい気が……。

        研究者の視点からすると「オープンでない部分があっても(この御時世じゃ)仕方ない」という感じなのですが、それが投資家の視点からすると「オープンな部分が許される」ということになるのは興味深いですね。
        親コメント
        • 肝心な処理のアルゴリズムがオープンであったとしても、高速化/効率化や、UIや使い勝手に工夫がされて研究のスピードアップに役立つものであれば十分商品価値はあると思います。
          アルゴリズムはそうそう思いつきませんが、UI/使い勝手程度だと 直ぐみんなに真似されてしまうので儲からなくないですか?
          • >アルゴリズムはそうそう思いつきませんが、UI/使い勝手程度だと 直ぐみんなに真似されてしまうので儲からなくないですか?

            儲かる保証はできませんから「そうかもしれない」としか言えませんね (^^;

            でも例えばMOE [rsi.co.jp]というシステムでは分子や蛋白質の立体構造予測などに関するデータベースをうまいこと統合して、研究者がやっていく一連の操作がスムーズになるような工夫がされています。一つ一つの機能はオンラインで無料でやっていけないこともないことばかりですから、「普通の」研究室レベルではさすがに導入コストがもったいないかもしれないけど、扱うべきデータが多くスピード勝負のところ、例えば製薬会社などには結構入ってると聞いてます。

            #MOEの場合さらに蛋白立体構造予測のコンテストでいい成績出したって話もあるんで、アルゴリズム自体の評価もあるんでしょうけど。まぁそういう例もあるよ、ってことで。
            親コメント
  • 生物情報学部門 (スコア:2, 参考になる)

    by y_tambe (8218) on 2002年10月17日 16時50分 (#184844) ホームページ 日記
    訳す場合は「生命情報学」とすることが多いです。普通はそのまま「バイオインフォマティクス」としますけど。
    訳語からもそうですが、何かこう漠然としてて何をやるんだか判らない、最近にありがちな分野ですが、ここあたり [genome.ad.jp]に出ている表が中身の参考になるかもしれません。あるいはこの本 [oreilly.co.jp]の目次の方がピンとくる人も多いかな(コンピュータ初心者のバイオ研究者向けの内容ですが)

    遺伝子のレベルでは結構歴史が古いのですが(よく似た遺伝子をサーチするとか)これがポストゲノム時代ってことで、蛋白の構造とかさらに分子間相互作用とか、非常に多岐にわたって繰り広げられるようになったものだと。
    • by Crisp (10852) on 2002年10月17日 23時00分 (#184962)
      (よく似た遺伝子をサーチするとか)
      そういえば、遺伝子解析処理上の必要に迫られて、文字列のパターンマッチング等のアルゴリズムが進歩したという話を聞いたことがあります。
      親コメント
  • というわけで (スコア:2, 参考になる)

    by Matanuki (31) on 2002年10月17日 23時43分 (#184974) ホームページ
    買ってね!
    「実践 バイオインフォマティクス ゲノム研究のためのコンピュータスキル」 [oreilly.co.jp]と
    2002/11上旬に出版予定の「バイオインフォマティクスのためのPerl入門」(現在最終校正完了したとこ)
    --
    訳者一同を代表してま たぬき
    • 目次を読むとなかなかよさそうですね。

      先日「できるバイオインフォマティクス」(中山書店)と「バイオインフォマティクス」(MEDSI)を購入したところなのですが、普段使用しているLinux上での使用例がなかったので、こんど本屋さんで探してみることにします。

      特に前者は、「UNIXやLinuxもそれなりに扱えるし、バイオインフォマティクスもやっているけれど、忙しくてサーバの管理なんかやってられない研究者」のための手抜き管理本としても使えそうですしね。
      --
      Eureka !
      親コメント
  • by Anonymous Coward on 2002年10月17日 18時23分 (#184872)
    ということで、経済産業省も総務省も同じ分野でみんななにかしようとしてますね。ちゃんと省庁間の調整がつかないと、大変と思いますが。米国ではすでにIT技術者のバイオ関連への流出がだいぶ前から始まってますし、国家レベルでの戦略もあるようです。日本ではまだ統一した戦略がはっきりしていない。いまどきまだITなんていってる役人が多いし。

    # いろいろあるのでAC
  • by Anonymous Coward on 2002年10月17日 20時11分 (#184907)
    こういうネタを利用して,プログラマー向けの生物学教室とか(ん?バイオインフォマティクス教室かな)をやってくれる人はいないものでしょうかね.「アプローチ手法の斬新さ,ユニークさ」を審査してるんだから,オープンソースでの解決方法なんてのを公開してもよいと思うんですけど.え,おまえがやれって? モチーフ配列ってなんだかわからないんですけど...あ,それもネタになるか.
    • by y_tambe (8218) on 2002年10月17日 20時46分 (#184923) ホームページ 日記
      #あらかじめ、僕もやんないってことだけは表明しておくけど
      こういうネタを利用して,プログラマー向けの生物学教室とか(ん?バイオインフォマティクス教室かな)をやってくれる人はいないものでしょうかね
      オライリーの本 [oreilly.co.jp]にしてもそうなんですが、バイオインフォマティクスの解説書って基本的にバイオ研究者(でコンピュータの初心者)向けのものばっかりなんですよね、確かに。逆のパターンの本があったら誰か教えてほしいですね。
      バイオインフォマティクスに使われるような生化学のことをプログラマが理解するのに比べたら、理解すべきことの分量は確かにその方が少ないようには思いますし、その手法の妥当性(誤った予測を生まないということ)を示すにはちゃんとした研究者が関わる必要もあると思います。
      だから結局は「両方をやってる研究者にしか手が出せないコンテスト」になってしまう可能性もあるかなぁ、とは最初に見たときに思いました。
      まぁそれはそれでも予算使った分の成果さえでればいいんですけどね。
      親コメント
      • by Anonymous Coward on 2002年10月17日 23時09分 (#184965)
        一応そっち系の勉強を院でやってます。
        おっしゃるとおり、情報系から入るのは大変です。
        かく言う自分も計算機科学がバックグラウンドなので、
        生物学の勉強には苦労してます。

        ま、素直にThe Cellなんかで一通り読んで、後は統計学の復習
        でもして、クラシックな配列比較なんかを解説してる本に進む、
        と言う地道な方法しか思いつきません。ちなみに自分がintron
        とかORFとかいう恐ろしく基本的な単語を知ったのは大学4年
        の時でしたので、飛び込んでしまえば何とかなるもんです。

        しかしながら、統計学などのエキスパートならばそれだけで
        かなりのアドバンテージになりますので、ぜひ数学、情報系
        の人にも参加して欲しいです。

        最近翻訳されたメディカル・サイエンス・インターナショナル
        から出ている「バイオインフォマティクス」と言う本は、学部
        レベルの分子生物学と確率、統計学の知識があれば読み進めま
        すのでいいかもしれないです。
        親コメント
      • by Anonymous Coward on 2002年10月18日 0時51分 (#185018)
        バイオインフォマティクスに使われるような生化学のことをプログラマが理解するのに比べたら、理解すべきことの分量は確かにその方が少ないようには思いますし
        一応バイオインフォマティクスを本業にしている者ですが、
        この業界では寧ろ、
        コンピューターで使われるような情報科学のことを生化学屋が
        理解するのに比べたらプログラマが理解すべき生化学の分量は
        確かにその方が少ない、と思われている気がします。

        情報科学をちょっとかじったことのある人だったら造作もない
        ようなことを人の力で頑張っていたりするので、ちょっとくらい
        生物が分かって、プログラムが書ける人はそれだけで
        重宝されています。

        たとえば、酵素A では GAATTC という配列があればそれを切断し、
        酵素B はGCC?????GGC (?はATGC全てにマッチ)という配列が
        あればそれを切断するとします。
        塩基配列(ATGCの並び)が 1000本あって、その中で酵素Aと酵素Bが両方とも反応するものを
        リストアップしたい、というときに、それすらできない生物学者が
        居るわけです。
        (もちろんそんな人たちばかりではありませんが。)
        情報系の人なら grep なり perl なりで 10 分でプログラムを
        書けば終わるところを、正規表現を知らないために、プリントアウト
        して赤ペンひいていたりする。
        勿論、その程度のことは最近は生物の人も、皆できるように
        なりつつあるわけだけれども、「生物?わからんからパス。」
        という人が情報系には多いから、この程度の処理ができる人から
        そもそも不足していて、(日本では)困っているのが現状だと
        思います。
        当然本業でバイオインフォマティクスをやっている人たちは、
        (流石に↑の程度では論文にならないので、)
        もっと頑張って 複雑なことをやっている訳だけれども、
        まだまだ (情報科学的には)簡単なことでも研究成果になる 段階にあると思うので、
        例えば 遺伝学電子博物館 [nig.ac.jp] を一通り読んでそこそこ理解した
        プログラムが得意な高校生、とかでも、まだまだ 一躍スターになる可能性があるんじゃないかと 思います。
        上の書き込みでも紹介されていますが、データベース配列の中から
        指定した配列(に近い配列)を出力する BLAST というプログラムは
        ノーベル賞候補とかいう話もあるくらいで、
        (勿論、BLASTはそれなりに深い洞察や実験に基づいて作られた
        検索プログラムで、たいした仕事ではありますが。)
        やりがいもある分野だと(少なくとも私は)思っています。


        ....だんだんコンテストに参加したくなってきましたか?
        ノートパソコンとか賞品も出ますので、是非参加して下さい。
        このコンテスト、とにかく日本のバイオインフォマティクスの
        すそ野を広げよう、というのが狙いなので、
        いろいろなバックグラウンドの人が老若男女問わず参加して
        貰えれば良いなぁと思います。用語とかが不明ならしばらくの
        間答えますので、ばしばし書き込んでください。
        親コメント
        • by babie (6656) on 2002年10月18日 10時03分 (#185226)
          >遺伝学電子博物館
          以外で、
          研究者の間で、必読もしくは良書とされてる書籍等を教えて頂けませんか?

          初心者用から並べてあるとうれしいです。
          親コメント
        • by T.Sawamoto (4142) on 2002年10月18日 11時34分 (#185274)
          # 生化学用語を知りたいというコメントではありません。

          面白そうだな、とは思います。
          しかし、本格的に生化学の勉強をするのはちょっと…と躊躇してしまうのも事実です。(『Newton』ぐらいは読んでますが(^^;))
          例えば、『問題 4』は生化学に関する知識は不要なわけですよね。ところが逆に、『問題 3』なんかは「ハイブリダイズって何よ?」となってしまうわけで…。
          (あまりに基本的な用語なのか、Googleで調べても分からない。『二本鎖を形成』? 対にするってことかな?)
          実際のところ命題を解くに当たって、「ATGCとはなんぞや?」などという基本的なことすら、必ずしも知る必要はないのではないでしょうか?
          『問題 3』なんかはデータ数から見るに、回答の長さが5960を超えるはずはないと思うのですが、どの程度を想定すればいいのか分かりません。また、『誤差』がどういうレベルなのかも、SBH法を知らないために想像がつきません。
          生化学に関する知識は高校生レベルで事足りる、ぐらいに歩み寄ってもらえると、参加者も増えると思うのですが…無理かなぁ。
          親コメント
          • by mkasa (12075) on 2002年10月18日 17時56分 (#185427)
            情報向けに(物凄く簡単に、専門家はツッコミ禁止)解説すると...

            問題1 (例は全て架空のものです)
              ATGCの4文字からなる文字列があります。
              遺伝子が含まれる領域の左側にプロモータ配列という配列があると、
              プロモータ配列の種類に応じた特定の条件で遺伝子が働くように
              なります。(例: プロモータAは細胞が熱にさらされると、
              右にある遺伝子が働くようになる)
              プロモーター配列は一般には、遺伝子の左側にだいたい存在し、
              遺伝子自体とどれくらい離れているかは種類によります。
              同じ種類でも距離は一定しているとは限りません。

              遺伝子Aの場合
              ATCGGGCCTGGATGCGTTGCCCGGTTAAAGCATGGTGCAAACCCACTATCGAT
                  |<--プロモータA->|     |<--遺伝子A-------------->|
              遺伝子Bの場合
              CCAGGCCTGGATGCGTTGCCCAACTCCCATGCTCCATCCGATACAACTGCGAT
                 |<--プロモータA->|      |<--遺伝子B-------------->|

              この場合プロモータ配列A は GGCCTGGATGCGTTGCC という
              配列な訳ですが、この配列がどんなものか分からないときに、
              たくさん与えられた配列から共通の配列を見つけて
              プロモータ配列を推測してくださいというのが問題です。
              なーんだ、サーチを繰り返せば、という話もありますが、
              プロモーター配列はちょっとずつ違っても働くので、
              GGCCTGGATGCGTTGCC から一文字変更して
              GGCCTGGTTGCGTTGCC でもやっぱり働きます。
              つまり、この問題では 10文字以上でかつ30%くらいまでの
              違いを許容しつつ(だいたい)共通しているプロモーター配列
              を求めてください。ということです。

            つづく...かなぁ。

            # 他力本願なのでハンドル
            親コメント
            • by Anonymous Coward
              プロモーター配列ってのが,一意に決まらなくて,30%ぐらいの違いがあるんだとすると,回答として記述する配列ってのはどう記述するのでしょうか?
              正規表現を使って試してみようかな.正規表現メーリングリスト [bug.org]に投げてみようかしらん.
            • もう少し補足すると、プロモーター配列以外に対しても
              モチーフという言葉は使いますね。
              おおざっぱに言えば「良く出てくるパターン」のような
              ものかと思います。>モチーフ
            • バイオはどしろうとです.
              解説を元にperlでスクリプトを書いてみました.長さが10の文字列で調べたのですが,DNA-sequence-A.dna では'.TT.AT.AAA'という文字列で10個,DNA-sequence-B.dna では'T...TATATA', 'TTAT.A..AT' で12個にしかマッチしません.以下のようなスクリプトなんですが,何か考え方が間違っているのでしょうか?
              このスレッドをまだ見ている人はいるかなぁ,そっちが問題かも

              #!/bin/perl
              # no1.pl
              # BIP2003 問題1解答用スクリプト
              # http://contest.genome.ad.jp/
              # 使い方 no1.pl ファイル名
              #
              use strict;

              my ($i,$j,$k,@i,@j,@k);
              my (

              • perlはよくわかんないんですが、
                正規表現だけで、この問題を解くのはかなり無理があるような気
                がします。
                 変異はモチーフのある特定の場所に集中して起こるのではなく
                て、偏りはありますがモチーフ配列全体で起こります。

                たとえば、モチーフが5個あったとして
                  ABCDEFGHIJKLMNOPQ
                1GACCTGAATGCGTTGCC
                2GGCCTGGATGCGTTGTC
                3GGCCTGGCTGCGTGCC
                4GGTCTGCATGCATTGCC
                5GGCATGCATACGTTGCC
                  GGCCTGXATGCGTTGCC コンセンサス配列
                  G...TG..T.C.T.... 正規表現

                それぞれの配列は、コンセンサス配列
                (変異が起こる前の配列といったらよいのでしょうか)から30%も変化
                していないのですが、 変異がいろいろな場所で起きているため正
                規表現ですべての配列を検索しようとすると.が多くなってしまって
                他のモチーフではない部分も引っかかってしまいます。

                 さらに、配列3のn列のように変異は置換だけでなく塩基がなくなる
                deletionや逆に塩基が挿入されるinsertionなどもあります。
                これが起こるとそれから後はこの正規表現ではすべて.になってしまいます。

                また、g列のように変異が置きやすい場所もあって、このような場所
                に変異があってもモチーフ配列である確率はあまり下がりません。

                 このようなことを表現するには、正規表現だけでは役不足で
                オートマトンに確率をたしたような隠れマルコフモデルなどがよく使われています。

                 これらについては、
                「バイオインフォマティクス-確率モデルによる遺伝子配列解析-」(医学出版)などが詳しいです。
                 ただ、モチーフ検索などは研究の歴史も長く人数も多いのでよい
                成果を出すのはかなり大変そうです。
                親コメント
              • サンプル作った者です.コメントありがとうございます.なかなか難しいものですね.確かに正規表現を使っただけではできないようです.成果を出すことを目的にしているわけではなく,バイオインフォマティクスの勉強を進める上でのよりどころに
          • by Anonymous Coward on 2002年10月18日 21時39分 (#185556)
            ハイブリダイズは二本鎖を形成するという意味でよいかと。
            Perlで言うと、$a に対して getsouhosa($a)という配列は $a の相補鎖と呼ばれていて、$a, getsouhosa($a) はくっついて 二本鎖を形成します。
            sub getsouhosa{
            my $s = shift;
            $s =~ tr/ATGC/TACG/;
            return join("",reverse(split(//, $s)));
            }

            SBH法はわりとまだ理論段階の話なので「誤差」のレベルに関して
            はまだ未知数だと思います。またまたPerlで書きますが、 誤差がないSBH法の結果は
            $moto="ATCCTTCGCGGGCCATGCCG"; # 元の配列の例
            $k = 10; # 定数(今回は10)
            for($i=0;$i+$k $p=substr($moto,$i,$k);
            $h{$p}=1;
            $h{getsouhosa($p)}=1;
            }
            print join("\n",sort(keys %h));

            このプログラムの出力結果になります。結果だけを見て
            $moto に何が代入されていたか分かれば良いわけです。
            誤差有りの場合には、文字列を数パーセント変化させて
            返すaddgosa関数でも作って、上のプログラムの
            $h{$p}=1;
            $h{getsouhosa($p)}=1;

            の部分を
            $h{addgosa($p)}=1;
            $h{addgosa(getsouhosa($p))}=1;

            に置き換えれば良いです。
            親コメント
            • by poo (10689) on 2002年10月19日 8時21分 (#185759)
              SBHの誤差って(バルジ構造による)insertionとdeletionと
              subsutitutionでいいんですかね。
                insertionとdeletionがなければ、結構簡単そうなんだけど。
               DNAのハイブリダイスのエネルギーを求める式があれば
              insertionとdeletionとsubsutitutionが起こる比率が求められそう
              どっかに転がってないですかね。
              親コメント
              • insertion/deletion/substitutionの比率は実験条件に よって全然変わってしまだろうし、substitutionだけで いいんじゃないかなぁ?
        • http://www.natureasia.com/japan/jobs/feature5.html

          『生物学の研究者にプログラミングを教えるよりも、それらの領域を専攻した者に生物学を教える方が「かなり楽」なのだそうだ。』

          とか書かれてますね。
        • コンピューターで使われるような情報科学のことを生化学屋が
              理解するのに比べたらプログラマが理解すべき生化学の分量は
              確かにその方が少ない、と思われている気がします。

          これは、「何をやりたいか」、もしくは「何になりたいか」によって
          答えが変ってくる気がします。

          要するに、生物学者という「顧客」のデータを処理できる「SE」に
          なりたいのか、または「生物学の」研究を情報の観点から行いたいのか、
          と言うのでかなり事情は変ってきます。

          前者ならばおっしゃるとおりで、生物学の知識はかなり限定して
          も大丈夫だと思うんです。し
          • 全く同意です。

            要するに、生物学者という「顧客」のデータを処理できる「SE」に なりたいのか、または「生物学の」研究を情報の観点から行いたいのか、 と言うのでかなり事情は変ってきます。

            ただ、いきなり後者は言葉の(生物用語の)壁が大きくて難しいとおもいます。最初は前者のような形で業界に入って、徐々に後者のような形になれれば、生物や数学畑の人たちとは違った研究ができるん

typodupeerror

人生unstable -- あるハッカー

読み込み中...