forked from draeger-lab/SBSCL
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
restructured the entire repo as per maven standards
- Loading branch information
1 parent
503531b
commit cbb9c16
Showing
121 changed files
with
19,934 additions
and
44 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,298 @@ | ||
<!DOCTYPE PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | ||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | ||
<head> | ||
<title>Simulation Core Library: Documentation</title> | ||
|
||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> | ||
<meta name="page-type" content="documentation"> | ||
<meta name="Author" content="Andreas Dräger, Roland Keller, Alexander Dörr"> | ||
<meta name="keywords" content="Simulation Core Library; Java; JSBML; source code; example; introduction; documentation"> | ||
<meta name="description" content="A brief overview of the Simulation Core Library including source code examples."> | ||
<meta name="allow-search" content="yes"> | ||
<meta name="page-topic" content="Simulation Core Library"> | ||
|
||
<!-- Generated by JavaCode4Web (philipphauer.de): --> | ||
<style type="text/css"> | ||
<!-- | ||
code.spoiled span.keyword { | ||
color: #660033; | ||
font-weight:bold; | ||
} | ||
code.spoiled span.comment-javadoc { | ||
color:#3f5fbf; | ||
} | ||
code.spoiled span.comment-multi { | ||
color:#3f7f5f; | ||
} | ||
code.spoiled span.stringliteral, code.spoiled span.charliteral { | ||
color:#cc0000; | ||
} | ||
code.spoiled span.comment-single { | ||
color:#336633; | ||
} | ||
code.spoiled span.javadoc-tag { | ||
font-weight:bold; | ||
color:#003399; | ||
} | ||
code.spoiled { | ||
white-space:nowrap; | ||
display:block; | ||
font-family:"Courier New", Courier, monospace; | ||
font-size:13px; | ||
background: #e9f2f8; | ||
border:1px solid #006481; | ||
border-left:3px solid #006481; | ||
overflow-y: hidden; | ||
overflow-x: scroll; | ||
padding: 10px; | ||
} | ||
code.spoiled span.class { | ||
color: 0033cc; | ||
font-weight:bold; | ||
} | ||
code.spoiled span.method { | ||
color: 0033cc; | ||
} | ||
--> | ||
</style> | ||
</head> | ||
|
||
<body> | ||
|
||
<h2>Simulation Core Library: Documentation</h2> | ||
|
||
<h3>About Simulation Core Library</h3> | ||
<p> | ||
The Java™ API Simulation Core Library comprises a collection of | ||
integrators for differential equation systems combined with an interpreter | ||
for the Systems Biology Markup Language | ||
(<a href="http://sbml.org" target="_blank">SBML</a>). | ||
It is the first simulation library that is based on | ||
<a href="http://sbml.org/Software/JSBML/" target="_blank">JSBML</a>. | ||
The user can read an SBML model and simulate it with one of the provided | ||
numerical integration routines. All SBML levels and versions are | ||
supported. | ||
The library can easily be integrated into customized software, such as | ||
parameter estimation tools. | ||
</p> | ||
<p style="border-style:solid; border-color:#A51E37; padding: 10px;"> | ||
<b>When using the Simulation Core Library, please cite</b>:<br/> | ||
Roland Keller, Alexander Dörr, Akito Tabira, Akira Funahashi, Michael | ||
J. Ziller, Richard Adams, Nicolas Rodriguez, Nicolas Le Novère, | ||
Noriko Hiroi, Hannes Planatscher, Andreas Zell, and Andreas Dräger. | ||
The systems biology simulation core algorithm. BMC Systems Biology, 7:55, | ||
July 2013. [ <a href="http://dx.doi.org/10.1186/1752-0509-7-55">DOI</a> | | ||
<a href="http://www.biomedcentral.com/1752-0509/7/55">link</a> | | ||
<a href="http://www.biomedcentral.com/content/pdf/1752-0509-7-55.pdf">pdf</a> ] | ||
</p> | ||
|
||
<h3>How to integrate Simulation Core Library into your software?</h3> | ||
<p> | ||
You just have to add the provided jar-file simulation-core-library.jar to the class path of your Java project. | ||
Then you have access to all classes of the library. | ||
This library depends on the following third-party libraries: | ||
<ul> | ||
<li><a href="http://commons.apache.org/math/" target="_blank">Commons-math-2.2.jar</a></li> | ||
<li><a href="http://www.junit.org/" target="_blank">JUnit-4.8.jar</a></li> | ||
<li><a href="http://sbml.org/Software/JSBML" target="_blank">JSBML</a></li> | ||
</ul> | ||
For <a href="http://sed-ml.org/" target="_blank">SED-ML</a> support, the following | ||
additional libraries are required: | ||
<ul> | ||
<li><a href="http://commons.apache.org/proper/commons-io/" target="_blank">commons-io-1.4.jar</a></li> | ||
<li><a href="http://jaxen.codehaus.org/apidocs/" target="_blank">jaxen-1.1.1.jar</a></li> | ||
<li><a href="http://www.jdom.org/docs/apidocs.1.1/" target="_blank">jdom-contrib.jar</a></li> | ||
<li><a href="http://www.jdom.org/docs/apidocs.1.1/" target="_blank">jdom.jar</a></li> | ||
<li><a href="http://jlibsedml.sourceforge.net" target="_blank">jlibsedml.jar</a></li> | ||
<li><a href="http://sourceforge.net/projects/jmathml/" target="_blank">jmathml.jar</a></li> | ||
<li><a href="http://www.xom.nu/" target="_blank">xom-1.2.1.jar</a></li> | ||
</ul> | ||
Please make sure to include the correct third-party libraries into your | ||
class path before working with this library. | ||
</p> | ||
|
||
<h3>The provided integration methods</h3> | ||
<p> | ||
The {@link org.simulator.math.odes.RosenbrockSolver} is best suitable for integrating stiff differential | ||
equation systems and also has a precise timing of SBML events. It is taken | ||
and adapted from | ||
<a href="http://www.math.hmc.edu/clinic/projects/2010/" target="_blank">Kotcon <i>et al.</i> (2011)</a> | ||
</p><p> | ||
Several further solvers have been taken from the | ||
<a href="http://commons.apache.org/math/" target="_blank">Apache Commons | ||
Math Library</a> and wrapped into our library: | ||
<ul> | ||
<li>{@link org.simulator.math.odes.AdamsBashforthSolver}</li> | ||
<li>{@link org.simulator.math.odes.AdamsMoultonSolver}</li> | ||
<li>{@link org.simulator.math.odes.DormandPrince54Solver}</li> | ||
<li>{@link org.simulator.math.odes.DormandPrince853Solver}</li> | ||
<li>{@link org.simulator.math.odes.GraggBulirschStoerSolver}</li> | ||
<li>{@link org.simulator.math.odes.HighamHall54Solver}</li> | ||
</ul> | ||
|
||
The following solvers have been implemented additionally and are fast, but | ||
not suitable for all differential equation systems: | ||
<ul> | ||
<li>{@link org.simulator.math.odes.EulerMethod}</li> | ||
<li>{@link org.simulator.math.odes.RungeKutta_EventSolver}</li> | ||
</ul> | ||
</p><p> | ||
For a full list of available solvers, see {@link org.simulator.math.odes}. | ||
</p> | ||
|
||
<h3>Reading an SBML model and creating the respective differential equation | ||
system</h3> | ||
<p> | ||
A model can be read in by using the {@link org.sbml.jsbml.SBMLReader} | ||
class from <a href="http://sbml.org/Software/JSBML" target="_blank">JSBML</a>. | ||
With the model in memory the {@link org.simulator.sbml.SBMLinterpreter} | ||
can create the differential equation system that provides the basis for | ||
simulation: | ||
</p> | ||
<pre><code class="spoiled"> | ||
<span class="class">Model</span> model = (<span class="keyword">new</span> <span class="class">SBMLReader</span>()).<span class="method">readSBML</span>(sbmlfile).<span class="method">getModel()</span>;<br/> | ||
<span class="class">SBMLinterpreter</span> interpreter = <span class="keyword">new</span> <span class="class">SBMLinterpreter</span>(model); | ||
</code></pre> | ||
<p> | ||
For more documentation about working with SBML models in simulations see | ||
{@link org.simulator.sbml}. | ||
</p> | ||
|
||
<h3>Simulation of a differential equation system</h3> | ||
<p> | ||
The created differential equation system can then be simulated with a | ||
chosen solver and given time points. | ||
The result is stored in a data structure called | ||
{@link org.simulator.math.odes.MultiTable}. | ||
</p> | ||
<pre><code class="spoiled"> | ||
<span class="class">AbstractDESSolver</span> solver = <span class="keyword">new</span> <span class="class">RosenbrockSolver</span>();<br/> | ||
<span class="keyword">double</span>[] timePoints = {0.0, 0.1, 0.2, 0.3, 0.4, 0.5};<br/> | ||
<span class="class">MultiTable</span> solution = solver.<span class="method">solve</span>(interpreter, interpreter.<span class="method">getInitialValues</span>(), timePoints); | ||
</code></pre> | ||
|
||
<h3>Using SED-ML for simulation</h3> | ||
<p> | ||
The following example shows how to read in a {@link java.io.File} f (in | ||
<a href="http://sed-ml.org/" target="_blank">SED-ML</a> format) and how to run a simulation | ||
described in this file afterwards. The simulation results are stored in a | ||
{@link org.simulator.math.odes.MultiTable}: | ||
</p> | ||
|
||
<pre><code class="spoiled"> | ||
<span class="class">SEDMLDocument</span> doc = <span class="class">Libsedml</span>.<span class="method">readDocument</span>(f);<br/> | ||
<span class="class">SedML</span> sedml = doc.<span class="method">getSBMLModel</span>();<br/> | ||
<span class="class">Output</span> wanted = sedml.<span class="method">getOutputs</span>().<span class="method">get</span>(0);<br/> | ||
<span class="class">SedMLSBMLSimulatorExecutor</span> exe = <span class="keyword">new</span> <span class="class">SedMLSBMLSimulatorExecutor</span>(sedml, wanted);<br/> | ||
<span class="class">Map<Task, IRawSedmlSimulationResults></span> res = exe.<span class="method">runSimulations</span>();<br/> | ||
<span class="class">MultiTable</span> solution = exe.<span class="method">processSimulationResults</span>(wanted, res);<br/> | ||
</code></pre> | ||
|
||
<p> | ||
For more information about how to use SED-ML to execute your simulation | ||
experiments, see {@link org.simulator.sedml}. | ||
</p> | ||
|
||
<h3>Simulation of the models in the SBML Test Suite</h3> | ||
<p> | ||
You can run the simulation of the models in the | ||
<a href="http://sbml.org/Facilities/Online_SBML_Test_Suite" target="_blank">SBML Test | ||
Suite</a> by using the command below. <i>TestSuiteDirectory</i> denotes | ||
the directory containing your copy of the (entire) SBML test suite. | ||
Here we assume that the actual test cases are located in the sub-folder | ||
<i>cases/semantic/</i> within the <i>TestSuiteDirectory</i> on your | ||
computer. | ||
The simulation is conducted for the models with numbers from <i>first</i> | ||
to <i>last</i> (these numbers are the indices of the models in the test | ||
suite, without leading zeros). | ||
</p> | ||
<pre><code class="spoiled"> | ||
java -cp SimulationCoreLibrary_vX.Y_incl-libs.jar org.simulator.SBMLTestSuiteRunner TestSuiteDirectory/cases/semantic/ first last | ||
</code></pre> | ||
Please note that, you have to replace <i>_vX.Y_</i> within the library's | ||
name by the current release number, e.g., 1.2. | ||
<p> | ||
For example, if you like to simulate all test suite models ranging from | ||
<i>00259</i> to <i>00326</i>, simply call the algorithm with | ||
<i>first = 259</i> and <i>last = 326</i>. | ||
</p> | ||
|
||
<p> | ||
Note that for the sake of a simple configuration, the simulation is | ||
started using default settings for the selection of the | ||
integration routine, step size etc. | ||
</p> | ||
|
||
<p> | ||
The | ||
<a href="http://sbml.org/Facilities/Database/Simulator">SBML Test Suite Database</a> | ||
provides an up-to-date overview about the | ||
capabilities of various SBML-compliant solver implementations. | ||
</p> | ||
|
||
<h3>Simulation of the models from BioModels database</h3> | ||
<p> | ||
In a similar way, you can also download and simulate all models from | ||
<a href="http://www.ebi.ac.uk/biomodels-main/" target="_blank">BioModels database</a>: | ||
<pre><code class="spoiled"> | ||
java -cp SimulationCoreLibrary_vX.Y_incl-libs.jar org.simulator.TestBiomodels BioModelsDirectory/ first last | ||
</code></pre> | ||
Again, you have to replace <i>_vX.Y_</i> within the library's | ||
name by the current release number, e.g., 1.2. Please use the variables | ||
<i>first</i> and <i>last</i> without leading zeros as in the previous | ||
case. The variable <i>BioModelsDirectory</i> gives the path to your local | ||
copy of | ||
<a href="http://www.ebi.ac.uk/biomodels-main/" target="_blank">BioModels database</a>. | ||
</p> | ||
<p> | ||
As in the previous case, the simulation is conducted using default | ||
settings. | ||
</p> | ||
|
||
<h3>Listening to SBML constraint violation</h3> | ||
<p> | ||
In version 1.3 a new listener interface has been added to | ||
this library, which can be used to perform user-defined actions upon violation | ||
of a {@link org.sbml.jsbml.Constraint}'s math expression during a simulation. | ||
A simple implementation is already included in this package, | ||
which logs violation at the | ||
{@link java.util.logging.Level#WARNING} using standard Java™ | ||
logging (see {@link java.util.logging.Logger}). | ||
By default the | ||
{@link org.simulator.sbml.SBMLinterpreter} adds this | ||
{@link org.simulator.sbml.SimpleConstraintListener} to its internal list of | ||
{@link org.simulator.sbml.ConstraintListener}s. | ||
</p> | ||
|
||
<p> | ||
You can remove this listener by calling the method | ||
{@link org.simulator.sbml.SBMLinterpreter#removeConstraintListener(int)}, | ||
with the argument 0 for the first listener in the list, | ||
and add your own listener implementation with the help of method | ||
{@link org.simulator.sbml.SBMLinterpreter#addConstraintListener(ConstraintListener)}. | ||
</p> | ||
<p>The following example demonstrates how you can easily define your customized | ||
{@link org.simulator.sbml.ConstraintListener}: | ||
<pre><code class="spoiled"> | ||
<span class="keyword">double</span> timeEnd = 5d;<br/> | ||
<span class="class">SBMLDocument</span> doc = <span class="class">SBMLReader</span>.<span class="method">read</span>(<span class="keyword">new</span> <span class="class">File</span>(<span class="stringliteral">"path/to/file.xml"</span>));<br/> | ||
<span class="class">SBMLinterpreter</span> interpreter = <span class="keyword">new</span> <span class="class">SBMLinterpreter</span>(doc.<span class="method">getModel</span>());<br/> | ||
interpreter.<span class="method">addConstraintListener</span>(<span class="keyword">new</span> <span class="class">ConstraintListener</span>() {<br/> | ||
  <span class="comment-single">/* (non-Javadoc)<br/> | ||
   * @see org.simulator.sbml.ConstraintListener#processViolation(org.simulator.sbml.ConstraintEvent)<br/> | ||
   */</span><br/> | ||
  public <span class="keyword">void</span> <span class="method">processViolation</span>(<span class="class">ConstraintEvent</span> evt) {<br/> | ||
    <span class="class">System</span>.err.<span class="method">println</span>(<span class="stringliteral">"Constraint violated at time "</span> + evt.<span class="method">getTime</span>() + <span class="stringliteral">": "</span> + evt.<span class="method">getSource</span>().<span class="method">getMath</span>().<span class="method">toFormula</span>());<br/> | ||
  }<br/> | ||
});<br/> | ||
solver.<span class="method">solve</span>(interpreter, interpreter.<span class="method">getInitialValues()</span>, 0d, timeEnd); | ||
</code></pre> | ||
</p> | ||
<p> | ||
You can find more details about this topic in the description of package | ||
{@link org.simulator.sbml}. | ||
</p> | ||
|
||
</body> | ||
|
||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added
BIN
+621 KB
src/lib/de/uni-rostock/sbi/CombineArchive/1.3.6/CombineArchive-1.3.6.jar
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Oops, something went wrong.