「Java」カテゴリーアーカイブ

libsbml + layout extension

libSBML を使って、こんな感じ↓に作ったレイアウト情報を削除したいと思った。

SBMLReader reader = new SBMLReader();
SBMLDocument document = reader.readSBMLFromString(sbml);
Model model = document.getModel();
Layout layout = model.createLayout();

で、

layout.delete();

とか書いてみたのだが、全然消えない… (ただの finalizer だからだ…) 結論としては、

ListOf listOfLayouts = model.getListOfLayouts();
long numLayouts = listOfLayouts.getNumItems();
for ( long i = numLayouts-1; i >= 0; i-- )  listOfLayouts.remove(i);

みたいにすればよいのですな。ふつうに libSBML を使って、species とか reaction とかを消す場合もこんな感じにやればいいみたいです。ていうか、サンプルのコードには、SBML のいろんな element を追加していって作る奴はあるんですが、消す奴はない (と思う) んですな…

そゆわけで、成田-フランクフルト線でひとつめのバッテリを消化して、無事に作業が終了したのでした。うひょー。