我正在尝试使用BioJava库进行结构对齐。我想从一个结构对象中一个接一个地挑选一些链并将它们添加到另一个结构对象中这样我就可以对它们进行结构对齐但我还不知道怎么做。到目前为止,我编写的代码如下,但它给出了空指针异常(可能是因为new_structure
被设置为null)。我还能尝试什么?
private static Structure prepareStructures(String structure_name, AtomCache cache){
Structure structure = null;
Structure new_structure = null;
String[] pdbnchain;
try{
pdbnchain = structure_name.split("\.");
structure = cache.getStructure(pdbnchain[0]);
for(int i = 0; i < pdbnchain[1].length(); i++){
String letter = pdbnchain[1].charAt(i)+"";
new_structure.addChain(structure.getChainByPDB(letter));
}
} catch(Exception ex){
ex.printStackTrace();
}
return new_structure;
}
可以使用:
Structure new_structure = structure.clone();
获取结构的相同副本。然后你也将在new_structure中拥有第一个结构的所有链。
也许你应该在后面做:
structure = cache.getStructure(pdbnchain[0]);
new_structure = structure.clone();
具有非空值。请参考本文档。
你也可以试试:
Structure new_structure = new StructureImpl(); // StructureImpl implements Structure interface.