2

私はJBossDroolsを学んでおり、hapmapプロジェクトの遺伝学データで遊んでいます:(http://hapmap.ncbi.nlm.nih.gov/genotypes/latest/forward/non-redundant/)。このディレクトリ内の各ファイルは、上部に個人、左側にゲノム上の位置、および各個人/位置で観察された変異を含むテーブルです。

ここでは、Droolsを使用して、ファイル内のいくつかの潜在的なエラー(たとえば、子供には両親からの突然変異がない)を見つけたいと思います。

1)これらのデータをDroolsにロードしたい。これは大量のデータになる可能性があります(たとえば、genotypes_chr2_YRI_r27_nr.b36_fwd.txt.gzは20Mo gzip圧縮されています)これらのデータはメモリに保存されますか?またはDroolsはそれをどこかに保存しますか?または、永続化システムを使用する必要がありますか?

2)モデルについて:

私は次のクラスをStatefulKnowledgeSessionに入れることを考えていました:

class Individual
 {
 private String name;
 //constructor, getters, setters etc...
 }

class Position
 {
 private String name;
 private String chromosome;
 private int position;
 //constructor, getters, setters etc...
 }

class ObservedMutation
 {
 private String individualName;
 private String positionName;
 private String observed;
 //constructor, getters, setters etc...
 }

または、ObservedMutationは次のようになります。

class ObservedMutation
 {
 private Individual individual;
 private Position position;
 private String observed;
 //constructor, getters, setters etc...
 }

提案ありがとうございます

ピエール

更新:私の最初のテスト:http://plindenbaum.blogspot.com/2010/07/rules-engine-for-bioinformatics-playing.html

4

2 に答える 2

2

はい、大量のデータを挿入すると、Drools はデータをメモリに保存します。20 Mb はおそらく問題ではありません。試してみてください。

提案するモデル クラスのルールを作成するのは簡単なはずです。最初のテストの hapmap.drl の例のルールは合理的に見えます。2 つの ObservedMutation クラスのどちらを選択するかは、DRL ルールの構文が異なるため、好みの問題です。私は 2 番目のバージョンから始めて、あなたがどのようにやっていくかを見ていきます: おそらく、(ObservedMutation の 2 番目のバージョンのように) オブジェクトのプロパティを持っている場合this、バインドされたオブジェクトを参照するために使用する必要があるかもしれないということです$p。 :

when
    ObservedMutation($p : position)
    Position(this == $p)
于 2010-07-28T10:32:16.537 に答える
1

2枚目でいいと思います。String のようなプリミティブよりもオブジェクトの方が好きです。

于 2010-07-22T20:49:10.023 に答える