私はコンピューターサイエンス出身です。背景ですが、私は今ゲノミクスをやっています。
私のプロジェクトには、さまざまなクラスの生物学的サンプル、経時変化データ、マイクロアレイ、ハイスループットシーケンシング ( "next-世代」の順序付け、実際には現在の世代ですが) データ、このようなもの。
この種の分析のワークフローは、私がコンピューター サイエンスを勉強していたときに経験したものとはまったく異なります。UML がなく、思慮深く設計されたオブジェクトが崇高なエレガンスを放ち、バージョン管理がなく、適切なドキュメントがなく (多くの場合、ドキュメントがまったくない)、ソフトウェア エンジニアリングがありません。全て。
代わりに、この分野で誰もが行っていることは、通常は 1 回限りの使用のために、1 つの Perl スクリプトまたはAWKのワンライナーを次々とハッキングすることです。
その理由は、入力データとフォーマットが急速に変化し、質問にすぐに回答する必要があり (締め切り!)、プロジェクトを編成する時間がないように思われるからだと思います。
これを説明する 1 つの例: レイトレーサーを書きたいとしましょう。最初にソフトウェア エンジニアリングに多くの労力を注ぐことになるでしょう。次に、高度に最適化された形式で最終的にプログラムします。さまざまな入力データでレイトレーサーを数え切れないほど使用し、今後何年にもわたってソース コードに変更を加えるからです。そのため、本格的なレイトレーサーをゼロからコーディングする場合、優れたソフトウェア エンジニアリングが最も重要です。しかし、1 つの画像をレイトレーシングするために使用することが既にわかっている場合に、レイトレーサーを書きたいとします。その写真は、市松模様の床の上に反射する球体です。この場合、どうにかして一緒にハックするだけです。バイオインフォマティクスは後者の場合にのみ似ています。
次のステップに必要な 1 つの特定の形式に到達するまで、さまざまな形式の同じ情報を含むディレクトリ ツリー全体が作成されます。後日、このファイルを作成した理由とその正確な内容について説明します。
しばらくの間、MySQLを使用していましたが、これは役に立ちましたが、現在、新しいデータが生成され、フォーマットが変更される速度が速すぎて、適切なデータベース設計を行うことができません。
これらの問題を扱った 1 つの出版物を私は知っています (Noble, WS (2009 年 7 月)。計算生物学プロジェクトを編成するためのクイック ガイド。PLoS Comput Biol 5 (7)、e1000424+)。著者は、目標を非常にうまくまとめています。
核となる指針は単純です。あなたのプロジェクトに不慣れな人でも、あなたのコンピューター ファイルを見て、あなたが何を、なぜ行ったかを詳細に理解できるべきです。
うーん、それは私も欲しい!しかし、私はすでにその著者と同じ慣行に従っており、それでは絶対に不十分だと感じています。
Bashで発行するすべてのコマンドを文書化し、正確になぜそれを行ったのかなどをコメントすることは、退屈でエラーが発生しやすいものです。ワークフロー中のステップが細かすぎます。実行したとしても、各ファイルの目的、特定のワークフローがどの時点で中断されたのか、どのような理由で中断されたのか、どこで続行したのかを把握するのは非常に面倒な作業です。
(「ワークフロー」という言葉を Taverna の意味で使用しているわけではありません。ワークフローとは、特定の目標を達成するために実行することを選択したステップ、コマンド、およびプログラムを意味します)。
バイオインフォマティクス プロジェクトをどのように編成していますか?