从XML文件中提取参数数据

劳拉

我正在尝试使用已发布的可执行.jar文件(http://www.comp.nus.edu.sg/~rpsysbio/pada从Eclipse中由COPASI创建的XML文件中提取参数数据,该文件会创建3个ODE文件。 (.txt),变量(.csv)和参数(.csv)。这适用于提供的示例XML文件,但是当我使用自己的数据时,会创建一个空白的.csv par(参数)文件(已打印列标题)。没有错误显示,并且ODE和变量文件已正确写入。这是用于提取参数数据的代码:

void printPar(String outdir){
try{
    FileOutputStream outfile=new FileOutputStream(outdir+"./par.csv");
    PrintWriter out=new PrintWriter(outfile);
    // header
    out.println("NAME,INIT,LowerBound,UpperBound,BoundNum,BoundSize");
    for (int i=0;i<model.getNumParameters();i++){
    Parameter p=model.getParameter(i);
    //out.println(convert(p.getId())+","+p.getValue()+",,,");
    double x=p.getValue();
    if(x<1)
        out.println(convert(p.getId())+","+p.getValue()+",0,1,5");
    else if(x<100)
        out.println(convert(p.getId())+","+p.getValue()+",0,100,5");
    else
        out.println(convert(p.getId())+","+p.getValue()+",0,10000,5");
    }

    out.flush();
} catch(IOException e){
    e.printStackTrace();
}
} 

我可以在示例和自己的XML文件之间看到的唯一区别是,在示例文件中,参数与响应分开列出,如下所示:

    <listOfParameters>
        <parameter id="parameter_1" name="k1" value="0.1" />
        <parameter id="parameter_2" name="k2" value="0.1" />
        <parameter id="parameter_3" name="k3" value="0.3" />
    </listOfParameters>

而在我的文件中,列出了每个反应的参数,例如:

</reaction>
...
      <listOfParameters>
        <parameter id="k1" name="k1" value="0.0008"/>
        <parameter id="k2" name="k2" value="1.05e-06"/>
      </listOfParameters>
    </kineticLaw>
  </reaction>

有人对此有任何建议吗?

感谢您的时间!

马克·A·埃尔南德斯

如果xml文件的结构不同,则必须使用不同的XPath表达式来提取数据。

要处理示例文件,您必须使用/ listOfParameters,但是对于xml您需要使用/ reaction / kineticLaw / listOfParameters

如果您不能更改XPath表达式,则必须构建相同的xml。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章