本文整理汇总了C#中libsbmlcs.SBMLDocument.checkConsistency方法的典型用法代码示例。如果您正苦于以下问题:C# SBMLDocument.checkConsistency方法的具体用法?C# SBMLDocument.checkConsistency怎么用?C# SBMLDocument.checkConsistency使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类libsbmlcs.SBMLDocument
的用法示例。
在下文中一共展示了SBMLDocument.checkConsistency方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: validateExampleSBML
//===============================================================================
//
//
// Helper functions for writing/validating the given SBML documents.
//
//
//===============================================================================
/**
*
* Validates the given SBMLDocument.
*
* This function is based on validateSBML.cpp implemented by
* Sarah Keating, Ben Bornstein, and Michael Hucka.
*
*/
private static bool validateExampleSBML(SBMLDocument sbmlDoc)
{
if (sbmlDoc == null)
{
Console.Error.WriteLine("validateExampleSBML: given a null SBML Document");
return false;
}
string consistencyMessages = "";
string validationMessages = "";
bool noProblems = true;
int numCheckFailures = 0;
int numConsistencyErrors = 0;
int numConsistencyWarnings = 0;
int numValidationErrors = 0;
int numValidationWarnings = 0;
// LibSBML 3.3 is lenient when generating models from scratch using the
// API for creating objects. Once the whole model is done and before it
// gets written out, it's important to check that the whole model is in
// fact complete, consistent and valid.
numCheckFailures = (int)sbmlDoc.checkInternalConsistency();
if (numCheckFailures > 0)
{
noProblems = false;
for (int i = 0;
i < numCheckFailures;
i++)
{
SBMLError sbmlErr = sbmlDoc.getError(i);
if (sbmlErr.isFatal() || sbmlErr.isError())
{
++numConsistencyErrors;
}
else
{
++numConsistencyWarnings;
}
}
consistencyMessages = sbmlDoc.getErrorLog().toString();
}
// If the internal checks fail, it makes little sense to attempt
// further validation, because the model may be too compromised to
// be properly interpreted.
if (numConsistencyErrors > 0)
{
consistencyMessages += "Further validation aborted.";
}
else
{
numCheckFailures = (int)sbmlDoc.checkConsistency();
if (numCheckFailures > 0)
{
noProblems = false;
for (int i = 0;
i < numCheckFailures;
i++)
{
SBMLError sbmlErr = sbmlDoc.getError(i);
if (sbmlErr.isFatal() || sbmlErr.isError())
{
++numValidationErrors;
}
else
{
++numValidationWarnings;
}
}
validationMessages = sbmlDoc.getErrorLog().toString();
}
}
if (noProblems)
return true;
else
{
if (numConsistencyErrors > 0)
{
Console.WriteLine("ERROR: encountered " + numConsistencyErrors
+ " consistency error" + (numConsistencyErrors == 1 ? "" : "s")
+ " in model '" + sbmlDoc.getModel().getId() + "'.");
//.........这里部分代码省略.........
示例2: Main
private static int Main(string[] args)
{
var sbmlns = new SBMLNamespaces(3, 1, "comp", 1);
// create the document
var document = new SBMLDocument(sbmlns);
//Define the external model definitions
var compdoc = (CompSBMLDocumentPlugin)(document.getPlugin("comp"));
compdoc.setRequired(true);
var extmod = compdoc.createExternalModelDefinition();
extmod.setId("ExtMod1");
extmod.setSource("enzyme_model.xml");
extmod.setModelRef("enzyme");
// create the main Model
var model = document.createModel();
// Set the submodels
var mplugin = (CompModelPlugin)(model.getPlugin("comp"));
var submod1 = mplugin.createSubmodel();
submod1.setId("A");
submod1.setModelRef("ExtMod1");
var submod2 = mplugin.createSubmodel();
submod2.setId("B");
submod2.setModelRef("ExtMod1");
// create a replacement compartment
var comp = model.createCompartment();
comp.setSpatialDimensions(3);
comp.setConstant(true);
comp.setId("comp");
comp.setSize(1L);
//Tell the model that this compartment replaces both of the inside ones.
var compartplug = (CompSBasePlugin)(comp.getPlugin("comp"));
var re = new ReplacedElement();
re.setIdRef("comp");
re.setSubmodelRef("A");
compartplug.addReplacedElement(re);
re.setSubmodelRef("B");
compartplug.addReplacedElement(re);
// create a replacement species
var spec = model.createSpecies();
spec.setCompartment("comp");
spec.setHasOnlySubstanceUnits(false);
spec.setConstant(false);
spec.setBoundaryCondition(false);
spec.setId("S");
//Tell the model that this species replaces both of the inside ones.
var spp = (CompSBasePlugin)(spec.getPlugin("comp"));
re.setIdRef("S");
re.setSubmodelRef("A");
spp.addReplacedElement(re);
re.setSubmodelRef("B");
spp.addReplacedElement(re);
libsbml.writeSBMLToFile(document, "spec_example2.xml");
document = libsbml.readSBMLFromFile("spec_example2.xml");
if (document == null)
{
Console.WriteLine("Error reading back in file.");
return -1;
}
else
{
document.setConsistencyChecks(libsbml.LIBSBML_CAT_UNITS_CONSISTENCY, false);
document.checkConsistency();
if (document.getErrorLog().getNumFailsWithSeverity(2) > 0 ||
document.getErrorLog().getNumFailsWithSeverity(3) > 0)
{
var stream = new OStringStream();
document.printErrors(stream);
Console.WriteLine("Errors encoutered when round-tripping SBML file: \n" +
stream.str());
return -1;
}
libsbml.writeSBMLToFile(document, "spec_example2_rt.xml");
}
return 0;
}
示例3: test_ReadSBML_FunctionDefinition_OnlyBVars
public void test_ReadSBML_FunctionDefinition_OnlyBVars()
{
FunctionDefinition fd;
SBMLError error;
int numErrors;
ASTNode math;
string formula;
string s = wrapSBML_L2v1("<listOfFunctionDefinitions>" +
" <functionDefinition id='invalid'>" +
" <math xmlns='http://www.w3.org/1998/Math/MathML'>" +
" <lambda>" +
" <bvar><ci> x </ci></bvar>" +
" <bvar><ci> y </ci></bvar>" +
" <bvar><ci> z </ci></bvar>" +
" </lambda>" +
" </math>" +
" </functionDefinition>" +
"</listOfFunctionDefinitions>");
D = libsbml.readSBMLFromString(s);
M = D.getModel();
D.checkInternalConsistency();
D.checkConsistency();
numErrors = (int)D.getNumErrors();
assertTrue( numErrors == 1 );
error = D.getError(0);
int errorId = (int)error.getErrorId();
assertTrue( errorId == libsbml.NoBodyInFunctionDef );
assertTrue( M.getNumFunctionDefinitions() == 1 );
fd = M.getFunctionDefinition(0);
assertTrue( fd != null );
assertEquals( true, fd.isSetId() );
assertEquals( false, fd.isSetName() );
assertTrue(( "invalid" == fd.getId() ));
assertTrue( fd.getBody() == null );
assertEquals( true, fd.isSetMath() );
math = fd.getMath();
formula = libsbml.formulaToString(math);
assertTrue( formula != null );
assertTrue(( "lambda(x, y, z)" == formula ));
}
示例4: Main
//.........这里部分代码省略.........
sr.setStoichiometry(1);
sr.setSpecies("S");
rxn.addReactant(sr);
sr.setSpecies("D");
rxn.addProduct(sr);
mod1.addReaction(rxn);
var mod1plug = (CompModelPlugin)(mod1.getPlugin("comp"));
var port = new Port();
port.setId("S_port");
port.setIdRef("S");
mod1plug.addPort(port);
var port2 = mod1plug.createPort();
port2.setId("D_port");
port2.setIdRef("D");
port.setId("comp_port");
port.setIdRef("comp");
mod1plug.addPort(port);
port.setId("J0_port");
port.setIdRef("J0");
mod1plug.addPort(port);
// create the Model
var model = document.createModel();
model.setId("complexified");
// Set the submodels
var mplugin = (CompModelPlugin)(model.getPlugin("comp"));
var submod1 = mplugin.createSubmodel();
submod1.setId("A");
submod1.setModelRef("ExtMod1");
var submod2 = mplugin.createSubmodel();
submod2.setId("B");
submod2.setModelRef("simple");
var del = submod2.createDeletion();
del.setPortRef("J0_port");
// Synchronize the compartments
var mcomp = model.createCompartment();
mcomp.setSpatialDimensions(3);
mcomp.setConstant(true);
mcomp.setId("comp");
mcomp.setSize(1L);
var compartplug = (CompSBasePlugin)(mcomp.getPlugin("comp"));
var re = new ReplacedElement();
re.setIdRef("comp");
re.setSubmodelRef("A");
compartplug.addReplacedElement(re);
re.setSubmodelRef("B");
re.unsetIdRef();
re.setPortRef("comp_port");
compartplug.addReplacedElement(re);
//Synchronize the species
spec.setId("S");
spec.setInitialConcentration(5);
var specplug = (CompSBasePlugin)(spec.getPlugin("comp"));
var sre = specplug.createReplacedElement();
sre.setSubmodelRef("A");
sre.setIdRef("S");
var sre2 = specplug.createReplacedElement();
sre2.setSubmodelRef("B");
sre2.setPortRef("S_port");
model.addSpecies(spec);
spec.setId("D");
spec.setInitialConcentration(10);
sre.setIdRef("D");
sre2.setPortRef("D_port");
model.addSpecies(spec);
libsbml.writeSBMLToFile(document, "spec_example3.xml");
document = libsbml.readSBMLFromFile("spec_example3.xml");
if (document == null)
{
Console.WriteLine("Error reading back in file.");
retval = -1;
}
else
{
document.setConsistencyChecks(libsbml.LIBSBML_CAT_UNITS_CONSISTENCY, false);
document.checkConsistency();
if (document.getErrorLog().getNumFailsWithSeverity(2) > 0 ||
document.getErrorLog().getNumFailsWithSeverity(3) > 0)
{
var stream = new OStringStream();
document.printErrors(stream);
Console.WriteLine("Errors encoutered when round-tripping SBML file: \n" +
stream.str());
retval = -1;
}
libsbml.writeSBMLToFile(document, "spec_example3_rt.xml");
}
return retval;
}
示例5: Main
private static int Main(string[] args)
{
var retval = 0;
var sbmlns = new SBMLNamespaces(3, 1, "comp", 1);
// create the document
var document = new SBMLDocument(sbmlns);
//Create our submodel
var compdoc = (CompSBMLDocumentPlugin) (document.getPlugin("comp"));
compdoc.setRequired(true);
var mod1 = compdoc.createModelDefinition();
mod1.setId("enzyme");
mod1.setName("enzyme");
var comp = mod1.createCompartment();
comp.setSpatialDimensions(3);
comp.setConstant(true);
comp.setId("comp");
comp.setSize(1L);
var spec = new Species(3, 1);
spec.setCompartment("comp");
spec.setHasOnlySubstanceUnits(false);
spec.setConstant(false);
spec.setBoundaryCondition(false);
spec.setId("S");
mod1.addSpecies(spec);
spec.setId("E");
mod1.addSpecies(spec);
spec.setId("D");
mod1.addSpecies(spec);
spec.setId("ES");
mod1.addSpecies(spec);
var rxn = new Reaction(3, 1);
rxn.setReversible(true);
rxn.setFast(false);
var rxn2 = new Reaction(rxn);
rxn.setId("J0");
rxn2.setId("J1");
var sr = new SpeciesReference(3, 1);
sr.setConstant(true);
sr.setStoichiometry(1);
sr.setSpecies("S");
rxn.addReactant(sr);
sr.setSpecies("E");
rxn.addReactant(sr);
rxn2.addProduct(sr);
sr.setSpecies("ES");
rxn.addProduct(sr);
rxn2.addReactant(sr);
sr.setSpecies("D");
rxn2.addProduct(sr);
mod1.addReaction(rxn);
mod1.addReaction(rxn2);
// create the Model
var model = document.createModel();
model.setId("aggregate");
// Create a submodel
var mplugin = (CompModelPlugin) (model.getPlugin("comp"));
var submod1 = mplugin.createSubmodel();
submod1.setId("submod1");
submod1.setModelRef("enzyme");
var submod2 = new Submodel();
submod2.setId("submod2");
submod2.setModelRef("enzyme");
mplugin.addSubmodel(submod2);
libsbml.writeSBMLToFile(document, "enzyme_model.xml");
document = libsbml.readSBMLFromFile("enzyme_model.xml");
if (document == null)
{
Console.WriteLine("Error reading back in file.");
retval = -1;
}
else
{
document.setConsistencyChecks(libsbml.LIBSBML_CAT_UNITS_CONSISTENCY, false);
document.checkConsistency();
if (document.getErrorLog().getNumFailsWithSeverity(2) > 0 ||
document.getErrorLog().getNumFailsWithSeverity(3) > 0)
{
var stream = new OStringStream();
document.printErrors(stream);
Console.WriteLine("Errors encoutered when round-tripping SBML file: \n" +
stream.str());
retval = -1;
}
libsbml.writeSBMLToFile(document, "enzyme_model_rt.xml");
}
return retval;
}