−作業の種類(1)

 「バイオインフォマティクス(bioinfomatics)」という言葉の定義について、最近は、議論するひとが少なくなったようです。わたしたちソフト屋が生物学の分野でお仕事させていただくとき、一言で我々のポジションを言い表わすことができるという意味では、随分と便利に使わせていただいております。しかしながら、この言葉には、学問分野の響きがあり、プログラマーの立場からすると少々戸惑うところがあります。どういうことかというと、我々ソフト屋は、自ら生物学の研究をすることはないからです。生物学でもっとも重要な作業は「実験」なわけですが、コンピュータ処理は、その実験のお手伝いをするための道具であり、研究の支援をするのがソフト屋さんの役割であると考えているわけで、研究がうまく進み、その結果として社会に貢献することが我々のモチベーションとなります。
 これまでいろいろな研究者の方のお仕事をさせていただいた内容を振り返ってまとめてみると、実験とコンピュータ処理の関係は、基本的な6つの作業パターンに分類できると考えています。ソフト屋さんに仕事をお願いされる場合に、どのパターンの作業なのかを事前にお考えいただくと、スムーズにコミニュケーションができるかもしれません。

(1)検索・参照システム開発
 すでに蓄積されている実験データを検索参照可能にして、次の実験のためのデータを簡単に抽出できるようにします。公開サイトの構築作業もこれに入ります。
(2)スクリーニング・データ抽出
 実験のターゲットをスクリーニングしたり、実験のために必要なデータ(プライマー設計等)を抽出します。
(3)実験
 実験機器そのものが新規開発対象ですと機器へのデータ投入や機器からのrawデータをPCに取り込むソフトウエアの開発も必要になります。
(4)実験結果(測定結果)のデータ化
 測定機器から出力されてコンピュータで処理可能になったデータをさらに、実験の目的に従って、データ化・正規化・可視化します。マイクロアレイの発現変化量を数値するようなソフトウエアがそれにあたります。
(5)実験結果の評価
 これは、実験目的によって、いろいろにわかれます。もっともわかりやすい例としては、シーケンシングで得られた配列を公共DBにBLAST検索して、遺伝子を同定する作業がこれにあたります。また、ここの時点で、(2)のスクリーニングのステップに移行するケースもあります。
(6)実験データの蓄積
 共同研究、または、期間が長い実験、または、長期的目的を持ってデータを蓄積していくような場合に、ひたすら蓄積するためのシステムを開発することがあります。

 さて、実はこれらの作業、ソフトウエア屋さんにとってみると、作業の性質上(別の言い方をすると目的とするアウトプットの性質上)から考えると2種類に分類されます。

 ひとつは、①「プログラムを作成する仕事」、もうひとつは、②「データを出す仕事」です。バイオテクノロジーの分野では、データを出す仕事が半分以上を占めるかもしれません。プログラムを作成が目的となるケースは、上の分類でいうと「(1)検索・参照システム開発」と「(6)実験データの蓄積」になるでしょう。それ以外の仕事は、データを出すのが目的になります。

 ここにも、ひとつの「人材確保」という点における問題があります。一般的なIT業界の仕事は、①の「プログラムを作成する仕事」がほとんどなわけですから、「プログラマは、プログラムをどう作るかを考えるのが仕事」と思って、日々精進されてきたひとが多いのです。しかしながら、研究者にとっては、どういうプログラムを作るかに、興味があるわけではなく、どういう処理をしてどういうデータが出るかに興味があるのです。プログラマは、プログラムの”仕様”を決めようとお客様に質問します。IT業界の場合は、ITがわかる担当者(システム部門の担当者)がいるので、問題はおきません。バイオ分野の場合は、かたやプログラムの仕様、かたや、処理と出力の内容 ということで、しばらくすれ違う会話が続くことが多々あります。

 これを解決する唯一の方法は、やはり、我々ソフト屋が歩み寄っていくしかないと思っております。我々ソフト屋は、どんなプログラムを作るか というところに落とさなければならないのですが、研究者の方に要求仕様を作れというのは無理なので、要望をヒヤリングしながら、要求仕様を作りあげていって、「出力イメージ」を提示して、評価・修正してもらえるようにするのが、良い方法だろうと思っております。
 プログラムが納品物であろうが、データが納品物であろうが。。。