我正在尝试使用已发布的可执行.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>
有人对此有任何建议吗?
感谢您的时间!
如果xml文件的结构不同,则必须使用不同的XPath表达式来提取数据。
要处理示例文件,您必须使用/ listOfParameters,但是对于xml您需要使用/ reaction / kineticLaw / listOfParameters
如果您不能更改XPath表达式,则必须构建相同的xml。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句