はじめに

バイオインフォの位置づけ

プログラミングは,分子生物学の問題を解決するための情報技術を開発するための道具である.

バイオインフォにおける多様なデータ

バイオインフォでは多種多様なデータを扱います.

DNA配列 遺伝子発現データ
アミノ酸配列 タンパク質立体構造
タンパク質ネットワーク  
 

これらのデータを大量に解析するには,プログラミング言語を習得する必要があります.

多様なプログラミング言語

以下いずれも合計を計算するプログラムである.

Java
Ruby
Perl
C
C++
matlab
  • 書き方は少しずつ異なるが,だいたい似たようなソースコードになっている.
  • → プログラミング言語をひとつ徹底的に覚えれば,ほかの言語を覚えるのはたやすい.
  • 本講義では,比較的言語体系がしっかりしている Java を扱う.

プログラミング習得の意義

  • バイオインフォツールの開発.
    • 多様なデータの出現に大して,適したツールがすでに存在しているとは限らない.
    • 自分で開発すれば,自由にカスタマイズできる.

  • 既存ツールのチェックや改良
    • ソフトウェアはだれのチェックを受ける必要もなく誰でも公開できる.
    • よって,正しく計算している保証はない.
    • プログラミングを学べば,ソースコードが公開されているソフトウェアをチェックできる.
    • プログラミングを学べば,自分の都合に合うように改良することができる.

  • 既存のツールに入力できるようデータを自動整形.
    • DNA 配列でも GenBank 形式と Fasta 形式がある.これらを相互に変換しなくてはならない場合がある.
    • 多様な形式にこたえるには,自身でプログラミングする必要がある.

    • 例1:多様な形式

      • DNA配列のための2つのデータ形式
        GenBank 形式
                  1 aggaaccctt tatgtaaaaa gtgttagaaa tattgttagt gaatttgcag ctttttatgt
              61 agacagtgtg atataggcgg gatatagtga cgcagccagt aaccaaaaca caatggagag
        Fasta 形式

        >gi|33636482|gb|BT010221.1| Drosophila melanogaster RH01460 full insert AGGAACCCTTTATGTAAAAAGTGTTAGAAATATTGTTAGTGAATTTGCAGCTTTTTATGT
        AGACAGTGTGATATAGGCGGGATATAGTGACGCAGCCAGTAACCAAAACACAATGGAGAG


      • 立体構造
        PDB 形式
        HEADER    HYDROLASE(SERINE PROTEASE)              08-NOV-91   1ACB              
        TITLE CRYSTAL AND MOLECULAR STRUCTURE OF THE BOVINE ALPHA-
        TITLE 2 CHYMOTRYPSIN-EGLIN C COMPLEX AT 2.0 ANGSTROMS RESOLUTION
        ATOM 405 CB HIS E 57 2.499 11.049 16.343 1.00 29.74
        ATOM 406 CG HIS E 57 3.828 10.411 16.374 1.00 23.10
        ATOM 407 ND1 HIS E 57 4.178 9.637 17.469 1.00 19.70
        ATOM 408 CD2 HIS E 57 4.893 10.480 15.498 1.00 13.75
        ATOM 409 CE1 HIS E 57 5.459 9.297 17.268 1.00 16.78
        ATOM 410 NE2 HIS E 57 5.905 9.764 16.089 1.00 22.38

    • 例2:作業の自動化.
      • 一つの遺伝子からマルチプルアラインメントまで.(生命情報学の講義で扱う.)


  • 講義後もっと学べばより高度なことができる
    • オブジェクト指向を覚えれば,使いやすいプログラムが書ける
    • システムコールを覚えれば,さまざまな既存のツールを自動的に呼び出して使える
    • ツールを手動で何回も動かさなくても良くなる
    • インターネット上のデータベースの使用も自動化できる
    • アルゴリズムを勉強すれば,高速に大規模に計算できる
    • 統計を勉強すれば,大量データの検定も自動的にできる
    • パターン認識を勉強すれば,さまざまな予測ができるようになる
    • 多くの場合,他の言語にもjavaと同様な概念があるので,新たな言語を習得するのが容易になる.

本講義の目標

  • 基礎編:既存ツールだけでは実現が難しい「パターン認識」を題材にプログラミングの基礎を習得する.


  • 応用編:既存のツールを活用して,自分が使いやすいソフトウェアを開発する方法を習得する.

トップページへ戻る.

問い合わせ先