|
我如何将一个分布以XML格式输出?
如果你经常从大量的训练集中创建分布,并且希望存储这些分布待日后分析使用.一种可能的方法是将分布序列化以二进制存储.这种方法空间效率高,能被不同的java虚拟机上使用,但是这种方法也很容易出现由于Biojava版本的不同而导致的不兼容问题.
而且,你有时候会希望能人为的读取分布.一个更好的方法是使用XML来存储分布.XML是一种人和机器都能阅读的语言,独立于程序.下面的例子展示了如何将分布以XML格式输出,并读入XML格式的分布.注意,请使用最新版本的Biojava.(CVS或1.3).
import java.io.*;
import org.biojava.bio.dist.*;
import org.biojava.bio.seq.*;
public class Dist2XMLAndBack {
public static void main(String[] args){
try{
File temp = File.createTempFile("xmltemp", ".xml");
//创建一个要输出的分布
Distribution d = DistributionFactory.DEFAULT.createDistribution(DNATools.getDNA());
//随机化这个分布
DistributionTools.randomizeDistribution(d);
//写到'temp'文件中
DistributionTools.writeToXML(d, new FileOutputStream(temp));
//再读回来
Distribution d2 = DistributionTools.readFromXML(new FileInputStream(temp));
//检查权重的一致性
boolean b = DistributionTools.areEmissionSpectraEqual(d, d2);
System.out.println("Are values reproduced? " + b);
} catch(Exception ex){
ex.printStackTrace();
}
}
}
--BACK TO TOP
|