代码之家  ›  专栏  ›  技术社区  ›  Pierre

学习JBoss drools:我的模式应该是什么

  •  2
  • Pierre  · 技术社区  · 16 年前

    JBoss Drools 我在玩hapmap项目的遗传学数据:( http://hapmap.ncbi.nlm.nih.gov/genotypes/latest/forward/non-redundant/ ) . 此目录中的每个文件都是一个具有 个人 在顶端,是 在左边的基因组上,观察到 突变 针对每个个人/职位。

    1) 我想把这些数据放到Drools里。这可能是大量的数据(例如基因型\u chr2 \u YRI \u r27 \u nr.b36 \u fwd.txt.gz是20Mo gzip)这些数据是否会存储在内存中?或者口水会把它储存在什么地方?还是应该使用持久性系统?

    2) 关于模型:

    我在考虑把下面的课程放在一个 :

    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...
     }
    

    或者观察到的变化应该是:

    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

    2 回复  |  直到 16 年前
        1
  •  2
  •   Peter Hilton    16 年前

    是的,当您插入大量数据时,Drools会将它们存储在内存中。20MB可能不是问题-试试看。

    为您提出的模型类编写规则应该很简单—第一个测试中hapmap.drl示例中的规则看起来很合理。在您的两个ObservedMutation类之间的选择和其他任何类一样是一个有趣的问题,因为它们将导致不同的DRL规则语法。我将从第二个版本开始,看看您是如何开始的:如果您有对象属性(如ObservedMutation的第二个版本),那么不明显的一点是您可能需要使用 this $p 在:

    when
        ObservedMutation($p : position)
        Position(this == $p)
    
        2
  •  1
  •   duffymo    16 年前

    我想应该是第二个。我更喜欢对象而不是字符串之类的基本体。