diff --git a/dev/advanced/1_variants/index.html b/dev/advanced/1_variants/index.html
index 94e2e90e5d7a20062c55f39c2c89826dc7150671..b42a63a8d88847cb19f89d50994ac3f20c6f7438 100644
--- a/dev/advanced/1_variants/index.html
+++ b/dev/advanced/1_variants/index.html
@@ -87,4 +87,4 @@ end</code></pre><p>In turn, these variants can be used in <a href="../../functio
  nothing
  nothing
  [7.47738193404817, 1.8840414375838503e-8, 4.860861010127701, -16.023526104614593, … ]
- [7.47738193404817, 1.8840414375838503e-8, 4.860861010127701, -16.023526104614593, … ]</code></pre></article><nav class="docs-footer"><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:12">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
+ [7.47738193404817, 1.8840414375838503e-8, 4.860861010127701, -16.023526104614593, … ]</code></pre></article><nav class="docs-footer"><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:24">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
diff --git a/dev/advanced/2_custom_model/index.html b/dev/advanced/2_custom_model/index.html
index fbdb2e92d5b5c4f2ed263b784825850618627656..08c80451a99132170b8cdddc38b3392d24dae59b 100644
--- a/dev/advanced/2_custom_model/index.html
+++ b/dev/advanced/2_custom_model/index.html
@@ -43,4 +43,4 @@ Dict{String, Float64} with 5 entries:
   &quot;rxn4&quot; =&gt; 1.0
 </code></pre><h2 id="Writing-generic-model-modifications"><a class="docs-heading-anchor" href="#Writing-generic-model-modifications">Writing generic model modifications</a><a id="Writing-generic-model-modifications-1"></a><a class="docs-heading-anchor-permalink" href="#Writing-generic-model-modifications" title="Permalink"></a></h2><p>The custom model structure can also be made compatible with many of the existing variant-generating functions and analysis modifiers.</p><p>The functions prepared for use as &quot;variants&quot; in <a href="../../functions/#COBREXA.screen-Union{Tuple{MetabolicModel}, Tuple{N}, Tuple{T}, Tuple{V}} where {V&lt;:(AbstractVector{T} where T), T&lt;:Tuple, N}"><code>screen</code></a>, usually prefixed by <code>with_</code>, have their generic variants that only call simpler, overloadable functions for each specific model. This choice is based on the overloading dispatch system of Julia. For example,<a href="../../functions/#COBREXA.with_removed_metabolites-Tuple"><code>with_removed_metabolites</code></a> is implemented very generically by reducing the problem to some specific <a href="../../functions/#COBREXA.remove_metabolites-Tuple{CoreModel, Any}"><code>remove_metabolites</code></a> functions selected by the dispatch, as follows:</p><pre><code class="language-julia">with_removed_metabolites(args...; kwargs...) =
     m -&gt; remove_metabolites(m, args...; kwargs...)</code></pre><p>To be able to use <a href="../../functions/#COBREXA.with_removed_metabolites-Tuple"><code>with_removed_metabolites</code></a> in your model, we can just overload the actual inner function. For the simple circular model, the modification might as well look like this:</p><pre><code class="language-julia">COBREXA.remove_metabolites(m::CircularModel, n::Int) =
-    return CircularModel(m.size - n)</code></pre><div class="admonition is-danger"><header class="admonition-header">Functions that generate model variants must be pure</header><div class="admonition-body"><p>Notice that the function is &quot;pure&quot;, i.e., does not make any in-place modifications to the original model structure. That property is required for <a href="../../functions/#COBREXA.screen-Union{Tuple{MetabolicModel}, Tuple{N}, Tuple{T}, Tuple{V}} where {V&lt;:(AbstractVector{T} where T), T&lt;:Tuple, N}"><code>screen</code></a> and other functions to properly and predictably apply the modifications to the model. To expose potential in-place modifications to your codebase, you should instead overload the &quot;bang&quot; counterpart of remove metabolites, called <a href="../../functions/#COBREXA.remove_metabolites!-Tuple{StandardModel, Vector{String}}"><code>remove_metabolites!</code></a>.</p></div></div></article><nav class="docs-footer"><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:12">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
+    return CircularModel(m.size - n)</code></pre><div class="admonition is-danger"><header class="admonition-header">Functions that generate model variants must be pure</header><div class="admonition-body"><p>Notice that the function is &quot;pure&quot;, i.e., does not make any in-place modifications to the original model structure. That property is required for <a href="../../functions/#COBREXA.screen-Union{Tuple{MetabolicModel}, Tuple{N}, Tuple{T}, Tuple{V}} where {V&lt;:(AbstractVector{T} where T), T&lt;:Tuple, N}"><code>screen</code></a> and other functions to properly and predictably apply the modifications to the model. To expose potential in-place modifications to your codebase, you should instead overload the &quot;bang&quot; counterpart of remove metabolites, called <a href="../../functions/#COBREXA.remove_metabolites!-Tuple{StandardModel, Vector{String}}"><code>remove_metabolites!</code></a>.</p></div></div></article><nav class="docs-footer"><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:24">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
diff --git a/dev/advanced/index.html b/dev/advanced/index.html
index 7ba79ea0010b62f171007cb0c8d7ecf12d17d9e8..2c0b2397f6efcc504fab284d6a5d121727afcb64 100644
--- a/dev/advanced/index.html
+++ b/dev/advanced/index.html
@@ -1,2 +1,2 @@
 <!DOCTYPE html>
-<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Advanced tutorials · COBREXA.jl</title><link href="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL=".."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../assets/documenter.js"></script><script src="../siteinfo.js"></script><script src="../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../assets/themeswap.js"></script><link href="../assets/favicon.ico" rel="icon" type="image/x-icon"/></head><body><div id="documenter"><nav class="docs-sidebar"><a class="docs-logo" href="../"><img class="docs-light-only" src="../assets/logo.svg" alt="COBREXA.jl logo"/><img class="docs-dark-only" src="../assets/logo-dark.svg" alt="COBREXA.jl logo"/></a><div class="docs-package-name"><span class="docs-autofit">COBREXA.jl</span></div><form class="docs-search" action="../search/"><input class="docs-search-query" id="documenter-search-query" name="q" type="text" placeholder="Search docs"/></form><ul class="docs-menu"><li><a class="tocitem" href="../">Home</a></li><li><a class="tocitem" href="../tutorials/">Quickstart tutorials</a></li><li class="is-active"><a class="tocitem" href>Advanced tutorials</a></li><li><a class="tocitem" href="../notebooks/">Examples and notebooks</a></li><li><a class="tocitem" href="../functions/">Function reference</a></li><li><a class="tocitem" href="../howToContribute/">How to contribute</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><nav class="breadcrumb"><ul class="is-hidden-mobile"><li class="is-active"><a href>Advanced tutorials</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Advanced tutorials</a></li></ul></nav><div class="docs-right"><a class="docs-edit-link" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/master/docs/src/advanced.md" title="Edit on GitHub"><span class="docs-icon fab"></span><span class="docs-label is-hidden-touch">Edit on GitHub</span></a><a class="docs-settings-button fas fa-cog" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-sidebar-button fa fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a></div></header><article class="content" id="documenter-page"><h1 id="COBREXA-Advanced-tutorials"><a class="docs-heading-anchor" href="#COBREXA-Advanced-tutorials">COBREXA Advanced tutorials</a><a id="COBREXA-Advanced-tutorials-1"></a><a class="docs-heading-anchor-permalink" href="#COBREXA-Advanced-tutorials" title="Permalink"></a></h1><ul><li><a href="1_variants/#Exploring-many-model-variants">Exploring many model variants</a></li><ul><li><a href="1_variants/#Variant-specification">Variant specification</a></li><li><a href="1_variants/#Writing-custom-variant-functions">Writing custom variant functions</a></li><li><a href="1_variants/#Passing-extra-arguments-to-the-analysis-function">Passing extra arguments to the analysis function</a></li></ul><li><a href="2_custom_model/#Working-with-custom-models">Working with custom models</a></li><ul><li><a href="2_custom_model/#Writing-the-generic-accessors">Writing the generic accessors</a></li><li><a href="2_custom_model/#Writing-generic-model-modifications">Writing generic model modifications</a></li></ul></ul></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../tutorials/">« Quickstart tutorials</a><a class="docs-footer-nextpage" href="../notebooks/">Examples and notebooks »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:12">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
+<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Advanced tutorials · COBREXA.jl</title><link href="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL=".."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../assets/documenter.js"></script><script src="../siteinfo.js"></script><script src="../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../assets/themeswap.js"></script><link href="../assets/favicon.ico" rel="icon" type="image/x-icon"/></head><body><div id="documenter"><nav class="docs-sidebar"><a class="docs-logo" href="../"><img class="docs-light-only" src="../assets/logo.svg" alt="COBREXA.jl logo"/><img class="docs-dark-only" src="../assets/logo-dark.svg" alt="COBREXA.jl logo"/></a><div class="docs-package-name"><span class="docs-autofit">COBREXA.jl</span></div><form class="docs-search" action="../search/"><input class="docs-search-query" id="documenter-search-query" name="q" type="text" placeholder="Search docs"/></form><ul class="docs-menu"><li><a class="tocitem" href="../">Home</a></li><li><a class="tocitem" href="../tutorials/">Quickstart tutorials</a></li><li class="is-active"><a class="tocitem" href>Advanced tutorials</a></li><li><a class="tocitem" href="../notebooks/">Examples and notebooks</a></li><li><a class="tocitem" href="../functions/">Function reference</a></li><li><a class="tocitem" href="../howToContribute/">How to contribute</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><nav class="breadcrumb"><ul class="is-hidden-mobile"><li class="is-active"><a href>Advanced tutorials</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Advanced tutorials</a></li></ul></nav><div class="docs-right"><a class="docs-edit-link" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/master/docs/src/advanced.md" title="Edit on GitHub"><span class="docs-icon fab"></span><span class="docs-label is-hidden-touch">Edit on GitHub</span></a><a class="docs-settings-button fas fa-cog" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-sidebar-button fa fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a></div></header><article class="content" id="documenter-page"><h1 id="COBREXA-Advanced-tutorials"><a class="docs-heading-anchor" href="#COBREXA-Advanced-tutorials">COBREXA Advanced tutorials</a><a id="COBREXA-Advanced-tutorials-1"></a><a class="docs-heading-anchor-permalink" href="#COBREXA-Advanced-tutorials" title="Permalink"></a></h1><ul><li><a href="1_variants/#Exploring-many-model-variants">Exploring many model variants</a></li><ul><li><a href="1_variants/#Variant-specification">Variant specification</a></li><li><a href="1_variants/#Writing-custom-variant-functions">Writing custom variant functions</a></li><li><a href="1_variants/#Passing-extra-arguments-to-the-analysis-function">Passing extra arguments to the analysis function</a></li></ul><li><a href="2_custom_model/#Working-with-custom-models">Working with custom models</a></li><ul><li><a href="2_custom_model/#Writing-the-generic-accessors">Writing the generic accessors</a></li><li><a href="2_custom_model/#Writing-generic-model-modifications">Writing generic model modifications</a></li></ul></ul></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../tutorials/">« Quickstart tutorials</a><a class="docs-footer-nextpage" href="../notebooks/">Examples and notebooks »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:25">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
diff --git a/dev/functions/index.html b/dev/functions/index.html
index 0a7754ee948b278273db0fc7cb71cda157e31f86..b4d2c255f61d8f01662661e247caeb2a6e1a492d 100644
--- a/dev/functions/index.html
+++ b/dev/functions/index.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
-<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Function reference · COBREXA.jl</title><link href="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL=".."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../assets/documenter.js"></script><script src="../siteinfo.js"></script><script src="../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../assets/themeswap.js"></script><link href="../assets/favicon.ico" rel="icon" type="image/x-icon"/></head><body><div id="documenter"><nav class="docs-sidebar"><a class="docs-logo" href="../"><img class="docs-light-only" src="../assets/logo.svg" alt="COBREXA.jl logo"/><img class="docs-dark-only" src="../assets/logo-dark.svg" alt="COBREXA.jl logo"/></a><div class="docs-package-name"><span class="docs-autofit">COBREXA.jl</span></div><form class="docs-search" action="../search/"><input class="docs-search-query" id="documenter-search-query" name="q" type="text" placeholder="Search docs"/></form><ul class="docs-menu"><li><a class="tocitem" href="../">Home</a></li><li><a class="tocitem" href="../tutorials/">Quickstart tutorials</a></li><li><a class="tocitem" href="../advanced/">Advanced tutorials</a></li><li><a class="tocitem" href="../notebooks/">Examples and notebooks</a></li><li class="is-active"><a class="tocitem" href>Function reference</a><ul class="internal"><li><a class="tocitem" href="#Base-Types"><span>Base Types</span></a></li><li><a class="tocitem" href="#Model-types-and-contents"><span>Model types and contents</span></a></li><li><a class="tocitem" href="#Base-functions"><span>Base functions</span></a></li><li><a class="tocitem" href="#File-I/O-and-serialization"><span>File I/O and serialization</span></a></li><li><a class="tocitem" href="#Model-reconstruction"><span>Model reconstruction</span></a></li><li><a class="tocitem" href="#Analysis-functions"><span>Analysis functions</span></a></li><li><a class="tocitem" href="#Miscellaneous-utilities"><span>Miscellaneous utilities</span></a></li></ul></li><li><a class="tocitem" href="../howToContribute/">How to contribute</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><nav class="breadcrumb"><ul class="is-hidden-mobile"><li class="is-active"><a href>Function reference</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Function reference</a></li></ul></nav><div class="docs-right"><a class="docs-edit-link" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/master/docs/src/functions.md" title="Edit on GitHub"><span class="docs-icon fab"></span><span class="docs-label is-hidden-touch">Edit on GitHub</span></a><a class="docs-settings-button fas fa-cog" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-sidebar-button fa fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a></div></header><article class="content" id="documenter-page"><h1 id="Functions"><a class="docs-heading-anchor" href="#Functions">Functions</a><a id="Functions-1"></a><a class="docs-heading-anchor-permalink" href="#Functions" title="Permalink"></a></h1><h2 id="Base-Types"><a class="docs-heading-anchor" href="#Base-Types">Base Types</a><a id="Base-Types-1"></a><a class="docs-heading-anchor-permalink" href="#Base-Types" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-binding" id="COBREXA.Maybe" href="#COBREXA.Maybe"><code>COBREXA.Maybe</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia">Maybe{T} = Union{Nothing, T}</code></pre><p>A nice name for &quot;nullable&quot; type.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/abstract/Maybe.jl#L2-L6">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA._default-Union{Tuple{T}, Tuple{T, Union{Nothing, T}}} where T" href="#COBREXA._default-Union{Tuple{T}, Tuple{T, Union{Nothing, T}}} where T"><code>COBREXA._default</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">_default(d::T, x::Maybe{T})::T where {T}</code></pre><p>Fold the <code>Maybe{T}</code> down to <code>T</code> by defaulting.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/abstract/Maybe.jl#L9-L13">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA._maybemap-Tuple{Any, Union{Nothing, T} where T}" href="#COBREXA._maybemap-Tuple{Any, Union{Nothing, T} where T}"><code>COBREXA._maybemap</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">_maybemap(f, x::Maybe)::Maybe</code></pre><p>Apply a function to <code>x</code> only if it is not <code>nothing</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/abstract/Maybe.jl#L18-L22">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.Annotations" href="#COBREXA.Annotations"><code>COBREXA.Annotations</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia">Annotations = Dict{String,Vector{String}}</code></pre><p>Dictionary used to store (possible multiple) standardized annotations of something, such as a <a href="#COBREXA.Metabolite"><code>Metabolite</code></a> and a <a href="#COBREXA.Reaction"><code>Reaction</code></a>.</p><p><strong>Example</strong></p><pre><code class="language-none">Annotations(&quot;PubChem&quot; =&gt; [&quot;CID12345&quot;, &quot;CID54321&quot;])</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/abstract/MetabolicModel.jl#L39-L49">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.GeneAssociation" href="#COBREXA.GeneAssociation"><code>COBREXA.GeneAssociation</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia">GeneAssociation = Vector{Vector{String}}</code></pre><p>An association to genes, represented as a logical formula in a positive disjunctive normal form (DNF). (The 2nd-level vectors of strings are connected by &quot;and&quot; to form conjunctions, and the 1st-level vectors of these conjunctions are connected by &quot;or&quot; to form the DNF.)</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/abstract/MetabolicModel.jl#L22-L29">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.MetabolicModel" href="#COBREXA.MetabolicModel"><code>COBREXA.MetabolicModel</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia">abstract type MetabolicModel end</code></pre><p>A helper supertype that wraps everything usable as a linear-like model for COBREXA functions.</p><p>If you want your model type to work with COBREXA, add the <code>MetabolicModel</code> as its supertype, and implement the accessor functions. Accessors <a href="#COBREXA.reactions-Tuple{MetabolicModel}"><code>reactions</code></a>, <a href="#COBREXA.metabolites-Tuple{MetabolicModel}"><code>metabolites</code></a>, <a href="#COBREXA.stoichiometry-Tuple{MetabolicModel}"><code>stoichiometry</code></a>, <a href="#COBREXA.bounds-Tuple{MetabolicModel}"><code>bounds</code></a> and <a href="#COBREXA.objective-Tuple{MetabolicModel}"><code>objective</code></a> must be implemented; others are not mandatory and default to safe &quot;empty&quot; values.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/abstract/MetabolicModel.jl#L2-L13">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.MetaboliteFormula" href="#COBREXA.MetaboliteFormula"><code>COBREXA.MetaboliteFormula</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia">MetaboliteFormula = Dict{String,Int}</code></pre><p>Dictionary of atoms and their abundances in a molecule.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/abstract/MetabolicModel.jl#L32-L36">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.Notes" href="#COBREXA.Notes"><code>COBREXA.Notes</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia">Notes = Dict{String,Vector{String}}</code></pre><p>Free-form notes about something (e.g. a <a href="#COBREXA.Gene"><code>Gene</code></a>), categorized by &quot;topic&quot;.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/abstract/MetabolicModel.jl#L52-L57">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.balance-Tuple{MetabolicModel}" href="#COBREXA.balance-Tuple{MetabolicModel}"><code>COBREXA.balance</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">balance(a::MetabolicModel)::SparseVec</code></pre><p>Get the sparse balance vector of a model (ie. the <code>b</code> from <code>S x = b</code>).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/abstract/MetabolicModel.jl#L116-L120">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.bounds-Tuple{MetabolicModel}" href="#COBREXA.bounds-Tuple{MetabolicModel}"><code>COBREXA.bounds</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">bounds(a::MetabolicModel)::Tuple{SparseVec,SparseVec}</code></pre><p>Get the lower and upper flux bounds of a model.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/abstract/MetabolicModel.jl#L107-L111">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.coupling-Tuple{MetabolicModel}" href="#COBREXA.coupling-Tuple{MetabolicModel}"><code>COBREXA.coupling</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">coupling(a::MetabolicModel)::SparseMat</code></pre><p>Get a matrix of coupling constraint definitions of a model. By default, there is no coupling in the models.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/abstract/MetabolicModel.jl#L134-L139">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.coupling_bounds-Tuple{MetabolicModel}" href="#COBREXA.coupling_bounds-Tuple{MetabolicModel}"><code>COBREXA.coupling_bounds</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">coupling_bounds(a::MetabolicModel)::Tuple{SparseVec,SparseVec}</code></pre><p>Get the lower and upper bounds for each coupling bound in a model, as specified by <code>coupling</code>. By default, the model does not have any coupling bounds.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/abstract/MetabolicModel.jl#L153-L158">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.gene_annotations-Tuple{MetabolicModel, String}" href="#COBREXA.gene_annotations-Tuple{MetabolicModel, String}"><code>COBREXA.gene_annotations</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">gene_annotations(a::MetabolicModel, gene_id::String)::Annotations</code></pre><p>Return standardized names that identify the corresponding gene or product. The dictionary assigns vectors of possible identifiers to identifier system names, e.g. <code>&quot;PDB&quot; =&gt; [&quot;PROT01&quot;]</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/abstract/MetabolicModel.jl#L251-L257">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.gene_notes-Tuple{MetabolicModel, String}" href="#COBREXA.gene_notes-Tuple{MetabolicModel, String}"><code>COBREXA.gene_notes</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">gene_notes(model::MetabolicModel, gene_id::String)::Notes</code></pre><p>Return the notes associated with the gene <code>gene_id</code> in <code>model</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/abstract/MetabolicModel.jl#L280-L284">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.genes-Tuple{MetabolicModel}" href="#COBREXA.genes-Tuple{MetabolicModel}"><code>COBREXA.genes</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">genes(a::MetabolicModel)::Vector{String}</code></pre><p>Return identifiers of all genes contained in the model. By default, there are no genes.</p><p>In SBML, these are usually called &quot;gene products&quot; but we write <code>genes</code> for simplicity.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/abstract/MetabolicModel.jl#L163-L171">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_annotations-Tuple{MetabolicModel, String}" href="#COBREXA.metabolite_annotations-Tuple{MetabolicModel, String}"><code>COBREXA.metabolite_annotations</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolite_annotations(a::MetabolicModel, metabolite_id::String)::Annotations</code></pre><p>Return standardized names that may help to reliably identify the metabolite. The dictionary assigns vectors of possible identifiers to identifier system names, e.g. <code>&quot;ChEMBL&quot; =&gt; [&quot;123&quot;]</code> or <code>&quot;PubChem&quot; =&gt; [&quot;CID123&quot;, &quot;CID654645645&quot;]</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/abstract/MetabolicModel.jl#L240-L246">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_charge-Tuple{MetabolicModel, String}" href="#COBREXA.metabolite_charge-Tuple{MetabolicModel, String}"><code>COBREXA.metabolite_charge</code></a> — <span class="docstring-category">Method</span></header><section><div><p>metabolite<em>charge(model::MetabolicModel, metabolite</em>id::String)::Maybe{Int}</p><p>Return the charge associated with metabolite <code>metabolite_id</code> in <code>model</code>. Returns <code>nothing</code> if charge not present.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/abstract/MetabolicModel.jl#L219-L224">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_compartment-Tuple{MetabolicModel, String}" href="#COBREXA.metabolite_compartment-Tuple{MetabolicModel, String}"><code>COBREXA.metabolite_compartment</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolite_compartment(model::MetabolicModel, metabolite_id::String)::Maybe{String}</code></pre><p>Return the compartment of metabolite <code>metabolite_id</code> in <code>model</code> if it is assigned. If not, return <code>nothing</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/abstract/MetabolicModel.jl#L289-L294">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_formula-Tuple{MetabolicModel, String}" href="#COBREXA.metabolite_formula-Tuple{MetabolicModel, String}"><code>COBREXA.metabolite_formula</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolite_formula(
+<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Function reference · COBREXA.jl</title><link href="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL=".."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../assets/documenter.js"></script><script src="../siteinfo.js"></script><script src="../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../assets/themeswap.js"></script><link href="../assets/favicon.ico" rel="icon" type="image/x-icon"/></head><body><div id="documenter"><nav class="docs-sidebar"><a class="docs-logo" href="../"><img class="docs-light-only" src="../assets/logo.svg" alt="COBREXA.jl logo"/><img class="docs-dark-only" src="../assets/logo-dark.svg" alt="COBREXA.jl logo"/></a><div class="docs-package-name"><span class="docs-autofit">COBREXA.jl</span></div><form class="docs-search" action="../search/"><input class="docs-search-query" id="documenter-search-query" name="q" type="text" placeholder="Search docs"/></form><ul class="docs-menu"><li><a class="tocitem" href="../">Home</a></li><li><a class="tocitem" href="../tutorials/">Quickstart tutorials</a></li><li><a class="tocitem" href="../advanced/">Advanced tutorials</a></li><li><a class="tocitem" href="../notebooks/">Examples and notebooks</a></li><li class="is-active"><a class="tocitem" href>Function reference</a><ul class="internal"><li><a class="tocitem" href="#Base-Types"><span>Base Types</span></a></li><li><a class="tocitem" href="#Model-types-and-contents"><span>Model types and contents</span></a></li><li><a class="tocitem" href="#Base-functions"><span>Base functions</span></a></li><li><a class="tocitem" href="#File-I/O-and-serialization"><span>File I/O and serialization</span></a></li><li><a class="tocitem" href="#Model-reconstruction"><span>Model reconstruction</span></a></li><li><a class="tocitem" href="#Analysis-functions"><span>Analysis functions</span></a></li><li><a class="tocitem" href="#Miscellaneous-utilities"><span>Miscellaneous utilities</span></a></li></ul></li><li><a class="tocitem" href="../howToContribute/">How to contribute</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><nav class="breadcrumb"><ul class="is-hidden-mobile"><li class="is-active"><a href>Function reference</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Function reference</a></li></ul></nav><div class="docs-right"><a class="docs-edit-link" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/master/docs/src/functions.md" title="Edit on GitHub"><span class="docs-icon fab"></span><span class="docs-label is-hidden-touch">Edit on GitHub</span></a><a class="docs-settings-button fas fa-cog" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-sidebar-button fa fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a></div></header><article class="content" id="documenter-page"><h1 id="Functions"><a class="docs-heading-anchor" href="#Functions">Functions</a><a id="Functions-1"></a><a class="docs-heading-anchor-permalink" href="#Functions" title="Permalink"></a></h1><h2 id="Base-Types"><a class="docs-heading-anchor" href="#Base-Types">Base Types</a><a id="Base-Types-1"></a><a class="docs-heading-anchor-permalink" href="#Base-Types" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-binding" id="COBREXA.Maybe" href="#COBREXA.Maybe"><code>COBREXA.Maybe</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia">Maybe{T} = Union{Nothing, T}</code></pre><p>A nice name for &quot;nullable&quot; type.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/abstract/Maybe.jl#L2-L6">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA._default-Union{Tuple{T}, Tuple{T, Union{Nothing, T}}} where T" href="#COBREXA._default-Union{Tuple{T}, Tuple{T, Union{Nothing, T}}} where T"><code>COBREXA._default</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">_default(d::T, x::Maybe{T})::T where {T}</code></pre><p>Fold the <code>Maybe{T}</code> down to <code>T</code> by defaulting.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/abstract/Maybe.jl#L9-L13">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA._maybemap-Tuple{Any, Union{Nothing, T} where T}" href="#COBREXA._maybemap-Tuple{Any, Union{Nothing, T} where T}"><code>COBREXA._maybemap</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">_maybemap(f, x::Maybe)::Maybe</code></pre><p>Apply a function to <code>x</code> only if it is not <code>nothing</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/abstract/Maybe.jl#L18-L22">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.Annotations" href="#COBREXA.Annotations"><code>COBREXA.Annotations</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia">Annotations = Dict{String,Vector{String}}</code></pre><p>Dictionary used to store (possible multiple) standardized annotations of something, such as a <a href="#COBREXA.Metabolite"><code>Metabolite</code></a> and a <a href="#COBREXA.Reaction"><code>Reaction</code></a>.</p><p><strong>Example</strong></p><pre><code class="language-none">Annotations(&quot;PubChem&quot; =&gt; [&quot;CID12345&quot;, &quot;CID54321&quot;])</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/abstract/MetabolicModel.jl#L39-L49">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.GeneAssociation" href="#COBREXA.GeneAssociation"><code>COBREXA.GeneAssociation</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia">GeneAssociation = Vector{Vector{String}}</code></pre><p>An association to genes, represented as a logical formula in a positive disjunctive normal form (DNF). (The 2nd-level vectors of strings are connected by &quot;and&quot; to form conjunctions, and the 1st-level vectors of these conjunctions are connected by &quot;or&quot; to form the DNF.)</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/abstract/MetabolicModel.jl#L22-L29">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.MetabolicModel" href="#COBREXA.MetabolicModel"><code>COBREXA.MetabolicModel</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia">abstract type MetabolicModel end</code></pre><p>A helper supertype that wraps everything usable as a linear-like model for COBREXA functions.</p><p>If you want your model type to work with COBREXA, add the <code>MetabolicModel</code> as its supertype, and implement the accessor functions. Accessors <a href="#COBREXA.reactions-Tuple{MetabolicModel}"><code>reactions</code></a>, <a href="#COBREXA.metabolites-Tuple{MetabolicModel}"><code>metabolites</code></a>, <a href="#COBREXA.stoichiometry-Tuple{MetabolicModel}"><code>stoichiometry</code></a>, <a href="#COBREXA.bounds-Tuple{MetabolicModel}"><code>bounds</code></a> and <a href="#COBREXA.objective-Tuple{MetabolicModel}"><code>objective</code></a> must be implemented; others are not mandatory and default to safe &quot;empty&quot; values.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/abstract/MetabolicModel.jl#L2-L13">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.MetaboliteFormula" href="#COBREXA.MetaboliteFormula"><code>COBREXA.MetaboliteFormula</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia">MetaboliteFormula = Dict{String,Int}</code></pre><p>Dictionary of atoms and their abundances in a molecule.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/abstract/MetabolicModel.jl#L32-L36">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.Notes" href="#COBREXA.Notes"><code>COBREXA.Notes</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia">Notes = Dict{String,Vector{String}}</code></pre><p>Free-form notes about something (e.g. a <a href="#COBREXA.Gene"><code>Gene</code></a>), categorized by &quot;topic&quot;.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/abstract/MetabolicModel.jl#L52-L57">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.balance-Tuple{MetabolicModel}" href="#COBREXA.balance-Tuple{MetabolicModel}"><code>COBREXA.balance</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">balance(a::MetabolicModel)::SparseVec</code></pre><p>Get the sparse balance vector of a model (ie. the <code>b</code> from <code>S x = b</code>).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/abstract/MetabolicModel.jl#L116-L120">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.bounds-Tuple{MetabolicModel}" href="#COBREXA.bounds-Tuple{MetabolicModel}"><code>COBREXA.bounds</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">bounds(a::MetabolicModel)::Tuple{SparseVec,SparseVec}</code></pre><p>Get the lower and upper flux bounds of a model.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/abstract/MetabolicModel.jl#L107-L111">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.coupling-Tuple{MetabolicModel}" href="#COBREXA.coupling-Tuple{MetabolicModel}"><code>COBREXA.coupling</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">coupling(a::MetabolicModel)::SparseMat</code></pre><p>Get a matrix of coupling constraint definitions of a model. By default, there is no coupling in the models.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/abstract/MetabolicModel.jl#L134-L139">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.coupling_bounds-Tuple{MetabolicModel}" href="#COBREXA.coupling_bounds-Tuple{MetabolicModel}"><code>COBREXA.coupling_bounds</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">coupling_bounds(a::MetabolicModel)::Tuple{SparseVec,SparseVec}</code></pre><p>Get the lower and upper bounds for each coupling bound in a model, as specified by <code>coupling</code>. By default, the model does not have any coupling bounds.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/abstract/MetabolicModel.jl#L153-L158">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.gene_annotations-Tuple{MetabolicModel, String}" href="#COBREXA.gene_annotations-Tuple{MetabolicModel, String}"><code>COBREXA.gene_annotations</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">gene_annotations(a::MetabolicModel, gene_id::String)::Annotations</code></pre><p>Return standardized names that identify the corresponding gene or product. The dictionary assigns vectors of possible identifiers to identifier system names, e.g. <code>&quot;PDB&quot; =&gt; [&quot;PROT01&quot;]</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/abstract/MetabolicModel.jl#L251-L257">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.gene_notes-Tuple{MetabolicModel, String}" href="#COBREXA.gene_notes-Tuple{MetabolicModel, String}"><code>COBREXA.gene_notes</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">gene_notes(model::MetabolicModel, gene_id::String)::Notes</code></pre><p>Return the notes associated with the gene <code>gene_id</code> in <code>model</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/abstract/MetabolicModel.jl#L280-L284">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.genes-Tuple{MetabolicModel}" href="#COBREXA.genes-Tuple{MetabolicModel}"><code>COBREXA.genes</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">genes(a::MetabolicModel)::Vector{String}</code></pre><p>Return identifiers of all genes contained in the model. By default, there are no genes.</p><p>In SBML, these are usually called &quot;gene products&quot; but we write <code>genes</code> for simplicity.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/abstract/MetabolicModel.jl#L163-L171">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_annotations-Tuple{MetabolicModel, String}" href="#COBREXA.metabolite_annotations-Tuple{MetabolicModel, String}"><code>COBREXA.metabolite_annotations</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolite_annotations(a::MetabolicModel, metabolite_id::String)::Annotations</code></pre><p>Return standardized names that may help to reliably identify the metabolite. The dictionary assigns vectors of possible identifiers to identifier system names, e.g. <code>&quot;ChEMBL&quot; =&gt; [&quot;123&quot;]</code> or <code>&quot;PubChem&quot; =&gt; [&quot;CID123&quot;, &quot;CID654645645&quot;]</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/abstract/MetabolicModel.jl#L240-L246">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_charge-Tuple{MetabolicModel, String}" href="#COBREXA.metabolite_charge-Tuple{MetabolicModel, String}"><code>COBREXA.metabolite_charge</code></a> — <span class="docstring-category">Method</span></header><section><div><p>metabolite<em>charge(model::MetabolicModel, metabolite</em>id::String)::Maybe{Int}</p><p>Return the charge associated with metabolite <code>metabolite_id</code> in <code>model</code>. Returns <code>nothing</code> if charge not present.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/abstract/MetabolicModel.jl#L219-L224">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_compartment-Tuple{MetabolicModel, String}" href="#COBREXA.metabolite_compartment-Tuple{MetabolicModel, String}"><code>COBREXA.metabolite_compartment</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolite_compartment(model::MetabolicModel, metabolite_id::String)::Maybe{String}</code></pre><p>Return the compartment of metabolite <code>metabolite_id</code> in <code>model</code> if it is assigned. If not, return <code>nothing</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/abstract/MetabolicModel.jl#L289-L294">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_formula-Tuple{MetabolicModel, String}" href="#COBREXA.metabolite_formula-Tuple{MetabolicModel, String}"><code>COBREXA.metabolite_formula</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolite_formula(
     a::MetabolicModel,
     metabolite_id::String,
-)::Maybe{MetaboliteFormula}</code></pre><p>Return the formula of metabolite <code>metabolite_id</code> in <code>model</code>. Return <code>nothing</code> in case the formula is not known or irrelevant.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/abstract/MetabolicModel.jl#L203-L211">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_notes-Tuple{MetabolicModel, String}" href="#COBREXA.metabolite_notes-Tuple{MetabolicModel, String}"><code>COBREXA.metabolite_notes</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolite_notes(model::MetabolicModel, metabolite_id::String)::Notes</code></pre><p>Return the notes associated with metabolite <code>reaction_id</code> in <code>model</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/abstract/MetabolicModel.jl#L271-L275">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolites-Tuple{MetabolicModel}" href="#COBREXA.metabolites-Tuple{MetabolicModel}"><code>COBREXA.metabolites</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolites(a::MetabolicModel)::Vector{String}</code></pre><p>Return a vector of metabolite identifiers in a model.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/abstract/MetabolicModel.jl#L71-L75">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.n_coupling_constraints-Tuple{MetabolicModel}" href="#COBREXA.n_coupling_constraints-Tuple{MetabolicModel}"><code>COBREXA.n_coupling_constraints</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">n_coupling_constraints(a::MetabolicModel)::Int</code></pre><p>Get the number of coupling constraints in a model.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/abstract/MetabolicModel.jl#L144-L148">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.n_genes-Tuple{MetabolicModel}" href="#COBREXA.n_genes-Tuple{MetabolicModel}"><code>COBREXA.n_genes</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">n_genes(a::MetabolicModel)::Int</code></pre><p>Return the number of genes in the model (as returned by <a href="#COBREXA.genes-Tuple{MetabolicModel}"><code>genes</code></a>). If you just need the number of the genes, this may be much more efficient than calling <a href="#COBREXA.genes-Tuple{MetabolicModel}"><code>genes</code></a> and measuring the array.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/abstract/MetabolicModel.jl#L176-L182">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.n_metabolites-Tuple{MetabolicModel}" href="#COBREXA.n_metabolites-Tuple{MetabolicModel}"><code>COBREXA.n_metabolites</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">n_metabolites(a::MetabolicModel)::Int</code></pre><p>Get the number of metabolites in a model.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/abstract/MetabolicModel.jl#L89-L93">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.n_reactions-Tuple{MetabolicModel}" href="#COBREXA.n_reactions-Tuple{MetabolicModel}"><code>COBREXA.n_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">n_reactions(a::MetabolicModel)::Int</code></pre><p>Get the number of reactions in a model.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/abstract/MetabolicModel.jl#L80-L84">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.objective-Tuple{MetabolicModel}" href="#COBREXA.objective-Tuple{MetabolicModel}"><code>COBREXA.objective</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">objective(a::MetabolicModel)::SparseVec</code></pre><p>Get the objective vector of a model.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/abstract/MetabolicModel.jl#L125-L129">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.precache!-Tuple{MetabolicModel}" href="#COBREXA.precache!-Tuple{MetabolicModel}"><code>COBREXA.precache!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">precache!(a::MetabolicModel)::Nothing</code></pre><p>Do whatever is feasible to get the model into a state that can be read from as-quickly-as-possible. This may include e.g. generating helper index structures and loading delayed parts of the model from disk. The model should be modified &quot;transparently&quot; in-place. Analysis functions call this right before applying modifications or converting the model to the optimization model using <a href="#COBREXA.make_optimization_model-Tuple{MetabolicModel, Any}"><code>make_optimization_model</code></a>; usually on the same machine where the optimizers (and, generally, the core analysis algorithms) will run. The calls are done in a good hope that the performance will be improved.</p><p>By default, it should be safe to do nothing.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/abstract/MetabolicModel.jl#L323-L336">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_annotations-Tuple{MetabolicModel, String}" href="#COBREXA.reaction_annotations-Tuple{MetabolicModel, String}"><code>COBREXA.reaction_annotations</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_annotations(a::MetabolicModel, reaction_id::String)::Annotations</code></pre><p>Return standardized names that may help identifying the reaction. The dictionary assigns vectors of possible identifiers to identifier system names, e.g. <code>&quot;Reactome&quot; =&gt; [&quot;reactomeID123&quot;]</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/abstract/MetabolicModel.jl#L229-L235">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_gene_association-Tuple{MetabolicModel, String}" href="#COBREXA.reaction_gene_association-Tuple{MetabolicModel, String}"><code>COBREXA.reaction_gene_association</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_gene_association(a::MetabolicModel, gene_id::String)::Maybe{GeneAssociation}</code></pre><p>Returns the sets of genes that need to be present so that the reaction can work (technically, a DNF on gene availability, with positive atoms only).</p><p>For simplicity, <code>nothing</code> may be returned, meaning that the reaction always takes place. (in DNF, that would be equivalent to returning <code>[[]]</code>.)</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/abstract/MetabolicModel.jl#L187-L195">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_notes-Tuple{MetabolicModel, String}" href="#COBREXA.reaction_notes-Tuple{MetabolicModel, String}"><code>COBREXA.reaction_notes</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_notes(model::MetabolicModel, reaction_id::String)::Notes</code></pre><p>Return the notes associated with reaction <code>reaction_id</code> in <code>model</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/abstract/MetabolicModel.jl#L262-L266">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_stoichiometry-Tuple{MetabolicModel, String}" href="#COBREXA.reaction_stoichiometry-Tuple{MetabolicModel, String}"><code>COBREXA.reaction_stoichiometry</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_stoichiometry(model::MetaboliteModel, rxn_id::String)::Dict{String, Float64}</code></pre><p>Return the reaction equation of reaction with id <code>rxn_id</code> in model. The reaction equation maps metabolite ids to their stoichiometric coefficients.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/abstract/MetabolicModel.jl#L309-L314">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_subsystem-Tuple{MetabolicModel, String}" href="#COBREXA.reaction_subsystem-Tuple{MetabolicModel, String}"><code>COBREXA.reaction_subsystem</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_subsystem(model::MetabolicModel, reaction_id::String)::Maybe{String}</code></pre><p>Return the subsystem of reaction <code>reaction_id</code> in <code>model</code> if it is assigned. If not, return <code>nothing</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/abstract/MetabolicModel.jl#L299-L304">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reactions-Tuple{MetabolicModel}" href="#COBREXA.reactions-Tuple{MetabolicModel}"><code>COBREXA.reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reactions(a::MetabolicModel)::Vector{String}</code></pre><p>Return a vector of reaction identifiers in a model.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/abstract/MetabolicModel.jl#L62-L66">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.stoichiometry-Tuple{MetabolicModel}" href="#COBREXA.stoichiometry-Tuple{MetabolicModel}"><code>COBREXA.stoichiometry</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">stoichiometry(a::MetabolicModel)::SparseMat</code></pre><p>Get the sparse stoichiometry matrix of a model.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/abstract/MetabolicModel.jl#L98-L102">source</a></section></article><h2 id="Model-types-and-contents"><a class="docs-heading-anchor" href="#Model-types-and-contents">Model types and contents</a><a id="Model-types-and-contents-1"></a><a class="docs-heading-anchor-permalink" href="#Model-types-and-contents" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-binding" id="COBREXA.CoreModel" href="#COBREXA.CoreModel"><code>COBREXA.CoreModel</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia">struct CoreModel &lt;: MetabolicModel</code></pre><p>A &quot;bare bones&quot; core linear optimization problem of the form, with reaction and metabolite names.</p><pre><code class="language-none">min c^T x
+)::Maybe{MetaboliteFormula}</code></pre><p>Return the formula of metabolite <code>metabolite_id</code> in <code>model</code>. Return <code>nothing</code> in case the formula is not known or irrelevant.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/abstract/MetabolicModel.jl#L203-L211">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_notes-Tuple{MetabolicModel, String}" href="#COBREXA.metabolite_notes-Tuple{MetabolicModel, String}"><code>COBREXA.metabolite_notes</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolite_notes(model::MetabolicModel, metabolite_id::String)::Notes</code></pre><p>Return the notes associated with metabolite <code>reaction_id</code> in <code>model</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/abstract/MetabolicModel.jl#L271-L275">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolites-Tuple{MetabolicModel}" href="#COBREXA.metabolites-Tuple{MetabolicModel}"><code>COBREXA.metabolites</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolites(a::MetabolicModel)::Vector{String}</code></pre><p>Return a vector of metabolite identifiers in a model.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/abstract/MetabolicModel.jl#L71-L75">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.n_coupling_constraints-Tuple{MetabolicModel}" href="#COBREXA.n_coupling_constraints-Tuple{MetabolicModel}"><code>COBREXA.n_coupling_constraints</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">n_coupling_constraints(a::MetabolicModel)::Int</code></pre><p>Get the number of coupling constraints in a model.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/abstract/MetabolicModel.jl#L144-L148">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.n_genes-Tuple{MetabolicModel}" href="#COBREXA.n_genes-Tuple{MetabolicModel}"><code>COBREXA.n_genes</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">n_genes(a::MetabolicModel)::Int</code></pre><p>Return the number of genes in the model (as returned by <a href="#COBREXA.genes-Tuple{MetabolicModel}"><code>genes</code></a>). If you just need the number of the genes, this may be much more efficient than calling <a href="#COBREXA.genes-Tuple{MetabolicModel}"><code>genes</code></a> and measuring the array.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/abstract/MetabolicModel.jl#L176-L182">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.n_metabolites-Tuple{MetabolicModel}" href="#COBREXA.n_metabolites-Tuple{MetabolicModel}"><code>COBREXA.n_metabolites</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">n_metabolites(a::MetabolicModel)::Int</code></pre><p>Get the number of metabolites in a model.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/abstract/MetabolicModel.jl#L89-L93">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.n_reactions-Tuple{MetabolicModel}" href="#COBREXA.n_reactions-Tuple{MetabolicModel}"><code>COBREXA.n_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">n_reactions(a::MetabolicModel)::Int</code></pre><p>Get the number of reactions in a model.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/abstract/MetabolicModel.jl#L80-L84">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.objective-Tuple{MetabolicModel}" href="#COBREXA.objective-Tuple{MetabolicModel}"><code>COBREXA.objective</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">objective(a::MetabolicModel)::SparseVec</code></pre><p>Get the objective vector of a model.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/abstract/MetabolicModel.jl#L125-L129">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.precache!-Tuple{MetabolicModel}" href="#COBREXA.precache!-Tuple{MetabolicModel}"><code>COBREXA.precache!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">precache!(a::MetabolicModel)::Nothing</code></pre><p>Do whatever is feasible to get the model into a state that can be read from as-quickly-as-possible. This may include e.g. generating helper index structures and loading delayed parts of the model from disk. The model should be modified &quot;transparently&quot; in-place. Analysis functions call this right before applying modifications or converting the model to the optimization model using <a href="#COBREXA.make_optimization_model-Tuple{MetabolicModel, Any}"><code>make_optimization_model</code></a>; usually on the same machine where the optimizers (and, generally, the core analysis algorithms) will run. The calls are done in a good hope that the performance will be improved.</p><p>By default, it should be safe to do nothing.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/abstract/MetabolicModel.jl#L323-L336">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_annotations-Tuple{MetabolicModel, String}" href="#COBREXA.reaction_annotations-Tuple{MetabolicModel, String}"><code>COBREXA.reaction_annotations</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_annotations(a::MetabolicModel, reaction_id::String)::Annotations</code></pre><p>Return standardized names that may help identifying the reaction. The dictionary assigns vectors of possible identifiers to identifier system names, e.g. <code>&quot;Reactome&quot; =&gt; [&quot;reactomeID123&quot;]</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/abstract/MetabolicModel.jl#L229-L235">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_gene_association-Tuple{MetabolicModel, String}" href="#COBREXA.reaction_gene_association-Tuple{MetabolicModel, String}"><code>COBREXA.reaction_gene_association</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_gene_association(a::MetabolicModel, gene_id::String)::Maybe{GeneAssociation}</code></pre><p>Returns the sets of genes that need to be present so that the reaction can work (technically, a DNF on gene availability, with positive atoms only).</p><p>For simplicity, <code>nothing</code> may be returned, meaning that the reaction always takes place. (in DNF, that would be equivalent to returning <code>[[]]</code>.)</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/abstract/MetabolicModel.jl#L187-L195">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_notes-Tuple{MetabolicModel, String}" href="#COBREXA.reaction_notes-Tuple{MetabolicModel, String}"><code>COBREXA.reaction_notes</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_notes(model::MetabolicModel, reaction_id::String)::Notes</code></pre><p>Return the notes associated with reaction <code>reaction_id</code> in <code>model</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/abstract/MetabolicModel.jl#L262-L266">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_stoichiometry-Tuple{MetabolicModel, String}" href="#COBREXA.reaction_stoichiometry-Tuple{MetabolicModel, String}"><code>COBREXA.reaction_stoichiometry</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_stoichiometry(model::MetaboliteModel, rxn_id::String)::Dict{String, Float64}</code></pre><p>Return the reaction equation of reaction with id <code>rxn_id</code> in model. The reaction equation maps metabolite ids to their stoichiometric coefficients.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/abstract/MetabolicModel.jl#L309-L314">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_subsystem-Tuple{MetabolicModel, String}" href="#COBREXA.reaction_subsystem-Tuple{MetabolicModel, String}"><code>COBREXA.reaction_subsystem</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_subsystem(model::MetabolicModel, reaction_id::String)::Maybe{String}</code></pre><p>Return the subsystem of reaction <code>reaction_id</code> in <code>model</code> if it is assigned. If not, return <code>nothing</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/abstract/MetabolicModel.jl#L299-L304">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reactions-Tuple{MetabolicModel}" href="#COBREXA.reactions-Tuple{MetabolicModel}"><code>COBREXA.reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reactions(a::MetabolicModel)::Vector{String}</code></pre><p>Return a vector of reaction identifiers in a model.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/abstract/MetabolicModel.jl#L62-L66">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.stoichiometry-Tuple{MetabolicModel}" href="#COBREXA.stoichiometry-Tuple{MetabolicModel}"><code>COBREXA.stoichiometry</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">stoichiometry(a::MetabolicModel)::SparseMat</code></pre><p>Get the sparse stoichiometry matrix of a model.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/abstract/MetabolicModel.jl#L98-L102">source</a></section></article><h2 id="Model-types-and-contents"><a class="docs-heading-anchor" href="#Model-types-and-contents">Model types and contents</a><a id="Model-types-and-contents-1"></a><a class="docs-heading-anchor-permalink" href="#Model-types-and-contents" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-binding" id="COBREXA.CoreModel" href="#COBREXA.CoreModel"><code>COBREXA.CoreModel</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia">struct CoreModel &lt;: MetabolicModel</code></pre><p>A &quot;bare bones&quot; core linear optimization problem of the form, with reaction and metabolite names.</p><pre><code class="language-none">min c^T x
 s.t. S x = b
-      xₗ ≤ x ≤ xᵤ</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/CoreModel.jl#L2-L12">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="Base.convert-Union{Tuple{M}, Tuple{Type{CoreModel}, M}} where M&lt;:MetabolicModel" href="#Base.convert-Union{Tuple{M}, Tuple{Type{CoreModel}, M}} where M&lt;:MetabolicModel"><code>Base.convert</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">Base.convert(::Type{CoreModel}, m::M) where {M &lt;: MetabolicModel}</code></pre><p>Make a <code>CoreModel</code> out of any compatible model type.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/CoreModel.jl#L119-L123">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.balance-Tuple{CoreModel}" href="#COBREXA.balance-Tuple{CoreModel}"><code>COBREXA.balance</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">balance(a::CoreModel)::SparseVec</code></pre><p><code>CoreModel</code> target flux balance.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/CoreModel.jl#L78-L82">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.bounds-Tuple{CoreModel}" href="#COBREXA.bounds-Tuple{CoreModel}"><code>COBREXA.bounds</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">bounds(a::CoreModel)::Tuple{SparseVec,SparseVec}</code></pre><p><code>CoreModel</code> flux bounds.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/CoreModel.jl#L69-L73">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolites-Tuple{CoreModel}" href="#COBREXA.metabolites-Tuple{CoreModel}"><code>COBREXA.metabolites</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolites(a::CoreModel)::Vector{String}</code></pre><p>Metabolites in a <code>CoreModel</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/CoreModel.jl#L51-L55">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.objective-Tuple{CoreModel}" href="#COBREXA.objective-Tuple{CoreModel}"><code>COBREXA.objective</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">objective(a::CoreModel)::SparseVec</code></pre><p><code>CoreModel</code> objective vector.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/CoreModel.jl#L87-L91">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_stoichiometry-Tuple{CoreModel, Int64}" href="#COBREXA.reaction_stoichiometry-Tuple{CoreModel, Int64}"><code>COBREXA.reaction_stoichiometry</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_stoichiometry(model::CoreModel, rxn_id::String)::Dict{String, Float64}</code></pre><p>Return the reaction equation of reaction with id <code>rxn_ind</code> in model. The reaction equation maps metabolite ids to their stoichiometric coefficients.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/CoreModel.jl#L109-L114">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_stoichiometry-Tuple{CoreModel, String}" href="#COBREXA.reaction_stoichiometry-Tuple{CoreModel, String}"><code>COBREXA.reaction_stoichiometry</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_stoichiometry(model::CoreModel, rxn_id::String)::Dict{String, Float64}</code></pre><p>Return the reaction equation of reaction with id <code>rxn_id</code> in model. The reaction equation maps metabolite ids to their stoichiometric coefficients.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/CoreModel.jl#L96-L101">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reactions-Tuple{CoreModel}" href="#COBREXA.reactions-Tuple{CoreModel}"><code>COBREXA.reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reactions(a::CoreModel)::Vector{String}</code></pre><p>Get the reactions in a <code>CoreModel</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/CoreModel.jl#L42-L46">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.stoichiometry-Tuple{CoreModel}" href="#COBREXA.stoichiometry-Tuple{CoreModel}"><code>COBREXA.stoichiometry</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">stoichiometry(a::CoreModel)::SparseMat</code></pre><p><code>CoreModel</code> stoichiometry matrix.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/CoreModel.jl#L60-L64">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.CoreModelCoupled" href="#COBREXA.CoreModelCoupled"><code>COBREXA.CoreModelCoupled</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia">struct CoreModelCoupled &lt;: MetabolicModel</code></pre><p>The linear model with additional coupling constraints in the form</p><pre><code class="language-none">    cₗ ≤ C x ≤ cᵤ</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/CoreModelCoupled.jl#L2-L9">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="Base.convert-Tuple{Type{CoreModelCoupled}, MetabolicModel}" href="#Base.convert-Tuple{Type{CoreModelCoupled}, MetabolicModel}"><code>Base.convert</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">Base.convert(::Type{CoreModelCoupled}, mm::MetabolicModel)</code></pre><p>Make a <code>CoreModelCoupled</code> out of any compatible model type.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/CoreModelCoupled.jl#L127-L131">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.balance-Tuple{CoreModelCoupled}" href="#COBREXA.balance-Tuple{CoreModelCoupled}"><code>COBREXA.balance</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">balance(a::CoreModelCoupled)</code></pre><p>Extract balance from <a href="#COBREXA.CoreModelCoupled"><code>CoreModelCoupled</code></a> (uses the internal <a href="#COBREXA.CoreModel"><code>CoreModel</code></a>).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/CoreModelCoupled.jl#L64-L69">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.bounds-Tuple{CoreModelCoupled}" href="#COBREXA.bounds-Tuple{CoreModelCoupled}"><code>COBREXA.bounds</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">bounds(a::CoreModelCoupled)</code></pre><p>Extract bounds from <a href="#COBREXA.CoreModelCoupled"><code>CoreModelCoupled</code></a> (uses the internal <a href="#COBREXA.CoreModel"><code>CoreModel</code></a>).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/CoreModelCoupled.jl#L56-L61">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.coupling-Tuple{CoreModelCoupled}" href="#COBREXA.coupling-Tuple{CoreModelCoupled}"><code>COBREXA.coupling</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">coupling(a::CoreModelCoupled)::SparseMat</code></pre><p>Coupling constraint matrix for a <code>CoreModelCoupled</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/CoreModelCoupled.jl#L80-L84">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.coupling_bounds-Tuple{CoreModelCoupled}" href="#COBREXA.coupling_bounds-Tuple{CoreModelCoupled}"><code>COBREXA.coupling_bounds</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">coupling_bounds(a::CoreModelCoupled)::Tuple{SparseVec,SparseVec}</code></pre><p>Coupling bounds for a <code>CoreModelCoupled</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/CoreModelCoupled.jl#L98-L102">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolites-Tuple{CoreModelCoupled}" href="#COBREXA.metabolites-Tuple{CoreModelCoupled}"><code>COBREXA.metabolites</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolites(a::CoreModelCoupled)</code></pre><p>Extract metabolites from <a href="#COBREXA.CoreModelCoupled"><code>CoreModelCoupled</code></a> (uses the internal <a href="#COBREXA.CoreModel"><code>CoreModel</code></a>).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/CoreModelCoupled.jl#L40-L45">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.n_coupling_constraints-Tuple{CoreModelCoupled}" href="#COBREXA.n_coupling_constraints-Tuple{CoreModelCoupled}"><code>COBREXA.n_coupling_constraints</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">n_coupling_constraints(a::CoreModelCoupled)::Int</code></pre><p>The number of coupling constraints in a <code>CoreModelCoupled</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/CoreModelCoupled.jl#L89-L93">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.objective-Tuple{CoreModelCoupled}" href="#COBREXA.objective-Tuple{CoreModelCoupled}"><code>COBREXA.objective</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">objective(a::CoreModelCoupled)</code></pre><p>Extract objective from <a href="#COBREXA.CoreModelCoupled"><code>CoreModelCoupled</code></a> (uses the internal <a href="#COBREXA.CoreModel"><code>CoreModel</code></a>).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/CoreModelCoupled.jl#L72-L77">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_stoichiometry-Tuple{CoreModelCoupled, Int64}" href="#COBREXA.reaction_stoichiometry-Tuple{CoreModelCoupled, Int64}"><code>COBREXA.reaction_stoichiometry</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_stoichiometry(model::CoreModelCoupled, rxn_ind::Int)::Dict{String, Float64}</code></pre><p>Return the reaction equation of reaction with id <code>rxn_ind</code> in model. The reaction equation maps metabolite ids to their stoichiometric coefficients.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/CoreModelCoupled.jl#L117-L122">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_stoichiometry-Tuple{CoreModelCoupled, String}" href="#COBREXA.reaction_stoichiometry-Tuple{CoreModelCoupled, String}"><code>COBREXA.reaction_stoichiometry</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_stoichiometry(model::CoreModelCoupled, rxn_id::String)::Dict{String, Float64}</code></pre><p>Return the reaction equation of reaction with id <code>rxn_id</code> in model. The reaction equation maps metabolite ids to their stoichiometric coefficients.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/CoreModelCoupled.jl#L107-L112">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reactions-Tuple{CoreModelCoupled}" href="#COBREXA.reactions-Tuple{CoreModelCoupled}"><code>COBREXA.reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reactions(a::CoreModelCoupled)</code></pre><p>Extract reactions from <a href="#COBREXA.CoreModelCoupled"><code>CoreModelCoupled</code></a> (uses the internal <a href="#COBREXA.CoreModel"><code>CoreModel</code></a>).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/CoreModelCoupled.jl#L32-L37">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.stoichiometry-Tuple{CoreModelCoupled}" href="#COBREXA.stoichiometry-Tuple{CoreModelCoupled}"><code>COBREXA.stoichiometry</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">stoichiometry(a::CoreModelCoupled)</code></pre><p>Extract stoichiometry from <a href="#COBREXA.CoreModelCoupled"><code>CoreModelCoupled</code></a> (uses the internal <a href="#COBREXA.CoreModel"><code>CoreModel</code></a>).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/CoreModelCoupled.jl#L48-L53">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.FluxSummary" href="#COBREXA.FluxSummary"><code>COBREXA.FluxSummary</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia">FluxSummary</code></pre><p>A struct used to store summary information about the solution of a constraint based analysis result.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/FluxSummary.jl#L1-L6">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.flux_summary-Tuple{Dict{String, Float64}}" href="#COBREXA.flux_summary-Tuple{Dict{String, Float64}}"><code>COBREXA.flux_summary</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">flux_summary(flux_result::Dict{String, Float64};
+      xₗ ≤ x ≤ xᵤ</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/CoreModel.jl#L2-L12">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="Base.convert-Union{Tuple{M}, Tuple{Type{CoreModel}, M}} where M&lt;:MetabolicModel" href="#Base.convert-Union{Tuple{M}, Tuple{Type{CoreModel}, M}} where M&lt;:MetabolicModel"><code>Base.convert</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">Base.convert(::Type{CoreModel}, m::M) where {M &lt;: MetabolicModel}</code></pre><p>Make a <code>CoreModel</code> out of any compatible model type.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/CoreModel.jl#L119-L123">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.balance-Tuple{CoreModel}" href="#COBREXA.balance-Tuple{CoreModel}"><code>COBREXA.balance</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">balance(a::CoreModel)::SparseVec</code></pre><p><code>CoreModel</code> target flux balance.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/CoreModel.jl#L78-L82">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.bounds-Tuple{CoreModel}" href="#COBREXA.bounds-Tuple{CoreModel}"><code>COBREXA.bounds</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">bounds(a::CoreModel)::Tuple{SparseVec,SparseVec}</code></pre><p><code>CoreModel</code> flux bounds.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/CoreModel.jl#L69-L73">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolites-Tuple{CoreModel}" href="#COBREXA.metabolites-Tuple{CoreModel}"><code>COBREXA.metabolites</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolites(a::CoreModel)::Vector{String}</code></pre><p>Metabolites in a <code>CoreModel</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/CoreModel.jl#L51-L55">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.objective-Tuple{CoreModel}" href="#COBREXA.objective-Tuple{CoreModel}"><code>COBREXA.objective</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">objective(a::CoreModel)::SparseVec</code></pre><p><code>CoreModel</code> objective vector.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/CoreModel.jl#L87-L91">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_stoichiometry-Tuple{CoreModel, Int64}" href="#COBREXA.reaction_stoichiometry-Tuple{CoreModel, Int64}"><code>COBREXA.reaction_stoichiometry</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_stoichiometry(model::CoreModel, rxn_id::String)::Dict{String, Float64}</code></pre><p>Return the reaction equation of reaction with id <code>rxn_ind</code> in model. The reaction equation maps metabolite ids to their stoichiometric coefficients.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/CoreModel.jl#L109-L114">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_stoichiometry-Tuple{CoreModel, String}" href="#COBREXA.reaction_stoichiometry-Tuple{CoreModel, String}"><code>COBREXA.reaction_stoichiometry</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_stoichiometry(model::CoreModel, rxn_id::String)::Dict{String, Float64}</code></pre><p>Return the reaction equation of reaction with id <code>rxn_id</code> in model. The reaction equation maps metabolite ids to their stoichiometric coefficients.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/CoreModel.jl#L96-L101">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reactions-Tuple{CoreModel}" href="#COBREXA.reactions-Tuple{CoreModel}"><code>COBREXA.reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reactions(a::CoreModel)::Vector{String}</code></pre><p>Get the reactions in a <code>CoreModel</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/CoreModel.jl#L42-L46">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.stoichiometry-Tuple{CoreModel}" href="#COBREXA.stoichiometry-Tuple{CoreModel}"><code>COBREXA.stoichiometry</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">stoichiometry(a::CoreModel)::SparseMat</code></pre><p><code>CoreModel</code> stoichiometry matrix.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/CoreModel.jl#L60-L64">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.CoreModelCoupled" href="#COBREXA.CoreModelCoupled"><code>COBREXA.CoreModelCoupled</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia">struct CoreModelCoupled &lt;: MetabolicModel</code></pre><p>The linear model with additional coupling constraints in the form</p><pre><code class="language-none">    cₗ ≤ C x ≤ cᵤ</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/CoreModelCoupled.jl#L2-L9">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="Base.convert-Tuple{Type{CoreModelCoupled}, MetabolicModel}" href="#Base.convert-Tuple{Type{CoreModelCoupled}, MetabolicModel}"><code>Base.convert</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">Base.convert(::Type{CoreModelCoupled}, mm::MetabolicModel)</code></pre><p>Make a <code>CoreModelCoupled</code> out of any compatible model type.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/CoreModelCoupled.jl#L127-L131">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.balance-Tuple{CoreModelCoupled}" href="#COBREXA.balance-Tuple{CoreModelCoupled}"><code>COBREXA.balance</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">balance(a::CoreModelCoupled)</code></pre><p>Extract balance from <a href="#COBREXA.CoreModelCoupled"><code>CoreModelCoupled</code></a> (uses the internal <a href="#COBREXA.CoreModel"><code>CoreModel</code></a>).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/CoreModelCoupled.jl#L64-L69">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.bounds-Tuple{CoreModelCoupled}" href="#COBREXA.bounds-Tuple{CoreModelCoupled}"><code>COBREXA.bounds</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">bounds(a::CoreModelCoupled)</code></pre><p>Extract bounds from <a href="#COBREXA.CoreModelCoupled"><code>CoreModelCoupled</code></a> (uses the internal <a href="#COBREXA.CoreModel"><code>CoreModel</code></a>).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/CoreModelCoupled.jl#L56-L61">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.coupling-Tuple{CoreModelCoupled}" href="#COBREXA.coupling-Tuple{CoreModelCoupled}"><code>COBREXA.coupling</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">coupling(a::CoreModelCoupled)::SparseMat</code></pre><p>Coupling constraint matrix for a <code>CoreModelCoupled</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/CoreModelCoupled.jl#L80-L84">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.coupling_bounds-Tuple{CoreModelCoupled}" href="#COBREXA.coupling_bounds-Tuple{CoreModelCoupled}"><code>COBREXA.coupling_bounds</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">coupling_bounds(a::CoreModelCoupled)::Tuple{SparseVec,SparseVec}</code></pre><p>Coupling bounds for a <code>CoreModelCoupled</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/CoreModelCoupled.jl#L98-L102">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolites-Tuple{CoreModelCoupled}" href="#COBREXA.metabolites-Tuple{CoreModelCoupled}"><code>COBREXA.metabolites</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolites(a::CoreModelCoupled)</code></pre><p>Extract metabolites from <a href="#COBREXA.CoreModelCoupled"><code>CoreModelCoupled</code></a> (uses the internal <a href="#COBREXA.CoreModel"><code>CoreModel</code></a>).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/CoreModelCoupled.jl#L40-L45">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.n_coupling_constraints-Tuple{CoreModelCoupled}" href="#COBREXA.n_coupling_constraints-Tuple{CoreModelCoupled}"><code>COBREXA.n_coupling_constraints</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">n_coupling_constraints(a::CoreModelCoupled)::Int</code></pre><p>The number of coupling constraints in a <code>CoreModelCoupled</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/CoreModelCoupled.jl#L89-L93">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.objective-Tuple{CoreModelCoupled}" href="#COBREXA.objective-Tuple{CoreModelCoupled}"><code>COBREXA.objective</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">objective(a::CoreModelCoupled)</code></pre><p>Extract objective from <a href="#COBREXA.CoreModelCoupled"><code>CoreModelCoupled</code></a> (uses the internal <a href="#COBREXA.CoreModel"><code>CoreModel</code></a>).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/CoreModelCoupled.jl#L72-L77">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_stoichiometry-Tuple{CoreModelCoupled, Int64}" href="#COBREXA.reaction_stoichiometry-Tuple{CoreModelCoupled, Int64}"><code>COBREXA.reaction_stoichiometry</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_stoichiometry(model::CoreModelCoupled, rxn_ind::Int)::Dict{String, Float64}</code></pre><p>Return the reaction equation of reaction with id <code>rxn_ind</code> in model. The reaction equation maps metabolite ids to their stoichiometric coefficients.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/CoreModelCoupled.jl#L117-L122">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_stoichiometry-Tuple{CoreModelCoupled, String}" href="#COBREXA.reaction_stoichiometry-Tuple{CoreModelCoupled, String}"><code>COBREXA.reaction_stoichiometry</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_stoichiometry(model::CoreModelCoupled, rxn_id::String)::Dict{String, Float64}</code></pre><p>Return the reaction equation of reaction with id <code>rxn_id</code> in model. The reaction equation maps metabolite ids to their stoichiometric coefficients.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/CoreModelCoupled.jl#L107-L112">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reactions-Tuple{CoreModelCoupled}" href="#COBREXA.reactions-Tuple{CoreModelCoupled}"><code>COBREXA.reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reactions(a::CoreModelCoupled)</code></pre><p>Extract reactions from <a href="#COBREXA.CoreModelCoupled"><code>CoreModelCoupled</code></a> (uses the internal <a href="#COBREXA.CoreModel"><code>CoreModel</code></a>).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/CoreModelCoupled.jl#L32-L37">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.stoichiometry-Tuple{CoreModelCoupled}" href="#COBREXA.stoichiometry-Tuple{CoreModelCoupled}"><code>COBREXA.stoichiometry</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">stoichiometry(a::CoreModelCoupled)</code></pre><p>Extract stoichiometry from <a href="#COBREXA.CoreModelCoupled"><code>CoreModelCoupled</code></a> (uses the internal <a href="#COBREXA.CoreModel"><code>CoreModel</code></a>).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/CoreModelCoupled.jl#L48-L53">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.FluxSummary" href="#COBREXA.FluxSummary"><code>COBREXA.FluxSummary</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia">FluxSummary</code></pre><p>A struct used to store summary information about the solution of a constraint based analysis result.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/FluxSummary.jl#L1-L6">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.flux_summary-Tuple{Dict{String, Float64}}" href="#COBREXA.flux_summary-Tuple{Dict{String, Float64}}"><code>COBREXA.flux_summary</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">flux_summary(flux_result::Dict{String, Float64};
             exclude_exchanges = false,
             exchange_prefixes = _constants.exchange_prefixes,
             biomass_strings = _constants.biomass_strings,
@@ -24,7 +24,7 @@ Import:
 Export:
   EX_h_e:      17.5309
   EX_co2_e:    22.8098
-  EX_h2o_e:    29.1758</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/FluxSummary.jl#L14-L50">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.FluxVariabilitySummary" href="#COBREXA.FluxVariabilitySummary"><code>COBREXA.FluxVariabilitySummary</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia">FluxVariabilitySummary</code></pre><p>A struct used to store summary information about the solution of a flux variability analysis result.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/FluxVariabilitySummary.jl#L1-L6">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.flux_variability_summary-Tuple{Tuple{Dict{String, Dict{String, Float64}}, Dict{String, Dict{String, Float64}}}}" href="#COBREXA.flux_variability_summary-Tuple{Tuple{Dict{String, Dict{String, Float64}}, Dict{String, Dict{String, Float64}}}}"><code>COBREXA.flux_variability_summary</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">flux_variability_summary(flux_result::Tuple{Dict{String, Dict{String, Float64}}, Dict{String, Dict{String, Float64}}};
+  EX_h2o_e:    29.1758</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/FluxSummary.jl#L14-L50">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.FluxVariabilitySummary" href="#COBREXA.FluxVariabilitySummary"><code>COBREXA.FluxVariabilitySummary</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia">FluxVariabilitySummary</code></pre><p>A struct used to store summary information about the solution of a flux variability analysis result.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/FluxVariabilitySummary.jl#L1-L6">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.flux_variability_summary-Tuple{Tuple{Dict{String, Dict{String, Float64}}, Dict{String, Dict{String, Float64}}}}" href="#COBREXA.flux_variability_summary-Tuple{Tuple{Dict{String, Dict{String, Float64}}, Dict{String, Dict{String, Float64}}}}"><code>COBREXA.flux_variability_summary</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">flux_variability_summary(flux_result::Tuple{Dict{String, Dict{String, Float64}}, Dict{String, Dict{String, Float64}}};
     exclude_exchanges = false,
     exchange_prefixes = _constants.exchange_prefixes,
     biomass_strings = _constants.biomass_strings,
@@ -42,20 +42,20 @@ Exchange
   EX_nh4_e:                 -4.8448       -4.8448
   EX_pi_e:                  -3.2149       -3.2149
   EX_for_e:                 0.0           0.0
-  ...                       ...           ...</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/FluxVariabilitySummary.jl#L12-L45">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.Gene" href="#COBREXA.Gene"><code>COBREXA.Gene</code></a> — <span class="docstring-category">Type</span></header><section><div><p>Gene struct.</p><p><strong>Fields</strong></p><pre><code class="language-none">id :: String
+  ...                       ...           ...</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/FluxVariabilitySummary.jl#L12-L45">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.Gene" href="#COBREXA.Gene"><code>COBREXA.Gene</code></a> — <span class="docstring-category">Type</span></header><section><div><p>Gene struct.</p><p><strong>Fields</strong></p><pre><code class="language-none">id :: String
 name :: Union{String, Nothing}
 notes :: Dict{String, Vector{String}}
-annotation :: Dict{String, Union{Vector{String}, String}}</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/Gene.jl#L1-L11">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.JSONModel" href="#COBREXA.JSONModel"><code>COBREXA.JSONModel</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia">struct JSONModel &lt;: MetabolicModel
+annotation :: Dict{String, Union{Vector{String}, String}}</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/Gene.jl#L1-L11">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.JSONModel" href="#COBREXA.JSONModel"><code>COBREXA.JSONModel</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia">struct JSONModel &lt;: MetabolicModel
     json::Dict{String,Any}
 end</code></pre><p>A struct used to store the contents of a JSON model, i.e. a model read from a file ending with <code>.json</code>. These model files typically store all the model parameters in arrays of JSON objects (i.e. Julia dictionaries).</p><p>Usually, not all of the fields of the input JSON can be easily represented when converting to other models, care should be taken to avoid losing information.</p><p>Direct work on this precise model type is not very efficient, as the accessor functions need to repeatedly find the information in the JSON tree. This gets very slow especially if calling many accessor functions sequentially. To avoid that, convert to e.g. <a href="#COBREXA.StandardModel"><code>StandardModel</code></a> as soon as possible.</p><p><strong>Example</strong></p><pre><code class="language-none">model = load_json_model(&quot;some_model.json&quot;)
 model.json # see the actual underlying JSON
-reactions(model) # see the list of reactions</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/JSONModel.jl#L1-L24">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="Base.convert-Tuple{Type{JSONModel}, MetabolicModel}" href="#Base.convert-Tuple{Type{JSONModel}, MetabolicModel}"><code>Base.convert</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">Base.convert(::Type{JSONModel}, mm::MetabolicModel)</code></pre><p>Convert any <a href="#COBREXA.MetabolicModel"><code>MetabolicModel</code></a> to <a href="#COBREXA.JSONModel"><code>JSONModel</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/JSONModel.jl#L290-L294">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.bounds-Tuple{JSONModel}" href="#COBREXA.bounds-Tuple{JSONModel}"><code>COBREXA.bounds</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">bounds(model::JSONModel)</code></pre><p>Get the bounds for reactions, assuming the information is stored in <code>.lower_bound</code> and <code>.upper_bound</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/JSONModel.jl#L141-L146">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.gene_annotations-Tuple{JSONModel, String}" href="#COBREXA.gene_annotations-Tuple{JSONModel, String}"><code>COBREXA.gene_annotations</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">gene_annotations(model::JSONModel, gid::String)::Annotations</code></pre><p>Gene annotations from the <a href="#COBREXA.JSONModel"><code>JSONModel</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/JSONModel.jl#L219-L223">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.gene_notes-Tuple{JSONModel, String}" href="#COBREXA.gene_notes-Tuple{JSONModel, String}"><code>COBREXA.gene_notes</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">gene_notes(model::JSONModel, gid::String)::Notes</code></pre><p>Gene notes from the <a href="#COBREXA.JSONModel"><code>JSONModel</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/JSONModel.jl#L229-L233">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.genes-Tuple{JSONModel}" href="#COBREXA.genes-Tuple{JSONModel}"><code>COBREXA.genes</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">genes(model::JSONModel)</code></pre><p>Extract gene names from a JSON model.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/JSONModel.jl#L97-L101">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_annotations-Tuple{JSONModel, String}" href="#COBREXA.metabolite_annotations-Tuple{JSONModel, String}"><code>COBREXA.metabolite_annotations</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolite_annotations(model::JSONModel, mid::String)::Annotations</code></pre><p>Metabolite annotations from the <a href="#COBREXA.JSONModel"><code>JSONModel</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/JSONModel.jl#L259-L263">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_charge-Tuple{JSONModel, String}" href="#COBREXA.metabolite_charge-Tuple{JSONModel, String}"><code>COBREXA.metabolite_charge</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolite_charge(model::JSONModel, mid::String)</code></pre><p>Return the metabolite <code>.charge</code></p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/JSONModel.jl#L199-L203">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_compartment-Tuple{JSONModel, String}" href="#COBREXA.metabolite_compartment-Tuple{JSONModel, String}"><code>COBREXA.metabolite_compartment</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolite_compartment(model::JSONModel, mid::String)</code></pre><p>Return the metabolite <code>.compartment</code></p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/JSONModel.jl#L209-L213">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_formula-Tuple{JSONModel, String}" href="#COBREXA.metabolite_formula-Tuple{JSONModel, String}"><code>COBREXA.metabolite_formula</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolite_formula(model::JSONModel, mid::String)</code></pre><p>Parse and return the metabolite <code>.formula</code></p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/JSONModel.jl#L189-L193">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_notes-Tuple{JSONModel, String}" href="#COBREXA.metabolite_notes-Tuple{JSONModel, String}"><code>COBREXA.metabolite_notes</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolite_notes(model::JSONModel, mid::String)::Notes</code></pre><p>Metabolite notes from the <a href="#COBREXA.JSONModel"><code>JSONModel</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/JSONModel.jl#L269-L273">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolites-Tuple{JSONModel}" href="#COBREXA.metabolites-Tuple{JSONModel}"><code>COBREXA.metabolites</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolites(model::JSONModel)</code></pre><p>Extract metabolite names (stored as <code>.id</code>) from JSON model.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/JSONModel.jl#L84-L88">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.objective-Tuple{JSONModel}" href="#COBREXA.objective-Tuple{JSONModel}"><code>COBREXA.objective</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">objective(model::JSONModel)</code></pre><p>Collect <code>.objective_coefficient</code> keys from model reactions.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/JSONModel.jl#L158-L162">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_annotations-Tuple{JSONModel, String}" href="#COBREXA.reaction_annotations-Tuple{JSONModel, String}"><code>COBREXA.reaction_annotations</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_annotations(model::JSONModel, rid::String)::Annotations</code></pre><p>Reaction annotations from the <a href="#COBREXA.JSONModel"><code>JSONModel</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/JSONModel.jl#L239-L243">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_gene_association-Tuple{JSONModel, String}" href="#COBREXA.reaction_gene_association-Tuple{JSONModel, String}"><code>COBREXA.reaction_gene_association</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_gene_associaton(model::JSONModel, rid::String)</code></pre><p>Parses the <code>.gene_reaction_rule</code> from reactions.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/JSONModel.jl#L169-L173">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_notes-Tuple{JSONModel, String}" href="#COBREXA.reaction_notes-Tuple{JSONModel, String}"><code>COBREXA.reaction_notes</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_notes(model::JSONModel, rid::String)::Notes</code></pre><p>Reaction notes from the <a href="#COBREXA.JSONModel"><code>JSONModel</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/JSONModel.jl#L249-L253">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_stoichiometry-Tuple{JSONModel, String}" href="#COBREXA.reaction_stoichiometry-Tuple{JSONModel, String}"><code>COBREXA.reaction_stoichiometry</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_stoichiometry(model::JSONModel, rxn_id::String)::Dict{String, Float64}</code></pre><p>Return the reaction equation of reaction with id <code>rxn_id</code> in model. The reaction equation maps metabolite ids to their stoichiometric coefficients.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/JSONModel.jl#L279-L284">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_subsystem-Tuple{JSONModel, String}" href="#COBREXA.reaction_subsystem-Tuple{JSONModel, String}"><code>COBREXA.reaction_subsystem</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_subsystem(model::JSONModel, rid::String)</code></pre><p>Parses the <code>.subsystem</code> out from reactions.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/JSONModel.jl#L179-L183">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reactions-Tuple{JSONModel}" href="#COBREXA.reactions-Tuple{JSONModel}"><code>COBREXA.reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reactions(model::JSONModel)</code></pre><p>Extract reaction names (stored as <code>.id</code>) from JSON model.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/JSONModel.jl#L71-L75">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.stoichiometry-Tuple{JSONModel}" href="#COBREXA.stoichiometry-Tuple{JSONModel}"><code>COBREXA.stoichiometry</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">stoichiometry(model::JSONModel)</code></pre><p>Get the stoichiometry. Assuming the information is stored in reaction object under key <code>.metabolites</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/JSONModel.jl#L108-L113">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.MATModel" href="#COBREXA.MATModel"><code>COBREXA.MATModel</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia">struct MATModel</code></pre><p>Wrapper around the models loaded in dictionaries from the MATLAB representation.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/MATModel.jl#L1-L5">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="Base.convert-Tuple{Type{MATModel}, MetabolicModel}" href="#Base.convert-Tuple{Type{MATModel}, MetabolicModel}"><code>Base.convert</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">Base.convert(::Type{MATModel}, m::MetabolicModel)</code></pre><p>Convert any metabolic model to <code>MATModel</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/MATModel.jl#L201-L205">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA._mat_has_squashed_coupling-Tuple{Any}" href="#COBREXA._mat_has_squashed_coupling-Tuple{Any}"><code>COBREXA._mat_has_squashed_coupling</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">_mat_has_squashed_coupling(mat)</code></pre><p>Guesses whether C in the MAT file is stored in A=[S;C].</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/MATModel.jl#L26-L30">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.balance-Tuple{MATModel}" href="#COBREXA.balance-Tuple{MATModel}"><code>COBREXA.balance</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">balance(m::MATModel)</code></pre><p>Extracts balance from the MAT model, defaulting to zeroes if not present.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/MATModel.jl#L66-L70">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.bounds-Tuple{MATModel}" href="#COBREXA.bounds-Tuple{MATModel}"><code>COBREXA.bounds</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">bounds(m::MATModel)</code></pre><p>Extracts bounds from the MAT file, saved under <code>lb</code> and <code>ub</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/MATModel.jl#L56-L60">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.coupling-Tuple{MATModel}" href="#COBREXA.coupling-Tuple{MATModel}"><code>COBREXA.coupling</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">coupling(m::MATModel)</code></pre><p>Extract coupling matrix stored, in <code>C</code> key.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/MATModel.jl#L87-L91">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.coupling_bounds-Tuple{MATModel}" href="#COBREXA.coupling_bounds-Tuple{MATModel}"><code>COBREXA.coupling_bounds</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">coupling_bounds(m::MATModel)</code></pre><p>Extracts the coupling constraints. Currently, there are several accepted ways to store these in MATLAB models; this takes the constraints from vectors <code>cl</code> and <code>cu</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/MATModel.jl#L96-L100">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.genes-Tuple{MATModel}" href="#COBREXA.genes-Tuple{MATModel}"><code>COBREXA.genes</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">genes(m::MATModel)</code></pre><p>Extracts the possible gene list from <code>genes</code> key.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/MATModel.jl#L116-L120">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_charge-Tuple{MATModel, String}" href="#COBREXA.metabolite_charge-Tuple{MATModel, String}"><code>COBREXA.metabolite_charge</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolite_charge(m::MATModel, mid::String)</code></pre><p>Extract metabolite charge from <code>metCharge</code> or <code>metCharges</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/MATModel.jl#L150-L154">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_compartment-Tuple{MATModel, String}" href="#COBREXA.metabolite_compartment-Tuple{MATModel, String}"><code>COBREXA.metabolite_compartment</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolite_compartment(m::MATModel, mid::String)</code></pre><p>Extract metabolite compartment from <code>metCompartment</code> or <code>metCompartments</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/MATModel.jl#L160-L164">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_formula-Tuple{MATModel, String}" href="#COBREXA.metabolite_formula-Tuple{MATModel, String}"><code>COBREXA.metabolite_formula</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolite_formula(m::MATModel, mid::String)</code></pre><p>Extract metabolite formula from key <code>metFormula</code> or <code>metFormulas</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/MATModel.jl#L140-L144">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolites-Tuple{MATModel}" href="#COBREXA.metabolites-Tuple{MATModel}"><code>COBREXA.metabolites</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolites(m::MATModel)::Vector{String}</code></pre><p>Extracts metabolite names from <code>mets</code> key in the MAT file.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/MATModel.jl#L35-L39">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.objective-Tuple{MATModel}" href="#COBREXA.objective-Tuple{MATModel}"><code>COBREXA.objective</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">objective(m::MATModel)</code></pre><p>Extracts the objective from the MAT model (defaults to zeroes).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/MATModel.jl#L79-L83">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_gene_association-Tuple{MATModel, String}" href="#COBREXA.reaction_gene_association-Tuple{MATModel, String}"><code>COBREXA.reaction_gene_association</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_gene_association(m::MATModel, rid::String)</code></pre><p>Extracts the associations from <code>grRules</code> key, if present.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/MATModel.jl#L126-L130">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_stoichiometry-Tuple{MATModel, Any}" href="#COBREXA.reaction_stoichiometry-Tuple{MATModel, Any}"><code>COBREXA.reaction_stoichiometry</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_stoichiometry(model::MATModel, rxn_index)::Dict{String, Float64}</code></pre><p>Return the reaction equation of reaction with index <code>rxn_index</code> in model. The reaction equation maps metabolite ids to their stoichiometric coefficients. Note, <code>rxn_index</code> can be any suitable type that can index into an array.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/MATModel.jl#L182-L188">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_stoichiometry-Tuple{MATModel, String}" href="#COBREXA.reaction_stoichiometry-Tuple{MATModel, String}"><code>COBREXA.reaction_stoichiometry</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_stoichiometry(model::MATModel, rxn_id::String)::Dict{String, Float64}</code></pre><p>Return the reaction equation of reaction with id <code>rxn_id</code> in model. The reaction equation maps metabolite ids to their stoichiometric coefficients.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/MATModel.jl#L171-L176">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reactions-Tuple{MATModel}" href="#COBREXA.reactions-Tuple{MATModel}"><code>COBREXA.reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reactions(m::MATModel)::Vector{String}</code></pre><p>Extracts reaction names from <code>rxns</code> key in the MAT file.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/MATModel.jl#L13-L17">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.stoichiometry-Tuple{MATModel}" href="#COBREXA.stoichiometry-Tuple{MATModel}"><code>COBREXA.stoichiometry</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">stoichiometry(m::MATModel)</code></pre><p>Extract the stoichiometry matrix, stored under key <code>S</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/MATModel.jl#L49-L53">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.Metabolite" href="#COBREXA.Metabolite"><code>COBREXA.Metabolite</code></a> — <span class="docstring-category">Type</span></header><section><div><p>Metabolite structure.</p><p><strong>Fields</strong></p><pre><code class="language-none">id :: String
+reactions(model) # see the list of reactions</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/JSONModel.jl#L1-L24">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="Base.convert-Tuple{Type{JSONModel}, MetabolicModel}" href="#Base.convert-Tuple{Type{JSONModel}, MetabolicModel}"><code>Base.convert</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">Base.convert(::Type{JSONModel}, mm::MetabolicModel)</code></pre><p>Convert any <a href="#COBREXA.MetabolicModel"><code>MetabolicModel</code></a> to <a href="#COBREXA.JSONModel"><code>JSONModel</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/JSONModel.jl#L290-L294">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.bounds-Tuple{JSONModel}" href="#COBREXA.bounds-Tuple{JSONModel}"><code>COBREXA.bounds</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">bounds(model::JSONModel)</code></pre><p>Get the bounds for reactions, assuming the information is stored in <code>.lower_bound</code> and <code>.upper_bound</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/JSONModel.jl#L141-L146">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.gene_annotations-Tuple{JSONModel, String}" href="#COBREXA.gene_annotations-Tuple{JSONModel, String}"><code>COBREXA.gene_annotations</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">gene_annotations(model::JSONModel, gid::String)::Annotations</code></pre><p>Gene annotations from the <a href="#COBREXA.JSONModel"><code>JSONModel</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/JSONModel.jl#L219-L223">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.gene_notes-Tuple{JSONModel, String}" href="#COBREXA.gene_notes-Tuple{JSONModel, String}"><code>COBREXA.gene_notes</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">gene_notes(model::JSONModel, gid::String)::Notes</code></pre><p>Gene notes from the <a href="#COBREXA.JSONModel"><code>JSONModel</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/JSONModel.jl#L229-L233">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.genes-Tuple{JSONModel}" href="#COBREXA.genes-Tuple{JSONModel}"><code>COBREXA.genes</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">genes(model::JSONModel)</code></pre><p>Extract gene names from a JSON model.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/JSONModel.jl#L97-L101">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_annotations-Tuple{JSONModel, String}" href="#COBREXA.metabolite_annotations-Tuple{JSONModel, String}"><code>COBREXA.metabolite_annotations</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolite_annotations(model::JSONModel, mid::String)::Annotations</code></pre><p>Metabolite annotations from the <a href="#COBREXA.JSONModel"><code>JSONModel</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/JSONModel.jl#L259-L263">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_charge-Tuple{JSONModel, String}" href="#COBREXA.metabolite_charge-Tuple{JSONModel, String}"><code>COBREXA.metabolite_charge</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolite_charge(model::JSONModel, mid::String)</code></pre><p>Return the metabolite <code>.charge</code></p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/JSONModel.jl#L199-L203">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_compartment-Tuple{JSONModel, String}" href="#COBREXA.metabolite_compartment-Tuple{JSONModel, String}"><code>COBREXA.metabolite_compartment</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolite_compartment(model::JSONModel, mid::String)</code></pre><p>Return the metabolite <code>.compartment</code></p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/JSONModel.jl#L209-L213">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_formula-Tuple{JSONModel, String}" href="#COBREXA.metabolite_formula-Tuple{JSONModel, String}"><code>COBREXA.metabolite_formula</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolite_formula(model::JSONModel, mid::String)</code></pre><p>Parse and return the metabolite <code>.formula</code></p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/JSONModel.jl#L189-L193">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_notes-Tuple{JSONModel, String}" href="#COBREXA.metabolite_notes-Tuple{JSONModel, String}"><code>COBREXA.metabolite_notes</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolite_notes(model::JSONModel, mid::String)::Notes</code></pre><p>Metabolite notes from the <a href="#COBREXA.JSONModel"><code>JSONModel</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/JSONModel.jl#L269-L273">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolites-Tuple{JSONModel}" href="#COBREXA.metabolites-Tuple{JSONModel}"><code>COBREXA.metabolites</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolites(model::JSONModel)</code></pre><p>Extract metabolite names (stored as <code>.id</code>) from JSON model.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/JSONModel.jl#L84-L88">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.objective-Tuple{JSONModel}" href="#COBREXA.objective-Tuple{JSONModel}"><code>COBREXA.objective</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">objective(model::JSONModel)</code></pre><p>Collect <code>.objective_coefficient</code> keys from model reactions.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/JSONModel.jl#L158-L162">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_annotations-Tuple{JSONModel, String}" href="#COBREXA.reaction_annotations-Tuple{JSONModel, String}"><code>COBREXA.reaction_annotations</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_annotations(model::JSONModel, rid::String)::Annotations</code></pre><p>Reaction annotations from the <a href="#COBREXA.JSONModel"><code>JSONModel</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/JSONModel.jl#L239-L243">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_gene_association-Tuple{JSONModel, String}" href="#COBREXA.reaction_gene_association-Tuple{JSONModel, String}"><code>COBREXA.reaction_gene_association</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_gene_associaton(model::JSONModel, rid::String)</code></pre><p>Parses the <code>.gene_reaction_rule</code> from reactions.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/JSONModel.jl#L169-L173">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_notes-Tuple{JSONModel, String}" href="#COBREXA.reaction_notes-Tuple{JSONModel, String}"><code>COBREXA.reaction_notes</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_notes(model::JSONModel, rid::String)::Notes</code></pre><p>Reaction notes from the <a href="#COBREXA.JSONModel"><code>JSONModel</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/JSONModel.jl#L249-L253">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_stoichiometry-Tuple{JSONModel, String}" href="#COBREXA.reaction_stoichiometry-Tuple{JSONModel, String}"><code>COBREXA.reaction_stoichiometry</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_stoichiometry(model::JSONModel, rxn_id::String)::Dict{String, Float64}</code></pre><p>Return the reaction equation of reaction with id <code>rxn_id</code> in model. The reaction equation maps metabolite ids to their stoichiometric coefficients.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/JSONModel.jl#L279-L284">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_subsystem-Tuple{JSONModel, String}" href="#COBREXA.reaction_subsystem-Tuple{JSONModel, String}"><code>COBREXA.reaction_subsystem</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_subsystem(model::JSONModel, rid::String)</code></pre><p>Parses the <code>.subsystem</code> out from reactions.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/JSONModel.jl#L179-L183">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reactions-Tuple{JSONModel}" href="#COBREXA.reactions-Tuple{JSONModel}"><code>COBREXA.reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reactions(model::JSONModel)</code></pre><p>Extract reaction names (stored as <code>.id</code>) from JSON model.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/JSONModel.jl#L71-L75">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.stoichiometry-Tuple{JSONModel}" href="#COBREXA.stoichiometry-Tuple{JSONModel}"><code>COBREXA.stoichiometry</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">stoichiometry(model::JSONModel)</code></pre><p>Get the stoichiometry. Assuming the information is stored in reaction object under key <code>.metabolites</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/JSONModel.jl#L108-L113">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.MATModel" href="#COBREXA.MATModel"><code>COBREXA.MATModel</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia">struct MATModel</code></pre><p>Wrapper around the models loaded in dictionaries from the MATLAB representation.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/MATModel.jl#L1-L5">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="Base.convert-Tuple{Type{MATModel}, MetabolicModel}" href="#Base.convert-Tuple{Type{MATModel}, MetabolicModel}"><code>Base.convert</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">Base.convert(::Type{MATModel}, m::MetabolicModel)</code></pre><p>Convert any metabolic model to <code>MATModel</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/MATModel.jl#L201-L205">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA._mat_has_squashed_coupling-Tuple{Any}" href="#COBREXA._mat_has_squashed_coupling-Tuple{Any}"><code>COBREXA._mat_has_squashed_coupling</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">_mat_has_squashed_coupling(mat)</code></pre><p>Guesses whether C in the MAT file is stored in A=[S;C].</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/MATModel.jl#L26-L30">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.balance-Tuple{MATModel}" href="#COBREXA.balance-Tuple{MATModel}"><code>COBREXA.balance</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">balance(m::MATModel)</code></pre><p>Extracts balance from the MAT model, defaulting to zeroes if not present.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/MATModel.jl#L66-L70">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.bounds-Tuple{MATModel}" href="#COBREXA.bounds-Tuple{MATModel}"><code>COBREXA.bounds</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">bounds(m::MATModel)</code></pre><p>Extracts bounds from the MAT file, saved under <code>lb</code> and <code>ub</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/MATModel.jl#L56-L60">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.coupling-Tuple{MATModel}" href="#COBREXA.coupling-Tuple{MATModel}"><code>COBREXA.coupling</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">coupling(m::MATModel)</code></pre><p>Extract coupling matrix stored, in <code>C</code> key.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/MATModel.jl#L87-L91">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.coupling_bounds-Tuple{MATModel}" href="#COBREXA.coupling_bounds-Tuple{MATModel}"><code>COBREXA.coupling_bounds</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">coupling_bounds(m::MATModel)</code></pre><p>Extracts the coupling constraints. Currently, there are several accepted ways to store these in MATLAB models; this takes the constraints from vectors <code>cl</code> and <code>cu</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/MATModel.jl#L96-L100">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.genes-Tuple{MATModel}" href="#COBREXA.genes-Tuple{MATModel}"><code>COBREXA.genes</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">genes(m::MATModel)</code></pre><p>Extracts the possible gene list from <code>genes</code> key.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/MATModel.jl#L116-L120">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_charge-Tuple{MATModel, String}" href="#COBREXA.metabolite_charge-Tuple{MATModel, String}"><code>COBREXA.metabolite_charge</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolite_charge(m::MATModel, mid::String)</code></pre><p>Extract metabolite charge from <code>metCharge</code> or <code>metCharges</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/MATModel.jl#L150-L154">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_compartment-Tuple{MATModel, String}" href="#COBREXA.metabolite_compartment-Tuple{MATModel, String}"><code>COBREXA.metabolite_compartment</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolite_compartment(m::MATModel, mid::String)</code></pre><p>Extract metabolite compartment from <code>metCompartment</code> or <code>metCompartments</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/MATModel.jl#L160-L164">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_formula-Tuple{MATModel, String}" href="#COBREXA.metabolite_formula-Tuple{MATModel, String}"><code>COBREXA.metabolite_formula</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolite_formula(m::MATModel, mid::String)</code></pre><p>Extract metabolite formula from key <code>metFormula</code> or <code>metFormulas</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/MATModel.jl#L140-L144">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolites-Tuple{MATModel}" href="#COBREXA.metabolites-Tuple{MATModel}"><code>COBREXA.metabolites</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolites(m::MATModel)::Vector{String}</code></pre><p>Extracts metabolite names from <code>mets</code> key in the MAT file.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/MATModel.jl#L35-L39">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.objective-Tuple{MATModel}" href="#COBREXA.objective-Tuple{MATModel}"><code>COBREXA.objective</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">objective(m::MATModel)</code></pre><p>Extracts the objective from the MAT model (defaults to zeroes).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/MATModel.jl#L79-L83">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_gene_association-Tuple{MATModel, String}" href="#COBREXA.reaction_gene_association-Tuple{MATModel, String}"><code>COBREXA.reaction_gene_association</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_gene_association(m::MATModel, rid::String)</code></pre><p>Extracts the associations from <code>grRules</code> key, if present.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/MATModel.jl#L126-L130">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_stoichiometry-Tuple{MATModel, Any}" href="#COBREXA.reaction_stoichiometry-Tuple{MATModel, Any}"><code>COBREXA.reaction_stoichiometry</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_stoichiometry(model::MATModel, rxn_index)::Dict{String, Float64}</code></pre><p>Return the reaction equation of reaction with index <code>rxn_index</code> in model. The reaction equation maps metabolite ids to their stoichiometric coefficients. Note, <code>rxn_index</code> can be any suitable type that can index into an array.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/MATModel.jl#L182-L188">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_stoichiometry-Tuple{MATModel, String}" href="#COBREXA.reaction_stoichiometry-Tuple{MATModel, String}"><code>COBREXA.reaction_stoichiometry</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_stoichiometry(model::MATModel, rxn_id::String)::Dict{String, Float64}</code></pre><p>Return the reaction equation of reaction with id <code>rxn_id</code> in model. The reaction equation maps metabolite ids to their stoichiometric coefficients.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/MATModel.jl#L171-L176">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reactions-Tuple{MATModel}" href="#COBREXA.reactions-Tuple{MATModel}"><code>COBREXA.reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reactions(m::MATModel)::Vector{String}</code></pre><p>Extracts reaction names from <code>rxns</code> key in the MAT file.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/MATModel.jl#L13-L17">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.stoichiometry-Tuple{MATModel}" href="#COBREXA.stoichiometry-Tuple{MATModel}"><code>COBREXA.stoichiometry</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">stoichiometry(m::MATModel)</code></pre><p>Extract the stoichiometry matrix, stored under key <code>S</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/MATModel.jl#L49-L53">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.Metabolite" href="#COBREXA.Metabolite"><code>COBREXA.Metabolite</code></a> — <span class="docstring-category">Type</span></header><section><div><p>Metabolite structure.</p><p><strong>Fields</strong></p><pre><code class="language-none">id :: String
 name :: String
 formula :: String
 charge :: Int
 compartment :: String
 notes :: Dict{String, Vector{String}}
-annotation :: Dict{String, Union{Vector{String}, String}}</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/Metabolite.jl#L1-L14">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.Reaction" href="#COBREXA.Reaction"><code>COBREXA.Reaction</code></a> — <span class="docstring-category">Type</span></header><section><div><p>Reaction struct.</p><p><strong>Fields</strong></p><pre><code class="language-none">id :: String
+annotation :: Dict{String, Union{Vector{String}, String}}</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/Metabolite.jl#L1-L14">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.Reaction" href="#COBREXA.Reaction"><code>COBREXA.Reaction</code></a> — <span class="docstring-category">Type</span></header><section><div><p>Reaction struct.</p><p><strong>Fields</strong></p><pre><code class="language-none">id :: String
 name :: String
 metabolites :: Dict{Metabolite, Float64}
 lb :: Float64
@@ -64,31 +64,31 @@ grr :: Vector{Vector{Gene}}
 subsystem :: String
 notes :: Dict{String, Vector{String}}
 annotation :: Dict{String, Union{Vector{String}, String}}
-objective_coefficient :: Float64</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/Reaction.jl#L1-L17">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.Reaction" href="#COBREXA.Reaction"><code>COBREXA.Reaction</code></a> — <span class="docstring-category">Type</span></header><section><div><p>Reaction(     id = &quot;&quot;;     name = nothing,     metabolites = Dict{String,Float64}(),     lb = -<em>constants.default</em>reaction<em>bound,     ub = _constants.default</em>reaction<em>bound,     grr = nothing,     subsystem = nothing,     notes = Notes(),     annotations = Annotations(),     objective</em>coefficient = 0.0, )</p><p>A constructor for Reaction that only takes a reaction <code>id</code> and assigns default/uninformative values to all the fields that are not explicitely assigned.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/Reaction.jl#L31-L48">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.Reaction" href="#COBREXA.Reaction"><code>COBREXA.Reaction</code></a> — <span class="docstring-category">Type</span></header><section><div><p>Reaction(     id::String,     metabolites::Dict{String,Union{Int, Float64}},     dir = :bidirectional;     default<em>bound = _constants.default</em>reaction_bound, )</p><p>Convenience constructor for <code>Reaction</code>. The reaction equation is specified using <code>metabolites</code>, which is a dictionary mapping metabolite ids to stoichiometric coefficients. The direcion of the reaction is set through <code>dir</code> which can take <code>:bidirectional</code>, <code>:forward</code>, and <code>:reverse</code> as values. Finally, the <code>default_bound</code> is the value taken to mean infinity in the context of constraint based models, often this is set to a very high flux value like 1000.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/Reaction.jl#L76-L90">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.ReactionStatus" href="#COBREXA.ReactionStatus"><code>COBREXA.ReactionStatus</code></a> — <span class="docstring-category">Type</span></header><section><div><p>Used for concise reporting of modeling results.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/ReactionStatus.jl#L1-L3">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.SBMLModel" href="#COBREXA.SBMLModel"><code>COBREXA.SBMLModel</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia">struct SBMLModel</code></pre><p>Thin wrapper around the model from SBML.jl library. Allows easy conversion from SBML to any other model format.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/SBMLModel.jl#L1-L6">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="Base.convert-Tuple{Type{SBMLModel}, MetabolicModel}" href="#Base.convert-Tuple{Type{SBMLModel}, MetabolicModel}"><code>Base.convert</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">Base.convert(::Type{SBMLModel}, mm::MetabolicModel)</code></pre><p>Convert any metabolic model to <a href="#COBREXA.SBMLModel"><code>SBMLModel</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/SBMLModel.jl#L150-L154">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.balance-Tuple{SBMLModel}" href="#COBREXA.balance-Tuple{SBMLModel}"><code>COBREXA.balance</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">balance(model::SBMLModel)::SparseVec</code></pre><p>Balance vector of a <a href="#COBREXA.SBMLModel"><code>SBMLModel</code></a>. This is always zero.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/SBMLModel.jl#L74-L78">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.bounds-Tuple{SBMLModel}" href="#COBREXA.bounds-Tuple{SBMLModel}"><code>COBREXA.bounds</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">bounds(model::SBMLModel)::Tuple{SparseVec,SparseVec}</code></pre><p>Get the lower and upper flux bounds of model <a href="#COBREXA.SBMLModel"><code>SBMLModel</code></a>. Throws <code>DomainError</code> in case if the SBML contains mismatching units.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/SBMLModel.jl#L49-L54">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.genes-Tuple{SBMLModel}" href="#COBREXA.genes-Tuple{SBMLModel}"><code>COBREXA.genes</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">genes(model::SBMLModel)::Vector{String}</code></pre><p>Get genes of a <a href="#COBREXA.SBMLModel"><code>SBMLModel</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/SBMLModel.jl#L88-L92">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_charge-Tuple{SBMLModel, String}" href="#COBREXA.metabolite_charge-Tuple{SBMLModel, String}"><code>COBREXA.metabolite_charge</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolite_charge(model::SBMLModel, mid::String)::Maybe{Int}</code></pre><p>Get charge of a chosen metabolite from <a href="#COBREXA.SBMLModel"><code>SBMLModel</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/SBMLModel.jl#L118-L122">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_formula-Tuple{SBMLModel, String}" href="#COBREXA.metabolite_formula-Tuple{SBMLModel, String}"><code>COBREXA.metabolite_formula</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolite_formula(model::SBMLModel, mid::String)::Maybe{MetaboliteFormula}</code></pre><p>Get <a href="#COBREXA.MetaboliteFormula"><code>MetaboliteFormula</code></a> from a chosen metabolite from <a href="#COBREXA.SBMLModel"><code>SBMLModel</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/SBMLModel.jl#L110-L114">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolites-Tuple{SBMLModel}" href="#COBREXA.metabolites-Tuple{SBMLModel}"><code>COBREXA.metabolites</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolites(model::SBMLModel)::Vector{String}</code></pre><p>Get metabolites from a <a href="#COBREXA.SBMLModel"><code>SBMLModel</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/SBMLModel.jl#L18-L22">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.n_genes-Tuple{SBMLModel}" href="#COBREXA.n_genes-Tuple{SBMLModel}"><code>COBREXA.n_genes</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">n_genes(model::SBMLModel)::Int</code></pre><p>Get number of genes in <a href="#COBREXA.SBMLModel"><code>SBMLModel</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/SBMLModel.jl#L95-L99">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.n_metabolites-Tuple{SBMLModel}" href="#COBREXA.n_metabolites-Tuple{SBMLModel}"><code>COBREXA.n_metabolites</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">n_metabolites(model::SBMLModel)::Int</code></pre><p>Efficient counting of metabolites in <a href="#COBREXA.SBMLModel"><code>SBMLModel</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/SBMLModel.jl#L32-L36">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.n_reactions-Tuple{SBMLModel}" href="#COBREXA.n_reactions-Tuple{SBMLModel}"><code>COBREXA.n_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">n_reactions(model::SBMLModel)::Int</code></pre><p>Efficient counting of reactions in <a href="#COBREXA.SBMLModel"><code>SBMLModel</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/SBMLModel.jl#L25-L29">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.objective-Tuple{SBMLModel}" href="#COBREXA.objective-Tuple{SBMLModel}"><code>COBREXA.objective</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">objective(model::SBMLModel)::SparseVec</code></pre><p>Objective of the <a href="#COBREXA.SBMLModel"><code>SBMLModel</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/SBMLModel.jl#L81-L85">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_gene_association-Tuple{SBMLModel, String}" href="#COBREXA.reaction_gene_association-Tuple{SBMLModel, String}"><code>COBREXA.reaction_gene_association</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_gene_association(model::SBMLModel, rid::String)::Maybe{GeneAssociation}</code></pre><p>Retrieve the <a href="#COBREXA.GeneAssociation"><code>GeneAssociation</code></a> from <a href="#COBREXA.SBMLModel"><code>SBMLModel</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/SBMLModel.jl#L102-L106">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_stoichiometry-Tuple{SBMLModel, String}" href="#COBREXA.reaction_stoichiometry-Tuple{SBMLModel, String}"><code>COBREXA.reaction_stoichiometry</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_stoichiometry(model::SBMLModel, rxn_id::String)::Dict{String, Float64}</code></pre><p>Return the reaction equation of reaction with id <code>rxn_id</code> in model. The reaction equation maps metabolite ids to their stoichiometric coefficients.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/SBMLModel.jl#L140-L145">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reactions-Tuple{SBMLModel}" href="#COBREXA.reactions-Tuple{SBMLModel}"><code>COBREXA.reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reactions(model::SBMLModel)::Vector{String}</code></pre><p>Get reactions from a <a href="#COBREXA.SBMLModel"><code>SBMLModel</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/SBMLModel.jl#L11-L15">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.stoichiometry-Tuple{SBMLModel}" href="#COBREXA.stoichiometry-Tuple{SBMLModel}"><code>COBREXA.stoichiometry</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">stoichiometry(model::SBMLModel)::SparseMat</code></pre><p>Recreate the stoichiometry matrix from the <a href="#COBREXA.SBMLModel"><code>SBMLModel</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/SBMLModel.jl#L39-L43">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.Serialized" href="#COBREXA.Serialized"><code>COBREXA.Serialized</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia">mutable struct Serialized{M &lt;: MetabolicModel}
+objective_coefficient :: Float64</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/Reaction.jl#L1-L17">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.Reaction" href="#COBREXA.Reaction"><code>COBREXA.Reaction</code></a> — <span class="docstring-category">Type</span></header><section><div><p>Reaction(     id = &quot;&quot;;     name = nothing,     metabolites = Dict{String,Float64}(),     lb = -<em>constants.default</em>reaction<em>bound,     ub = _constants.default</em>reaction<em>bound,     grr = nothing,     subsystem = nothing,     notes = Notes(),     annotations = Annotations(),     objective</em>coefficient = 0.0, )</p><p>A constructor for Reaction that only takes a reaction <code>id</code> and assigns default/uninformative values to all the fields that are not explicitely assigned.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/Reaction.jl#L31-L48">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.Reaction" href="#COBREXA.Reaction"><code>COBREXA.Reaction</code></a> — <span class="docstring-category">Type</span></header><section><div><p>Reaction(     id::String,     metabolites::Dict{String,Union{Int, Float64}},     dir = :bidirectional;     default<em>bound = _constants.default</em>reaction_bound, )</p><p>Convenience constructor for <code>Reaction</code>. The reaction equation is specified using <code>metabolites</code>, which is a dictionary mapping metabolite ids to stoichiometric coefficients. The direcion of the reaction is set through <code>dir</code> which can take <code>:bidirectional</code>, <code>:forward</code>, and <code>:reverse</code> as values. Finally, the <code>default_bound</code> is the value taken to mean infinity in the context of constraint based models, often this is set to a very high flux value like 1000.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/Reaction.jl#L76-L90">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.ReactionStatus" href="#COBREXA.ReactionStatus"><code>COBREXA.ReactionStatus</code></a> — <span class="docstring-category">Type</span></header><section><div><p>Used for concise reporting of modeling results.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/ReactionStatus.jl#L1-L3">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.SBMLModel" href="#COBREXA.SBMLModel"><code>COBREXA.SBMLModel</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia">struct SBMLModel</code></pre><p>Thin wrapper around the model from SBML.jl library. Allows easy conversion from SBML to any other model format.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/SBMLModel.jl#L1-L6">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="Base.convert-Tuple{Type{SBMLModel}, MetabolicModel}" href="#Base.convert-Tuple{Type{SBMLModel}, MetabolicModel}"><code>Base.convert</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">Base.convert(::Type{SBMLModel}, mm::MetabolicModel)</code></pre><p>Convert any metabolic model to <a href="#COBREXA.SBMLModel"><code>SBMLModel</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/SBMLModel.jl#L150-L154">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.balance-Tuple{SBMLModel}" href="#COBREXA.balance-Tuple{SBMLModel}"><code>COBREXA.balance</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">balance(model::SBMLModel)::SparseVec</code></pre><p>Balance vector of a <a href="#COBREXA.SBMLModel"><code>SBMLModel</code></a>. This is always zero.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/SBMLModel.jl#L74-L78">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.bounds-Tuple{SBMLModel}" href="#COBREXA.bounds-Tuple{SBMLModel}"><code>COBREXA.bounds</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">bounds(model::SBMLModel)::Tuple{SparseVec,SparseVec}</code></pre><p>Get the lower and upper flux bounds of model <a href="#COBREXA.SBMLModel"><code>SBMLModel</code></a>. Throws <code>DomainError</code> in case if the SBML contains mismatching units.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/SBMLModel.jl#L49-L54">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.genes-Tuple{SBMLModel}" href="#COBREXA.genes-Tuple{SBMLModel}"><code>COBREXA.genes</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">genes(model::SBMLModel)::Vector{String}</code></pre><p>Get genes of a <a href="#COBREXA.SBMLModel"><code>SBMLModel</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/SBMLModel.jl#L88-L92">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_charge-Tuple{SBMLModel, String}" href="#COBREXA.metabolite_charge-Tuple{SBMLModel, String}"><code>COBREXA.metabolite_charge</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolite_charge(model::SBMLModel, mid::String)::Maybe{Int}</code></pre><p>Get charge of a chosen metabolite from <a href="#COBREXA.SBMLModel"><code>SBMLModel</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/SBMLModel.jl#L118-L122">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_formula-Tuple{SBMLModel, String}" href="#COBREXA.metabolite_formula-Tuple{SBMLModel, String}"><code>COBREXA.metabolite_formula</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolite_formula(model::SBMLModel, mid::String)::Maybe{MetaboliteFormula}</code></pre><p>Get <a href="#COBREXA.MetaboliteFormula"><code>MetaboliteFormula</code></a> from a chosen metabolite from <a href="#COBREXA.SBMLModel"><code>SBMLModel</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/SBMLModel.jl#L110-L114">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolites-Tuple{SBMLModel}" href="#COBREXA.metabolites-Tuple{SBMLModel}"><code>COBREXA.metabolites</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolites(model::SBMLModel)::Vector{String}</code></pre><p>Get metabolites from a <a href="#COBREXA.SBMLModel"><code>SBMLModel</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/SBMLModel.jl#L18-L22">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.n_genes-Tuple{SBMLModel}" href="#COBREXA.n_genes-Tuple{SBMLModel}"><code>COBREXA.n_genes</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">n_genes(model::SBMLModel)::Int</code></pre><p>Get number of genes in <a href="#COBREXA.SBMLModel"><code>SBMLModel</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/SBMLModel.jl#L95-L99">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.n_metabolites-Tuple{SBMLModel}" href="#COBREXA.n_metabolites-Tuple{SBMLModel}"><code>COBREXA.n_metabolites</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">n_metabolites(model::SBMLModel)::Int</code></pre><p>Efficient counting of metabolites in <a href="#COBREXA.SBMLModel"><code>SBMLModel</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/SBMLModel.jl#L32-L36">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.n_reactions-Tuple{SBMLModel}" href="#COBREXA.n_reactions-Tuple{SBMLModel}"><code>COBREXA.n_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">n_reactions(model::SBMLModel)::Int</code></pre><p>Efficient counting of reactions in <a href="#COBREXA.SBMLModel"><code>SBMLModel</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/SBMLModel.jl#L25-L29">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.objective-Tuple{SBMLModel}" href="#COBREXA.objective-Tuple{SBMLModel}"><code>COBREXA.objective</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">objective(model::SBMLModel)::SparseVec</code></pre><p>Objective of the <a href="#COBREXA.SBMLModel"><code>SBMLModel</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/SBMLModel.jl#L81-L85">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_gene_association-Tuple{SBMLModel, String}" href="#COBREXA.reaction_gene_association-Tuple{SBMLModel, String}"><code>COBREXA.reaction_gene_association</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_gene_association(model::SBMLModel, rid::String)::Maybe{GeneAssociation}</code></pre><p>Retrieve the <a href="#COBREXA.GeneAssociation"><code>GeneAssociation</code></a> from <a href="#COBREXA.SBMLModel"><code>SBMLModel</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/SBMLModel.jl#L102-L106">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_stoichiometry-Tuple{SBMLModel, String}" href="#COBREXA.reaction_stoichiometry-Tuple{SBMLModel, String}"><code>COBREXA.reaction_stoichiometry</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_stoichiometry(model::SBMLModel, rxn_id::String)::Dict{String, Float64}</code></pre><p>Return the reaction equation of reaction with id <code>rxn_id</code> in model. The reaction equation maps metabolite ids to their stoichiometric coefficients.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/SBMLModel.jl#L140-L145">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reactions-Tuple{SBMLModel}" href="#COBREXA.reactions-Tuple{SBMLModel}"><code>COBREXA.reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reactions(model::SBMLModel)::Vector{String}</code></pre><p>Get reactions from a <a href="#COBREXA.SBMLModel"><code>SBMLModel</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/SBMLModel.jl#L11-L15">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.stoichiometry-Tuple{SBMLModel}" href="#COBREXA.stoichiometry-Tuple{SBMLModel}"><code>COBREXA.stoichiometry</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">stoichiometry(model::SBMLModel)::SparseMat</code></pre><p>Recreate the stoichiometry matrix from the <a href="#COBREXA.SBMLModel"><code>SBMLModel</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/SBMLModel.jl#L39-L43">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.Serialized" href="#COBREXA.Serialized"><code>COBREXA.Serialized</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia">mutable struct Serialized{M &lt;: MetabolicModel}
     m::Maybe{M}
     filename::String
-end</code></pre><p>A meta-model that represents a model that is serialized on the disk. The internal model will be loaded on-demand by using any accessor, or by calling <a href="#COBREXA.precache!-Tuple{MetabolicModel}"><code>precache!</code></a> directly.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/Serialized.jl#L2-L11">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.precache!-Tuple{Serialized}" href="#COBREXA.precache!-Tuple{Serialized}"><code>COBREXA.precache!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">precache!(model::Serialized{MetabolicModel})::Nothing</code></pre><p>Load the <code>Serialized</code> model from disk in case it&#39;s not alreadly loaded.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/Serialized.jl#L48-L52">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.StandardModel" href="#COBREXA.StandardModel"><code>COBREXA.StandardModel</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia">mutable struct StandardModel</code></pre><p><code>StandardModel</code> is used to store a constraint based metabolic model with meta-information. Meta-information is defined as annotation details, which include gene-reaction-rules, formulas, etc.</p><p>This model type seeks to keep as much meta-information as possible, as opposed to <code>CoreModel</code> and <code>CoreModelCoupled</code>, which keep the bare neccessities only. When merging models and keeping meta-information is important, use this as the model type. If meta-information is not important, use the more efficient core model types. See <a href="#COBREXA.CoreModel"><code>CoreModel</code></a> and <a href="#COBREXA.CoreModelCoupled"><code>CoreModelCoupled</code></a> for comparison.</p><p>In this model, reactions, metabolites, and genes are stored in ordered dictionaries indexed by each struct&#39;s <code>id</code> field. For example, <code>model.reactions[&quot;rxn1_id&quot;]</code> returns a <code>Reaction</code> where the field <code>id</code> equals <code>&quot;rxn1_id&quot;</code>. This makes adding and removing reactions efficient.</p><p>Note that the stoichiometric matrix (or any other core data, e.g. flux bounds) is not stored directly as in <code>CoreModel</code>. When this model type is used in analysis functions, these core data structures are built from scratch each time an analysis function is called. This can cause performance issues if you run many small analysis functions sequentially. Consider using the core model types if performance is critical.</p><p>See also: <a href="#COBREXA.Reaction"><code>Reaction</code></a>, <a href="#COBREXA.Metabolite"><code>Metabolite</code></a>, <a href="#COBREXA.Gene"><code>Gene</code></a></p><p><strong>Fields</strong></p><pre><code class="language-none">id :: String
+end</code></pre><p>A meta-model that represents a model that is serialized on the disk. The internal model will be loaded on-demand by using any accessor, or by calling <a href="#COBREXA.precache!-Tuple{MetabolicModel}"><code>precache!</code></a> directly.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/Serialized.jl#L2-L11">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.precache!-Tuple{Serialized}" href="#COBREXA.precache!-Tuple{Serialized}"><code>COBREXA.precache!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">precache!(model::Serialized{MetabolicModel})::Nothing</code></pre><p>Load the <code>Serialized</code> model from disk in case it&#39;s not alreadly loaded.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/Serialized.jl#L48-L52">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.StandardModel" href="#COBREXA.StandardModel"><code>COBREXA.StandardModel</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia">mutable struct StandardModel</code></pre><p><code>StandardModel</code> is used to store a constraint based metabolic model with meta-information. Meta-information is defined as annotation details, which include gene-reaction-rules, formulas, etc.</p><p>This model type seeks to keep as much meta-information as possible, as opposed to <code>CoreModel</code> and <code>CoreModelCoupled</code>, which keep the bare neccessities only. When merging models and keeping meta-information is important, use this as the model type. If meta-information is not important, use the more efficient core model types. See <a href="#COBREXA.CoreModel"><code>CoreModel</code></a> and <a href="#COBREXA.CoreModelCoupled"><code>CoreModelCoupled</code></a> for comparison.</p><p>In this model, reactions, metabolites, and genes are stored in ordered dictionaries indexed by each struct&#39;s <code>id</code> field. For example, <code>model.reactions[&quot;rxn1_id&quot;]</code> returns a <code>Reaction</code> where the field <code>id</code> equals <code>&quot;rxn1_id&quot;</code>. This makes adding and removing reactions efficient.</p><p>Note that the stoichiometric matrix (or any other core data, e.g. flux bounds) is not stored directly as in <code>CoreModel</code>. When this model type is used in analysis functions, these core data structures are built from scratch each time an analysis function is called. This can cause performance issues if you run many small analysis functions sequentially. Consider using the core model types if performance is critical.</p><p>See also: <a href="#COBREXA.Reaction"><code>Reaction</code></a>, <a href="#COBREXA.Metabolite"><code>Metabolite</code></a>, <a href="#COBREXA.Gene"><code>Gene</code></a></p><p><strong>Fields</strong></p><pre><code class="language-none">id :: String
 reactions :: OrderedDict{String, Reaction}
 metabolites :: OrderedDict{String, Metabolite}
-genes :: OrderedDict{String, Gene}</code></pre><p><strong>Example</strong></p><pre><code class="language-none">model = load_model(StandardModel, &quot;model_location&quot;)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/StandardModel.jl#L1-L36">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="Base.convert-Tuple{Type{StandardModel}, MetabolicModel}" href="#Base.convert-Tuple{Type{StandardModel}, MetabolicModel}"><code>Base.convert</code></a> — <span class="docstring-category">Method</span></header><section><div><p>Base.convert(::Type{StandardModel}, model::MetabolicModel)</p><p>Convert any <code>MetabolicModel</code> into a <code>StandardModel</code>. Note, some data loss may occur since only the generic interface is used during the conversion process.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/StandardModel.jl#L295-L301">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.balance-Tuple{StandardModel}" href="#COBREXA.balance-Tuple{StandardModel}"><code>COBREXA.balance</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">balance(model::StandardModel)</code></pre><p>Return the balance of the linear problem, i.e. b in Sv = 0 where S is the stoichiometric matrix and v is the flux vector.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/StandardModel.jl#L156-L161">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.bounds-Tuple{StandardModel}" href="#COBREXA.bounds-Tuple{StandardModel}"><code>COBREXA.bounds</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">bounds(model::StandardModel)</code></pre><p>Return the lower and upper bounds, respectively, for reactions in <code>model</code>. Order matches that of the reaction ids returned in <code>reactions()</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/StandardModel.jl#L144-L149">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.gene_annotations-Tuple{StandardModel, String}" href="#COBREXA.gene_annotations-Tuple{StandardModel, String}"><code>COBREXA.gene_annotations</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">gene_annotations(model::StandardModel, id::String)::Annotations</code></pre><p>Return the annotation associated with gene <code>id</code> in <code>model</code>. Return an empty Dict if not present.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/StandardModel.jl#L255-L260">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.gene_notes-Tuple{StandardModel, String}" href="#COBREXA.gene_notes-Tuple{StandardModel, String}"><code>COBREXA.gene_notes</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">gene_notes(model::StandardModel, id::String)::Notes</code></pre><p>Return the notes associated with gene <code>id</code> in <code>model</code>. Return an empty Dict if not present.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/StandardModel.jl#L245-L250">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.genes-Tuple{StandardModel}" href="#COBREXA.genes-Tuple{StandardModel}"><code>COBREXA.genes</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">genes(model::StandardModel)</code></pre><p>Return a vector of gene id strings in <code>model</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/StandardModel.jl#L85-L89">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.lower_bounds-Tuple{StandardModel}" href="#COBREXA.lower_bounds-Tuple{StandardModel}"><code>COBREXA.lower_bounds</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">lower_bounds(model::StandardModel)</code></pre><p>Return the lower bounds for all reactions in <code>model</code> in sparse format.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/StandardModel.jl#L125-L129">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_annotations-Tuple{StandardModel, String}" href="#COBREXA.metabolite_annotations-Tuple{StandardModel, String}"><code>COBREXA.metabolite_annotations</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolite_annotations(model::StandardModel, id::String)::Annotations</code></pre><p>Return the annotation associated with metabolite <code>id</code> in <code>model</code>. Return an empty Dict if not present.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/StandardModel.jl#L235-L240">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_charge-Tuple{StandardModel, String}" href="#COBREXA.metabolite_charge-Tuple{StandardModel, String}"><code>COBREXA.metabolite_charge</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolite_charge(model::StandardModel, id::String)</code></pre><p>Return the charge associated with metabolite <code>id</code> in <code>model</code>. Return nothing if not present.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/StandardModel.jl#L195-L200">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_compartment-Tuple{StandardModel, String}" href="#COBREXA.metabolite_compartment-Tuple{StandardModel, String}"><code>COBREXA.metabolite_compartment</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolite_compartment(model::StandardModel, id::String)</code></pre><p>Return compartment associated with metabolite <code>id</code> in <code>model</code>. Return <code>nothing</code> if not present.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/StandardModel.jl#L205-L210">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_formula-Tuple{StandardModel, String}" href="#COBREXA.metabolite_formula-Tuple{StandardModel, String}"><code>COBREXA.metabolite_formula</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolite_formula(model::StandardModel, id::String)</code></pre><p>Return the formula of reaction <code>id</code> in <code>model</code>. Return <code>nothing</code> if not present.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/StandardModel.jl#L185-L190">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_notes-Tuple{StandardModel, String}" href="#COBREXA.metabolite_notes-Tuple{StandardModel, String}"><code>COBREXA.metabolite_notes</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolite_notes(model::StandardModel, id::String)::Notes</code></pre><p>Return the notes associated with metabolite <code>id</code> in <code>model</code>. Return an empty Dict if not present.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/StandardModel.jl#L225-L230">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolites-Tuple{StandardModel}" href="#COBREXA.metabolites-Tuple{StandardModel}"><code>COBREXA.metabolites</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolites(model::StandardModel)</code></pre><p>Return a vector of metabolite id strings contained in <code>model</code>. The order of metabolite strings returned here matches the order used to construct the stoichiometric matrix.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/StandardModel.jl#L69-L75">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.n_genes-Tuple{StandardModel}" href="#COBREXA.n_genes-Tuple{StandardModel}"><code>COBREXA.n_genes</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">n_genes(model::StandardModel)</code></pre><p>Return the number of genes in <code>model</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/StandardModel.jl#L92-L96">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.n_metabolites-Tuple{StandardModel}" href="#COBREXA.n_metabolites-Tuple{StandardModel}"><code>COBREXA.n_metabolites</code></a> — <span class="docstring-category">Method</span></header><section><div><p>n_metabolites(model::StandardModel)</p><p>Return the number of metabolites in <code>model</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/StandardModel.jl#L78-L82">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.n_reactions-Tuple{StandardModel}" href="#COBREXA.n_reactions-Tuple{StandardModel}"><code>COBREXA.n_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">n_reactions(model::StandardModel)</code></pre><p>Return the number of reactions contained in <code>model</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/StandardModel.jl#L61-L65">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.objective-Tuple{StandardModel}" href="#COBREXA.objective-Tuple{StandardModel}"><code>COBREXA.objective</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">objective(model::StandardModel)</code></pre><p>Return sparse objective vector for <code>model</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/StandardModel.jl#L164-L168">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_annotations-Tuple{StandardModel, String}" href="#COBREXA.reaction_annotations-Tuple{StandardModel, String}"><code>COBREXA.reaction_annotations</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_annotations(model::StandardModel, id::String)::Annotations</code></pre><p>Return the annotation associated with reaction <code>id</code> in <code>model</code>. Return an empty Dict if not present.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/StandardModel.jl#L275-L280">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_gene_association-Tuple{StandardModel, String}" href="#COBREXA.reaction_gene_association-Tuple{StandardModel, String}"><code>COBREXA.reaction_gene_association</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_gene_association(model::StandardModel, id::String)</code></pre><p>Return the gene reaction rule in string format for reaction with <code>id</code> in <code>model</code>. Return <code>nothing</code> if not available.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/StandardModel.jl#L175-L180">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_notes-Tuple{StandardModel, String}" href="#COBREXA.reaction_notes-Tuple{StandardModel, String}"><code>COBREXA.reaction_notes</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_notes(model::StandardModel, id::String)::Notes</code></pre><p>Return the notes associated with reaction <code>id</code> in <code>model</code>. Return an empty Dict if not present.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/StandardModel.jl#L265-L270">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_stoichiometry-Tuple{StandardModel, String}" href="#COBREXA.reaction_stoichiometry-Tuple{StandardModel, String}"><code>COBREXA.reaction_stoichiometry</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_stoichiometry(model::StandardModel, rxn_id::String)::Dict{String, Float64}</code></pre><p>Return the reaction equation of reaction with id <code>rxn_id</code> in model. The reaction equation maps metabolite ids to their stoichiometric coefficients.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/StandardModel.jl#L285-L290">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_subsystem-Tuple{StandardModel, String}" href="#COBREXA.reaction_subsystem-Tuple{StandardModel, String}"><code>COBREXA.reaction_subsystem</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_subsystem(id::String, model::StandardModel)</code></pre><p>Return the subsystem associated with reaction <code>id</code> in <code>model</code>. Return <code>nothing</code> if not present.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/StandardModel.jl#L215-L220">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reactions-Tuple{StandardModel}" href="#COBREXA.reactions-Tuple{StandardModel}"><code>COBREXA.reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reactions(model::StandardModel)</code></pre><p>Return a vector of reaction id strings contained in <code>model</code>. The order of reaction ids returned here matches the order used to construct the stoichiometric matrix.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/StandardModel.jl#L52-L58">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.stoichiometry-Tuple{StandardModel}" href="#COBREXA.stoichiometry-Tuple{StandardModel}"><code>COBREXA.stoichiometry</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">stoichiometry(model::StandardModel)</code></pre><p>Return the stoichiometric matrix associated with <code>model</code> in sparse format.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/StandardModel.jl#L99-L103">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.upper_bounds-Tuple{StandardModel}" href="#COBREXA.upper_bounds-Tuple{StandardModel}"><code>COBREXA.upper_bounds</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">upper_bounds(model::StandardModel)</code></pre><p>Return the upper bounds for all reactions in <code>model</code> in sparse format. Order matches that of the reaction ids returned in <code>reactions()</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/types/StandardModel.jl#L134-L139">source</a></section></article><h2 id="Base-functions"><a class="docs-heading-anchor" href="#Base-functions">Base functions</a><a id="Base-functions-1"></a><a class="docs-heading-anchor-permalink" href="#Base-functions" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-binding" id="COBREXA._constants" href="#COBREXA._constants"><code>COBREXA._constants</code></a> — <span class="docstring-category">Constant</span></header><section><div><p>A named tuple that contains the magic values that are used globally for whatever purposes.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/constants.jl#L2-L5">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.get_optmodel_bounds-Tuple{Any}" href="#COBREXA.get_optmodel_bounds-Tuple{Any}"><code>COBREXA.get_optmodel_bounds</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">get_optmodel_bounds(opt_model)</code></pre><p>Returns vectors of the lower and upper bounds of <code>opt_model</code> constraints, where <code>opt_model</code> is a JuMP model constructed by e.g. <a href="#COBREXA.make_optimization_model-Tuple{MetabolicModel, Any}"><code>make_optimization_model</code></a> or <a href="#COBREXA.flux_balance_analysis-Union{Tuple{M}, Tuple{M, Any}} where M&lt;:MetabolicModel"><code>flux_balance_analysis</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/solver.jl#L62-L68">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.is_solved-Tuple{Any}" href="#COBREXA.is_solved-Tuple{Any}"><code>COBREXA.is_solved</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">is_solved(optmodel)</code></pre><p>Return <code>true</code> if <code>optmodel</code> solved successfully (solution is optimal or locally optimal).  Return <code>false</code> if any other termination status is reached. Termination status is defined in the documentation of <code>JuMP</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/solver.jl#L50-L56">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.make_optimization_model-Tuple{MetabolicModel, Any}" href="#COBREXA.make_optimization_model-Tuple{MetabolicModel, Any}"><code>COBREXA.make_optimization_model</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">make_optimization_model(
+genes :: OrderedDict{String, Gene}</code></pre><p><strong>Example</strong></p><pre><code class="language-none">model = load_model(StandardModel, &quot;model_location&quot;)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/StandardModel.jl#L1-L36">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="Base.convert-Tuple{Type{StandardModel}, MetabolicModel}" href="#Base.convert-Tuple{Type{StandardModel}, MetabolicModel}"><code>Base.convert</code></a> — <span class="docstring-category">Method</span></header><section><div><p>Base.convert(::Type{StandardModel}, model::MetabolicModel)</p><p>Convert any <code>MetabolicModel</code> into a <code>StandardModel</code>. Note, some data loss may occur since only the generic interface is used during the conversion process.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/StandardModel.jl#L295-L301">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.balance-Tuple{StandardModel}" href="#COBREXA.balance-Tuple{StandardModel}"><code>COBREXA.balance</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">balance(model::StandardModel)</code></pre><p>Return the balance of the linear problem, i.e. b in Sv = 0 where S is the stoichiometric matrix and v is the flux vector.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/StandardModel.jl#L156-L161">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.bounds-Tuple{StandardModel}" href="#COBREXA.bounds-Tuple{StandardModel}"><code>COBREXA.bounds</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">bounds(model::StandardModel)</code></pre><p>Return the lower and upper bounds, respectively, for reactions in <code>model</code>. Order matches that of the reaction ids returned in <code>reactions()</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/StandardModel.jl#L144-L149">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.gene_annotations-Tuple{StandardModel, String}" href="#COBREXA.gene_annotations-Tuple{StandardModel, String}"><code>COBREXA.gene_annotations</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">gene_annotations(model::StandardModel, id::String)::Annotations</code></pre><p>Return the annotation associated with gene <code>id</code> in <code>model</code>. Return an empty Dict if not present.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/StandardModel.jl#L255-L260">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.gene_notes-Tuple{StandardModel, String}" href="#COBREXA.gene_notes-Tuple{StandardModel, String}"><code>COBREXA.gene_notes</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">gene_notes(model::StandardModel, id::String)::Notes</code></pre><p>Return the notes associated with gene <code>id</code> in <code>model</code>. Return an empty Dict if not present.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/StandardModel.jl#L245-L250">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.genes-Tuple{StandardModel}" href="#COBREXA.genes-Tuple{StandardModel}"><code>COBREXA.genes</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">genes(model::StandardModel)</code></pre><p>Return a vector of gene id strings in <code>model</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/StandardModel.jl#L85-L89">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.lower_bounds-Tuple{StandardModel}" href="#COBREXA.lower_bounds-Tuple{StandardModel}"><code>COBREXA.lower_bounds</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">lower_bounds(model::StandardModel)</code></pre><p>Return the lower bounds for all reactions in <code>model</code> in sparse format.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/StandardModel.jl#L125-L129">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_annotations-Tuple{StandardModel, String}" href="#COBREXA.metabolite_annotations-Tuple{StandardModel, String}"><code>COBREXA.metabolite_annotations</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolite_annotations(model::StandardModel, id::String)::Annotations</code></pre><p>Return the annotation associated with metabolite <code>id</code> in <code>model</code>. Return an empty Dict if not present.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/StandardModel.jl#L235-L240">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_charge-Tuple{StandardModel, String}" href="#COBREXA.metabolite_charge-Tuple{StandardModel, String}"><code>COBREXA.metabolite_charge</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolite_charge(model::StandardModel, id::String)</code></pre><p>Return the charge associated with metabolite <code>id</code> in <code>model</code>. Return nothing if not present.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/StandardModel.jl#L195-L200">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_compartment-Tuple{StandardModel, String}" href="#COBREXA.metabolite_compartment-Tuple{StandardModel, String}"><code>COBREXA.metabolite_compartment</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolite_compartment(model::StandardModel, id::String)</code></pre><p>Return compartment associated with metabolite <code>id</code> in <code>model</code>. Return <code>nothing</code> if not present.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/StandardModel.jl#L205-L210">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_formula-Tuple{StandardModel, String}" href="#COBREXA.metabolite_formula-Tuple{StandardModel, String}"><code>COBREXA.metabolite_formula</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolite_formula(model::StandardModel, id::String)</code></pre><p>Return the formula of reaction <code>id</code> in <code>model</code>. Return <code>nothing</code> if not present.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/StandardModel.jl#L185-L190">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_notes-Tuple{StandardModel, String}" href="#COBREXA.metabolite_notes-Tuple{StandardModel, String}"><code>COBREXA.metabolite_notes</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolite_notes(model::StandardModel, id::String)::Notes</code></pre><p>Return the notes associated with metabolite <code>id</code> in <code>model</code>. Return an empty Dict if not present.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/StandardModel.jl#L225-L230">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolites-Tuple{StandardModel}" href="#COBREXA.metabolites-Tuple{StandardModel}"><code>COBREXA.metabolites</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolites(model::StandardModel)</code></pre><p>Return a vector of metabolite id strings contained in <code>model</code>. The order of metabolite strings returned here matches the order used to construct the stoichiometric matrix.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/StandardModel.jl#L69-L75">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.n_genes-Tuple{StandardModel}" href="#COBREXA.n_genes-Tuple{StandardModel}"><code>COBREXA.n_genes</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">n_genes(model::StandardModel)</code></pre><p>Return the number of genes in <code>model</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/StandardModel.jl#L92-L96">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.n_metabolites-Tuple{StandardModel}" href="#COBREXA.n_metabolites-Tuple{StandardModel}"><code>COBREXA.n_metabolites</code></a> — <span class="docstring-category">Method</span></header><section><div><p>n_metabolites(model::StandardModel)</p><p>Return the number of metabolites in <code>model</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/StandardModel.jl#L78-L82">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.n_reactions-Tuple{StandardModel}" href="#COBREXA.n_reactions-Tuple{StandardModel}"><code>COBREXA.n_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">n_reactions(model::StandardModel)</code></pre><p>Return the number of reactions contained in <code>model</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/StandardModel.jl#L61-L65">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.objective-Tuple{StandardModel}" href="#COBREXA.objective-Tuple{StandardModel}"><code>COBREXA.objective</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">objective(model::StandardModel)</code></pre><p>Return sparse objective vector for <code>model</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/StandardModel.jl#L164-L168">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_annotations-Tuple{StandardModel, String}" href="#COBREXA.reaction_annotations-Tuple{StandardModel, String}"><code>COBREXA.reaction_annotations</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_annotations(model::StandardModel, id::String)::Annotations</code></pre><p>Return the annotation associated with reaction <code>id</code> in <code>model</code>. Return an empty Dict if not present.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/StandardModel.jl#L275-L280">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_gene_association-Tuple{StandardModel, String}" href="#COBREXA.reaction_gene_association-Tuple{StandardModel, String}"><code>COBREXA.reaction_gene_association</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_gene_association(model::StandardModel, id::String)</code></pre><p>Return the gene reaction rule in string format for reaction with <code>id</code> in <code>model</code>. Return <code>nothing</code> if not available.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/StandardModel.jl#L175-L180">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_notes-Tuple{StandardModel, String}" href="#COBREXA.reaction_notes-Tuple{StandardModel, String}"><code>COBREXA.reaction_notes</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_notes(model::StandardModel, id::String)::Notes</code></pre><p>Return the notes associated with reaction <code>id</code> in <code>model</code>. Return an empty Dict if not present.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/StandardModel.jl#L265-L270">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_stoichiometry-Tuple{StandardModel, String}" href="#COBREXA.reaction_stoichiometry-Tuple{StandardModel, String}"><code>COBREXA.reaction_stoichiometry</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_stoichiometry(model::StandardModel, rxn_id::String)::Dict{String, Float64}</code></pre><p>Return the reaction equation of reaction with id <code>rxn_id</code> in model. The reaction equation maps metabolite ids to their stoichiometric coefficients.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/StandardModel.jl#L285-L290">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reaction_subsystem-Tuple{StandardModel, String}" href="#COBREXA.reaction_subsystem-Tuple{StandardModel, String}"><code>COBREXA.reaction_subsystem</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reaction_subsystem(id::String, model::StandardModel)</code></pre><p>Return the subsystem associated with reaction <code>id</code> in <code>model</code>. Return <code>nothing</code> if not present.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/StandardModel.jl#L215-L220">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.reactions-Tuple{StandardModel}" href="#COBREXA.reactions-Tuple{StandardModel}"><code>COBREXA.reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">reactions(model::StandardModel)</code></pre><p>Return a vector of reaction id strings contained in <code>model</code>. The order of reaction ids returned here matches the order used to construct the stoichiometric matrix.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/StandardModel.jl#L52-L58">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.stoichiometry-Tuple{StandardModel}" href="#COBREXA.stoichiometry-Tuple{StandardModel}"><code>COBREXA.stoichiometry</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">stoichiometry(model::StandardModel)</code></pre><p>Return the stoichiometric matrix associated with <code>model</code> in sparse format.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/StandardModel.jl#L99-L103">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.upper_bounds-Tuple{StandardModel}" href="#COBREXA.upper_bounds-Tuple{StandardModel}"><code>COBREXA.upper_bounds</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">upper_bounds(model::StandardModel)</code></pre><p>Return the upper bounds for all reactions in <code>model</code> in sparse format. Order matches that of the reaction ids returned in <code>reactions()</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/types/StandardModel.jl#L134-L139">source</a></section></article><h2 id="Base-functions"><a class="docs-heading-anchor" href="#Base-functions">Base functions</a><a id="Base-functions-1"></a><a class="docs-heading-anchor-permalink" href="#Base-functions" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-binding" id="COBREXA._constants" href="#COBREXA._constants"><code>COBREXA._constants</code></a> — <span class="docstring-category">Constant</span></header><section><div><p>A named tuple that contains the magic values that are used globally for whatever purposes.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/constants.jl#L2-L5">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.get_optmodel_bounds-Tuple{Any}" href="#COBREXA.get_optmodel_bounds-Tuple{Any}"><code>COBREXA.get_optmodel_bounds</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">get_optmodel_bounds(opt_model)</code></pre><p>Returns vectors of the lower and upper bounds of <code>opt_model</code> constraints, where <code>opt_model</code> is a JuMP model constructed by e.g. <a href="#COBREXA.make_optimization_model-Tuple{MetabolicModel, Any}"><code>make_optimization_model</code></a> or <a href="#COBREXA.flux_balance_analysis-Union{Tuple{M}, Tuple{M, Any}} where M&lt;:MetabolicModel"><code>flux_balance_analysis</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/solver.jl#L62-L68">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.is_solved-Tuple{Any}" href="#COBREXA.is_solved-Tuple{Any}"><code>COBREXA.is_solved</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">is_solved(optmodel)</code></pre><p>Return <code>true</code> if <code>optmodel</code> solved successfully (solution is optimal or locally optimal).  Return <code>false</code> if any other termination status is reached. Termination status is defined in the documentation of <code>JuMP</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/solver.jl#L50-L56">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.make_optimization_model-Tuple{MetabolicModel, Any}" href="#COBREXA.make_optimization_model-Tuple{MetabolicModel, Any}"><code>COBREXA.make_optimization_model</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">make_optimization_model(
     model::MetabolicModel,
     optimizer;
     sense = MOI.MAX_SENSE,
-)</code></pre><p>Convert <code>MetabolicModel</code>s to a JuMP model, place objectives and the equality constraint.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/solver.jl#L2-L11">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.optimize_model-Tuple{MetabolicModel, Any}" href="#COBREXA.optimize_model-Tuple{MetabolicModel, Any}"><code>COBREXA.optimize_model</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">optimize_model(
+)</code></pre><p>Convert <code>MetabolicModel</code>s to a JuMP model, place objectives and the equality constraint.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/solver.jl#L2-L11">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.optimize_model-Tuple{MetabolicModel, Any}" href="#COBREXA.optimize_model-Tuple{MetabolicModel, Any}"><code>COBREXA.optimize_model</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">optimize_model(
     model::MetabolicModel,
     optimizer;
     sense = MOI.MIN_SENSE,
-)</code></pre><p>Use JuMP to solve an instance of CoreModel</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/solver.jl#L34-L42">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.set_optmodel_bound!-Tuple{Any, Any}" href="#COBREXA.set_optmodel_bound!-Tuple{Any, Any}"><code>COBREXA.set_optmodel_bound!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">set_optmodel_bound!(index, optimization_model;
+)</code></pre><p>Use JuMP to solve an instance of CoreModel</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/solver.jl#L34-L42">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.set_optmodel_bound!-Tuple{Any, Any}" href="#COBREXA.set_optmodel_bound!-Tuple{Any, Any}"><code>COBREXA.set_optmodel_bound!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">set_optmodel_bound!(index, optimization_model;
     ub=_constants.default_reaction_rate,
-    lb=-_constants.default_reaction_rate)</code></pre><p>Helper function to set the bounds of variables. The JuMP <code>set_normalized_rhs</code> function is a little confusing, so this function simplifies setting constraints. In short, JuMP uses a normalized right hand side representation of constraints, which means that lower bounds have their sign flipped. This function does this for you, so you don&#39;t have to remember to do this whenever you change the constraints.</p><p>Just supply the constraint <code>index</code> and the JuMP model (<code>opt_model</code>) that will be solved, and the variable&#39;s bounds will be set to <code>ub</code> and <code>lb</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/solver.jl#L74-L89">source</a></section></article><h2 id="File-I/O-and-serialization"><a class="docs-heading-anchor" href="#File-I/O-and-serialization">File I/O and serialization</a><a id="File-I/O-and-serialization-1"></a><a class="docs-heading-anchor-permalink" href="#File-I/O-and-serialization" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-binding" id="COBREXA.load_model-Tuple{String}" href="#COBREXA.load_model-Tuple{String}"><code>COBREXA.load_model</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">load_model(file_name::String)::MetabolicModel</code></pre><p>Generic function for loading models that chooses a specific loader function from the <code>file_name</code> extension, or throws an error.</p><p>Currently, these model types are supported:</p><ul><li>SBML models (<code>*.xml</code>, loaded with <a href="#COBREXA.load_sbml_model-Tuple{String}"><code>load_sbml_model</code></a>)</li><li>JSON models (<code>*.json</code>, loaded with <a href="#COBREXA.load_json_model-Tuple{String}"><code>load_json_model</code></a>)</li><li>MATLAB models (<code>*.mat</code>, loaded with <a href="#COBREXA.load_mat_model-Tuple{String}"><code>load_mat_model</code></a>)</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/io/io.jl#L2-L13">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.load_model-Union{Tuple{T}, Tuple{Type{T}, String}} where T&lt;:MetabolicModel" href="#COBREXA.load_model-Union{Tuple{T}, Tuple{Type{T}, String}} where T&lt;:MetabolicModel"><code>COBREXA.load_model</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">load_model(type::Type{T}, file_name::String)::T where T</code></pre><p>Helper function tht loads the model using <a href="#COBREXA.load_model-Tuple{String}"><code>load_model</code></a> and return it converted to <code>type</code>.</p><p><strong>Example:</strong></p><pre><code class="language-none">load_model(CoreModel, &quot;mySBMLModel.xml&quot;)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/io/io.jl#L27-L36">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.save_model-Tuple{MetabolicModel, String}" href="#COBREXA.save_model-Tuple{MetabolicModel, String}"><code>COBREXA.save_model</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">save_model(model::MetabolicModel, file_name::String)</code></pre><p>Generic function for saving models that chooses a specific writer function from the <code>file_name</code> extension, or throws an error.</p><p>Currently, these model types are supported:</p><ul><li>JSON models (<code>*.json</code>, loaded with <a href="#COBREXA.save_json_model-Tuple{MetabolicModel, String}"><code>save_json_model</code></a>)</li><li>MATLAB models (<code>*.mat</code>, loaded with <a href="#COBREXA.save_mat_model-Tuple{MetabolicModel, String}"><code>save_mat_model</code></a>)</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/io/io.jl#L41-L51">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.load_json_model-Tuple{String}" href="#COBREXA.load_json_model-Tuple{String}"><code>COBREXA.load_json_model</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">load_json_model(filename::String)::JSONModel</code></pre><p>Load and return a JSON-formatted model that is stored in <code>file_name</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/io/json.jl#L1-L5">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.save_json_model-Tuple{MetabolicModel, String}" href="#COBREXA.save_json_model-Tuple{MetabolicModel, String}"><code>COBREXA.save_json_model</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">save_json_model(model::MetabolicModel, file_name::String)</code></pre><p>Save a <a href="#COBREXA.JSONModel"><code>JSONModel</code></a> in <code>model</code> to a JSON file <code>file_name</code>.</p><p>In case the <code>model</code> is not <code>JSONModel</code>, it will be converted automatically.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/io/json.jl#L10-L16">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.load_mat_model-Tuple{String}" href="#COBREXA.load_mat_model-Tuple{String}"><code>COBREXA.load_mat_model</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">load_mat_model(file_name::String)</code></pre><p>Load and return a MATLAB file <code>file_name</code> that contains a COBRA-compatible model.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/io/mat.jl#L2-L7">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.save_mat_model-Tuple{MetabolicModel, String}" href="#COBREXA.save_mat_model-Tuple{MetabolicModel, String}"><code>COBREXA.save_mat_model</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">save_mat_model(model::MetabolicModel, file_name::String; model_name::String=&quot;model&quot;)</code></pre><p>Save a <a href="#COBREXA.MATModel"><code>MATModel</code></a> in <code>model</code> to a MATLAB file <code>file_name</code> in a format compatible with other MATLAB-based COBRA software.</p><p>In case the <code>model</code> is not <code>MATModel</code>, it will be converted automatically.</p><p><code>model_name</code> is the identifier name for the whole model written to the MATLAB file; defaults to just &quot;model&quot;.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/io/mat.jl#L14-L24">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.load_sbml_model-Tuple{String}" href="#COBREXA.load_sbml_model-Tuple{String}"><code>COBREXA.load_sbml_model</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">load_sbml_model(file_name::String)::SBMLModel</code></pre><p>Load and return a SBML XML model in <code>file_name</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/io/sbml.jl#L2-L6">source</a></section></article><h3 id="Pretty-printing"><a class="docs-heading-anchor" href="#Pretty-printing">Pretty printing</a><a id="Pretty-printing-1"></a><a class="docs-heading-anchor-permalink" href="#Pretty-printing" title="Permalink"></a></h3><article class="docstring"><header><a class="docstring-binding" id="Base.show-Tuple{IO, MIME{Symbol(&quot;text/plain&quot;)}, MetabolicModel}" href="#Base.show-Tuple{IO, MIME{Symbol(&quot;text/plain&quot;)}, MetabolicModel}"><code>Base.show</code></a> — <span class="docstring-category">Method</span></header><section><div><p>Pretty printing of everything metabolic-modelish.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/io/show/MetabolicModel.jl#L1-L3">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA._pretty_substances-Tuple{Vector{String}}" href="#COBREXA._pretty_substances-Tuple{Vector{String}}"><code>COBREXA._pretty_substances</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">_pretty_substances(ss::Vector{String})::String</code></pre><p>Nicely format a substance list.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/io/show/Reaction.jl#L2-L6">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="Base.show-Union{Tuple{M}, Tuple{IO, MIME{Symbol(&quot;text/plain&quot;)}, Serialized{M}}} where M" href="#Base.show-Union{Tuple{M}, Tuple{IO, MIME{Symbol(&quot;text/plain&quot;)}, Serialized{M}}} where M"><code>Base.show</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">Base.show(io::IO, ::MIME&quot;text/plain&quot;, m::Serialized{M}) where {M}</code></pre><p>Show the <a href="#COBREXA.Serialized"><code>Serialized</code></a> model without unnecessarily loading it.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/io/show/Serialized.jl#L2-L6">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA._pretty_print_keyvals-Tuple{Any, String, Any}" href="#COBREXA._pretty_print_keyvals-Tuple{Any, String, Any}"><code>COBREXA._pretty_print_keyvals</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">_pretty_print_keyvals(io, def::String, payload; kwargs...)</code></pre><p>Nicely prints keys and values.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/io/show/pretty_printing.jl#L1-L5">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA._pretty_print_keyvals-Tuple{Any, String, Dict}" href="#COBREXA._pretty_print_keyvals-Tuple{Any, String, Dict}"><code>COBREXA._pretty_print_keyvals</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">_pretty_print_keyvals(
+    lb=-_constants.default_reaction_rate)</code></pre><p>Helper function to set the bounds of variables. The JuMP <code>set_normalized_rhs</code> function is a little confusing, so this function simplifies setting constraints. In short, JuMP uses a normalized right hand side representation of constraints, which means that lower bounds have their sign flipped. This function does this for you, so you don&#39;t have to remember to do this whenever you change the constraints.</p><p>Just supply the constraint <code>index</code> and the JuMP model (<code>opt_model</code>) that will be solved, and the variable&#39;s bounds will be set to <code>ub</code> and <code>lb</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/solver.jl#L74-L89">source</a></section></article><h2 id="File-I/O-and-serialization"><a class="docs-heading-anchor" href="#File-I/O-and-serialization">File I/O and serialization</a><a id="File-I/O-and-serialization-1"></a><a class="docs-heading-anchor-permalink" href="#File-I/O-and-serialization" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-binding" id="COBREXA.load_model-Tuple{String}" href="#COBREXA.load_model-Tuple{String}"><code>COBREXA.load_model</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">load_model(file_name::String)::MetabolicModel</code></pre><p>Generic function for loading models that chooses a specific loader function from the <code>file_name</code> extension, or throws an error.</p><p>Currently, these model types are supported:</p><ul><li>SBML models (<code>*.xml</code>, loaded with <a href="#COBREXA.load_sbml_model-Tuple{String}"><code>load_sbml_model</code></a>)</li><li>JSON models (<code>*.json</code>, loaded with <a href="#COBREXA.load_json_model-Tuple{String}"><code>load_json_model</code></a>)</li><li>MATLAB models (<code>*.mat</code>, loaded with <a href="#COBREXA.load_mat_model-Tuple{String}"><code>load_mat_model</code></a>)</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/io/io.jl#L2-L13">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.load_model-Union{Tuple{T}, Tuple{Type{T}, String}} where T&lt;:MetabolicModel" href="#COBREXA.load_model-Union{Tuple{T}, Tuple{Type{T}, String}} where T&lt;:MetabolicModel"><code>COBREXA.load_model</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">load_model(type::Type{T}, file_name::String)::T where T</code></pre><p>Helper function tht loads the model using <a href="#COBREXA.load_model-Tuple{String}"><code>load_model</code></a> and return it converted to <code>type</code>.</p><p><strong>Example:</strong></p><pre><code class="language-none">load_model(CoreModel, &quot;mySBMLModel.xml&quot;)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/io/io.jl#L27-L36">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.save_model-Tuple{MetabolicModel, String}" href="#COBREXA.save_model-Tuple{MetabolicModel, String}"><code>COBREXA.save_model</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">save_model(model::MetabolicModel, file_name::String)</code></pre><p>Generic function for saving models that chooses a specific writer function from the <code>file_name</code> extension, or throws an error.</p><p>Currently, these model types are supported:</p><ul><li>JSON models (<code>*.json</code>, loaded with <a href="#COBREXA.save_json_model-Tuple{MetabolicModel, String}"><code>save_json_model</code></a>)</li><li>MATLAB models (<code>*.mat</code>, loaded with <a href="#COBREXA.save_mat_model-Tuple{MetabolicModel, String}"><code>save_mat_model</code></a>)</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/io/io.jl#L41-L51">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.load_json_model-Tuple{String}" href="#COBREXA.load_json_model-Tuple{String}"><code>COBREXA.load_json_model</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">load_json_model(filename::String)::JSONModel</code></pre><p>Load and return a JSON-formatted model that is stored in <code>file_name</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/io/json.jl#L1-L5">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.save_json_model-Tuple{MetabolicModel, String}" href="#COBREXA.save_json_model-Tuple{MetabolicModel, String}"><code>COBREXA.save_json_model</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">save_json_model(model::MetabolicModel, file_name::String)</code></pre><p>Save a <a href="#COBREXA.JSONModel"><code>JSONModel</code></a> in <code>model</code> to a JSON file <code>file_name</code>.</p><p>In case the <code>model</code> is not <code>JSONModel</code>, it will be converted automatically.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/io/json.jl#L10-L16">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.load_mat_model-Tuple{String}" href="#COBREXA.load_mat_model-Tuple{String}"><code>COBREXA.load_mat_model</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">load_mat_model(file_name::String)</code></pre><p>Load and return a MATLAB file <code>file_name</code> that contains a COBRA-compatible model.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/io/mat.jl#L2-L7">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.save_mat_model-Tuple{MetabolicModel, String}" href="#COBREXA.save_mat_model-Tuple{MetabolicModel, String}"><code>COBREXA.save_mat_model</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">save_mat_model(model::MetabolicModel, file_name::String; model_name::String=&quot;model&quot;)</code></pre><p>Save a <a href="#COBREXA.MATModel"><code>MATModel</code></a> in <code>model</code> to a MATLAB file <code>file_name</code> in a format compatible with other MATLAB-based COBRA software.</p><p>In case the <code>model</code> is not <code>MATModel</code>, it will be converted automatically.</p><p><code>model_name</code> is the identifier name for the whole model written to the MATLAB file; defaults to just &quot;model&quot;.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/io/mat.jl#L14-L24">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.load_sbml_model-Tuple{String}" href="#COBREXA.load_sbml_model-Tuple{String}"><code>COBREXA.load_sbml_model</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">load_sbml_model(file_name::String)::SBMLModel</code></pre><p>Load and return a SBML XML model in <code>file_name</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/io/sbml.jl#L2-L6">source</a></section></article><h3 id="Pretty-printing"><a class="docs-heading-anchor" href="#Pretty-printing">Pretty printing</a><a id="Pretty-printing-1"></a><a class="docs-heading-anchor-permalink" href="#Pretty-printing" title="Permalink"></a></h3><article class="docstring"><header><a class="docstring-binding" id="Base.show-Tuple{IO, MIME{Symbol(&quot;text/plain&quot;)}, MetabolicModel}" href="#Base.show-Tuple{IO, MIME{Symbol(&quot;text/plain&quot;)}, MetabolicModel}"><code>Base.show</code></a> — <span class="docstring-category">Method</span></header><section><div><p>Pretty printing of everything metabolic-modelish.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/io/show/MetabolicModel.jl#L1-L3">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA._pretty_substances-Tuple{Vector{String}}" href="#COBREXA._pretty_substances-Tuple{Vector{String}}"><code>COBREXA._pretty_substances</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">_pretty_substances(ss::Vector{String})::String</code></pre><p>Nicely format a substance list.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/io/show/Reaction.jl#L2-L6">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="Base.show-Union{Tuple{M}, Tuple{IO, MIME{Symbol(&quot;text/plain&quot;)}, Serialized{M}}} where M" href="#Base.show-Union{Tuple{M}, Tuple{IO, MIME{Symbol(&quot;text/plain&quot;)}, Serialized{M}}} where M"><code>Base.show</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">Base.show(io::IO, ::MIME&quot;text/plain&quot;, m::Serialized{M}) where {M}</code></pre><p>Show the <a href="#COBREXA.Serialized"><code>Serialized</code></a> model without unnecessarily loading it.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/io/show/Serialized.jl#L2-L6">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA._pretty_print_keyvals-Tuple{Any, String, Any}" href="#COBREXA._pretty_print_keyvals-Tuple{Any, String, Any}"><code>COBREXA._pretty_print_keyvals</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">_pretty_print_keyvals(io, def::String, payload; kwargs...)</code></pre><p>Nicely prints keys and values.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/io/show/pretty_printing.jl#L1-L5">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA._pretty_print_keyvals-Tuple{Any, String, Dict}" href="#COBREXA._pretty_print_keyvals-Tuple{Any, String, Dict}"><code>COBREXA._pretty_print_keyvals</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">_pretty_print_keyvals(
     io,
     def::String,
     payload::Dict
-)</code></pre><p>Specialization of <code>_pretty_print_keyvals</code> for dictionaries.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/io/show/pretty_printing.jl#L27-L35">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA._pretty_print_keyvals-Tuple{Any, String, String}" href="#COBREXA._pretty_print_keyvals-Tuple{Any, String, String}"><code>COBREXA._pretty_print_keyvals</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">_pretty_print_keyvals(
+)</code></pre><p>Specialization of <code>_pretty_print_keyvals</code> for dictionaries.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/io/show/pretty_printing.jl#L27-L35">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA._pretty_print_keyvals-Tuple{Any, String, String}" href="#COBREXA._pretty_print_keyvals-Tuple{Any, String, String}"><code>COBREXA._pretty_print_keyvals</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">_pretty_print_keyvals(
     io,
     def::String,
     payload::String
-)</code></pre><p>Specialization of <code>_pretty_print_keyvals</code> for plain strings.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/io/show/pretty_printing.jl#L9-L17">source</a></section></article><h2 id="Model-reconstruction"><a class="docs-heading-anchor" href="#Model-reconstruction">Model reconstruction</a><a id="Model-reconstruction-1"></a><a class="docs-heading-anchor-permalink" href="#Model-reconstruction" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_reactions-Tuple{CoreModel, CoreModel}" href="#COBREXA.add_reactions-Tuple{CoreModel, CoreModel}"><code>COBREXA.add_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_reactions(m1::CoreModel, m2::CoreModel; check_consistency = false)</code></pre><p>Add all reactions from <code>m2</code> to <code>m1</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/CoreModel.jl#L109-L114">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_reactions-Union{Tuple{K}, Tuple{V2}, Tuple{V1}, Tuple{CoreModel, V1, V2, AbstractFloat, AbstractFloat, AbstractFloat, String, K}} where {V1&lt;:AbstractVector{Float64}, V2&lt;:AbstractVector{Float64}, K&lt;:AbstractVector{String}}" href="#COBREXA.add_reactions-Union{Tuple{K}, Tuple{V2}, Tuple{V1}, Tuple{CoreModel, V1, V2, AbstractFloat, AbstractFloat, AbstractFloat, String, K}} where {V1&lt;:AbstractVector{Float64}, V2&lt;:AbstractVector{Float64}, K&lt;:AbstractVector{String}}"><code>COBREXA.add_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_reactions(
+)</code></pre><p>Specialization of <code>_pretty_print_keyvals</code> for plain strings.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/io/show/pretty_printing.jl#L9-L17">source</a></section></article><h2 id="Model-reconstruction"><a class="docs-heading-anchor" href="#Model-reconstruction">Model reconstruction</a><a id="Model-reconstruction-1"></a><a class="docs-heading-anchor-permalink" href="#Model-reconstruction" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_reactions-Tuple{CoreModel, CoreModel}" href="#COBREXA.add_reactions-Tuple{CoreModel, CoreModel}"><code>COBREXA.add_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_reactions(m1::CoreModel, m2::CoreModel; check_consistency = false)</code></pre><p>Add all reactions from <code>m2</code> to <code>m1</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/CoreModel.jl#L109-L114">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_reactions-Union{Tuple{K}, Tuple{V2}, Tuple{V1}, Tuple{CoreModel, V1, V2, AbstractFloat, AbstractFloat, AbstractFloat, String, K}} where {V1&lt;:AbstractVector{Float64}, V2&lt;:AbstractVector{Float64}, K&lt;:AbstractVector{String}}" href="#COBREXA.add_reactions-Union{Tuple{K}, Tuple{V2}, Tuple{V1}, Tuple{CoreModel, V1, V2, AbstractFloat, AbstractFloat, AbstractFloat, String, K}} where {V1&lt;:AbstractVector{Float64}, V2&lt;:AbstractVector{Float64}, K&lt;:AbstractVector{String}}"><code>COBREXA.add_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_reactions(
     m::CoreModel,
     s::V1,
     b::V2,
@@ -98,7 +98,7 @@ genes :: OrderedDict{String, Gene}</code></pre><p><strong>Example</strong></p><p
     rxn::String,
     mets::K;
     check_consistency = false,
-) where {V1&lt;:VecType,V2&lt;:VecType,K&lt;:StringVecType}</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/CoreModel.jl#L35-L48">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_reactions-Union{Tuple{K}, Tuple{V}, Tuple{M}, Tuple{CoreModel, M, V, V, V, V, K, K}} where {M&lt;:AbstractMatrix{Float64}, V&lt;:AbstractVector{Float64}, K&lt;:AbstractVector{String}}" href="#COBREXA.add_reactions-Union{Tuple{K}, Tuple{V}, Tuple{M}, Tuple{CoreModel, M, V, V, V, V, K, K}} where {M&lt;:AbstractMatrix{Float64}, V&lt;:AbstractVector{Float64}, K&lt;:AbstractVector{String}}"><code>COBREXA.add_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_reactions(
+) where {V1&lt;:VecType,V2&lt;:VecType,K&lt;:StringVecType}</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/CoreModel.jl#L35-L48">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_reactions-Union{Tuple{K}, Tuple{V}, Tuple{M}, Tuple{CoreModel, M, V, V, V, V, K, K}} where {M&lt;:AbstractMatrix{Float64}, V&lt;:AbstractVector{Float64}, K&lt;:AbstractVector{String}}" href="#COBREXA.add_reactions-Union{Tuple{K}, Tuple{V}, Tuple{M}, Tuple{CoreModel, M, V, V, V, V, K, K}} where {M&lt;:AbstractMatrix{Float64}, V&lt;:AbstractVector{Float64}, K&lt;:AbstractVector{String}}"><code>COBREXA.add_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_reactions(
     m::CoreModel,
     Sp::M,
     b::V,
@@ -108,7 +108,7 @@ genes :: OrderedDict{String, Gene}</code></pre><p><strong>Example</strong></p><p
     rxns::K,
     mets::K;
     check_consistency = false,
-) where {M&lt;:MatType,V&lt;:VecType,K&lt;:StringVecType}</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/CoreModel.jl#L129-L142">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_reactions-Union{Tuple{V2}, Tuple{V1}, Tuple{CoreModel, V1, V2, AbstractFloat, AbstractFloat, AbstractFloat}} where {V1&lt;:AbstractVector{Float64}, V2&lt;:AbstractVector{Float64}}" href="#COBREXA.add_reactions-Union{Tuple{V2}, Tuple{V1}, Tuple{CoreModel, V1, V2, AbstractFloat, AbstractFloat, AbstractFloat}} where {V1&lt;:AbstractVector{Float64}, V2&lt;:AbstractVector{Float64}}"><code>COBREXA.add_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_reactions(
+) where {M&lt;:MatType,V&lt;:VecType,K&lt;:StringVecType}</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/CoreModel.jl#L129-L142">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_reactions-Union{Tuple{V2}, Tuple{V1}, Tuple{CoreModel, V1, V2, AbstractFloat, AbstractFloat, AbstractFloat}} where {V1&lt;:AbstractVector{Float64}, V2&lt;:AbstractVector{Float64}}" href="#COBREXA.add_reactions-Union{Tuple{V2}, Tuple{V1}, Tuple{CoreModel, V1, V2, AbstractFloat, AbstractFloat, AbstractFloat}} where {V1&lt;:AbstractVector{Float64}, V2&lt;:AbstractVector{Float64}}"><code>COBREXA.add_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_reactions(
     m::CoreModel,
     s::V1,
     b::V2,
@@ -116,7 +116,7 @@ genes :: OrderedDict{String, Gene}</code></pre><p><strong>Example</strong></p><p
     xl::AbstractFloat,
     xu::AbstractFloat;
     check_consistency = false,
-) where {V1&lt;:VecType,V2&lt;:VecType}</code></pre><p>Add reaction(s) to a <code>CoreModel</code> model <code>m</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/CoreModel.jl#L1-L14">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_reactions-Union{Tuple{V}, Tuple{M}, Tuple{CoreModel, M, V, V, V, V}} where {M&lt;:AbstractMatrix{Float64}, V&lt;:AbstractVector{Float64}}" href="#COBREXA.add_reactions-Union{Tuple{V}, Tuple{M}, Tuple{CoreModel, M, V, V, V, V}} where {M&lt;:AbstractMatrix{Float64}, V&lt;:AbstractVector{Float64}}"><code>COBREXA.add_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_reactions(
+) where {V1&lt;:VecType,V2&lt;:VecType}</code></pre><p>Add reaction(s) to a <code>CoreModel</code> model <code>m</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/CoreModel.jl#L1-L14">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_reactions-Union{Tuple{V}, Tuple{M}, Tuple{CoreModel, M, V, V, V, V}} where {M&lt;:AbstractMatrix{Float64}, V&lt;:AbstractVector{Float64}}" href="#COBREXA.add_reactions-Union{Tuple{V}, Tuple{M}, Tuple{CoreModel, M, V, V, V, V}} where {M&lt;:AbstractMatrix{Float64}, V&lt;:AbstractVector{Float64}}"><code>COBREXA.add_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_reactions(
     m::CoreModel,
     Sp::M,
     b::V,
@@ -124,12 +124,12 @@ genes :: OrderedDict{String, Gene}</code></pre><p><strong>Example</strong></p><p
     xl::V,
     xu::V;
     check_consistency = false,
-) where {M&lt;:MatType,V&lt;:VecType}</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/CoreModel.jl#L73-L84">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.remove_metabolites-Tuple{CoreModel, Any}" href="#COBREXA.remove_metabolites-Tuple{CoreModel, Any}"><code>COBREXA.remove_metabolites</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">remove_metabolites(model::CoreModel, metabolites)</code></pre><p>Removes a set of <code>metabolites</code> from the <code>model</code> of type <code>CoreModel</code> and returns a new <code>CoreModel</code> without those metabolites. Here, <code>metabolites</code> can be either a string, a vector of strings, an index or a vector of indices. Also removes any reactions that have no associated metabolites after the metabolites have been removed.</p><p><strong>Example</strong></p><pre><code class="language-none">model = load_model(CoreModel, &quot;e_coli_core.json&quot;)
+) where {M&lt;:MatType,V&lt;:VecType}</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/CoreModel.jl#L73-L84">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.remove_metabolites-Tuple{CoreModel, Any}" href="#COBREXA.remove_metabolites-Tuple{CoreModel, Any}"><code>COBREXA.remove_metabolites</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">remove_metabolites(model::CoreModel, metabolites)</code></pre><p>Removes a set of <code>metabolites</code> from the <code>model</code> of type <code>CoreModel</code> and returns a new <code>CoreModel</code> without those metabolites. Here, <code>metabolites</code> can be either a string, a vector of strings, an index or a vector of indices. Also removes any reactions that have no associated metabolites after the metabolites have been removed.</p><p><strong>Example</strong></p><pre><code class="language-none">model = load_model(CoreModel, &quot;e_coli_core.json&quot;)
 
 m1 = remove_metabolites(model, [&quot;glc__D_e&quot;, &quot;for_c&quot;])
 m2 = remove_metabolites(model, &quot;glc__D_e&quot;)
 m3 = remove_metabolites(model, indexin([&quot;glc__D_e&quot;, &quot;for_c&quot;], metabolites(model)))
-m4 = remove_metabolites(model, first(indexin([&quot;glc__D_e&quot;], metabolites(model))))</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/CoreModel.jl#L273-L291">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.remove_reactions-Tuple{CoreModel, Integer}" href="#COBREXA.remove_reactions-Tuple{CoreModel, Integer}"><code>COBREXA.remove_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">remove_reactions(m::CoreModel, rxn::Integer)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/CoreModel.jl#L351-L354">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.remove_reactions-Tuple{CoreModel, String}" href="#COBREXA.remove_reactions-Tuple{CoreModel, String}"><code>COBREXA.remove_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">remove_reactions(m::CoreModel, rxn::String)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/CoreModel.jl#L359-L362">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.remove_reactions-Tuple{CoreModel, Vector{Int64}}" href="#COBREXA.remove_reactions-Tuple{CoreModel, Vector{Int64}}"><code>COBREXA.remove_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">remove_reactions(m::CoreModel, rxns::Vector{Int})</code></pre><p>Removes a set of reactions from a CoreModel. Also removes the metabolites not involved in any reaction.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/CoreModel.jl#L327-L332">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.remove_reactions-Tuple{CoreModel, Vector{String}}" href="#COBREXA.remove_reactions-Tuple{CoreModel, Vector{String}}"><code>COBREXA.remove_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">remove_reactions(m::CoreModel, rxns::Vector{String})</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/CoreModel.jl#L367-L370">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.verify_consistency-Union{Tuple{K}, Tuple{V}, Tuple{M}, Tuple{CoreModel, M, V, V, V, V, K, K, Any, Any}} where {M&lt;:AbstractMatrix{Float64}, V&lt;:AbstractVector{Float64}, K&lt;:AbstractVector{String}}" href="#COBREXA.verify_consistency-Union{Tuple{K}, Tuple{V}, Tuple{M}, Tuple{CoreModel, M, V, V, V, V, K, K, Any, Any}} where {M&lt;:AbstractMatrix{Float64}, V&lt;:AbstractVector{Float64}, K&lt;:AbstractVector{String}}"><code>COBREXA.verify_consistency</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">verify_consistency(
+m4 = remove_metabolites(model, first(indexin([&quot;glc__D_e&quot;], metabolites(model))))</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/CoreModel.jl#L273-L291">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.remove_reactions-Tuple{CoreModel, Integer}" href="#COBREXA.remove_reactions-Tuple{CoreModel, Integer}"><code>COBREXA.remove_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">remove_reactions(m::CoreModel, rxn::Integer)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/CoreModel.jl#L351-L354">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.remove_reactions-Tuple{CoreModel, String}" href="#COBREXA.remove_reactions-Tuple{CoreModel, String}"><code>COBREXA.remove_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">remove_reactions(m::CoreModel, rxn::String)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/CoreModel.jl#L359-L362">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.remove_reactions-Tuple{CoreModel, Vector{Int64}}" href="#COBREXA.remove_reactions-Tuple{CoreModel, Vector{Int64}}"><code>COBREXA.remove_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">remove_reactions(m::CoreModel, rxns::Vector{Int})</code></pre><p>Removes a set of reactions from a CoreModel. Also removes the metabolites not involved in any reaction.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/CoreModel.jl#L327-L332">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.remove_reactions-Tuple{CoreModel, Vector{String}}" href="#COBREXA.remove_reactions-Tuple{CoreModel, Vector{String}}"><code>COBREXA.remove_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">remove_reactions(m::CoreModel, rxns::Vector{String})</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/CoreModel.jl#L367-L370">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.verify_consistency-Union{Tuple{K}, Tuple{V}, Tuple{M}, Tuple{CoreModel, M, V, V, V, V, K, K, Any, Any}} where {M&lt;:AbstractMatrix{Float64}, V&lt;:AbstractVector{Float64}, K&lt;:AbstractVector{String}}" href="#COBREXA.verify_consistency-Union{Tuple{K}, Tuple{V}, Tuple{M}, Tuple{CoreModel, M, V, V, V, V, K, K, Any, Any}} where {M&lt;:AbstractMatrix{Float64}, V&lt;:AbstractVector{Float64}, K&lt;:AbstractVector{String}}"><code>COBREXA.verify_consistency</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">verify_consistency(
     m::CoreModel,
     Sp::M,
     b::V,
@@ -140,17 +140,17 @@ m4 = remove_metabolites(model, first(indexin([&quot;glc__D_e&quot;], metabolites
     mets::K,
     new_reactions,
     new_metabolites,
-) where {M&lt;:MatType,V&lt;:VecType,K&lt;:StringVecType}</code></pre><p>Check the consistency of given reactions with existing reactions in <code>m</code>.</p><p>TODO: work in progress, doesn&#39;t return consistency status.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/CoreModel.jl#L214-L232">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_coupling_constraints!-Tuple{CoreModelCoupled, AbstractVector{Float64}, AbstractFloat, AbstractFloat}" href="#COBREXA.add_coupling_constraints!-Tuple{CoreModelCoupled, AbstractVector{Float64}, AbstractFloat, AbstractFloat}"><code>COBREXA.add_coupling_constraints!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_coupling_constraints!(
+) where {M&lt;:MatType,V&lt;:VecType,K&lt;:StringVecType}</code></pre><p>Check the consistency of given reactions with existing reactions in <code>m</code>.</p><p>TODO: work in progress, doesn&#39;t return consistency status.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/CoreModel.jl#L214-L232">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_coupling_constraints!-Tuple{CoreModelCoupled, AbstractVector{Float64}, AbstractFloat, AbstractFloat}" href="#COBREXA.add_coupling_constraints!-Tuple{CoreModelCoupled, AbstractVector{Float64}, AbstractFloat, AbstractFloat}"><code>COBREXA.add_coupling_constraints!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_coupling_constraints!(
     m::CoreModelCoupled,
     c::VecType,
     cl::AbstractFloat,
     cu::AbstractFloat,
-)</code></pre><p>Overload for adding a single coupling constraint.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/CoreModelCoupled.jl#L236-L245">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_coupling_constraints!-Union{Tuple{V}, Tuple{CoreModelCoupled, AbstractMatrix{Float64}, V, V}} where V&lt;:AbstractVector{Float64}" href="#COBREXA.add_coupling_constraints!-Union{Tuple{V}, Tuple{CoreModelCoupled, AbstractMatrix{Float64}, V, V}} where V&lt;:AbstractVector{Float64}"><code>COBREXA.add_coupling_constraints!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_coupling_constraints!(
+)</code></pre><p>Overload for adding a single coupling constraint.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/CoreModelCoupled.jl#L236-L245">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_coupling_constraints!-Union{Tuple{V}, Tuple{CoreModelCoupled, AbstractMatrix{Float64}, V, V}} where V&lt;:AbstractVector{Float64}" href="#COBREXA.add_coupling_constraints!-Union{Tuple{V}, Tuple{CoreModelCoupled, AbstractMatrix{Float64}, V, V}} where V&lt;:AbstractVector{Float64}"><code>COBREXA.add_coupling_constraints!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_coupling_constraints!(
     m::CoreModelCoupled,
     C::MatType,
     cl::V,
     cu::V,
-) where {V&lt;:VecType}</code></pre><p>In-place add a single coupling constraint in form</p><pre><code class="language-none">    cₗ ≤ C x ≤ cᵤ</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/CoreModelCoupled.jl#L261-L273">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_coupling_constraints-Tuple{CoreModel, Vararg{Any, N} where N}" href="#COBREXA.add_coupling_constraints-Tuple{CoreModel, Vararg{Any, N} where N}"><code>COBREXA.add_coupling_constraints</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_coupling_constraints(m::CoreModel, args...)</code></pre><p>Add coupling constraints to a plain <a href="#COBREXA.CoreModel"><code>CoreModel</code></a> (returns a <a href="#COBREXA.CoreModelCoupled"><code>CoreModelCoupled</code></a>).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/CoreModelCoupled.jl#L227-L232">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_coupling_constraints-Tuple{CoreModelCoupled, Vararg{Any, N} where N}" href="#COBREXA.add_coupling_constraints-Tuple{CoreModelCoupled, Vararg{Any, N} where N}"><code>COBREXA.add_coupling_constraints</code></a> — <span class="docstring-category">Method</span></header><section><div><p>Add constraints of the following form to a CoreModelCoupled and return a modified one.</p><p>Add constraints to a <a href="#COBREXA.CoreModelCoupled"><code>CoreModelCoupled</code></a> and return a modified one.</p><p>The arguments are same as for in-place <a href="#COBREXA.add_coupling_constraints!-Tuple{CoreModelCoupled, AbstractVector{Float64}, AbstractFloat, AbstractFloat}"><code>add_coupling_constraints!</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/CoreModelCoupled.jl#L214-L220">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_reactions-Tuple{CoreModelCoupled, CoreModel}" href="#COBREXA.add_reactions-Tuple{CoreModelCoupled, CoreModel}"><code>COBREXA.add_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_reactions(m1::CoreModelCoupled, m2::CoreModel; check_consistency = false)</code></pre><p>Add all reactions from <code>m2</code> to <code>m1</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/CoreModelCoupled.jl#L107-L112">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_reactions-Union{Tuple{K}, Tuple{V2}, Tuple{V1}, Tuple{CoreModelCoupled, V1, V2, AbstractFloat, AbstractFloat, AbstractFloat, String, K}} where {V1&lt;:AbstractVector{Float64}, V2&lt;:AbstractVector{Float64}, K&lt;:AbstractVector{String}}" href="#COBREXA.add_reactions-Union{Tuple{K}, Tuple{V2}, Tuple{V1}, Tuple{CoreModelCoupled, V1, V2, AbstractFloat, AbstractFloat, AbstractFloat, String, K}} where {V1&lt;:AbstractVector{Float64}, V2&lt;:AbstractVector{Float64}, K&lt;:AbstractVector{String}}"><code>COBREXA.add_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_reactions(
+) where {V&lt;:VecType}</code></pre><p>In-place add a single coupling constraint in form</p><pre><code class="language-none">    cₗ ≤ C x ≤ cᵤ</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/CoreModelCoupled.jl#L261-L273">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_coupling_constraints-Tuple{CoreModel, Vararg{Any, N} where N}" href="#COBREXA.add_coupling_constraints-Tuple{CoreModel, Vararg{Any, N} where N}"><code>COBREXA.add_coupling_constraints</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_coupling_constraints(m::CoreModel, args...)</code></pre><p>Add coupling constraints to a plain <a href="#COBREXA.CoreModel"><code>CoreModel</code></a> (returns a <a href="#COBREXA.CoreModelCoupled"><code>CoreModelCoupled</code></a>).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/CoreModelCoupled.jl#L227-L232">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_coupling_constraints-Tuple{CoreModelCoupled, Vararg{Any, N} where N}" href="#COBREXA.add_coupling_constraints-Tuple{CoreModelCoupled, Vararg{Any, N} where N}"><code>COBREXA.add_coupling_constraints</code></a> — <span class="docstring-category">Method</span></header><section><div><p>Add constraints of the following form to a CoreModelCoupled and return a modified one.</p><p>Add constraints to a <a href="#COBREXA.CoreModelCoupled"><code>CoreModelCoupled</code></a> and return a modified one.</p><p>The arguments are same as for in-place <a href="#COBREXA.add_coupling_constraints!-Tuple{CoreModelCoupled, AbstractVector{Float64}, AbstractFloat, AbstractFloat}"><code>add_coupling_constraints!</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/CoreModelCoupled.jl#L214-L220">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_reactions-Tuple{CoreModelCoupled, CoreModel}" href="#COBREXA.add_reactions-Tuple{CoreModelCoupled, CoreModel}"><code>COBREXA.add_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_reactions(m1::CoreModelCoupled, m2::CoreModel; check_consistency = false)</code></pre><p>Add all reactions from <code>m2</code> to <code>m1</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/CoreModelCoupled.jl#L107-L112">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_reactions-Union{Tuple{K}, Tuple{V2}, Tuple{V1}, Tuple{CoreModelCoupled, V1, V2, AbstractFloat, AbstractFloat, AbstractFloat, String, K}} where {V1&lt;:AbstractVector{Float64}, V2&lt;:AbstractVector{Float64}, K&lt;:AbstractVector{String}}" href="#COBREXA.add_reactions-Union{Tuple{K}, Tuple{V2}, Tuple{V1}, Tuple{CoreModelCoupled, V1, V2, AbstractFloat, AbstractFloat, AbstractFloat, String, K}} where {V1&lt;:AbstractVector{Float64}, V2&lt;:AbstractVector{Float64}, K&lt;:AbstractVector{String}}"><code>COBREXA.add_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_reactions(
     m::CoreModelCoupled,
     s::V1,
     b::V2,
@@ -160,7 +160,7 @@ m4 = remove_metabolites(model, first(indexin([&quot;glc__D_e&quot;], metabolites
     rxn::String,
     mets::K;
     check_consistency = false,
-) where {V1&lt;:VecType,V2&lt;:VecType,K&lt;:StringVecType}</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/CoreModelCoupled.jl#L33-L46">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_reactions-Union{Tuple{K}, Tuple{V}, Tuple{M}, Tuple{CoreModelCoupled, M, V, V, V, V, K, K}} where {M&lt;:AbstractMatrix{Float64}, V&lt;:AbstractVector{Float64}, K&lt;:AbstractVector{String}}" href="#COBREXA.add_reactions-Union{Tuple{K}, Tuple{V}, Tuple{M}, Tuple{CoreModelCoupled, M, V, V, V, V, K, K}} where {M&lt;:AbstractMatrix{Float64}, V&lt;:AbstractVector{Float64}, K&lt;:AbstractVector{String}}"><code>COBREXA.add_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_reactions(
+) where {V1&lt;:VecType,V2&lt;:VecType,K&lt;:StringVecType}</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/CoreModelCoupled.jl#L33-L46">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_reactions-Union{Tuple{K}, Tuple{V}, Tuple{M}, Tuple{CoreModelCoupled, M, V, V, V, V, K, K}} where {M&lt;:AbstractMatrix{Float64}, V&lt;:AbstractVector{Float64}, K&lt;:AbstractVector{String}}" href="#COBREXA.add_reactions-Union{Tuple{K}, Tuple{V}, Tuple{M}, Tuple{CoreModelCoupled, M, V, V, V, V, K, K}} where {M&lt;:AbstractMatrix{Float64}, V&lt;:AbstractVector{Float64}, K&lt;:AbstractVector{String}}"><code>COBREXA.add_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_reactions(
     m::CoreModelCoupled,
     Sp::M,
     b::V,
@@ -170,7 +170,7 @@ m4 = remove_metabolites(model, first(indexin([&quot;glc__D_e&quot;], metabolites
     rxns::K,
     mets::K;
     check_consistency = false,
-) where {M&lt;:MatType,V&lt;:VecType,K&lt;:StringVecType}</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/CoreModelCoupled.jl#L123-L136">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_reactions-Union{Tuple{V2}, Tuple{V1}, Tuple{CoreModelCoupled, V1, V2, AbstractFloat, AbstractFloat, AbstractFloat}} where {V1&lt;:AbstractVector{Float64}, V2&lt;:AbstractVector{Float64}}" href="#COBREXA.add_reactions-Union{Tuple{V2}, Tuple{V1}, Tuple{CoreModelCoupled, V1, V2, AbstractFloat, AbstractFloat, AbstractFloat}} where {V1&lt;:AbstractVector{Float64}, V2&lt;:AbstractVector{Float64}}"><code>COBREXA.add_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_reactions(
+) where {M&lt;:MatType,V&lt;:VecType,K&lt;:StringVecType}</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/CoreModelCoupled.jl#L123-L136">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_reactions-Union{Tuple{V2}, Tuple{V1}, Tuple{CoreModelCoupled, V1, V2, AbstractFloat, AbstractFloat, AbstractFloat}} where {V1&lt;:AbstractVector{Float64}, V2&lt;:AbstractVector{Float64}}" href="#COBREXA.add_reactions-Union{Tuple{V2}, Tuple{V1}, Tuple{CoreModelCoupled, V1, V2, AbstractFloat, AbstractFloat, AbstractFloat}} where {V1&lt;:AbstractVector{Float64}, V2&lt;:AbstractVector{Float64}}"><code>COBREXA.add_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_reactions(
     m::CoreModelCoupled,
     s::V1,
     b::V2,
@@ -178,7 +178,7 @@ m4 = remove_metabolites(model, first(indexin([&quot;glc__D_e&quot;], metabolites
     xl::AbstractFloat,
     xu::AbstractFloat;
     check_consistency = false,
-) where {V1&lt;:VecType,V2&lt;:VecType}</code></pre><p>Add reaction(s) to a <code>CoreModelCoupled</code> model <code>m</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/CoreModelCoupled.jl#L1-L14">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_reactions-Union{Tuple{V}, Tuple{M}, Tuple{CoreModelCoupled, M, V, V, V, V}} where {M&lt;:AbstractMatrix{Float64}, V&lt;:AbstractVector{Float64}}" href="#COBREXA.add_reactions-Union{Tuple{V}, Tuple{M}, Tuple{CoreModelCoupled, M, V, V, V, V}} where {M&lt;:AbstractMatrix{Float64}, V&lt;:AbstractVector{Float64}}"><code>COBREXA.add_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_reactions(
+) where {V1&lt;:VecType,V2&lt;:VecType}</code></pre><p>Add reaction(s) to a <code>CoreModelCoupled</code> model <code>m</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/CoreModelCoupled.jl#L1-L14">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_reactions-Union{Tuple{V}, Tuple{M}, Tuple{CoreModelCoupled, M, V, V, V, V}} where {M&lt;:AbstractMatrix{Float64}, V&lt;:AbstractVector{Float64}}" href="#COBREXA.add_reactions-Union{Tuple{V}, Tuple{M}, Tuple{CoreModelCoupled, M, V, V, V, V}} where {M&lt;:AbstractMatrix{Float64}, V&lt;:AbstractVector{Float64}}"><code>COBREXA.add_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_reactions(
     m::CoreModelCoupled,
     Sp::M,
     b::V,
@@ -186,12 +186,12 @@ m4 = remove_metabolites(model, first(indexin([&quot;glc__D_e&quot;], metabolites
     xl::V,
     xu::V;
     check_consistency = false,
-) where {M&lt;:MatType,V&lt;:VecType}</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/CoreModelCoupled.jl#L77-L88">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.change_coupling_bounds!-Union{Tuple{V}, Tuple{CoreModelCoupled, Vector{Int64}}} where V&lt;:AbstractVector{Float64}" href="#COBREXA.change_coupling_bounds!-Union{Tuple{V}, Tuple{CoreModelCoupled, Vector{Int64}}} where V&lt;:AbstractVector{Float64}"><code>COBREXA.change_coupling_bounds!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">change_coupling_bounds!(
+) where {M&lt;:MatType,V&lt;:VecType}</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/CoreModelCoupled.jl#L77-L88">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.change_coupling_bounds!-Union{Tuple{V}, Tuple{CoreModelCoupled, Vector{Int64}}} where V&lt;:AbstractVector{Float64}" href="#COBREXA.change_coupling_bounds!-Union{Tuple{V}, Tuple{CoreModelCoupled, Vector{Int64}}} where V&lt;:AbstractVector{Float64}"><code>COBREXA.change_coupling_bounds!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">change_coupling_bounds!(
     model::CoreModelCoupled,
     constraints::Vector{Int};
     cl::V = Float64[],
     cu::V = Float64[],
-) where {V&lt;:VecType}</code></pre><p>Change the lower and/or upper bounds (<code>cl</code> and <code>cu</code>) for the given list of coupling constraints.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/CoreModelCoupled.jl#L330-L340">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.remove_coupling_constraints!-Tuple{CoreModelCoupled, Int64}" href="#COBREXA.remove_coupling_constraints!-Tuple{CoreModelCoupled, Int64}"><code>COBREXA.remove_coupling_constraints!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">remove_coupling_constraints!(m::CoreModelCoupled, constraint::Int)</code></pre><p>Removes a single coupling constraints from a <a href="#COBREXA.CoreModelCoupled"><code>CoreModelCoupled</code></a> in-place.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/CoreModelCoupled.jl#L306-L311">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.remove_coupling_constraints!-Tuple{CoreModelCoupled, Vector{Int64}}" href="#COBREXA.remove_coupling_constraints!-Tuple{CoreModelCoupled, Vector{Int64}}"><code>COBREXA.remove_coupling_constraints!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">remove_coupling_constraints!(m::CoreModelCoupled, constraints::Vector{Int})</code></pre><p>Removes a set of coupling constraints from a <a href="#COBREXA.CoreModelCoupled"><code>CoreModelCoupled</code></a> in-place.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/CoreModelCoupled.jl#L316-L321">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.remove_coupling_constraints-Tuple{CoreModelCoupled, Vararg{Any, N} where N}" href="#COBREXA.remove_coupling_constraints-Tuple{CoreModelCoupled, Vararg{Any, N} where N}"><code>COBREXA.remove_coupling_constraints</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">remove_coupling_constraints(m::CoreModelCoupled, args...)</code></pre><p>Remove coupling constraints from the linear model, and return the modified model. Arguments are the same as for in-place version <a href="#COBREXA.remove_coupling_constraints!-Tuple{CoreModelCoupled, Int64}"><code>remove_coupling_constraints!</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/CoreModelCoupled.jl#L292-L298">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.remove_reactions-Tuple{CoreModelCoupled, Integer}" href="#COBREXA.remove_reactions-Tuple{CoreModelCoupled, Integer}"><code>COBREXA.remove_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">remove_reactions(m::CoreModelCoupled, rxn::Integer)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/CoreModelCoupled.jl#L184-L187">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.remove_reactions-Tuple{CoreModelCoupled, String}" href="#COBREXA.remove_reactions-Tuple{CoreModelCoupled, String}"><code>COBREXA.remove_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">remove_reactions(m::CoreModelCoupled, rxn::String)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/CoreModelCoupled.jl#L192-L195">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.remove_reactions-Tuple{CoreModelCoupled, Vector{Int64}}" href="#COBREXA.remove_reactions-Tuple{CoreModelCoupled, Vector{Int64}}"><code>COBREXA.remove_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">remove_reactions(m::CoreModelCoupled, rxns::Vector{Int})</code></pre><p>Remove reaction(s) from a <code>CoreModelCoupled</code>.</p><p>Also removes any metabolites not involved in any reaction after the deletion.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/CoreModelCoupled.jl#L167-L174">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.remove_reactions-Tuple{CoreModelCoupled, Vector{String}}" href="#COBREXA.remove_reactions-Tuple{CoreModelCoupled, Vector{String}}"><code>COBREXA.remove_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">remove_reactions(m::CoreModelCoupled, rxns::Vector{String})</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/CoreModelCoupled.jl#L200-L203">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.:⟵-Tuple{Union{Nothing, Metabolite, MetaboliteWithCoefficient, Vector{MetaboliteWithCoefficient}}, Union{Nothing, Metabolite, MetaboliteWithCoefficient, Vector{MetaboliteWithCoefficient}}}" href="#COBREXA.:⟵-Tuple{Union{Nothing, Metabolite, MetaboliteWithCoefficient, Vector{MetaboliteWithCoefficient}}, Union{Nothing, Metabolite, MetaboliteWithCoefficient, Vector{MetaboliteWithCoefficient}}}"><code>COBREXA.:⟵</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">⟵(
+) where {V&lt;:VecType}</code></pre><p>Change the lower and/or upper bounds (<code>cl</code> and <code>cu</code>) for the given list of coupling constraints.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/CoreModelCoupled.jl#L330-L340">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.remove_coupling_constraints!-Tuple{CoreModelCoupled, Int64}" href="#COBREXA.remove_coupling_constraints!-Tuple{CoreModelCoupled, Int64}"><code>COBREXA.remove_coupling_constraints!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">remove_coupling_constraints!(m::CoreModelCoupled, constraint::Int)</code></pre><p>Removes a single coupling constraints from a <a href="#COBREXA.CoreModelCoupled"><code>CoreModelCoupled</code></a> in-place.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/CoreModelCoupled.jl#L306-L311">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.remove_coupling_constraints!-Tuple{CoreModelCoupled, Vector{Int64}}" href="#COBREXA.remove_coupling_constraints!-Tuple{CoreModelCoupled, Vector{Int64}}"><code>COBREXA.remove_coupling_constraints!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">remove_coupling_constraints!(m::CoreModelCoupled, constraints::Vector{Int})</code></pre><p>Removes a set of coupling constraints from a <a href="#COBREXA.CoreModelCoupled"><code>CoreModelCoupled</code></a> in-place.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/CoreModelCoupled.jl#L316-L321">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.remove_coupling_constraints-Tuple{CoreModelCoupled, Vararg{Any, N} where N}" href="#COBREXA.remove_coupling_constraints-Tuple{CoreModelCoupled, Vararg{Any, N} where N}"><code>COBREXA.remove_coupling_constraints</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">remove_coupling_constraints(m::CoreModelCoupled, args...)</code></pre><p>Remove coupling constraints from the linear model, and return the modified model. Arguments are the same as for in-place version <a href="#COBREXA.remove_coupling_constraints!-Tuple{CoreModelCoupled, Int64}"><code>remove_coupling_constraints!</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/CoreModelCoupled.jl#L292-L298">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.remove_reactions-Tuple{CoreModelCoupled, Integer}" href="#COBREXA.remove_reactions-Tuple{CoreModelCoupled, Integer}"><code>COBREXA.remove_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">remove_reactions(m::CoreModelCoupled, rxn::Integer)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/CoreModelCoupled.jl#L184-L187">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.remove_reactions-Tuple{CoreModelCoupled, String}" href="#COBREXA.remove_reactions-Tuple{CoreModelCoupled, String}"><code>COBREXA.remove_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">remove_reactions(m::CoreModelCoupled, rxn::String)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/CoreModelCoupled.jl#L192-L195">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.remove_reactions-Tuple{CoreModelCoupled, Vector{Int64}}" href="#COBREXA.remove_reactions-Tuple{CoreModelCoupled, Vector{Int64}}"><code>COBREXA.remove_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">remove_reactions(m::CoreModelCoupled, rxns::Vector{Int})</code></pre><p>Remove reaction(s) from a <code>CoreModelCoupled</code>.</p><p>Also removes any metabolites not involved in any reaction after the deletion.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/CoreModelCoupled.jl#L167-L174">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.remove_reactions-Tuple{CoreModelCoupled, Vector{String}}" href="#COBREXA.remove_reactions-Tuple{CoreModelCoupled, Vector{String}}"><code>COBREXA.remove_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">remove_reactions(m::CoreModelCoupled, rxns::Vector{String})</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/CoreModelCoupled.jl#L200-L203">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.:⟵-Tuple{Union{Nothing, Metabolite, MetaboliteWithCoefficient, Vector{MetaboliteWithCoefficient}}, Union{Nothing, Metabolite, MetaboliteWithCoefficient, Vector{MetaboliteWithCoefficient}}}" href="#COBREXA.:⟵-Tuple{Union{Nothing, Metabolite, MetaboliteWithCoefficient, Vector{MetaboliteWithCoefficient}}, Union{Nothing, Metabolite, MetaboliteWithCoefficient, Vector{MetaboliteWithCoefficient}}}"><code>COBREXA.:⟵</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">⟵(
     substrates::Union{
         Nothing,
         Metabolite,
@@ -204,7 +204,7 @@ m4 = remove_metabolites(model, first(indexin([&quot;glc__D_e&quot;], metabolites
         MetaboliteWithCoefficient,
         Vector{MetaboliteWithCoefficient}
     },
-)</code></pre><p>Make a reverse-only <a href="#COBREXA.Reaction"><code>Reaction</code></a> from <code>substrates</code> and <code>products</code>. An equivalent alternative is <code>←</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/Reaction.jl#L102-L120">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.:⟶-Tuple{Union{Nothing, Metabolite, MetaboliteWithCoefficient, Vector{MetaboliteWithCoefficient}}, Union{Nothing, Metabolite, MetaboliteWithCoefficient, Vector{MetaboliteWithCoefficient}}}" href="#COBREXA.:⟶-Tuple{Union{Nothing, Metabolite, MetaboliteWithCoefficient, Vector{MetaboliteWithCoefficient}}, Union{Nothing, Metabolite, MetaboliteWithCoefficient, Vector{MetaboliteWithCoefficient}}}"><code>COBREXA.:⟶</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">⟶(
+)</code></pre><p>Make a reverse-only <a href="#COBREXA.Reaction"><code>Reaction</code></a> from <code>substrates</code> and <code>products</code>. An equivalent alternative is <code>←</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/Reaction.jl#L102-L120">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.:⟶-Tuple{Union{Nothing, Metabolite, MetaboliteWithCoefficient, Vector{MetaboliteWithCoefficient}}, Union{Nothing, Metabolite, MetaboliteWithCoefficient, Vector{MetaboliteWithCoefficient}}}" href="#COBREXA.:⟶-Tuple{Union{Nothing, Metabolite, MetaboliteWithCoefficient, Vector{MetaboliteWithCoefficient}}, Union{Nothing, Metabolite, MetaboliteWithCoefficient, Vector{MetaboliteWithCoefficient}}}"><code>COBREXA.:⟶</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">⟶(
     substrates::Union{
         Nothing,
         Metabolite,
@@ -217,7 +217,7 @@ m4 = remove_metabolites(model, first(indexin([&quot;glc__D_e&quot;], metabolites
         MetaboliteWithCoefficient,
         Vector{MetaboliteWithCoefficient}
     },
-)</code></pre><p>Make a forward-only <a href="#COBREXA.Reaction"><code>Reaction</code></a> from <code>substrates</code> and <code>products</code>. An equivalent alternative is <code>→</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/Reaction.jl#L64-L82">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.:⟷-Tuple{Union{Nothing, Metabolite, MetaboliteWithCoefficient, Vector{MetaboliteWithCoefficient}}, Union{Nothing, Metabolite, MetaboliteWithCoefficient, Vector{MetaboliteWithCoefficient}}}" href="#COBREXA.:⟷-Tuple{Union{Nothing, Metabolite, MetaboliteWithCoefficient, Vector{MetaboliteWithCoefficient}}, Union{Nothing, Metabolite, MetaboliteWithCoefficient, Vector{MetaboliteWithCoefficient}}}"><code>COBREXA.:⟷</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">⟷(
+)</code></pre><p>Make a forward-only <a href="#COBREXA.Reaction"><code>Reaction</code></a> from <code>substrates</code> and <code>products</code>. An equivalent alternative is <code>→</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/Reaction.jl#L64-L82">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.:⟷-Tuple{Union{Nothing, Metabolite, MetaboliteWithCoefficient, Vector{MetaboliteWithCoefficient}}, Union{Nothing, Metabolite, MetaboliteWithCoefficient, Vector{MetaboliteWithCoefficient}}}" href="#COBREXA.:⟷-Tuple{Union{Nothing, Metabolite, MetaboliteWithCoefficient, Vector{MetaboliteWithCoefficient}}, Union{Nothing, Metabolite, MetaboliteWithCoefficient, Vector{MetaboliteWithCoefficient}}}"><code>COBREXA.:⟷</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">⟷(
     substrates::Union{
         Nothing,
         Metabolite,
@@ -230,15 +230,15 @@ m4 = remove_metabolites(model, first(indexin([&quot;glc__D_e&quot;], metabolites
         MetaboliteWithCoefficient,
         Vector{MetaboliteWithCoefficient}
     },
-)</code></pre><p>Make a bidirectional (reversible) <a href="#COBREXA.Reaction"><code>Reaction</code></a> from <code>substrates</code> and <code>products</code>. An equivalent alternative is <code>↔</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/Reaction.jl#L140-L158">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_gene!-Tuple{StandardModel, Gene}" href="#COBREXA.add_gene!-Tuple{StandardModel, Gene}"><code>COBREXA.add_gene!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_gene!(model::StandardModel, genes::Gene)</code></pre><p>Add <code>gene</code> to <code>model</code> based on gene <code>id</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/StandardModel.jl#L48-L52">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_genes!-Tuple{StandardModel, Vector{Gene}}" href="#COBREXA.add_genes!-Tuple{StandardModel, Vector{Gene}}"><code>COBREXA.add_genes!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_genes!(model::StandardModel, genes::Vector{Gene})</code></pre><p>Add <code>genes</code> to <code>model</code> based on gene <code>id</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/StandardModel.jl#L37-L41">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_metabolite!-Tuple{StandardModel, Metabolite}" href="#COBREXA.add_metabolite!-Tuple{StandardModel, Metabolite}"><code>COBREXA.add_metabolite!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_metabolite!(model::StandardModel, met::Metabolite)</code></pre><p>Add <code>met</code> to <code>model</code> based on metabolite <code>id</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/StandardModel.jl#L30-L34">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_metabolites!-Tuple{StandardModel, Vector{Metabolite}}" href="#COBREXA.add_metabolites!-Tuple{StandardModel, Vector{Metabolite}}"><code>COBREXA.add_metabolites!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_metabolites!(model::StandardModel, mets::Vector{Metabolite})</code></pre><p>Add <code>mets</code> to <code>model</code> based on metabolite <code>id</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/StandardModel.jl#L19-L23">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_reaction!-Tuple{StandardModel, Reaction}" href="#COBREXA.add_reaction!-Tuple{StandardModel, Reaction}"><code>COBREXA.add_reaction!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_reaction!(model::StandardModel, rxn::Reaction)</code></pre><p>Add <code>rxn</code> to <code>model</code> based on reaction <code>id</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/StandardModel.jl#L12-L16">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_reactions!-Tuple{StandardModel, Vector{Reaction}}" href="#COBREXA.add_reactions!-Tuple{StandardModel, Vector{Reaction}}"><code>COBREXA.add_reactions!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_reactions!(model::StandardModel, rxns::Vector{Reaction})</code></pre><p>Add <code>rxns</code> to <code>model</code> based on reaction <code>id</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/StandardModel.jl#L1-L5">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.remove_gene!-Tuple{StandardModel, String}" href="#COBREXA.remove_gene!-Tuple{StandardModel, String}"><code>COBREXA.remove_gene!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">remove_gene!(
+)</code></pre><p>Make a bidirectional (reversible) <a href="#COBREXA.Reaction"><code>Reaction</code></a> from <code>substrates</code> and <code>products</code>. An equivalent alternative is <code>↔</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/Reaction.jl#L140-L158">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_gene!-Tuple{StandardModel, Gene}" href="#COBREXA.add_gene!-Tuple{StandardModel, Gene}"><code>COBREXA.add_gene!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_gene!(model::StandardModel, genes::Gene)</code></pre><p>Add <code>gene</code> to <code>model</code> based on gene <code>id</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/StandardModel.jl#L48-L52">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_genes!-Tuple{StandardModel, Vector{Gene}}" href="#COBREXA.add_genes!-Tuple{StandardModel, Vector{Gene}}"><code>COBREXA.add_genes!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_genes!(model::StandardModel, genes::Vector{Gene})</code></pre><p>Add <code>genes</code> to <code>model</code> based on gene <code>id</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/StandardModel.jl#L37-L41">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_metabolite!-Tuple{StandardModel, Metabolite}" href="#COBREXA.add_metabolite!-Tuple{StandardModel, Metabolite}"><code>COBREXA.add_metabolite!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_metabolite!(model::StandardModel, met::Metabolite)</code></pre><p>Add <code>met</code> to <code>model</code> based on metabolite <code>id</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/StandardModel.jl#L30-L34">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_metabolites!-Tuple{StandardModel, Vector{Metabolite}}" href="#COBREXA.add_metabolites!-Tuple{StandardModel, Vector{Metabolite}}"><code>COBREXA.add_metabolites!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_metabolites!(model::StandardModel, mets::Vector{Metabolite})</code></pre><p>Add <code>mets</code> to <code>model</code> based on metabolite <code>id</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/StandardModel.jl#L19-L23">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_reaction!-Tuple{StandardModel, Reaction}" href="#COBREXA.add_reaction!-Tuple{StandardModel, Reaction}"><code>COBREXA.add_reaction!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_reaction!(model::StandardModel, rxn::Reaction)</code></pre><p>Add <code>rxn</code> to <code>model</code> based on reaction <code>id</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/StandardModel.jl#L12-L16">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_reactions!-Tuple{StandardModel, Vector{Reaction}}" href="#COBREXA.add_reactions!-Tuple{StandardModel, Vector{Reaction}}"><code>COBREXA.add_reactions!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_reactions!(model::StandardModel, rxns::Vector{Reaction})</code></pre><p>Add <code>rxns</code> to <code>model</code> based on reaction <code>id</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/StandardModel.jl#L1-L5">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.remove_gene!-Tuple{StandardModel, String}" href="#COBREXA.remove_gene!-Tuple{StandardModel, String}"><code>COBREXA.remove_gene!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">remove_gene!(
     model::StandardModel,
     id::Vector{String};
     knockout_reactions::Bool = false,
-)</code></pre><p>Remove gene with <code>id</code> from <code>model</code>. If <code>knockout_reactions</code> is true, then also constrain reactions that require the genes to function to carry zero flux.</p><p><strong>Example</strong></p><pre><code class="language-none">remove_gene!(model, &quot;g1&quot;)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/StandardModel.jl#L198-L212">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.remove_genes!-Tuple{StandardModel, Vector{String}}" href="#COBREXA.remove_genes!-Tuple{StandardModel, Vector{String}}"><code>COBREXA.remove_genes!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">remove_genes!(
+)</code></pre><p>Remove gene with <code>id</code> from <code>model</code>. If <code>knockout_reactions</code> is true, then also constrain reactions that require the genes to function to carry zero flux.</p><p><strong>Example</strong></p><pre><code class="language-none">remove_gene!(model, &quot;g1&quot;)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/StandardModel.jl#L198-L212">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.remove_genes!-Tuple{StandardModel, Vector{String}}" href="#COBREXA.remove_genes!-Tuple{StandardModel, Vector{String}}"><code>COBREXA.remove_genes!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">remove_genes!(
     model::StandardModel,
     ids::Vector{String};
     knockout_reactions::Bool = false,
-)</code></pre><p>Remove all genes with <code>ids</code> from <code>model</code>. If <code>knockout_reactions</code> is true, then also constrain reactions that require the genes to function to carry zero flux.</p><p><strong>Example</strong></p><pre><code class="language-none">remove_genes!(model, [&quot;g1&quot;, &quot;g2&quot;])</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/StandardModel.jl#L165-L179">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.remove_metabolite!-Tuple{StandardModel, String}" href="#COBREXA.remove_metabolite!-Tuple{StandardModel, String}"><code>COBREXA.remove_metabolite!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">remove_metabolite!(model::StandardModel, id::String)</code></pre><p>Remove metabolite with <code>id</code> from <code>model</code>. Warning, this could leave the model inconsistent, e.g. a reaction might require the deleted metabolite, in which case analysis functions will error.</p><p><strong>Example</strong></p><pre><code class="language-none">remove_metabolite!(model, &quot;atp_c&quot;)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/StandardModel.jl#L151-L162">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.remove_metabolites!-Tuple{StandardModel, Vector{String}}" href="#COBREXA.remove_metabolites!-Tuple{StandardModel, Vector{String}}"><code>COBREXA.remove_metabolites!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">remove_metabolites!(model::StandardModel, ids::Vector{String})</code></pre><p>Remove all metabolites with <code>ids</code> from <code>model</code>. Warning, this could leave the model inconsistent, e.g. a reaction might require the deleted metabolite, in which case analysis functions will error.</p><p><strong>Example</strong></p><pre><code class="language-none">remove_metabolites!(model, [&quot;atp_c&quot;, &quot;adp_c&quot;])</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/StandardModel.jl#L135-L146">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.remove_reaction!-Tuple{StandardModel, String}" href="#COBREXA.remove_reaction!-Tuple{StandardModel, String}"><code>COBREXA.remove_reaction!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">remove_reaction!(model::StandardModel, id::String)</code></pre><p>Remove reaction with <code>id</code> from <code>model</code>. Note, may result in orphan metabolites.</p><p><strong>Example</strong></p><pre><code class="language-none">remove_reaction!(model, &quot;EX_glc__D_e&quot;)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/StandardModel.jl#L123-L132">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.remove_reactions!-Tuple{StandardModel, Vector{String}}" href="#COBREXA.remove_reactions!-Tuple{StandardModel, Vector{String}}"><code>COBREXA.remove_reactions!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">remove_reactions!(model::StandardModel, ids::Vector{String})</code></pre><p>Remove all reactions with <code>ids</code> from <code>model</code>. Note, may result in orphan metabolites.</p><p><strong>Example</strong></p><pre><code class="language-none">remove_reactions!(model, [&quot;EX_glc__D_e&quot;, &quot;fba&quot;])</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/StandardModel.jl#L109-L118">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.@add_reactions!-Tuple{Symbol, Expr}" href="#COBREXA.@add_reactions!-Tuple{Symbol, Expr}"><code>COBREXA.@add_reactions!</code></a> — <span class="docstring-category">Macro</span></header><section><div><pre><code class="language-julia">@add_reactions!(model::Symbol, ex::Expr)</code></pre><p>Shortcut to add multiple reactions and their lower and upper bounds</p><p><strong>Call variants</strong></p><pre><code class="language-none">@add_reactions! model begin
+)</code></pre><p>Remove all genes with <code>ids</code> from <code>model</code>. If <code>knockout_reactions</code> is true, then also constrain reactions that require the genes to function to carry zero flux.</p><p><strong>Example</strong></p><pre><code class="language-none">remove_genes!(model, [&quot;g1&quot;, &quot;g2&quot;])</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/StandardModel.jl#L165-L179">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.remove_metabolite!-Tuple{StandardModel, String}" href="#COBREXA.remove_metabolite!-Tuple{StandardModel, String}"><code>COBREXA.remove_metabolite!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">remove_metabolite!(model::StandardModel, id::String)</code></pre><p>Remove metabolite with <code>id</code> from <code>model</code>. Warning, this could leave the model inconsistent, e.g. a reaction might require the deleted metabolite, in which case analysis functions will error.</p><p><strong>Example</strong></p><pre><code class="language-none">remove_metabolite!(model, &quot;atp_c&quot;)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/StandardModel.jl#L151-L162">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.remove_metabolites!-Tuple{StandardModel, Vector{String}}" href="#COBREXA.remove_metabolites!-Tuple{StandardModel, Vector{String}}"><code>COBREXA.remove_metabolites!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">remove_metabolites!(model::StandardModel, ids::Vector{String})</code></pre><p>Remove all metabolites with <code>ids</code> from <code>model</code>. Warning, this could leave the model inconsistent, e.g. a reaction might require the deleted metabolite, in which case analysis functions will error.</p><p><strong>Example</strong></p><pre><code class="language-none">remove_metabolites!(model, [&quot;atp_c&quot;, &quot;adp_c&quot;])</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/StandardModel.jl#L135-L146">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.remove_reaction!-Tuple{StandardModel, String}" href="#COBREXA.remove_reaction!-Tuple{StandardModel, String}"><code>COBREXA.remove_reaction!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">remove_reaction!(model::StandardModel, id::String)</code></pre><p>Remove reaction with <code>id</code> from <code>model</code>. Note, may result in orphan metabolites.</p><p><strong>Example</strong></p><pre><code class="language-none">remove_reaction!(model, &quot;EX_glc__D_e&quot;)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/StandardModel.jl#L123-L132">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.remove_reactions!-Tuple{StandardModel, Vector{String}}" href="#COBREXA.remove_reactions!-Tuple{StandardModel, Vector{String}}"><code>COBREXA.remove_reactions!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">remove_reactions!(model::StandardModel, ids::Vector{String})</code></pre><p>Remove all reactions with <code>ids</code> from <code>model</code>. Note, may result in orphan metabolites.</p><p><strong>Example</strong></p><pre><code class="language-none">remove_reactions!(model, [&quot;EX_glc__D_e&quot;, &quot;fba&quot;])</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/StandardModel.jl#L109-L118">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.@add_reactions!-Tuple{Symbol, Expr}" href="#COBREXA.@add_reactions!-Tuple{Symbol, Expr}"><code>COBREXA.@add_reactions!</code></a> — <span class="docstring-category">Macro</span></header><section><div><pre><code class="language-julia">@add_reactions!(model::Symbol, ex::Expr)</code></pre><p>Shortcut to add multiple reactions and their lower and upper bounds</p><p><strong>Call variants</strong></p><pre><code class="language-none">@add_reactions! model begin
     reaction_name, reaction
 end
 
@@ -252,21 +252,21 @@ end</code></pre><p><strong>Examples</strong></p><pre><code class="language-none"
     &quot;v1&quot;, nothing ⟶ A, 0, 500
     &quot;v2&quot;, A ⟷ B + C, -500
     &quot;v3&quot;, B + C ⟶ nothing
-end</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/StandardModel.jl#L55-L85">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_model_with_exchanges-Tuple{CoreModel, MetabolicModel, Vector{String}, Vector{String}}" href="#COBREXA.add_model_with_exchanges-Tuple{CoreModel, MetabolicModel, Vector{String}, Vector{String}}"><code>COBREXA.add_model_with_exchanges</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_model_with_exchanges(
+end</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/StandardModel.jl#L55-L85">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_model_with_exchanges-Tuple{CoreModel, MetabolicModel, Vector{String}, Vector{String}}" href="#COBREXA.add_model_with_exchanges-Tuple{CoreModel, MetabolicModel, Vector{String}, Vector{String}}"><code>COBREXA.add_model_with_exchanges</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_model_with_exchanges(
     community::CoreModel,
     model::MetabolicModel,
     exchange_rxn_ids::Vector{String},
     exchange_met_ids::Vector{String};
     model_name = &quot;unknown_species&quot;,
     biomass_id = nothing,
-)::CoreModel</code></pre><p>Add <code>model</code> to <code>community</code>, which is a pre-existing community model with <code>exchange_rxn_ids</code> and <code>exchange_met_ids</code>. The <code>model_name</code> is appended to each reaction and metabolite, see <a href="#COBREXA.join_with_exchanges-Union{Tuple{M}, Tuple{Vector{M}, Vector{String}, Vector{String}}} where M&lt;:MetabolicModel"><code>join_with_exchanges</code></a>. If <code>biomass_id</code> is specified then a biomass metabolite for <code>model</code> is also added to the resulting model. The column corresponding to the <code>biomass_id</code> reaction then produces this new biomass metabolite with unit coefficient. Note, <code>exchange_rxn_ids</code> and <code>exchange_met_ids</code> must already exist in the <code>community</code> model.</p><p><strong>Example</strong></p><pre><code class="language-none">community = add_model_with_exchanges(community, model, exchange_rxn_ids, exchange_met_ids; model_name=&quot;species_2&quot;, biomass_id=&quot;BIOMASS_Ecoli_core_w_GAM&quot;)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/community.jl#L62-L85">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_objective!-Tuple{CoreModel, Vector{String}}" href="#COBREXA.add_objective!-Tuple{CoreModel, Vector{String}}"><code>COBREXA.add_objective!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_objective!(
+)::CoreModel</code></pre><p>Add <code>model</code> to <code>community</code>, which is a pre-existing community model with <code>exchange_rxn_ids</code> and <code>exchange_met_ids</code>. The <code>model_name</code> is appended to each reaction and metabolite, see <a href="#COBREXA.join_with_exchanges-Union{Tuple{M}, Tuple{Vector{M}, Vector{String}, Vector{String}}} where M&lt;:MetabolicModel"><code>join_with_exchanges</code></a>. If <code>biomass_id</code> is specified then a biomass metabolite for <code>model</code> is also added to the resulting model. The column corresponding to the <code>biomass_id</code> reaction then produces this new biomass metabolite with unit coefficient. Note, <code>exchange_rxn_ids</code> and <code>exchange_met_ids</code> must already exist in the <code>community</code> model.</p><p><strong>Example</strong></p><pre><code class="language-none">community = add_model_with_exchanges(community, model, exchange_rxn_ids, exchange_met_ids; model_name=&quot;species_2&quot;, biomass_id=&quot;BIOMASS_Ecoli_core_w_GAM&quot;)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/community.jl#L62-L85">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.add_objective!-Tuple{CoreModel, Vector{String}}" href="#COBREXA.add_objective!-Tuple{CoreModel, Vector{String}}"><code>COBREXA.add_objective!</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">add_objective!(
     community::CoreModel,
     objective_mets::Vector{String};
     objective_weights = Float64[],
     objective_column_index = 0,
 )</code></pre><p>Add an objective to the <code>community</code> model. Supply the string names of the objective metabolites in <code>objective_mets</code>. Optionally specify the weight to assign each metabolite in the objective function, if unassigned then equal weight is assumed. Also, optionally specify whether the objective already exists in the model by assigning <code>objective_column_index</code>. If unassigned then an objective column will be added, otherwise the column at <code>objective_column_index</code> will be updated.</p><p>Note, the weights are negated inside the function so that the objective metabolites are seen as reagents/substrates, not products in the reaction equation.</p><p><strong>Example</strong></p><pre><code class="language-none">add_objective!(model, [&quot;met1&quot;, &quot;met2&quot;]) # adds a new column with weights = [1,1]
 add_objective!(model, [&quot;met1&quot;, &quot;met2&quot;]; objective_weights=[0.1, 0.9]) # adds a new column
-add_objective!(model, [&quot;met1&quot;, &quot;met2&quot;]; objective_weights=[0.1, 0.9], objective_column_index=10) # updates column 10</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/community.jl#L1-L26">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.join_with_exchanges-Union{Tuple{M}, Tuple{Vector{M}, Vector{String}, Vector{String}}} where M&lt;:MetabolicModel" href="#COBREXA.join_with_exchanges-Union{Tuple{M}, Tuple{Vector{M}, Vector{String}, Vector{String}}} where M&lt;:MetabolicModel"><code>COBREXA.join_with_exchanges</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">join_with_exchanges(models::Vector{M},
+add_objective!(model, [&quot;met1&quot;, &quot;met2&quot;]; objective_weights=[0.1, 0.9], objective_column_index=10) # updates column 10</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/community.jl#L1-L26">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.join_with_exchanges-Union{Tuple{M}, Tuple{Vector{M}, Vector{String}, Vector{String}}} where M&lt;:MetabolicModel" href="#COBREXA.join_with_exchanges-Union{Tuple{M}, Tuple{Vector{M}, Vector{String}, Vector{String}}} where M&lt;:MetabolicModel"><code>COBREXA.join_with_exchanges</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">join_with_exchanges(models::Vector{M},
     exchange_rxn_ids::Vector{String},
     exchange_met_ids::Vector{String};
     add_biomass_objective=false,
@@ -296,7 +296,7 @@ community = join_with_exchanges(
     exchange_met_ids;
     add_biomass_objective = true,
     biomass_ids = biomass_ids,
-)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/community.jl#L172-L243">source</a></section></article><h3 id="Model-variant-specifications"><a class="docs-heading-anchor" href="#Model-variant-specifications">Model variant specifications</a><a id="Model-variant-specifications-1"></a><a class="docs-heading-anchor-permalink" href="#Model-variant-specifications" title="Permalink"></a></h3><article class="docstring"><header><a class="docstring-binding" id="COBREXA.with_added_reactions-Tuple" href="#COBREXA.with_added_reactions-Tuple"><code>COBREXA.with_added_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">with_added_reactions(args...; kwargs...)</code></pre><p>Specifies a model variant with reactions added. Forwards the arguments to <a href="#COBREXA.add_reactions-Tuple{CoreModel, CoreModel}"><code>add_reactions</code></a>. Intended to be used with <a href="#COBREXA.screen-Union{Tuple{MetabolicModel}, Tuple{N}, Tuple{T}, Tuple{V}} where {V&lt;:(AbstractVector{T} where T), T&lt;:Tuple, N}"><code>screen</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/modifications/generic.jl#L27-L32">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.with_changed_bound-Tuple" href="#COBREXA.with_changed_bound-Tuple"><code>COBREXA.with_changed_bound</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">with_changed_bound(args...; kwargs...)</code></pre><p>Specifies a model variant that has a new bound set. Forwards arguments to <a href="@ref"><code>change_bound</code></a>. Intended for usage with <a href="#COBREXA.screen-Union{Tuple{MetabolicModel}, Tuple{N}, Tuple{T}, Tuple{V}} where {V&lt;:(AbstractVector{T} where T), T&lt;:Tuple, N}"><code>screen</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/modifications/generic.jl#L1-L6">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.with_changed_bounds-Tuple" href="#COBREXA.with_changed_bounds-Tuple"><code>COBREXA.with_changed_bounds</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">with_changed_bounds(args...; kwargs...)</code></pre><p>Specifies a model variant that has new bounds set. Forwards arguments to <a href="@ref"><code>change_bounds</code></a>. Intended for usage with <a href="#COBREXA.screen-Union{Tuple{MetabolicModel}, Tuple{N}, Tuple{T}, Tuple{V}} where {V&lt;:(AbstractVector{T} where T), T&lt;:Tuple, N}"><code>screen</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/modifications/generic.jl#L9-L14">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.with_removed_metabolites-Tuple" href="#COBREXA.with_removed_metabolites-Tuple"><code>COBREXA.with_removed_metabolites</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">with_removed_metabolites(args...; kwargs...)</code></pre><p>Specifies a model variant without specified metabolites. Forwards arguments to <a href="#COBREXA.remove_metabolites-Tuple{CoreModel, Any}"><code>remove_metabolites</code></a>. Intended to be used with <a href="#COBREXA.screen-Union{Tuple{MetabolicModel}, Tuple{N}, Tuple{T}, Tuple{V}} where {V&lt;:(AbstractVector{T} where T), T&lt;:Tuple, N}"><code>screen</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/modifications/generic.jl#L17-L22">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.with_removed_reactions-Tuple" href="#COBREXA.with_removed_reactions-Tuple"><code>COBREXA.with_removed_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">with_removed_reactions(args...; kwargs...)</code></pre><p>Specifies a model variant with specified reactions removed. Forwards arguments to <a href="#COBREXA.remove_reactions-Tuple{CoreModel, Integer}"><code>remove_reactions</code></a>. Intended to be used with <a href="#COBREXA.screen-Union{Tuple{MetabolicModel}, Tuple{N}, Tuple{T}, Tuple{V}} where {V&lt;:(AbstractVector{T} where T), T&lt;:Tuple, N}"><code>screen</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/reconstruction/modifications/generic.jl#L35-L40">source</a></section></article><h2 id="Analysis-functions"><a class="docs-heading-anchor" href="#Analysis-functions">Analysis functions</a><a id="Analysis-functions-1"></a><a class="docs-heading-anchor-permalink" href="#Analysis-functions" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-binding" id="COBREXA.flux_balance_analysis-Union{Tuple{M}, Tuple{M, Any}} where M&lt;:MetabolicModel" href="#COBREXA.flux_balance_analysis-Union{Tuple{M}, Tuple{M, Any}} where M&lt;:MetabolicModel"><code>COBREXA.flux_balance_analysis</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">flux_balance_analysis(
+)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/community.jl#L172-L243">source</a></section></article><h3 id="Model-variant-specifications"><a class="docs-heading-anchor" href="#Model-variant-specifications">Model variant specifications</a><a id="Model-variant-specifications-1"></a><a class="docs-heading-anchor-permalink" href="#Model-variant-specifications" title="Permalink"></a></h3><article class="docstring"><header><a class="docstring-binding" id="COBREXA.with_added_reactions-Tuple" href="#COBREXA.with_added_reactions-Tuple"><code>COBREXA.with_added_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">with_added_reactions(args...; kwargs...)</code></pre><p>Specifies a model variant with reactions added. Forwards the arguments to <a href="#COBREXA.add_reactions-Tuple{CoreModel, CoreModel}"><code>add_reactions</code></a>. Intended to be used with <a href="#COBREXA.screen-Union{Tuple{MetabolicModel}, Tuple{N}, Tuple{T}, Tuple{V}} where {V&lt;:(AbstractVector{T} where T), T&lt;:Tuple, N}"><code>screen</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/modifications/generic.jl#L27-L32">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.with_changed_bound-Tuple" href="#COBREXA.with_changed_bound-Tuple"><code>COBREXA.with_changed_bound</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">with_changed_bound(args...; kwargs...)</code></pre><p>Specifies a model variant that has a new bound set. Forwards arguments to <a href="@ref"><code>change_bound</code></a>. Intended for usage with <a href="#COBREXA.screen-Union{Tuple{MetabolicModel}, Tuple{N}, Tuple{T}, Tuple{V}} where {V&lt;:(AbstractVector{T} where T), T&lt;:Tuple, N}"><code>screen</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/modifications/generic.jl#L1-L6">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.with_changed_bounds-Tuple" href="#COBREXA.with_changed_bounds-Tuple"><code>COBREXA.with_changed_bounds</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">with_changed_bounds(args...; kwargs...)</code></pre><p>Specifies a model variant that has new bounds set. Forwards arguments to <a href="@ref"><code>change_bounds</code></a>. Intended for usage with <a href="#COBREXA.screen-Union{Tuple{MetabolicModel}, Tuple{N}, Tuple{T}, Tuple{V}} where {V&lt;:(AbstractVector{T} where T), T&lt;:Tuple, N}"><code>screen</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/modifications/generic.jl#L9-L14">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.with_removed_metabolites-Tuple" href="#COBREXA.with_removed_metabolites-Tuple"><code>COBREXA.with_removed_metabolites</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">with_removed_metabolites(args...; kwargs...)</code></pre><p>Specifies a model variant without specified metabolites. Forwards arguments to <a href="#COBREXA.remove_metabolites-Tuple{CoreModel, Any}"><code>remove_metabolites</code></a>. Intended to be used with <a href="#COBREXA.screen-Union{Tuple{MetabolicModel}, Tuple{N}, Tuple{T}, Tuple{V}} where {V&lt;:(AbstractVector{T} where T), T&lt;:Tuple, N}"><code>screen</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/modifications/generic.jl#L17-L22">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.with_removed_reactions-Tuple" href="#COBREXA.with_removed_reactions-Tuple"><code>COBREXA.with_removed_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">with_removed_reactions(args...; kwargs...)</code></pre><p>Specifies a model variant with specified reactions removed. Forwards arguments to <a href="#COBREXA.remove_reactions-Tuple{CoreModel, Integer}"><code>remove_reactions</code></a>. Intended to be used with <a href="#COBREXA.screen-Union{Tuple{MetabolicModel}, Tuple{N}, Tuple{T}, Tuple{V}} where {V&lt;:(AbstractVector{T} where T), T&lt;:Tuple, N}"><code>screen</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/reconstruction/modifications/generic.jl#L35-L40">source</a></section></article><h2 id="Analysis-functions"><a class="docs-heading-anchor" href="#Analysis-functions">Analysis functions</a><a id="Analysis-functions-1"></a><a class="docs-heading-anchor-permalink" href="#Analysis-functions" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-binding" id="COBREXA.flux_balance_analysis-Union{Tuple{M}, Tuple{M, Any}} where M&lt;:MetabolicModel" href="#COBREXA.flux_balance_analysis-Union{Tuple{M}, Tuple{M, Any}} where M&lt;:MetabolicModel"><code>COBREXA.flux_balance_analysis</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">flux_balance_analysis(
     model::M,
     optimizer;
     modifications = [],
@@ -309,11 +309,11 @@ value.(solution[:x])  # extract flux steady state from the optimizer
 biomass_reaction_id = findfirst(model.reactions, &quot;BIOMASS_Ecoli_core_w_GAM&quot;)
 
 modified_solution = flux_balance_analysis(model, GLPK.optimizer;
-    modifications=[change_objective(biomass_reaction_id)])</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/analysis/flux_balance_analysis.jl#L31-L70">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.flux_balance_analysis_dict-Tuple{MetabolicModel, Vararg{Any, N} where N}" href="#COBREXA.flux_balance_analysis_dict-Tuple{MetabolicModel, Vararg{Any, N} where N}"><code>COBREXA.flux_balance_analysis_dict</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">flux_balance_analysis_dict(model::MetabolicModel, args...)::Union{Dict{String, Float64},Nothing}</code></pre><p>A variant of FBA that returns a dictionary assigning fluxes to reactions, if the solution is found. Arguments are passed to <a href="#COBREXA.flux_balance_analysis-Union{Tuple{M}, Tuple{M, Any}} where M&lt;:MetabolicModel"><code>flux_balance_analysis</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/analysis/flux_balance_analysis.jl#L15-L20">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.flux_balance_analysis_vec-Tuple" href="#COBREXA.flux_balance_analysis_vec-Tuple"><code>COBREXA.flux_balance_analysis_vec</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">flux_balance_analysis_vec(args...)::Union{Vector{Float64},Nothing}</code></pre><p>A variant of FBA that returns a vector of fluxes in the same order as reactions of the model, if the solution is found.</p><p>Arguments are passed to <a href="#COBREXA.flux_balance_analysis-Union{Tuple{M}, Tuple{M, Any}} where M&lt;:MetabolicModel"><code>flux_balance_analysis</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/analysis/flux_balance_analysis.jl#L1-L8">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA._FVA_add_constraint-NTuple{4, Any}" href="#COBREXA._FVA_add_constraint-NTuple{4, Any}"><code>COBREXA._FVA_add_constraint</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">_FVA_add_constraint(model, c, x, Z)</code></pre><p>Internal helper function for adding constraints to a model. Exists mainly because for avoiding namespace problems on remote workers.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/analysis/flux_variability_analysis.jl#L154-L159">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA._FVA_optimize_reaction-Tuple{Any, Any, Any}" href="#COBREXA._FVA_optimize_reaction-Tuple{Any, Any, Any}"><code>COBREXA._FVA_optimize_reaction</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">_FVA_get_opt(model, rid)</code></pre><p>Internal helper for creating the optimized model on a remote worker, for avoiding namespace problems.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/analysis/flux_variability_analysis.jl#L165-L170">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.flux_variability_analysis-Tuple{MetabolicModel, Any}" href="#COBREXA.flux_variability_analysis-Tuple{MetabolicModel, Any}"><code>COBREXA.flux_variability_analysis</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">flux_variability_analysis(
+    modifications=[change_objective(biomass_reaction_id)])</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/analysis/flux_balance_analysis.jl#L31-L70">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.flux_balance_analysis_dict-Tuple{MetabolicModel, Vararg{Any, N} where N}" href="#COBREXA.flux_balance_analysis_dict-Tuple{MetabolicModel, Vararg{Any, N} where N}"><code>COBREXA.flux_balance_analysis_dict</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">flux_balance_analysis_dict(model::MetabolicModel, args...)::Union{Dict{String, Float64},Nothing}</code></pre><p>A variant of FBA that returns a dictionary assigning fluxes to reactions, if the solution is found. Arguments are passed to <a href="#COBREXA.flux_balance_analysis-Union{Tuple{M}, Tuple{M, Any}} where M&lt;:MetabolicModel"><code>flux_balance_analysis</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/analysis/flux_balance_analysis.jl#L15-L20">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.flux_balance_analysis_vec-Tuple" href="#COBREXA.flux_balance_analysis_vec-Tuple"><code>COBREXA.flux_balance_analysis_vec</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">flux_balance_analysis_vec(args...)::Union{Vector{Float64},Nothing}</code></pre><p>A variant of FBA that returns a vector of fluxes in the same order as reactions of the model, if the solution is found.</p><p>Arguments are passed to <a href="#COBREXA.flux_balance_analysis-Union{Tuple{M}, Tuple{M, Any}} where M&lt;:MetabolicModel"><code>flux_balance_analysis</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/analysis/flux_balance_analysis.jl#L1-L8">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA._FVA_add_constraint-NTuple{4, Any}" href="#COBREXA._FVA_add_constraint-NTuple{4, Any}"><code>COBREXA._FVA_add_constraint</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">_FVA_add_constraint(model, c, x, Z)</code></pre><p>Internal helper function for adding constraints to a model. Exists mainly because for avoiding namespace problems on remote workers.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/analysis/flux_variability_analysis.jl#L154-L159">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA._FVA_optimize_reaction-Tuple{Any, Any, Any}" href="#COBREXA._FVA_optimize_reaction-Tuple{Any, Any, Any}"><code>COBREXA._FVA_optimize_reaction</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">_FVA_get_opt(model, rid)</code></pre><p>Internal helper for creating the optimized model on a remote worker, for avoiding namespace problems.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/analysis/flux_variability_analysis.jl#L165-L170">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.flux_variability_analysis-Tuple{MetabolicModel, Any}" href="#COBREXA.flux_variability_analysis-Tuple{MetabolicModel, Any}"><code>COBREXA.flux_variability_analysis</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">flux_variability_analysis(
     model::MetabolicModel,
     optimizer;
     kwargs...
-)</code></pre><p>A simpler version of <a href="#COBREXA.flux_variability_analysis-Tuple{MetabolicModel, Any}"><code>flux_variability_analysis</code></a> that maximizes and minimizes all reactions in the model. Arguments are forwarded.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/analysis/flux_variability_analysis.jl#L99-L108">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.flux_variability_analysis-Tuple{MetabolicModel, Vector{Int64}, Any}" href="#COBREXA.flux_variability_analysis-Tuple{MetabolicModel, Vector{Int64}, Any}"><code>COBREXA.flux_variability_analysis</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">flux_variability_analysis(
+)</code></pre><p>A simpler version of <a href="#COBREXA.flux_variability_analysis-Tuple{MetabolicModel, Any}"><code>flux_variability_analysis</code></a> that maximizes and minimizes all reactions in the model. Arguments are forwarded.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/analysis/flux_variability_analysis.jl#L99-L108">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.flux_variability_analysis-Tuple{MetabolicModel, Vector{Int64}, Any}" href="#COBREXA.flux_variability_analysis-Tuple{MetabolicModel, Vector{Int64}, Any}"><code>COBREXA.flux_variability_analysis</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">flux_variability_analysis(
     model::MetabolicModel,
     reactions::Vector{Int},
     optimizer;
@@ -326,7 +326,7 @@ s.t. S x = b
     xₗ ≤ x ≤ xᵤ
      cᵀx ≥ bounds(Z₀)[1]
      cᵀx ≤ bounds(Z₀)[2]</code></pre><p>where Z₀:= cᵀx₀ is the objective value of an optimal solution of the associated FBA problem (see <a href="#COBREXA.flux_balance_analysis-Union{Tuple{M}, Tuple{M, Any}} where M&lt;:MetabolicModel"><code>flux_balance_analysis</code></a> for a related analysis, also for explanation of the <code>modifications</code> argument).</p><p>The <code>bounds</code> is a user-supplied function that specifies the objective bounds for the variability optimizations, by default it restricts the flux objective value to the precise optimum reached in FBA. It can return <code>-Inf</code> and <code>Inf</code> in first and second pair to remove the limit. Use <a href="#COBREXA.gamma_bounds-Tuple{Any}"><code>gamma_bounds</code></a> and <a href="#COBREXA.objective_bounds-Tuple{Any}"><code>objective_bounds</code></a> for simple bounds.</p><p><code>optimizer</code> must be set to a <code>JuMP</code>-compatible optimizer. The computation of the individual optimization problems is transparently distributed to <code>workers</code> (see <code>Distributed.workers()</code>).</p><p><code>ret</code> is a function used to extract results from optimized JuMP models of the individual reactions. By default, it calls and returns the value of <code>JuMP.objective_value</code>. More information can be extracted e.g. by setting it to a function that returns a more elaborate data structure; such as <code>m -&gt; (JuMP.objective_value(m), JuMP.value.(m[:x]))</code>.</p><p>Returns a matrix of extracted <code>ret</code> values for minima and maxima, of total size (<code>length(reactions)</code>,2). The optimizer result status is checked with <a href="#COBREXA.is_solved-Tuple{Any}"><code>is_solved</code></a>; <code>nothing</code> is returned if the optimization failed for any reason.</p><p><strong>Example</strong></p><pre><code class="language-none">model = load_model(&quot;e_coli_core.json&quot;)
-flux_variability_analysis(model, [1, 2, 3, 42], GLPK.optimizer)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/analysis/flux_variability_analysis.jl#L1-L51">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.flux_variability_analysis_dict-Tuple{MetabolicModel, Any}" href="#COBREXA.flux_variability_analysis_dict-Tuple{MetabolicModel, Any}"><code>COBREXA.flux_variability_analysis_dict</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">flux_variability_analysis_dict(
+flux_variability_analysis(model, [1, 2, 3, 42], GLPK.optimizer)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/analysis/flux_variability_analysis.jl#L1-L51">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.flux_variability_analysis_dict-Tuple{MetabolicModel, Any}" href="#COBREXA.flux_variability_analysis_dict-Tuple{MetabolicModel, Any}"><code>COBREXA.flux_variability_analysis_dict</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">flux_variability_analysis_dict(
     model::MetabolicModel,
     optimizer;
     kwargs...
@@ -339,7 +339,7 @@ flux_variability_analysis(model, [1, 2, 3, 42], GLPK.optimizer)</code></pre></di
         change_constraint(&quot;EX_glc__D_e&quot;, -10, -10),
         change_constraint(&quot;EX_o2_e&quot;, 0.0, 0.0),
     ],
-)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/analysis/flux_variability_analysis.jl#L114-L138">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.parsimonious_flux_balance_analysis-Tuple{MetabolicModel, Any}" href="#COBREXA.parsimonious_flux_balance_analysis-Tuple{MetabolicModel, Any}"><code>COBREXA.parsimonious_flux_balance_analysis</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">parsimonious_flux_balance_analysis(
+)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/analysis/flux_variability_analysis.jl#L114-L138">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.parsimonious_flux_balance_analysis-Tuple{MetabolicModel, Any}" href="#COBREXA.parsimonious_flux_balance_analysis-Tuple{MetabolicModel, Any}"><code>COBREXA.parsimonious_flux_balance_analysis</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">parsimonious_flux_balance_analysis(
     model::MetabolicModel,
     optimizer;
     modifications = [],
@@ -352,7 +352,7 @@ s.t. S x = b
      xₗ ≤ x ≤ xᵤ
      μ = μ⁰</code></pre><p>Where the optimal solution of the FBA problem, μ⁰, has been added as an additional constraint. See &quot;Lewis, Nathan E, Hixson, Kim K, Conrad, Tom M, Lerman, Joshua A, Charusanti, Pep, Polpitiya, Ashoka D, Adkins, Joshua N, Schramm, Gunnar, Purvine, Samuel O, Lopez‐Ferrer, Daniel, Weitz, Karl K, Eils, Roland, König, Rainer, Smith, Richard D, Palsson, Bernhard Ø, (2010) Omic data from evolved E. coli are consistent with computed optimal growth from genome‐scale models. Molecular Systems Biology, 6. 390. doi: accession:10.1038/msb.2010.47&quot; for more details.</p><p>pFBA gets the model optimum by standard FBA (using <a href="#COBREXA.flux_balance_analysis-Union{Tuple{M}, Tuple{M, Any}} where M&lt;:MetabolicModel"><code>flux_balance_analysis</code></a> with <code>optimizer</code> and <code>modifications</code>), then finds a minimal total flux through the model that still satisfies the (slightly relaxed) optimum. This is done using a quadratic problem optimizer. If the original optimizer does not support quadratic optimization, it can be changed using the callback in <code>qp_modifications</code>, which are applied after the FBA. See the documentation of flux<em>balance</em>analysis for usage examples of modifications.</p><p>Thhe optimum relaxation sequence can be specified in <code>relax</code> parameter, it defaults to multiplicative range of <code>[1.0, 0.999999, ..., 0.99]</code> of the original bound.</p><p>Returns an optimized model that contains the pFBA solution; or <code>nothing</code> if the optimization failed.</p><p><strong>Example</strong></p><pre><code class="language-none">model = load_model(&quot;e_coli_core.json&quot;)
 optmodel = parsimonious_flux_balance_analysis(model, biomass, Gurobi.Optimizer)
-value.(solution[:x])  # extract the flux from the optimizer</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/analysis/parsimonious_flux_balance_analysis.jl#L1-L54">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.parsimonious_flux_balance_analysis_dict-Tuple{MetabolicModel, Vararg{Any, N} where N}" href="#COBREXA.parsimonious_flux_balance_analysis_dict-Tuple{MetabolicModel, Vararg{Any, N} where N}"><code>COBREXA.parsimonious_flux_balance_analysis_dict</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">parsimonious_flux_balance_analysis_dict(model::MetabolicModel, args...; kwargs...)</code></pre><p>Perform parsimonious flux balance analysis on <code>model</code> using <code>optimizer</code>. Returns a dictionary mapping the reaction IDs to fluxes. Arguments are forwarded to <a href="#COBREXA.parsimonious_flux_balance_analysis-Tuple{MetabolicModel, Any}"><code>parsimonious_flux_balance_analysis</code></a> internally.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/analysis/parsimonious_flux_balance_analysis.jl#L112-L118">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.parsimonious_flux_balance_analysis_vec-Tuple" href="#COBREXA.parsimonious_flux_balance_analysis_vec-Tuple"><code>COBREXA.parsimonious_flux_balance_analysis_vec</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">parsimonious_flux_balance_analysis_vec(args...; kwargs...)</code></pre><p>Perform parsimonious flux balance analysis on <code>model</code> using <code>optimizer</code>. Returns a vector of fluxes in the same order as the reactions in <code>model</code>. Arguments are forwarded to <a href="#COBREXA.parsimonious_flux_balance_analysis-Tuple{MetabolicModel, Any}"><code>parsimonious_flux_balance_analysis</code></a> internally.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/analysis/parsimonious_flux_balance_analysis.jl#L96-L103">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.screen-Union{Tuple{MetabolicModel}, Tuple{N}, Tuple{T}, Tuple{V}} where {V&lt;:(AbstractVector{T} where T), T&lt;:Tuple, N}" href="#COBREXA.screen-Union{Tuple{MetabolicModel}, Tuple{N}, Tuple{T}, Tuple{V}} where {V&lt;:(AbstractVector{T} where T), T&lt;:Tuple, N}"><code>COBREXA.screen</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">function screen(
+value.(solution[:x])  # extract the flux from the optimizer</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/analysis/parsimonious_flux_balance_analysis.jl#L1-L54">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.parsimonious_flux_balance_analysis_dict-Tuple{MetabolicModel, Vararg{Any, N} where N}" href="#COBREXA.parsimonious_flux_balance_analysis_dict-Tuple{MetabolicModel, Vararg{Any, N} where N}"><code>COBREXA.parsimonious_flux_balance_analysis_dict</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">parsimonious_flux_balance_analysis_dict(model::MetabolicModel, args...; kwargs...)</code></pre><p>Perform parsimonious flux balance analysis on <code>model</code> using <code>optimizer</code>. Returns a dictionary mapping the reaction IDs to fluxes. Arguments are forwarded to <a href="#COBREXA.parsimonious_flux_balance_analysis-Tuple{MetabolicModel, Any}"><code>parsimonious_flux_balance_analysis</code></a> internally.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/analysis/parsimonious_flux_balance_analysis.jl#L112-L118">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.parsimonious_flux_balance_analysis_vec-Tuple" href="#COBREXA.parsimonious_flux_balance_analysis_vec-Tuple"><code>COBREXA.parsimonious_flux_balance_analysis_vec</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">parsimonious_flux_balance_analysis_vec(args...; kwargs...)</code></pre><p>Perform parsimonious flux balance analysis on <code>model</code> using <code>optimizer</code>. Returns a vector of fluxes in the same order as the reactions in <code>model</code>. Arguments are forwarded to <a href="#COBREXA.parsimonious_flux_balance_analysis-Tuple{MetabolicModel, Any}"><code>parsimonious_flux_balance_analysis</code></a> internally.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/analysis/parsimonious_flux_balance_analysis.jl#L96-L103">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.screen-Union{Tuple{MetabolicModel}, Tuple{N}, Tuple{T}, Tuple{V}} where {V&lt;:(AbstractVector{T} where T), T&lt;:Tuple, N}" href="#COBREXA.screen-Union{Tuple{MetabolicModel}, Tuple{N}, Tuple{T}, Tuple{V}} where {V&lt;:(AbstractVector{T} where T), T&lt;:Tuple, N}"><code>COBREXA.screen</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">function screen(
     model::MetabolicModel;
     variants::Maybe{Array{V,N}} = nothing,
     analysis,
@@ -380,7 +380,7 @@ screen_variants(m,
         [reverse_reaction(5)],
         [reverse_reaction(3), reverse_reaction(6)]
     ],
-    mod -&gt; flux_balance_analysis_vec(mod, GLPK.Optimizer))  # run analysis</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/analysis/screening.jl#L2-L70">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.screen_variant" href="#COBREXA.screen_variant"><code>COBREXA.screen_variant</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia">screen_variant(model::MetabolicModel, variant::Vector, analysis, args = ())</code></pre><p>Helper function for <a href="#COBREXA.screen-Union{Tuple{MetabolicModel}, Tuple{N}, Tuple{T}, Tuple{V}} where {V&lt;:(AbstractVector{T} where T), T&lt;:Tuple, N}"><code>screen</code></a> that applies all single-argument functions in <code>variant</code> to the <code>model</code> (in order from &quot;first&quot; to &quot;last&quot;), and executes <code>analysis</code> on the result.</p><p>Can be used to test model variants locally.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/analysis/screening.jl#L123-L131">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.screen_variants-Tuple{Any, Any, Any}" href="#COBREXA.screen_variants-Tuple{Any, Any, Any}"><code>COBREXA.screen_variants</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">screen_variants(model, variants, analysis; workers=[myid()])</code></pre><p>A shortcut for <a href="#COBREXA.screen-Union{Tuple{MetabolicModel}, Tuple{N}, Tuple{T}, Tuple{V}} where {V&lt;:(AbstractVector{T} where T), T&lt;:Tuple, N}"><code>screen</code></a> that only works with model variants.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/analysis/screening.jl#L139-L143">source</a></section></article><h3 id="Analysis-modifications"><a class="docs-heading-anchor" href="#Analysis-modifications">Analysis modifications</a><a id="Analysis-modifications-1"></a><a class="docs-heading-anchor-permalink" href="#Analysis-modifications" title="Permalink"></a></h3><article class="docstring"><header><a class="docstring-binding" id="COBREXA._do_knockout-Tuple{MetabolicModel, Any, Vector{String}}" href="#COBREXA._do_knockout-Tuple{MetabolicModel, Any, Vector{String}}"><code>COBREXA._do_knockout</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">_do_knockout(model::MetabolicModel, opt_model)</code></pre><p>Internal helper for knockouts on generic MetabolicModels. This can be overloaded so that the knockouts may work differently (more efficiently) with other models.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/analysis/modifications/knockout.jl#L17-L23">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.knockout-Tuple{String}" href="#COBREXA.knockout-Tuple{String}"><code>COBREXA.knockout</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">knockout(gene_id::String)</code></pre><p>A helper variant of <a href="#COBREXA.knockout-Tuple{String}"><code>knockout</code></a> for a single gene.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/analysis/modifications/knockout.jl#L10-L14">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.knockout-Tuple{Vector{String}}" href="#COBREXA.knockout-Tuple{Vector{String}}"><code>COBREXA.knockout</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">knockout(gene_ids::Vector{String})</code></pre><p>A modification that zeroes the bounds of all reactions that would be knocked out by the specified genes (effectively disables the reactions).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/analysis/modifications/knockout.jl#L1-L6">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.change_constraint-Tuple{String, Any, Any}" href="#COBREXA.change_constraint-Tuple{String, Any, Any}"><code>COBREXA.change_constraint</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">change_constraint(id::String, lb, ub)</code></pre><p>Change the lower and upper bounds (<code>lb</code> and <code>ub</code> respectively) of reaction <code>id</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/analysis/modifications/optimizer.jl#L54-L58">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.change_objective-Tuple{Union{String, Vector{String}}}" href="#COBREXA.change_objective-Tuple{Union{String, Vector{String}}}"><code>COBREXA.change_objective</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">change_objective(new_objective::Union{String,Vector{String}}; weights=[], sense=MOI.MAX_SENSE)</code></pre><p>Modification that changes the objective function used in a constraint based analysis function.  <code>new_objective</code> can be a single reaction identifier, or an array of reactions identifiers.</p><p>Optionally, the objective can be weighted by a vector of <code>weights</code>, and a optimization <code>sense</code> can be set.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/analysis/modifications/optimizer.jl#L67-L76">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.change_optimizer-Tuple{Any}" href="#COBREXA.change_optimizer-Tuple{Any}"><code>COBREXA.change_optimizer</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">change_optimizer(optimizer)</code></pre><p>Change the JuMP optimizer used to run the optimization.</p><p>This may be used to try different approaches for reaching the optimum, and in problems that may require different optimizers for different parts, such as the <a href="#COBREXA.parsimonious_flux_balance_analysis-Tuple{MetabolicModel, Any}"><code>parsimonious_flux_balance_analysis</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/analysis/modifications/optimizer.jl#L15-L23">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.change_optimizer_attribute-Tuple{Any, Any}" href="#COBREXA.change_optimizer_attribute-Tuple{Any, Any}"><code>COBREXA.change_optimizer_attribute</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">change_optimizer_attribute(attribute_key, value)</code></pre><p>Change a JuMP optimizer attribute. The attributes are optimizer-specific, refer to the JuMP documentation and the documentation of the specific optimizer for usable keys and values.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/analysis/modifications/optimizer.jl#L28-L34">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.change_sense-Tuple{Any}" href="#COBREXA.change_sense-Tuple{Any}"><code>COBREXA.change_sense</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">change_sense(objective_sense)</code></pre><p>Change the objective sense of optimization. Possible arguments are <code>MOI.MAX_SENSE</code> and <code>MOI.MIN_SENSE</code>.</p><p>If you want to change the objective and sense at the same time, use <a href="#COBREXA.change_objective-Tuple{Union{String, Vector{String}}}"><code>change_objective</code></a> instead to do both at once.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/analysis/modifications/optimizer.jl#L2-L10">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.constrain_objective_value-Tuple{Any}" href="#COBREXA.constrain_objective_value-Tuple{Any}"><code>COBREXA.constrain_objective_value</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">constrain_objective_value(tolerance)</code></pre><p>Limit the objective value to <code>tolerance</code>-times the current objective value, as with <a href="#COBREXA.objective_bounds-Tuple{Any}"><code>objective_bounds</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/analysis/modifications/optimizer.jl#L40-L45">source</a></section></article><h3 id="Flux-sampling"><a class="docs-heading-anchor" href="#Flux-sampling">Flux sampling</a><a id="Flux-sampling-1"></a><a class="docs-heading-anchor-permalink" href="#Flux-sampling" title="Permalink"></a></h3><article class="docstring"><header><a class="docstring-binding" id="COBREXA._affine_hit_and_run_chain-NTuple{5, Any}" href="#COBREXA._affine_hit_and_run_chain-NTuple{5, Any}"><code>COBREXA._affine_hit_and_run_chain</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">_affine_hit_and_run_chain(warmup, lbs, ubs, iters, chain)</code></pre><p>Internal helper function for computing a single affine hit-and-run chain. The number of the chain is passed for possible future initialization of stable RNGs.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/analysis/sampling/affine_hit_and_run.jl#L73-L79">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.affine_hit_and_run-Tuple{Matrix{Float64}, Vector{Float64}, Vector{Float64}}" href="#COBREXA.affine_hit_and_run-Tuple{Matrix{Float64}, Vector{Float64}, Vector{Float64}}"><code>COBREXA.affine_hit_and_run</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">function affine_hit_and_run(
+    mod -&gt; flux_balance_analysis_vec(mod, GLPK.Optimizer))  # run analysis</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/analysis/screening.jl#L2-L70">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.screen_variant" href="#COBREXA.screen_variant"><code>COBREXA.screen_variant</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia">screen_variant(model::MetabolicModel, variant::Vector, analysis, args = ())</code></pre><p>Helper function for <a href="#COBREXA.screen-Union{Tuple{MetabolicModel}, Tuple{N}, Tuple{T}, Tuple{V}} where {V&lt;:(AbstractVector{T} where T), T&lt;:Tuple, N}"><code>screen</code></a> that applies all single-argument functions in <code>variant</code> to the <code>model</code> (in order from &quot;first&quot; to &quot;last&quot;), and executes <code>analysis</code> on the result.</p><p>Can be used to test model variants locally.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/analysis/screening.jl#L123-L131">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.screen_variants-Tuple{Any, Any, Any}" href="#COBREXA.screen_variants-Tuple{Any, Any, Any}"><code>COBREXA.screen_variants</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">screen_variants(model, variants, analysis; workers=[myid()])</code></pre><p>A shortcut for <a href="#COBREXA.screen-Union{Tuple{MetabolicModel}, Tuple{N}, Tuple{T}, Tuple{V}} where {V&lt;:(AbstractVector{T} where T), T&lt;:Tuple, N}"><code>screen</code></a> that only works with model variants.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/analysis/screening.jl#L139-L143">source</a></section></article><h3 id="Analysis-modifications"><a class="docs-heading-anchor" href="#Analysis-modifications">Analysis modifications</a><a id="Analysis-modifications-1"></a><a class="docs-heading-anchor-permalink" href="#Analysis-modifications" title="Permalink"></a></h3><article class="docstring"><header><a class="docstring-binding" id="COBREXA._do_knockout-Tuple{MetabolicModel, Any, Vector{String}}" href="#COBREXA._do_knockout-Tuple{MetabolicModel, Any, Vector{String}}"><code>COBREXA._do_knockout</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">_do_knockout(model::MetabolicModel, opt_model)</code></pre><p>Internal helper for knockouts on generic MetabolicModels. This can be overloaded so that the knockouts may work differently (more efficiently) with other models.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/analysis/modifications/knockout.jl#L17-L23">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.knockout-Tuple{String}" href="#COBREXA.knockout-Tuple{String}"><code>COBREXA.knockout</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">knockout(gene_id::String)</code></pre><p>A helper variant of <a href="#COBREXA.knockout-Tuple{String}"><code>knockout</code></a> for a single gene.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/analysis/modifications/knockout.jl#L10-L14">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.knockout-Tuple{Vector{String}}" href="#COBREXA.knockout-Tuple{Vector{String}}"><code>COBREXA.knockout</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">knockout(gene_ids::Vector{String})</code></pre><p>A modification that zeroes the bounds of all reactions that would be knocked out by the specified genes (effectively disables the reactions).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/analysis/modifications/knockout.jl#L1-L6">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.change_constraint-Tuple{String, Any, Any}" href="#COBREXA.change_constraint-Tuple{String, Any, Any}"><code>COBREXA.change_constraint</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">change_constraint(id::String, lb, ub)</code></pre><p>Change the lower and upper bounds (<code>lb</code> and <code>ub</code> respectively) of reaction <code>id</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/analysis/modifications/optimizer.jl#L54-L58">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.change_objective-Tuple{Union{String, Vector{String}}}" href="#COBREXA.change_objective-Tuple{Union{String, Vector{String}}}"><code>COBREXA.change_objective</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">change_objective(new_objective::Union{String,Vector{String}}; weights=[], sense=MOI.MAX_SENSE)</code></pre><p>Modification that changes the objective function used in a constraint based analysis function.  <code>new_objective</code> can be a single reaction identifier, or an array of reactions identifiers.</p><p>Optionally, the objective can be weighted by a vector of <code>weights</code>, and a optimization <code>sense</code> can be set.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/analysis/modifications/optimizer.jl#L67-L76">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.change_optimizer-Tuple{Any}" href="#COBREXA.change_optimizer-Tuple{Any}"><code>COBREXA.change_optimizer</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">change_optimizer(optimizer)</code></pre><p>Change the JuMP optimizer used to run the optimization.</p><p>This may be used to try different approaches for reaching the optimum, and in problems that may require different optimizers for different parts, such as the <a href="#COBREXA.parsimonious_flux_balance_analysis-Tuple{MetabolicModel, Any}"><code>parsimonious_flux_balance_analysis</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/analysis/modifications/optimizer.jl#L15-L23">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.change_optimizer_attribute-Tuple{Any, Any}" href="#COBREXA.change_optimizer_attribute-Tuple{Any, Any}"><code>COBREXA.change_optimizer_attribute</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">change_optimizer_attribute(attribute_key, value)</code></pre><p>Change a JuMP optimizer attribute. The attributes are optimizer-specific, refer to the JuMP documentation and the documentation of the specific optimizer for usable keys and values.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/analysis/modifications/optimizer.jl#L28-L34">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.change_sense-Tuple{Any}" href="#COBREXA.change_sense-Tuple{Any}"><code>COBREXA.change_sense</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">change_sense(objective_sense)</code></pre><p>Change the objective sense of optimization. Possible arguments are <code>MOI.MAX_SENSE</code> and <code>MOI.MIN_SENSE</code>.</p><p>If you want to change the objective and sense at the same time, use <a href="#COBREXA.change_objective-Tuple{Union{String, Vector{String}}}"><code>change_objective</code></a> instead to do both at once.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/analysis/modifications/optimizer.jl#L2-L10">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.constrain_objective_value-Tuple{Any}" href="#COBREXA.constrain_objective_value-Tuple{Any}"><code>COBREXA.constrain_objective_value</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">constrain_objective_value(tolerance)</code></pre><p>Limit the objective value to <code>tolerance</code>-times the current objective value, as with <a href="#COBREXA.objective_bounds-Tuple{Any}"><code>objective_bounds</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/analysis/modifications/optimizer.jl#L40-L45">source</a></section></article><h3 id="Flux-sampling"><a class="docs-heading-anchor" href="#Flux-sampling">Flux sampling</a><a id="Flux-sampling-1"></a><a class="docs-heading-anchor-permalink" href="#Flux-sampling" title="Permalink"></a></h3><article class="docstring"><header><a class="docstring-binding" id="COBREXA._affine_hit_and_run_chain-NTuple{5, Any}" href="#COBREXA._affine_hit_and_run_chain-NTuple{5, Any}"><code>COBREXA._affine_hit_and_run_chain</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">_affine_hit_and_run_chain(warmup, lbs, ubs, iters, chain)</code></pre><p>Internal helper function for computing a single affine hit-and-run chain. The number of the chain is passed for possible future initialization of stable RNGs.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/analysis/sampling/affine_hit_and_run.jl#L73-L79">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.affine_hit_and_run-Tuple{Matrix{Float64}, Vector{Float64}, Vector{Float64}}" href="#COBREXA.affine_hit_and_run-Tuple{Matrix{Float64}, Vector{Float64}, Vector{Float64}}"><code>COBREXA.affine_hit_and_run</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">function affine_hit_and_run(
     warmup_points::Matrix{Float64},
     lbs::Vector{Float64},
     ubs::Vector{Float64};
@@ -393,39 +393,39 @@ using Tulip
 model = load_model(StandardModel, model_path)
 
 warmup, lbs, ubs = warmup_from_variability(model, Tulip.Optimizer, 100)
-samples = affine_hit_and_run(warmup, lbs, ubs, sample_iters = 1:3)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/analysis/sampling/affine_hit_and_run.jl#L1-L41">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.warmup_from_variability" href="#COBREXA.warmup_from_variability"><code>COBREXA.warmup_from_variability</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia">function warmup_from_variability(
+samples = affine_hit_and_run(warmup, lbs, ubs, sample_iters = 1:3)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/analysis/sampling/affine_hit_and_run.jl#L1-L41">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.warmup_from_variability" href="#COBREXA.warmup_from_variability"><code>COBREXA.warmup_from_variability</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia">function warmup_from_variability(
     model::MetabolicModel,
     optimizer,
     min_reactions::Vector{Int}=1:n_reactions(model),
     max_reactions::Vector{Int}=1:n_reactions(model);
     modifications = [],
     workers::Vector{Int} = [myid()],
-)::Tuple{Matrix{Float64}, Vector{Float64}, Vector{Float64}}</code></pre><p>Generate FVA-like warmup points for samplers, by minimizing and maximizing the specified reactions. The result is returned as a matrix, each point occupies as single column in the result.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/analysis/sampling/warmup_variability.jl#L33-L46">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.warmup_from_variability-Tuple{MetabolicModel, Any, Int64}" href="#COBREXA.warmup_from_variability-Tuple{MetabolicModel, Any, Int64}"><code>COBREXA.warmup_from_variability</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">warmup_from_variability(
+)::Tuple{Matrix{Float64}, Vector{Float64}, Vector{Float64}}</code></pre><p>Generate FVA-like warmup points for samplers, by minimizing and maximizing the specified reactions. The result is returned as a matrix, each point occupies as single column in the result.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/analysis/sampling/warmup_variability.jl#L33-L46">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.warmup_from_variability-Tuple{MetabolicModel, Any, Int64}" href="#COBREXA.warmup_from_variability-Tuple{MetabolicModel, Any, Int64}"><code>COBREXA.warmup_from_variability</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">warmup_from_variability(
     model::MetabolicModel,
     optimizer,
     n_points::Int;
     kwargs...
-)</code></pre><p>Generates FVA-like warmup points for samplers, by selecting random points by minimizing and maximizing reactions. Can not return more than 2 times the number of reactions in the model.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/analysis/sampling/warmup_variability.jl#L1-L12">source</a></section></article><h2 id="Miscellaneous-utilities"><a class="docs-heading-anchor" href="#Miscellaneous-utilities">Miscellaneous utilities</a><a id="Miscellaneous-utilities-1"></a><a class="docs-heading-anchor-permalink" href="#Miscellaneous-utilities" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-binding" id="COBREXA.ambiguously_identified_items-Tuple{Dict{String, Dict{String, Set{String}}}}" href="#COBREXA.ambiguously_identified_items-Tuple{Dict{String, Dict{String, Set{String}}}}"><code>COBREXA.ambiguously_identified_items</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">ambiguously_identified_items(
+)</code></pre><p>Generates FVA-like warmup points for samplers, by selecting random points by minimizing and maximizing reactions. Can not return more than 2 times the number of reactions in the model.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/analysis/sampling/warmup_variability.jl#L1-L12">source</a></section></article><h2 id="Miscellaneous-utilities"><a class="docs-heading-anchor" href="#Miscellaneous-utilities">Miscellaneous utilities</a><a id="Miscellaneous-utilities-1"></a><a class="docs-heading-anchor-permalink" href="#Miscellaneous-utilities" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-binding" id="COBREXA.ambiguously_identified_items-Tuple{Dict{String, Dict{String, Set{String}}}}" href="#COBREXA.ambiguously_identified_items-Tuple{Dict{String, Dict{String, Set{String}}}}"><code>COBREXA.ambiguously_identified_items</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">ambiguously_identified_items(
     index::Dict{String,Dict{String,[String]}},
-)::Vector{String}</code></pre><p>Find items (genes, metabolites, ...) from the annotation index that are identified non-uniquely by at least one of their annotations.</p><p>This often indicates that the items are duplicate or miscategorized.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/utils/Annotation.jl#L44-L53">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.annotation_index-Tuple{AbstractDict{String, V} where V}" href="#COBREXA.annotation_index-Tuple{AbstractDict{String, V} where V}"><code>COBREXA.annotation_index</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">annotation_index(
+)::Vector{String}</code></pre><p>Find items (genes, metabolites, ...) from the annotation index that are identified non-uniquely by at least one of their annotations.</p><p>This often indicates that the items are duplicate or miscategorized.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/utils/Annotation.jl#L44-L53">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.annotation_index-Tuple{AbstractDict{String, V} where V}" href="#COBREXA.annotation_index-Tuple{AbstractDict{String, V} where V}"><code>COBREXA.annotation_index</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">annotation_index(
     xs::AbstractDict{String};
     annotations = _annotations,
-)::Dict{String,Dict{String,[String]}}</code></pre><p>Extract annotations from a dictionary of items <code>xs</code> and build an index that maps annotation &quot;kinds&quot; (e.g. <code>&quot;PubChem&quot;</code>) to the mapping from the annotations (e.g.  <code>&quot;COMPOUND_12345&quot;</code>) to item IDs that carry the annotations.</p><p>Function <code>annotations</code> is used to access the <code>Annotations</code> object in the dictionary values.</p><p>This is extremely useful for finding items by annotation data.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/utils/Annotation.jl#L6-L20">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.get_atoms-Tuple{Metabolite}" href="#COBREXA.get_atoms-Tuple{Metabolite}"><code>COBREXA.get_atoms</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">get_atoms(met::Metabolite)::MetaboliteFormula</code></pre><p>Simple wrapper for getting the atom dictionary count out of a <code>Metabolite</code>.</p><p>See also: <a href="#COBREXA.metabolite_formula-Tuple{MetabolicModel, String}"><code>metabolite_formula</code></a></p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/utils/Metabolite.jl#L1-L7">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.check_duplicate_reaction-Tuple{Reaction, OrderedCollections.OrderedDict{String, Reaction}}" href="#COBREXA.check_duplicate_reaction-Tuple{Reaction, OrderedCollections.OrderedDict{String, Reaction}}"><code>COBREXA.check_duplicate_reaction</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">check_duplicate_reaction(rxn::Reaction, rxns::Dict{String, Reaction}; only_metabolites=true)</code></pre><p>Check if <code>rxn</code> already exists in <code>rxns</code> but has another <code>id</code>. If <code>only_metabolites</code> is <code>true</code> then only the metabolite <code>id</code>s are checked. Otherwise, compares metabolite <code>id</code>s and the absolute value of their stoichiometric coefficients to those of <code>rxn</code>. If <code>rxn</code> has the same reaction equation as another reaction in <code>rxns</code>, the return the <code>id</code>. Otherwise return <code>nothing</code>.</p><p>See also: <a href="#COBREXA.is_mass_balanced-Tuple{StandardModel, Reaction}"><code>is_mass_balanced</code></a></p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/utils/Reaction.jl#L1-L11">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.is_boundary-Tuple{Reaction}" href="#COBREXA.is_boundary-Tuple{Reaction}"><code>COBREXA.is_boundary</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">is_boundary(rxn::Reaction)</code></pre><p>Return true if reaction is a boundary reaction, otherwise return false. Checks if boundary by inspecting number of metabolites in reaction equation. Boundary reactions have only one metabolite, e.g. an exchange reaction, or a sink/demand reaction.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/utils/Reaction.jl#L41-L47">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.is_mass_balanced-Tuple{StandardModel, Reaction}" href="#COBREXA.is_mass_balanced-Tuple{StandardModel, Reaction}"><code>COBREXA.is_mass_balanced</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">is_mass_balanced(model::StandardModel, rxn::Reaction)</code></pre><p>Checks if <code>rxn</code> is atom balanced. Returns a boolean for whether the reaction is balanced, and the associated balance of atoms for convenience (useful if not balanced).</p><p>See also: <a href="#COBREXA.get_atoms-Tuple{Metabolite}"><code>get_atoms</code></a>, <a href="#COBREXA.check_duplicate_reaction-Tuple{Reaction, OrderedCollections.OrderedDict{String, Reaction}}"><code>check_duplicate_reaction</code></a></p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/utils/Reaction.jl#L52-L59">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.serialize_model-Tuple{Serialized, String}" href="#COBREXA.serialize_model-Tuple{Serialized, String}"><code>COBREXA.serialize_model</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">serialize_model(model::Serialized, filename::String)::Serialized</code></pre><p>Specialization of <a href="#COBREXA.serialize_model-Tuple{Serialized, String}"><code>serialize_model</code></a> that prevents nested serialization of already-serialized models.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/utils/Serialized.jl#L17-L22">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.serialize_model-Union{Tuple{MM}, Tuple{MM, String}} where MM&lt;:MetabolicModel" href="#COBREXA.serialize_model-Union{Tuple{MM}, Tuple{MM, String}} where MM&lt;:MetabolicModel"><code>COBREXA.serialize_model</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">serialize_model(model::MM, filename::String)::Serialized{MM} where {MM&lt;:MetabolicModel}</code></pre><p>Serialize the <code>model</code> to file <code>filename</code>, returning a <a href="#COBREXA.Serialized"><code>Serialized</code></a> model that is able to load itself back automatically upon precaching by <a href="#COBREXA.precache!-Tuple{MetabolicModel}"><code>precache!</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/utils/Serialized.jl#L2-L8">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="Base.copy-Tuple{Gene}" href="#Base.copy-Tuple{Gene}"><code>Base.copy</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">Base.copy(g::Gene)</code></pre><p>Shallow copy of a <a href="#COBREXA.Gene"><code>Gene</code></a></p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/utils/StandardModel.jl#L47-L51">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="Base.copy-Tuple{Metabolite}" href="#Base.copy-Tuple{Metabolite}"><code>Base.copy</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">Base.copy(m::Metabolite)</code></pre><p>Shallow copy of a <a href="#COBREXA.Metabolite"><code>Metabolite</code></a></p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/utils/StandardModel.jl#L32-L36">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="Base.copy-Tuple{Reaction}" href="#Base.copy-Tuple{Reaction}"><code>Base.copy</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">Base.copy(r::Reaction)</code></pre><p>Shallow copy of a <a href="#COBREXA.Reaction"><code>Reaction</code></a></p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/utils/StandardModel.jl#L14-L18">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="Base.copy-Tuple{StandardModel}" href="#Base.copy-Tuple{StandardModel}"><code>Base.copy</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">Base.copy(m::StandardModel)</code></pre><p>Shallow copy of a <a href="#COBREXA.StandardModel"><code>StandardModel</code></a></p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/utils/StandardModel.jl#L2-L6">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.atom_exchange-Tuple{StandardModel, String}" href="#COBREXA.atom_exchange-Tuple{StandardModel, String}"><code>COBREXA.atom_exchange</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">atom_exchange(model::StandardModel, rxn_id::String)</code></pre><p>Specialized version of <a href="#COBREXA.atom_exchange-Tuple{StandardModel, String}"><code>atom_exchange</code></a> for <a href="#COBREXA.StandardModel"><code>StandardModel</code></a> that quickly returns a dictionary mapping the flux-relative stoichiometry of atoms through a single reaction in <code>model</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/utils/StandardModel.jl#L54-L60">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.atom_exchange-Tuple{MetabolicModel, Dict{String, Float64}}" href="#COBREXA.atom_exchange-Tuple{MetabolicModel, Dict{String, Float64}}"><code>COBREXA.atom_exchange</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">atom_exchange(model::MetabolicModel, flux_dict::Dict{String, Float64})</code></pre><p>Return a dictionary mapping the flux of atoms across the boundary of the model given <code>flux_dict</code> (the solution of a constraint based analysis) of reactions in <code>model</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/utils/atom_exchange.jl#L1-L6">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.gamma_bounds-Tuple{Any}" href="#COBREXA.gamma_bounds-Tuple{Any}"><code>COBREXA.gamma_bounds</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">gamma_bounds(gamma)</code></pre><p>A bounds-generating function for <a href="#COBREXA.flux_variability_analysis-Tuple{MetabolicModel, Any}"><code>flux_variability_analysis</code></a> that limits the objective value to be at least <code>gamma*Z₀</code>, as usual in COBRA packages. Use as the <code>bounds</code> argument:</p><pre><code class="language-none">flux_variability_analysis(model, some_optimizer; bounds = gamma_bounds(0.9))</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/utils/bounds.jl#L1-L10">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.objective_bounds-Tuple{Any}" href="#COBREXA.objective_bounds-Tuple{Any}"><code>COBREXA.objective_bounds</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">objective_bounds(tolerance)</code></pre><p>A bounds-generating function for <a href="#COBREXA.flux_variability_analysis-Tuple{MetabolicModel, Any}"><code>flux_variability_analysis</code></a> that limits the objective value to a small multiple of Z₀. Use as <code>bounds</code> argument, similarly to <a href="#COBREXA.gamma_bounds-Tuple{Any}"><code>gamma_bounds</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/utils/bounds.jl#L13-L19">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA._parse_formula-Tuple{String}" href="#COBREXA._parse_formula-Tuple{String}"><code>COBREXA._parse_formula</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">_parse_formula(f::String)::MetaboliteFormula</code></pre><p>Parse a formula in format <code>C2H6O</code> into a <a href="#COBREXA.MetaboliteFormula"><code>MetaboliteFormula</code></a>, which is basically a dictionary of atom counts in the molecule.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/utils/chemical_formulas.jl#L2-L7">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA._unparse_formula-Tuple{Dict{String, Int64}}" href="#COBREXA._unparse_formula-Tuple{Dict{String, Int64}}"><code>COBREXA._unparse_formula</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">_unparse_formula(f::MetaboliteFormula)::String</code></pre><p>Format <a href="#COBREXA.MetaboliteFormula"><code>MetaboliteFormula</code></a> to <code>String</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/utils/chemical_formulas.jl#L19-L23">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_fluxes-Tuple{MetabolicModel, Dict{String, Float64}}" href="#COBREXA.metabolite_fluxes-Tuple{MetabolicModel, Dict{String, Float64}}"><code>COBREXA.metabolite_fluxes</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolite_fluxes(model::MetabolicModel, flux_dict::Dict{String, Float64})</code></pre><p>Return two dictionaries of metabolite <code>id</code>s mapped to reactions that consume or produce them, given the flux distribution supplied in <code>flux_dict</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/utils/fluxes.jl#L1-L6">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA._parse_grr-Tuple{SBML.GeneProductAssociation}" href="#COBREXA._parse_grr-Tuple{SBML.GeneProductAssociation}"><code>COBREXA._parse_grr</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">_parse_grr(gpa::SBML.GeneProductAssociation)::GeneAssociation</code></pre><p>Parse <code>SBML.GeneProductAssociation</code> structure to the simpler GeneAssociation. The input must be (implicitly) in a positive DNF.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/utils/gene_associations.jl#L2-L7">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA._parse_grr-Tuple{String}" href="#COBREXA._parse_grr-Tuple{String}"><code>COBREXA._parse_grr</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">_parse_grr(s::String)::GeneAssociation</code></pre><p>Parse a DNF gene association rule in format <code>(YIL010W and YLR043C) or (YIL010W and YGR209C)</code> to <code>GeneAssociation. Also accepts</code>OR<code>,</code>|<code>,</code>||<code>,</code>AND<code>,</code>&amp;<code>, and</code>&amp;&amp;`.</p><p><strong>Example</strong></p><pre><code class="language-none">julia&gt; _parse_grr(&quot;(YIL010W and YLR043C) or (YIL010W and YGR209C)&quot;)
+)::Dict{String,Dict{String,[String]}}</code></pre><p>Extract annotations from a dictionary of items <code>xs</code> and build an index that maps annotation &quot;kinds&quot; (e.g. <code>&quot;PubChem&quot;</code>) to the mapping from the annotations (e.g.  <code>&quot;COMPOUND_12345&quot;</code>) to item IDs that carry the annotations.</p><p>Function <code>annotations</code> is used to access the <code>Annotations</code> object in the dictionary values.</p><p>This is extremely useful for finding items by annotation data.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/utils/Annotation.jl#L6-L20">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.get_atoms-Tuple{Metabolite}" href="#COBREXA.get_atoms-Tuple{Metabolite}"><code>COBREXA.get_atoms</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">get_atoms(met::Metabolite)::MetaboliteFormula</code></pre><p>Simple wrapper for getting the atom dictionary count out of a <code>Metabolite</code>.</p><p>See also: <a href="#COBREXA.metabolite_formula-Tuple{MetabolicModel, String}"><code>metabolite_formula</code></a></p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/utils/Metabolite.jl#L1-L7">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.check_duplicate_reaction-Tuple{Reaction, OrderedCollections.OrderedDict{String, Reaction}}" href="#COBREXA.check_duplicate_reaction-Tuple{Reaction, OrderedCollections.OrderedDict{String, Reaction}}"><code>COBREXA.check_duplicate_reaction</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">check_duplicate_reaction(rxn::Reaction, rxns::Dict{String, Reaction}; only_metabolites=true)</code></pre><p>Check if <code>rxn</code> already exists in <code>rxns</code> but has another <code>id</code>. If <code>only_metabolites</code> is <code>true</code> then only the metabolite <code>id</code>s are checked. Otherwise, compares metabolite <code>id</code>s and the absolute value of their stoichiometric coefficients to those of <code>rxn</code>. If <code>rxn</code> has the same reaction equation as another reaction in <code>rxns</code>, the return the <code>id</code>. Otherwise return <code>nothing</code>.</p><p>See also: <a href="#COBREXA.is_mass_balanced-Tuple{StandardModel, Reaction}"><code>is_mass_balanced</code></a></p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/utils/Reaction.jl#L1-L11">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.is_boundary-Tuple{Reaction}" href="#COBREXA.is_boundary-Tuple{Reaction}"><code>COBREXA.is_boundary</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">is_boundary(rxn::Reaction)</code></pre><p>Return true if reaction is a boundary reaction, otherwise return false. Checks if boundary by inspecting number of metabolites in reaction equation. Boundary reactions have only one metabolite, e.g. an exchange reaction, or a sink/demand reaction.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/utils/Reaction.jl#L41-L47">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.is_mass_balanced-Tuple{StandardModel, Reaction}" href="#COBREXA.is_mass_balanced-Tuple{StandardModel, Reaction}"><code>COBREXA.is_mass_balanced</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">is_mass_balanced(model::StandardModel, rxn::Reaction)</code></pre><p>Checks if <code>rxn</code> is atom balanced. Returns a boolean for whether the reaction is balanced, and the associated balance of atoms for convenience (useful if not balanced).</p><p>See also: <a href="#COBREXA.get_atoms-Tuple{Metabolite}"><code>get_atoms</code></a>, <a href="#COBREXA.check_duplicate_reaction-Tuple{Reaction, OrderedCollections.OrderedDict{String, Reaction}}"><code>check_duplicate_reaction</code></a></p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/utils/Reaction.jl#L52-L59">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.serialize_model-Tuple{Serialized, String}" href="#COBREXA.serialize_model-Tuple{Serialized, String}"><code>COBREXA.serialize_model</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">serialize_model(model::Serialized, filename::String)::Serialized</code></pre><p>Specialization of <a href="#COBREXA.serialize_model-Tuple{Serialized, String}"><code>serialize_model</code></a> that prevents nested serialization of already-serialized models.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/utils/Serialized.jl#L17-L22">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.serialize_model-Union{Tuple{MM}, Tuple{MM, String}} where MM&lt;:MetabolicModel" href="#COBREXA.serialize_model-Union{Tuple{MM}, Tuple{MM, String}} where MM&lt;:MetabolicModel"><code>COBREXA.serialize_model</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">serialize_model(model::MM, filename::String)::Serialized{MM} where {MM&lt;:MetabolicModel}</code></pre><p>Serialize the <code>model</code> to file <code>filename</code>, returning a <a href="#COBREXA.Serialized"><code>Serialized</code></a> model that is able to load itself back automatically upon precaching by <a href="#COBREXA.precache!-Tuple{MetabolicModel}"><code>precache!</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/utils/Serialized.jl#L2-L8">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="Base.copy-Tuple{Gene}" href="#Base.copy-Tuple{Gene}"><code>Base.copy</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">Base.copy(g::Gene)</code></pre><p>Shallow copy of a <a href="#COBREXA.Gene"><code>Gene</code></a></p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/utils/StandardModel.jl#L47-L51">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="Base.copy-Tuple{Metabolite}" href="#Base.copy-Tuple{Metabolite}"><code>Base.copy</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">Base.copy(m::Metabolite)</code></pre><p>Shallow copy of a <a href="#COBREXA.Metabolite"><code>Metabolite</code></a></p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/utils/StandardModel.jl#L32-L36">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="Base.copy-Tuple{Reaction}" href="#Base.copy-Tuple{Reaction}"><code>Base.copy</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">Base.copy(r::Reaction)</code></pre><p>Shallow copy of a <a href="#COBREXA.Reaction"><code>Reaction</code></a></p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/utils/StandardModel.jl#L14-L18">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="Base.copy-Tuple{StandardModel}" href="#Base.copy-Tuple{StandardModel}"><code>Base.copy</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">Base.copy(m::StandardModel)</code></pre><p>Shallow copy of a <a href="#COBREXA.StandardModel"><code>StandardModel</code></a></p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/utils/StandardModel.jl#L2-L6">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.atom_exchange-Tuple{StandardModel, String}" href="#COBREXA.atom_exchange-Tuple{StandardModel, String}"><code>COBREXA.atom_exchange</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">atom_exchange(model::StandardModel, rxn_id::String)</code></pre><p>Specialized version of <a href="#COBREXA.atom_exchange-Tuple{StandardModel, String}"><code>atom_exchange</code></a> for <a href="#COBREXA.StandardModel"><code>StandardModel</code></a> that quickly returns a dictionary mapping the flux-relative stoichiometry of atoms through a single reaction in <code>model</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/utils/StandardModel.jl#L54-L60">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.atom_exchange-Tuple{MetabolicModel, Dict{String, Float64}}" href="#COBREXA.atom_exchange-Tuple{MetabolicModel, Dict{String, Float64}}"><code>COBREXA.atom_exchange</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">atom_exchange(model::MetabolicModel, flux_dict::Dict{String, Float64})</code></pre><p>Return a dictionary mapping the flux of atoms across the boundary of the model given <code>flux_dict</code> (the solution of a constraint based analysis) of reactions in <code>model</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/utils/atom_exchange.jl#L1-L6">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.gamma_bounds-Tuple{Any}" href="#COBREXA.gamma_bounds-Tuple{Any}"><code>COBREXA.gamma_bounds</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">gamma_bounds(gamma)</code></pre><p>A bounds-generating function for <a href="#COBREXA.flux_variability_analysis-Tuple{MetabolicModel, Any}"><code>flux_variability_analysis</code></a> that limits the objective value to be at least <code>gamma*Z₀</code>, as usual in COBRA packages. Use as the <code>bounds</code> argument:</p><pre><code class="language-none">flux_variability_analysis(model, some_optimizer; bounds = gamma_bounds(0.9))</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/utils/bounds.jl#L1-L10">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.objective_bounds-Tuple{Any}" href="#COBREXA.objective_bounds-Tuple{Any}"><code>COBREXA.objective_bounds</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">objective_bounds(tolerance)</code></pre><p>A bounds-generating function for <a href="#COBREXA.flux_variability_analysis-Tuple{MetabolicModel, Any}"><code>flux_variability_analysis</code></a> that limits the objective value to a small multiple of Z₀. Use as <code>bounds</code> argument, similarly to <a href="#COBREXA.gamma_bounds-Tuple{Any}"><code>gamma_bounds</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/utils/bounds.jl#L13-L19">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA._parse_formula-Tuple{String}" href="#COBREXA._parse_formula-Tuple{String}"><code>COBREXA._parse_formula</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">_parse_formula(f::String)::MetaboliteFormula</code></pre><p>Parse a formula in format <code>C2H6O</code> into a <a href="#COBREXA.MetaboliteFormula"><code>MetaboliteFormula</code></a>, which is basically a dictionary of atom counts in the molecule.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/utils/chemical_formulas.jl#L2-L7">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA._unparse_formula-Tuple{Dict{String, Int64}}" href="#COBREXA._unparse_formula-Tuple{Dict{String, Int64}}"><code>COBREXA._unparse_formula</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">_unparse_formula(f::MetaboliteFormula)::String</code></pre><p>Format <a href="#COBREXA.MetaboliteFormula"><code>MetaboliteFormula</code></a> to <code>String</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/utils/chemical_formulas.jl#L19-L23">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.metabolite_fluxes-Tuple{MetabolicModel, Dict{String, Float64}}" href="#COBREXA.metabolite_fluxes-Tuple{MetabolicModel, Dict{String, Float64}}"><code>COBREXA.metabolite_fluxes</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">metabolite_fluxes(model::MetabolicModel, flux_dict::Dict{String, Float64})</code></pre><p>Return two dictionaries of metabolite <code>id</code>s mapped to reactions that consume or produce them, given the flux distribution supplied in <code>flux_dict</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/utils/fluxes.jl#L1-L6">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA._parse_grr-Tuple{SBML.GeneProductAssociation}" href="#COBREXA._parse_grr-Tuple{SBML.GeneProductAssociation}"><code>COBREXA._parse_grr</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">_parse_grr(gpa::SBML.GeneProductAssociation)::GeneAssociation</code></pre><p>Parse <code>SBML.GeneProductAssociation</code> structure to the simpler GeneAssociation. The input must be (implicitly) in a positive DNF.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/utils/gene_associations.jl#L2-L7">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA._parse_grr-Tuple{String}" href="#COBREXA._parse_grr-Tuple{String}"><code>COBREXA._parse_grr</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">_parse_grr(s::String)::GeneAssociation</code></pre><p>Parse a DNF gene association rule in format <code>(YIL010W and YLR043C) or (YIL010W and YGR209C)</code> to <code>GeneAssociation. Also accepts</code>OR<code>,</code>|<code>,</code>||<code>,</code>AND<code>,</code>&amp;<code>, and</code>&amp;&amp;`.</p><p><strong>Example</strong></p><pre><code class="language-none">julia&gt; _parse_grr(&quot;(YIL010W and YLR043C) or (YIL010W and YGR209C)&quot;)
 2-element Array{Array{String,1},1}:
  [&quot;YIL010W&quot;, &quot;YLR043C&quot;]
- [&quot;YIL010W&quot;, &quot;YGR209C&quot;]</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/utils/gene_associations.jl#L37-L51">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA._unparse_grr-Tuple{Type{SBML.GeneProductAssociation}, Vector{Vector{String}}}" href="#COBREXA._unparse_grr-Tuple{Type{SBML.GeneProductAssociation}, Vector{Vector{String}}}"><code>COBREXA._unparse_grr</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">_unparse_grr(
+ [&quot;YIL010W&quot;, &quot;YGR209C&quot;]</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/utils/gene_associations.jl#L37-L51">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA._unparse_grr-Tuple{Type{SBML.GeneProductAssociation}, Vector{Vector{String}}}" href="#COBREXA._unparse_grr-Tuple{Type{SBML.GeneProductAssociation}, Vector{Vector{String}}}"><code>COBREXA._unparse_grr</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">_unparse_grr(
     ::Type{SBML.GeneProductAssociation},
     x::GeneAssociation,
-)::SBML.GeneAssociation</code></pre><p>Convert a GeneAssociation to the corresponding <code>SBML.jl</code> structure.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/utils/gene_associations.jl#L22-L29">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA._unparse_grr-Tuple{Type{String}, Vector{Vector{String}}}" href="#COBREXA._unparse_grr-Tuple{Type{String}, Vector{Vector{String}}}"><code>COBREXA._unparse_grr</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">unparse_grr(grr::Vector{Vector{Gene}}</code></pre><p>Converts a nested string gene reaction array  back into a gene reaction rule string.</p><p><strong>Example</strong></p><pre><code class="language-none">julia&gt; _unparse_grr(String, [[&quot;YIL010W&quot;, &quot;YLR043C&quot;], [&quot;YIL010W&quot;, &quot;YGR209C&quot;]])
-&quot;(YIL010W and YLR043C) or (YIL010W and YGR209C)&quot;</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/utils/gene_associations.jl#L63-L74">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA._guesskey-Tuple{Any, Any}" href="#COBREXA._guesskey-Tuple{Any, Any}"><code>COBREXA._guesskey</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">_guesskey(ks, possibilities)</code></pre><p>Unfortunately, many model types that contain dictionares do not have standardized field names, so we need to try a few possibilities and guess the best one. The keys used to look for valid field names should be ideally specified as constants in <code>src/base/constants.jl</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/utils/guesskey.jl#L2-L9">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.find_biomass_reaction_ids-Tuple{MetabolicModel}" href="#COBREXA.find_biomass_reaction_ids-Tuple{MetabolicModel}"><code>COBREXA.find_biomass_reaction_ids</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">find_biomass_reaction_ids(m::MetabolicModel; kwargs...)</code></pre><p>Shortcut for finding biomass reaction identifiers in a model; arguments are forwarded to <a href="#COBREXA.looks_like_biomass_reaction-Tuple{String}"><code>looks_like_biomass_reaction</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/utils/looks_like.jl#L91-L96">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.find_biomass_reactions-Tuple{MetabolicModel}" href="#COBREXA.find_biomass_reactions-Tuple{MetabolicModel}"><code>COBREXA.find_biomass_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">find_biomass_reactions(m::MetabolicModel; kwargs...)</code></pre><p>Shortcut for finding biomass reaction indexes in a model; arguments are forwarded to <a href="#COBREXA.looks_like_biomass_reaction-Tuple{String}"><code>looks_like_biomass_reaction</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/utils/looks_like.jl#L82-L87">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.find_exchange_metabolite_ids-Tuple{MetabolicModel}" href="#COBREXA.find_exchange_metabolite_ids-Tuple{MetabolicModel}"><code>COBREXA.find_exchange_metabolite_ids</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">find_exchange_metabolite_ids(m::MetabolicModel; kwargs...)</code></pre><p>Shortcut for finding exchange metabolite identifiers in a model; arguments are forwarded to <a href="#COBREXA.looks_like_exchange_metabolite-Tuple{String}"><code>looks_like_exchange_metabolite</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/utils/looks_like.jl#L131-L136">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.find_exchange_metabolites-Tuple{MetabolicModel}" href="#COBREXA.find_exchange_metabolites-Tuple{MetabolicModel}"><code>COBREXA.find_exchange_metabolites</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">find_exchange_metabolites(m::MetabolicModel; kwargs...)</code></pre><p>Shortcut for finding exchange metabolite indexes in a model; arguments are forwarded to <a href="#COBREXA.looks_like_exchange_metabolite-Tuple{String}"><code>looks_like_exchange_metabolite</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/utils/looks_like.jl#L123-L128">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.find_exchange_reaction_ids-Tuple{MetabolicModel}" href="#COBREXA.find_exchange_reaction_ids-Tuple{MetabolicModel}"><code>COBREXA.find_exchange_reaction_ids</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">find_exchange_reaction_ids(m::MetabolicModel; kwargs...)</code></pre><p>Shortcut for finding exchange reaction identifiers in a model; arguments are forwarded to <a href="#COBREXA.looks_like_exchange_reaction-Tuple{String}"><code>looks_like_exchange_reaction</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/utils/looks_like.jl#L46-L51">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.find_exchange_reactions-Tuple{MetabolicModel}" href="#COBREXA.find_exchange_reactions-Tuple{MetabolicModel}"><code>COBREXA.find_exchange_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">find_exchange_reactions(m::MetabolicModel; kwargs...)</code></pre><p>Shortcut for finding exchange reaction indexes in a model; arguments are forwarded to <a href="#COBREXA.looks_like_exchange_reaction-Tuple{String}"><code>looks_like_exchange_reaction</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/utils/looks_like.jl#L37-L42">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.looks_like_biomass_reaction-Tuple{String}" href="#COBREXA.looks_like_biomass_reaction-Tuple{String}"><code>COBREXA.looks_like_biomass_reaction</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">looks_like_biomass_reaction(rxn_id::String;
+)::SBML.GeneAssociation</code></pre><p>Convert a GeneAssociation to the corresponding <code>SBML.jl</code> structure.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/utils/gene_associations.jl#L22-L29">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA._unparse_grr-Tuple{Type{String}, Vector{Vector{String}}}" href="#COBREXA._unparse_grr-Tuple{Type{String}, Vector{Vector{String}}}"><code>COBREXA._unparse_grr</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">unparse_grr(grr::Vector{Vector{Gene}}</code></pre><p>Converts a nested string gene reaction array  back into a gene reaction rule string.</p><p><strong>Example</strong></p><pre><code class="language-none">julia&gt; _unparse_grr(String, [[&quot;YIL010W&quot;, &quot;YLR043C&quot;], [&quot;YIL010W&quot;, &quot;YGR209C&quot;]])
+&quot;(YIL010W and YLR043C) or (YIL010W and YGR209C)&quot;</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/utils/gene_associations.jl#L63-L74">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA._guesskey-Tuple{Any, Any}" href="#COBREXA._guesskey-Tuple{Any, Any}"><code>COBREXA._guesskey</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">_guesskey(ks, possibilities)</code></pre><p>Unfortunately, many model types that contain dictionares do not have standardized field names, so we need to try a few possibilities and guess the best one. The keys used to look for valid field names should be ideally specified as constants in <code>src/base/constants.jl</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/utils/guesskey.jl#L2-L9">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.find_biomass_reaction_ids-Tuple{MetabolicModel}" href="#COBREXA.find_biomass_reaction_ids-Tuple{MetabolicModel}"><code>COBREXA.find_biomass_reaction_ids</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">find_biomass_reaction_ids(m::MetabolicModel; kwargs...)</code></pre><p>Shortcut for finding biomass reaction identifiers in a model; arguments are forwarded to <a href="#COBREXA.looks_like_biomass_reaction-Tuple{String}"><code>looks_like_biomass_reaction</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/utils/looks_like.jl#L91-L96">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.find_biomass_reactions-Tuple{MetabolicModel}" href="#COBREXA.find_biomass_reactions-Tuple{MetabolicModel}"><code>COBREXA.find_biomass_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">find_biomass_reactions(m::MetabolicModel; kwargs...)</code></pre><p>Shortcut for finding biomass reaction indexes in a model; arguments are forwarded to <a href="#COBREXA.looks_like_biomass_reaction-Tuple{String}"><code>looks_like_biomass_reaction</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/utils/looks_like.jl#L82-L87">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.find_exchange_metabolite_ids-Tuple{MetabolicModel}" href="#COBREXA.find_exchange_metabolite_ids-Tuple{MetabolicModel}"><code>COBREXA.find_exchange_metabolite_ids</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">find_exchange_metabolite_ids(m::MetabolicModel; kwargs...)</code></pre><p>Shortcut for finding exchange metabolite identifiers in a model; arguments are forwarded to <a href="#COBREXA.looks_like_exchange_metabolite-Tuple{String}"><code>looks_like_exchange_metabolite</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/utils/looks_like.jl#L131-L136">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.find_exchange_metabolites-Tuple{MetabolicModel}" href="#COBREXA.find_exchange_metabolites-Tuple{MetabolicModel}"><code>COBREXA.find_exchange_metabolites</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">find_exchange_metabolites(m::MetabolicModel; kwargs...)</code></pre><p>Shortcut for finding exchange metabolite indexes in a model; arguments are forwarded to <a href="#COBREXA.looks_like_exchange_metabolite-Tuple{String}"><code>looks_like_exchange_metabolite</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/utils/looks_like.jl#L123-L128">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.find_exchange_reaction_ids-Tuple{MetabolicModel}" href="#COBREXA.find_exchange_reaction_ids-Tuple{MetabolicModel}"><code>COBREXA.find_exchange_reaction_ids</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">find_exchange_reaction_ids(m::MetabolicModel; kwargs...)</code></pre><p>Shortcut for finding exchange reaction identifiers in a model; arguments are forwarded to <a href="#COBREXA.looks_like_exchange_reaction-Tuple{String}"><code>looks_like_exchange_reaction</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/utils/looks_like.jl#L46-L51">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.find_exchange_reactions-Tuple{MetabolicModel}" href="#COBREXA.find_exchange_reactions-Tuple{MetabolicModel}"><code>COBREXA.find_exchange_reactions</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">find_exchange_reactions(m::MetabolicModel; kwargs...)</code></pre><p>Shortcut for finding exchange reaction indexes in a model; arguments are forwarded to <a href="#COBREXA.looks_like_exchange_reaction-Tuple{String}"><code>looks_like_exchange_reaction</code></a>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/utils/looks_like.jl#L37-L42">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.looks_like_biomass_reaction-Tuple{String}" href="#COBREXA.looks_like_biomass_reaction-Tuple{String}"><code>COBREXA.looks_like_biomass_reaction</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">looks_like_biomass_reaction(rxn_id::String;
     exclude_exchanges = false,
     exchange_prefixes = _constants.exchange_prefixes,
     biomass_strings = _constants.biomass_strings,
 )::Bool</code></pre><p>A predicate that matches reaction identifiers that look like biomass reactions. Biomass reactions are identified by looking for occurences of <code>biomass_strings</code> in the reaction id. If <code>exclude_exchanges</code> is set, the strings that look like exchanges (from <a href="#COBREXA.looks_like_exchange_reaction-Tuple{String}"><code>looks_like_exchange_reaction</code></a>) will not match.</p><p><strong>Example</strong></p><pre><code class="language-none">filter(looks_like_biomass_reaction, reactions(model)) # returns strings
-findall(looks_like_biomass_reaction, reactions(model)) # returns indices</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/utils/looks_like.jl#L55-L72">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.looks_like_exchange_metabolite-Tuple{String}" href="#COBREXA.looks_like_exchange_metabolite-Tuple{String}"><code>COBREXA.looks_like_exchange_metabolite</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">looks_like_exchange_metabolite(rxn_id::String;
+findall(looks_like_biomass_reaction, reactions(model)) # returns indices</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/utils/looks_like.jl#L55-L72">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.looks_like_exchange_metabolite-Tuple{String}" href="#COBREXA.looks_like_exchange_metabolite-Tuple{String}"><code>COBREXA.looks_like_exchange_metabolite</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">looks_like_exchange_metabolite(rxn_id::String;
     exchange_suffixes = _constants.exchange_suffixes,
     )::Bool</code></pre><p>A predicate that matches metabolite identifiers that look like involved in exchange reactions. Exchange metabolites are identified by <code>exchange_suffixes</code> at the end of the metabolite id.</p><p><strong>Example</strong></p><pre><code class="language-none">filter(looks_like_exchange_metabolite, metabolites(model)) # returns strings
-findall(looks_like_exchange_metabolite, metabolites(model)) # returns indices</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/utils/looks_like.jl#L101-L115">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.looks_like_exchange_reaction-Tuple{String}" href="#COBREXA.looks_like_exchange_reaction-Tuple{String}"><code>COBREXA.looks_like_exchange_reaction</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">looks_like_exchange_reaction(rxn_id::String;
+findall(looks_like_exchange_metabolite, metabolites(model)) # returns indices</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/utils/looks_like.jl#L101-L115">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.looks_like_exchange_reaction-Tuple{String}" href="#COBREXA.looks_like_exchange_reaction-Tuple{String}"><code>COBREXA.looks_like_exchange_reaction</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia">looks_like_exchange_reaction(rxn_id::String;
     exclude_biomass = false,
     biomass_strings = _constants.biomass_strings,
     exchange_prefixes = _constants.exchange_prefixes,
@@ -435,5 +435,5 @@ filter(looks_like_exchange_reaction, reactions(model)) # returns Strings
 # to use the optional arguments you need to expand the function&#39;s arguments
 # using an anonymous function
 findall(x -&gt; looks_like_exchange_reaction(x; exclude_biomass=true), reactions(model)) # returns indices
-filter(x -&gt; looks_like_exchange_reaction(x; exclude_biomass=true), reactions(model)) # returns Strings</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/utils/looks_like.jl#L1-L26">source</a></section></article><h3 id="Logging-and-debugging-helpers"><a class="docs-heading-anchor" href="#Logging-and-debugging-helpers">Logging and debugging helpers</a><a id="Logging-and-debugging-helpers-1"></a><a class="docs-heading-anchor-permalink" href="#Logging-and-debugging-helpers" title="Permalink"></a></h3><article class="docstring"><header><a class="docstring-binding" id="COBREXA.log_io" href="#COBREXA.log_io"><code>COBREXA.log_io</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia">log_io(enable::Bool=true)</code></pre><p>Enable (default) or disable (by passing <code>false</code>) output of messages and warnings from model input/output.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/logging/log.jl#L40-L44">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.log_models" href="#COBREXA.log_models"><code>COBREXA.log_models</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia">log_models(enable::Bool=true)</code></pre><p>Enable (default) or disable (by passing <code>false</code>) output of model-related messages.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/logging/log.jl#L40-L44">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.log_perf" href="#COBREXA.log_perf"><code>COBREXA.log_perf</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia">log_perf(enable::Bool=true)</code></pre><p>Enable (default) or disable (by passing <code>false</code>) output of performance-related tracing information.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/logging/log.jl#L40-L44">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.@_make_logging_tag-Tuple{Symbol, String}" href="#COBREXA.@_make_logging_tag-Tuple{Symbol, String}"><code>COBREXA.@_make_logging_tag</code></a> — <span class="docstring-category">Macro</span></header><section><div><pre><code class="language-julia">macro _make_logging_group(sym::Symbol, doc::String)</code></pre><p>This creates a group of functions that allow masking out topic-related logging actions. A call that goes as follows:</p><pre><code class="language-none">@_make_logging_tag XYZ</code></pre><p>creates the following tools:</p><ul><li>global variable <code>_XYZ_log_enabled</code> defaulted to false</li><li>function <code>log_XYZ</code> that can be called to turn the logging on/off</li><li>a masking macro <code>@_XYZ_log</code> that can be prepended to commands that should only happen if the logging of tag XYZ is enabled.</li></ul><p>The masking macro is then used as follows:</p><pre><code class="language-none">@_XYZ_log @info &quot;This is the extra verbose information you wanted!&quot; a b c</code></pre><p>The user can direct logging with these:</p><pre><code class="language-none">log_XYZ()
-log_XYZ(false)</code></pre><p><code>doc</code> should be a name of the stuff that is being printed if the corresponding log_XYZ() is enabled – it is used to create a friendly documentation for the logging switch. In this case it could say <code>&quot;X, Y and Z-related messages&quot;</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/1c17b4fe2697125bccace023aea3604388a38560/src/base/logging/log.jl#L2-L29">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../notebooks/">« Examples and notebooks</a><a class="docs-footer-nextpage" href="../howToContribute/">How to contribute »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:12">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
+filter(x -&gt; looks_like_exchange_reaction(x; exclude_biomass=true), reactions(model)) # returns Strings</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/utils/looks_like.jl#L1-L26">source</a></section></article><h3 id="Logging-and-debugging-helpers"><a class="docs-heading-anchor" href="#Logging-and-debugging-helpers">Logging and debugging helpers</a><a id="Logging-and-debugging-helpers-1"></a><a class="docs-heading-anchor-permalink" href="#Logging-and-debugging-helpers" title="Permalink"></a></h3><article class="docstring"><header><a class="docstring-binding" id="COBREXA.log_io" href="#COBREXA.log_io"><code>COBREXA.log_io</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia">log_io(enable::Bool=true)</code></pre><p>Enable (default) or disable (by passing <code>false</code>) output of messages and warnings from model input/output.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/logging/log.jl#L40-L44">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.log_models" href="#COBREXA.log_models"><code>COBREXA.log_models</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia">log_models(enable::Bool=true)</code></pre><p>Enable (default) or disable (by passing <code>false</code>) output of model-related messages.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/logging/log.jl#L40-L44">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.log_perf" href="#COBREXA.log_perf"><code>COBREXA.log_perf</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia">log_perf(enable::Bool=true)</code></pre><p>Enable (default) or disable (by passing <code>false</code>) output of performance-related tracing information.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/logging/log.jl#L40-L44">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="COBREXA.@_make_logging_tag-Tuple{Symbol, String}" href="#COBREXA.@_make_logging_tag-Tuple{Symbol, String}"><code>COBREXA.@_make_logging_tag</code></a> — <span class="docstring-category">Macro</span></header><section><div><pre><code class="language-julia">macro _make_logging_group(sym::Symbol, doc::String)</code></pre><p>This creates a group of functions that allow masking out topic-related logging actions. A call that goes as follows:</p><pre><code class="language-none">@_make_logging_tag XYZ</code></pre><p>creates the following tools:</p><ul><li>global variable <code>_XYZ_log_enabled</code> defaulted to false</li><li>function <code>log_XYZ</code> that can be called to turn the logging on/off</li><li>a masking macro <code>@_XYZ_log</code> that can be prepended to commands that should only happen if the logging of tag XYZ is enabled.</li></ul><p>The masking macro is then used as follows:</p><pre><code class="language-none">@_XYZ_log @info &quot;This is the extra verbose information you wanted!&quot; a b c</code></pre><p>The user can direct logging with these:</p><pre><code class="language-none">log_XYZ()
+log_XYZ(false)</code></pre><p><code>doc</code> should be a name of the stuff that is being printed if the corresponding log_XYZ() is enabled – it is used to create a friendly documentation for the logging switch. In this case it could say <code>&quot;X, Y and Z-related messages&quot;</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/fa0f82f28f531b0eab44d9f52a5af48fe9805d0d/src/base/logging/log.jl#L2-L29">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../notebooks/">« Examples and notebooks</a><a class="docs-footer-nextpage" href="../howToContribute/">How to contribute »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:25">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
diff --git a/dev/howToContribute/index.html b/dev/howToContribute/index.html
index cc6481605ff4a081287403ad0a9910a590dc3553..d6130e2992cdac5e7626b3ce223555b13ef721e4 100644
--- a/dev/howToContribute/index.html
+++ b/dev/howToContribute/index.html
@@ -5,4 +5,4 @@
 $ julia</code></pre><p>With Julia, you can install the development version of the package from the directory as follows:</p><pre><code class="language-julia">(v1.6) pkg&gt; add .</code></pre><p>(press <code>]</code> to get into the packaging environment)</p><p>This adds the <code>COBREXA.jl</code> package and all its dependencies. You can verify that the installation worked by typing:</p><pre><code class="language-julia">(v1.6) pkg&gt; status</code></pre><p>If you are planning to develop the package, it is often easier to install the package in development mode, with <code>dev</code> command:</p><pre><code class="language-julia">(v1.6) pkg&gt; dev .</code></pre><p>That causes the package to always load with whatever code changes that you added to the source directory.</p><h4 id="Finally:-load-COBREXA.jl"><a class="docs-heading-anchor" href="#Finally:-load-COBREXA.jl">Finally: load COBREXA.jl</a><a id="Finally:-load-COBREXA.jl-1"></a><a class="docs-heading-anchor-permalink" href="#Finally:-load-COBREXA.jl" title="Permalink"></a></h4><p>With both of above options, you should get COBREXA.jl installed, which means that the following command should, without errors, load the package and make COBREXA.jl functions available for testing:</p><pre><code class="language-julia">julia&gt; using COBREXA</code></pre><p>You may now freely modify the code and test the result.</p><p>Remember that if you want to work in the environment of the package, you need to <em>activate</em> it. That causes, among other, that the additional dependencies specified with packaging <code>add</code> command will be written automaticaly to <code>Project.toml</code> file of your local COBREXA.jl clone, not to your global environment. Activation is simple: when in the directory of the package, just type the command into the packaging shell:</p><pre><code class="language-julia">(v1.6) pkg&gt; activate</code></pre><h3 id="Step-2:-Publish-your-changes"><a class="docs-heading-anchor" href="#Step-2:-Publish-your-changes">Step 2: Publish your changes</a><a id="Step-2:-Publish-your-changes-1"></a><a class="docs-heading-anchor-permalink" href="#Step-2:-Publish-your-changes" title="Permalink"></a></h3><p>You are expected to make a fork of the main COBREXA.jl repository, and open a pull request from that one to the <code>master</code> branch of the main repository. For creating the fork, just hit the &quot;Fork&quot; button on GitHub.</p><p>After that, change the directory to your repository and adjust the remotes:</p><pre><code class="language-bash">$ cd ~/.julia/dev/COBREXA             # or any other directory, as needed
 $ git remote rename origin upstream   # renames the origin (the main COBREXA.jl repo) to upstream
 $ git remote add origin git@github.com:yourUsername/COBREXA.jl.git  # adds the link to your clone as new origin
-$ git fetch origin                    # fetches the refs from your repo</code></pre><p>In the above code, change <code>yourUsername</code> is your GitHub username.</p><p>When the renaming is done, start a new branch at <code>upstream/master</code>. In the code snippet, substitute <code>yn</code> for your initials (Your Name here) and give the new feature a better name than <code>somefeature</code>:</p><pre><code class="language-bash">$ git checkout -b yn-somefeature origin/master</code></pre><p>Commit any changes and features that you like to the new branch. When the commits look complete to you, push the branch to your repository fork:</p><pre><code class="language-bash">$ git push -u origin yn-somefeature</code></pre><p>This makes your changes visible in your repository. After that, you can navigate to <a href="https://github.com/LCSB-BioCore/COBREXA.jl/pulls">GitHub&#39;s pull request page</a>, where you should immediately see a big green button that helps you to create a pull request for this branch. Read the section below for precise details and guidelines on submitting the pull requests.</p><h2 id="How-to-submit-a-pull-request-(PR)-with-your-modification/enhancement?"><a class="docs-heading-anchor" href="#How-to-submit-a-pull-request-(PR)-with-your-modification/enhancement?">How to submit a pull request (PR) with your modification/enhancement?</a><a id="How-to-submit-a-pull-request-(PR)-with-your-modification/enhancement?-1"></a><a class="docs-heading-anchor-permalink" href="#How-to-submit-a-pull-request-(PR)-with-your-modification/enhancement?" title="Permalink"></a></h2><ol><li><strong>Make a fork of the repository</strong>, commit the modifications in a <strong>separate branch</strong> and push the branch to your fork.</li><li>Make a pull request where you describe the motivation and expected outcome for the users. Specifically, consider any possible incompatibilities, and the necessity to increment the version number after your changes are applied. Label your pull request with a <a href="https://gitmoji.dev/">semantic emoji</a> in the title to indicate what it addresses.</li><li>After submitting the pull request, verify that all status checks (tests, documentation) are passing. Make sure any new contribution is properly documented and tested (you may want to check with coverage tools, using <code>test --coverage</code> from the Julia packaging shell)</li></ol><p>After you submitted a pull request, a label might be assigned that allows us to track and manage issues and pull requests.</p><h3 id="Code-culture-and-style-recommendations"><a class="docs-heading-anchor" href="#Code-culture-and-style-recommendations">Code culture and style recommendations</a><a id="Code-culture-and-style-recommendations-1"></a><a class="docs-heading-anchor-permalink" href="#Code-culture-and-style-recommendations" title="Permalink"></a></h3><p>Follow basic rules for software maintainability and extensibility:</p><ul><li>Do not reimplement functionality that is available in other packages, unless the reimplementation is either trivial and short, or there is a grave need to do so because the other implementations are deficient in some manner.</li><li>Try to keep the function names and interfaces consistent with ecosystem standards and the other functions in the package. Consistency reduces the amount of surprise on the user side, thus lowers the need to reach for documentation, and in turn makes the software much easier and faster to use.</li><li>Code less. Shorter code is almost always better unless demonstrated otherwise, e.g. with a benchmark. Avoid repetitive boilerplate (there should be ways to generate it, if needed).</li><li>Keep the functionality &quot;open&quot; and composable. In particular, avoid all unnecessarily opaque and leaky abstractions (common in object-oriented programming).</li><li>Avoid producing lots of &quot;informative&quot; text side-output by default, unless that is what the user asked for.</li><li>Adhere to the code formatting rules defined by <a href="https://github.com/domluna/JuliaFormatter.jl">JuliaFormatter</a>. We usually have a bot running that checks all PRs and reports whether the code is properly formatted.</li></ul><p>Follow the common rules for making easily mergable and reviewable PRs:</p><ul><li>Create one PR for each logical &quot;feature&quot; you want to merge. If your change is more complex and contains multiple &quot;stages&quot;, open multiple PRs.</li><li>Keep the test coverage reasonably high.</li><li>If you commit many small, partial changes in a PR, you may help us save energy by prefixing your commit names with <code>[skip ci]</code>, which deactivates the CI trigger on that commit. With each skipped CI, you save a few watt-hours of energy. Testing just the &quot;final&quot; commit of the pull-request branch is sufficient.</li></ul><h2 id="For-developers:-What-is-the-expected-branch-management/workflow?"><a class="docs-heading-anchor" href="#For-developers:-What-is-the-expected-branch-management/workflow?">For developers: What is the expected branch management/workflow?</a><a id="For-developers:-What-is-the-expected-branch-management/workflow?-1"></a><a class="docs-heading-anchor-permalink" href="#For-developers:-What-is-the-expected-branch-management/workflow?" title="Permalink"></a></h2><p>The workflow is based on <a href="https://docs.gitlab.com/ee/topics/gitlab_flow.html">GitLab flow</a>, i.e., a <code>master</code> branch with <code>feature</code> branches being merged into the <code>master</code> branch. Depending on your access rights, you may open the <code>feature</code> branch in this repository, on in your fork.</p><p>The guidelines can be summarized as such:</p><ul><li>when making a contribution, create one new branch and open one new PR for each new independent feature or bugfix</li><li>do not push to another branch unless it is your own</li><li>try to get a review before merging unless the change is trivial and non-impacting</li><li>consider prefixing your branch names with your initials, so that one can easily see who owns which branch (e.g. <code>ad-somefeature</code> would be committed by Arthur Dent)</li></ul></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../functions/">« Function reference</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:12">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
+$ git fetch origin                    # fetches the refs from your repo</code></pre><p>In the above code, change <code>yourUsername</code> is your GitHub username.</p><p>When the renaming is done, start a new branch at <code>upstream/master</code>. In the code snippet, substitute <code>yn</code> for your initials (Your Name here) and give the new feature a better name than <code>somefeature</code>:</p><pre><code class="language-bash">$ git checkout -b yn-somefeature origin/master</code></pre><p>Commit any changes and features that you like to the new branch. When the commits look complete to you, push the branch to your repository fork:</p><pre><code class="language-bash">$ git push -u origin yn-somefeature</code></pre><p>This makes your changes visible in your repository. After that, you can navigate to <a href="https://github.com/LCSB-BioCore/COBREXA.jl/pulls">GitHub&#39;s pull request page</a>, where you should immediately see a big green button that helps you to create a pull request for this branch. Read the section below for precise details and guidelines on submitting the pull requests.</p><h2 id="How-to-submit-a-pull-request-(PR)-with-your-modification/enhancement?"><a class="docs-heading-anchor" href="#How-to-submit-a-pull-request-(PR)-with-your-modification/enhancement?">How to submit a pull request (PR) with your modification/enhancement?</a><a id="How-to-submit-a-pull-request-(PR)-with-your-modification/enhancement?-1"></a><a class="docs-heading-anchor-permalink" href="#How-to-submit-a-pull-request-(PR)-with-your-modification/enhancement?" title="Permalink"></a></h2><ol><li><strong>Make a fork of the repository</strong>, commit the modifications in a <strong>separate branch</strong> and push the branch to your fork.</li><li>Make a pull request where you describe the motivation and expected outcome for the users. Specifically, consider any possible incompatibilities, and the necessity to increment the version number after your changes are applied. Label your pull request with a <a href="https://gitmoji.dev/">semantic emoji</a> in the title to indicate what it addresses.</li><li>After submitting the pull request, verify that all status checks (tests, documentation) are passing. Make sure any new contribution is properly documented and tested (you may want to check with coverage tools, using <code>test --coverage</code> from the Julia packaging shell)</li></ol><p>After you submitted a pull request, a label might be assigned that allows us to track and manage issues and pull requests.</p><h3 id="Code-culture-and-style-recommendations"><a class="docs-heading-anchor" href="#Code-culture-and-style-recommendations">Code culture and style recommendations</a><a id="Code-culture-and-style-recommendations-1"></a><a class="docs-heading-anchor-permalink" href="#Code-culture-and-style-recommendations" title="Permalink"></a></h3><p>Follow basic rules for software maintainability and extensibility:</p><ul><li>Do not reimplement functionality that is available in other packages, unless the reimplementation is either trivial and short, or there is a grave need to do so because the other implementations are deficient in some manner.</li><li>Try to keep the function names and interfaces consistent with ecosystem standards and the other functions in the package. Consistency reduces the amount of surprise on the user side, thus lowers the need to reach for documentation, and in turn makes the software much easier and faster to use.</li><li>Code less. Shorter code is almost always better unless demonstrated otherwise, e.g. with a benchmark. Avoid repetitive boilerplate (there should be ways to generate it, if needed).</li><li>Keep the functionality &quot;open&quot; and composable. In particular, avoid all unnecessarily opaque and leaky abstractions (common in object-oriented programming).</li><li>Avoid producing lots of &quot;informative&quot; text side-output by default, unless that is what the user asked for.</li><li>Adhere to the code formatting rules defined by <a href="https://github.com/domluna/JuliaFormatter.jl">JuliaFormatter</a>. We usually have a bot running that checks all PRs and reports whether the code is properly formatted.</li></ul><p>Follow the common rules for making easily mergable and reviewable PRs:</p><ul><li>Create one PR for each logical &quot;feature&quot; you want to merge. If your change is more complex and contains multiple &quot;stages&quot;, open multiple PRs.</li><li>Keep the test coverage reasonably high.</li><li>If you commit many small, partial changes in a PR, you may help us save energy by prefixing your commit names with <code>[skip ci]</code>, which deactivates the CI trigger on that commit. With each skipped CI, you save a few watt-hours of energy. Testing just the &quot;final&quot; commit of the pull-request branch is sufficient.</li></ul><h2 id="For-developers:-What-is-the-expected-branch-management/workflow?"><a class="docs-heading-anchor" href="#For-developers:-What-is-the-expected-branch-management/workflow?">For developers: What is the expected branch management/workflow?</a><a id="For-developers:-What-is-the-expected-branch-management/workflow?-1"></a><a class="docs-heading-anchor-permalink" href="#For-developers:-What-is-the-expected-branch-management/workflow?" title="Permalink"></a></h2><p>The workflow is based on <a href="https://docs.gitlab.com/ee/topics/gitlab_flow.html">GitLab flow</a>, i.e., a <code>master</code> branch with <code>feature</code> branches being merged into the <code>master</code> branch. Depending on your access rights, you may open the <code>feature</code> branch in this repository, on in your fork.</p><p>The guidelines can be summarized as such:</p><ul><li>when making a contribution, create one new branch and open one new PR for each new independent feature or bugfix</li><li>do not push to another branch unless it is your own</li><li>try to get a review before merging unless the change is trivial and non-impacting</li><li>consider prefixing your branch names with your initials, so that one can easily see who owns which branch (e.g. <code>ad-somefeature</code> would be committed by Arthur Dent)</li></ul></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../functions/">« Function reference</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:25">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
diff --git a/dev/index.html b/dev/index.html
index a875786a8f2d373e3c9671f5b1940da388f09ae3..46063e139e88fbccc0f95efd25e23089145d2b4d 100644
--- a/dev/index.html
+++ b/dev/index.html
@@ -28,4 +28,4 @@ fluxes = flux_balance_analysis_dict(model, Tulip.Optimizer)</code></pre><p>The v
   &quot;R_O2t&quot;         =&gt; 21.7995
   &quot;R_G6PDH2r&quot;     =&gt; 4.95999
   &quot;R_TALA&quot;        =&gt; 1.49698
-  ⋮               =&gt; ⋮</code></pre><h2 id="Basic-and-quick-start-tutorials"><a class="docs-heading-anchor" href="#Basic-and-quick-start-tutorials">Basic and quick-start tutorials</a><a id="Basic-and-quick-start-tutorials-1"></a><a class="docs-heading-anchor-permalink" href="#Basic-and-quick-start-tutorials" title="Permalink"></a></h2><p>Detailed tutorial content is <a href="tutorials/">available here</a>.</p><ul><li><a href="tutorials/1_loading/#Loading-and-converting-model-data">Loading and converting model data</a></li><li><a href="tutorials/2_analysis/#Basic-analysis-of-constraint-based-models">Basic analysis of constraint-based models</a></li><li><a href="tutorials/3_hpc/#Distributed-processing-and-HPC-environments">Distributed processing and HPC environments</a></li><li><a href="tutorials/4_modifying/#Modifying-and-saving-the-models">Modifying and saving the models</a></li></ul><h2 id="Advanced-tutorials"><a class="docs-heading-anchor" href="#Advanced-tutorials">Advanced tutorials</a><a id="Advanced-tutorials-1"></a><a class="docs-heading-anchor-permalink" href="#Advanced-tutorials" title="Permalink"></a></h2><p>Detailed listing of advanced tutorials is <a href="advanced/">available here</a>.</p><ul><li><a href="advanced/1_variants/#Exploring-many-model-variants">Exploring many model variants</a></li><li><a href="advanced/2_custom_model/#Working-with-custom-models">Working with custom models</a></li></ul><h2 id="Example-notebooks-and-workflows"><a class="docs-heading-anchor" href="#Example-notebooks-and-workflows">Example notebooks and workflows</a><a id="Example-notebooks-and-workflows-1"></a><a class="docs-heading-anchor-permalink" href="#Example-notebooks-and-workflows" title="Permalink"></a></h2><p>Detailed notebook content is <a href="notebooks/">available here</a>.</p><ul><li><a href="notebooks/1_loading_converting_saving/#Loading,-converting,-and-saving-models">Loading, converting, and saving models</a></li><li><a href="notebooks/2_finding_balance/#Finding-balance-and-variability-of-constraint-based-models">Finding balance and variability of constraint-based models</a></li><li><a href="notebooks/3_basic_stdmodel_usage/#Basic-usage-of-StandardModel">Basic usage of <code>StandardModel</code></a></li><li><a href="notebooks/4_basic_core_coupled_usage/#Basic-usage-of-CoreModel-and-CoreModelCoupled">Basic usage of <code>CoreModel</code> and <code>CoreModelCoupled</code></a></li><li><a href="notebooks/5_basic_stdmodel_construction/#Model-construction-and-modification">Model construction and modification</a></li><li><a href="notebooks/6_screening/#Exploring-model-variants-with-screen">Exploring model variants with <code>screen</code></a></li><li><a href="notebooks/7_community_model/#Building-and-analysing-a-small-community-model">Building and analysing a small community model</a></li><li><a href="notebooks/8_custom_model/#Using-a-custom-model-data-structure">Using a custom model data structure</a></li></ul><h2 id="Functions-reference"><a class="docs-heading-anchor" href="#Functions-reference">Functions reference</a><a id="Functions-reference-1"></a><a class="docs-heading-anchor-permalink" href="#Functions-reference" title="Permalink"></a></h2><ul><li><a href="functions/#Functions">Functions</a></li><ul><li><a href="functions/#Base-Types">Base Types</a></li><li><a href="functions/#Model-types-and-contents">Model types and contents</a></li><li><a href="functions/#Base-functions">Base functions</a></li><li><a href="functions/#File-I/O-and-serialization">File I/O and serialization</a></li><li><a href="functions/#Model-reconstruction">Model reconstruction</a></li><li><a href="functions/#Analysis-functions">Analysis functions</a></li><li><a href="functions/#Miscellaneous-utilities">Miscellaneous utilities</a></li></ul></ul><h2 id="Contribution-guide"><a class="docs-heading-anchor" href="#Contribution-guide">Contribution guide</a><a id="Contribution-guide-1"></a><a class="docs-heading-anchor-permalink" href="#Contribution-guide" title="Permalink"></a></h2><p>If you wish to contribute code, patches or improvements to <code>COBREXA.jl</code>, please read the basic <a href="howToContribute/">contribution guidelines and hints.</a>.</p><h2 id="Acknowledgements"><a class="docs-heading-anchor" href="#Acknowledgements">Acknowledgements</a><a id="Acknowledgements-1"></a><a class="docs-heading-anchor-permalink" href="#Acknowledgements" title="Permalink"></a></h2><p><code>COBREXA.jl</code> is developed at the Luxembourg Centre for Systems Biomedicine of the University of Luxembourg (<a href="https://www.uni.lu/lcsb">uni.lu/lcsb</a>), cooperating with the Institute for Quantitative and Theoretical Biology at the Heinrich Heine University in Düsseldorf (<a href="https://www.qtb.hhu.de/">qtb.hhu.de</a>).</p><p>The development was supported by European Union&#39;s Horizon 2020 Programme under PerMedCoE project (<a href="https://www.permedcoe.eu/">permedcoe.eu</a>) agreement no. 951773.</p><img src="https://lcsb-biocore.github.io/COBREXA.jl/stable/assets/cobrexa.svg" alt="COBREXA logo" height="64px" style="height:64px; width:auto">   <img src="https://lcsb-biocore.github.io/COBREXA.jl/stable/assets/unilu.svg" alt="Uni.lu logo" height="64px" style="height:64px; width:auto">   <img src="https://lcsb-biocore.github.io/COBREXA.jl/stable/assets/lcsb.svg" alt="LCSB logo" height="64px" style="height:64px; width:auto">   <img src="https://lcsb-biocore.github.io/COBREXA.jl/stable/assets/hhu.svg" alt="HHU logo" height="64px" style="height:64px; width:auto">   <img src="https://lcsb-biocore.github.io/COBREXA.jl/stable/assets/qtb.svg" alt="QTB logo" height="64px" style="height:64px; width:auto">   <img src="https://lcsb-biocore.github.io/COBREXA.jl/stable/assets/permedcoe.svg" alt="PerMedCoE logo" height="64px" style="height:64px; width:auto"></article><nav class="docs-footer"><a class="docs-footer-nextpage" href="tutorials/">Quickstart tutorials »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:12">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
+  ⋮               =&gt; ⋮</code></pre><h2 id="Basic-and-quick-start-tutorials"><a class="docs-heading-anchor" href="#Basic-and-quick-start-tutorials">Basic and quick-start tutorials</a><a id="Basic-and-quick-start-tutorials-1"></a><a class="docs-heading-anchor-permalink" href="#Basic-and-quick-start-tutorials" title="Permalink"></a></h2><p>Detailed tutorial content is <a href="tutorials/">available here</a>.</p><ul><li><a href="tutorials/1_loading/#Loading-and-converting-model-data">Loading and converting model data</a></li><li><a href="tutorials/2_analysis/#Basic-analysis-of-constraint-based-models">Basic analysis of constraint-based models</a></li><li><a href="tutorials/3_hpc/#Distributed-processing-and-HPC-environments">Distributed processing and HPC environments</a></li><li><a href="tutorials/4_modifying/#Modifying-and-saving-the-models">Modifying and saving the models</a></li></ul><h2 id="Advanced-tutorials"><a class="docs-heading-anchor" href="#Advanced-tutorials">Advanced tutorials</a><a id="Advanced-tutorials-1"></a><a class="docs-heading-anchor-permalink" href="#Advanced-tutorials" title="Permalink"></a></h2><p>Detailed listing of advanced tutorials is <a href="advanced/">available here</a>.</p><ul><li><a href="advanced/1_variants/#Exploring-many-model-variants">Exploring many model variants</a></li><li><a href="advanced/2_custom_model/#Working-with-custom-models">Working with custom models</a></li></ul><h2 id="Example-notebooks-and-workflows"><a class="docs-heading-anchor" href="#Example-notebooks-and-workflows">Example notebooks and workflows</a><a id="Example-notebooks-and-workflows-1"></a><a class="docs-heading-anchor-permalink" href="#Example-notebooks-and-workflows" title="Permalink"></a></h2><p>Detailed notebook content is <a href="notebooks/">available here</a>.</p><ul><li><a href="notebooks/1_loading_converting_saving/#Loading,-converting,-and-saving-models">Loading, converting, and saving models</a></li><li><a href="notebooks/2_finding_balance/#Finding-balance-and-variability-of-constraint-based-models">Finding balance and variability of constraint-based models</a></li><li><a href="notebooks/3_basic_stdmodel_usage/#Basic-usage-of-StandardModel">Basic usage of <code>StandardModel</code></a></li><li><a href="notebooks/4_basic_core_coupled_usage/#Basic-usage-of-CoreModel-and-CoreModelCoupled">Basic usage of <code>CoreModel</code> and <code>CoreModelCoupled</code></a></li><li><a href="notebooks/5_basic_stdmodel_construction/#Model-construction-and-modification">Model construction and modification</a></li><li><a href="notebooks/6_screening/#Exploring-model-variants-with-screen">Exploring model variants with <code>screen</code></a></li><li><a href="notebooks/7_community_model/#Building-and-analysing-a-small-community-model">Building and analysing a small community model</a></li><li><a href="notebooks/8_custom_model/#Using-a-custom-model-data-structure">Using a custom model data structure</a></li></ul><h2 id="Functions-reference"><a class="docs-heading-anchor" href="#Functions-reference">Functions reference</a><a id="Functions-reference-1"></a><a class="docs-heading-anchor-permalink" href="#Functions-reference" title="Permalink"></a></h2><ul><li><a href="functions/#Functions">Functions</a></li><ul><li><a href="functions/#Base-Types">Base Types</a></li><li><a href="functions/#Model-types-and-contents">Model types and contents</a></li><li><a href="functions/#Base-functions">Base functions</a></li><li><a href="functions/#File-I/O-and-serialization">File I/O and serialization</a></li><li><a href="functions/#Model-reconstruction">Model reconstruction</a></li><li><a href="functions/#Analysis-functions">Analysis functions</a></li><li><a href="functions/#Miscellaneous-utilities">Miscellaneous utilities</a></li></ul></ul><h2 id="Contribution-guide"><a class="docs-heading-anchor" href="#Contribution-guide">Contribution guide</a><a id="Contribution-guide-1"></a><a class="docs-heading-anchor-permalink" href="#Contribution-guide" title="Permalink"></a></h2><p>If you wish to contribute code, patches or improvements to <code>COBREXA.jl</code>, please read the basic <a href="howToContribute/">contribution guidelines and hints.</a>.</p><h2 id="Acknowledgements"><a class="docs-heading-anchor" href="#Acknowledgements">Acknowledgements</a><a id="Acknowledgements-1"></a><a class="docs-heading-anchor-permalink" href="#Acknowledgements" title="Permalink"></a></h2><p><code>COBREXA.jl</code> is developed at the Luxembourg Centre for Systems Biomedicine of the University of Luxembourg (<a href="https://www.uni.lu/lcsb">uni.lu/lcsb</a>), cooperating with the Institute for Quantitative and Theoretical Biology at the Heinrich Heine University in Düsseldorf (<a href="https://www.qtb.hhu.de/">qtb.hhu.de</a>).</p><p>The development was supported by European Union&#39;s Horizon 2020 Programme under PerMedCoE project (<a href="https://www.permedcoe.eu/">permedcoe.eu</a>) agreement no. 951773.</p><img src="https://lcsb-biocore.github.io/COBREXA.jl/stable/assets/cobrexa.svg" alt="COBREXA logo" height="64px" style="height:64px; width:auto">   <img src="https://lcsb-biocore.github.io/COBREXA.jl/stable/assets/unilu.svg" alt="Uni.lu logo" height="64px" style="height:64px; width:auto">   <img src="https://lcsb-biocore.github.io/COBREXA.jl/stable/assets/lcsb.svg" alt="LCSB logo" height="64px" style="height:64px; width:auto">   <img src="https://lcsb-biocore.github.io/COBREXA.jl/stable/assets/hhu.svg" alt="HHU logo" height="64px" style="height:64px; width:auto">   <img src="https://lcsb-biocore.github.io/COBREXA.jl/stable/assets/qtb.svg" alt="QTB logo" height="64px" style="height:64px; width:auto">   <img src="https://lcsb-biocore.github.io/COBREXA.jl/stable/assets/permedcoe.svg" alt="PerMedCoE logo" height="64px" style="height:64px; width:auto"></article><nav class="docs-footer"><a class="docs-footer-nextpage" href="tutorials/">Quickstart tutorials »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:25">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
diff --git a/dev/notebooks/1_loading_converting_saving.ipynb b/dev/notebooks/1_loading_converting_saving.ipynb
index 09fe2dd8d62a5782f03ed1b99641ee7d4c283101..ae6873bf809d2b64a78109795003a9751f491a89 100644
Binary files a/dev/notebooks/1_loading_converting_saving.ipynb and b/dev/notebooks/1_loading_converting_saving.ipynb differ
diff --git a/dev/notebooks/1_loading_converting_saving/index.html b/dev/notebooks/1_loading_converting_saving/index.html
index 666d2ca3c8c7c6c2370c17edd3ec896bdb89146f..ee019dbc5c0238819259a486ec6c0489d7aa393e 100644
--- a/dev/notebooks/1_loading_converting_saving/index.html
+++ b/dev/notebooks/1_loading_converting_saving/index.html
@@ -223,4 +223,4 @@ sm = convert(StandardModel, m)
 
 open(f -&gt; serialize(f, sm), &quot;myModel.stdmodel&quot;, &quot;w&quot;)</code></pre><p>The models can then be loaded back using <code>deserialize</code>:</p><pre><code class="language-julia">sm2 = deserialize(&quot;myModel.stdmodel&quot;)
 issetequal(metabolites(sm), metabolites(sm2))</code></pre><pre class="documenter-example-output">true</pre><p>This form of loading operation is usually pretty quick:</p><pre><code class="language-julia">t = @elapsed deserialize(&quot;myModel.stdmodel&quot;)
-@info &quot;Deserialization took $t seconds&quot;</code></pre><pre class="documenter-example-output">[ Info: Deserialization took 0.002310476 seconds</pre><p>Notably, large and complicated models with thousands of reactions and annotations can take seconds to decode properly. Serialization allows you to almost completely remove this overhead, and scales well to tens of millions of reactions.</p><hr/><p><em>This page was generated using <a href="https://github.com/fredrikekre/Literate.jl">Literate.jl</a>.</em></p></article><nav class="docs-footer"><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:12">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
+@info &quot;Deserialization took $t seconds&quot;</code></pre><pre class="documenter-example-output">[ Info: Deserialization took 0.002419806 seconds</pre><p>Notably, large and complicated models with thousands of reactions and annotations can take seconds to decode properly. Serialization allows you to almost completely remove this overhead, and scales well to tens of millions of reactions.</p><hr/><p><em>This page was generated using <a href="https://github.com/fredrikekre/Literate.jl">Literate.jl</a>.</em></p></article><nav class="docs-footer"><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:25">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
diff --git a/dev/notebooks/2_finding_balance.ipynb b/dev/notebooks/2_finding_balance.ipynb
index c1f6b7355f00f3af5045bb91e85590540284eef6..e58a437c8eb9d36337e1818988172aba7d67ce8c 100644
Binary files a/dev/notebooks/2_finding_balance.ipynb and b/dev/notebooks/2_finding_balance.ipynb differ
diff --git a/dev/notebooks/2_finding_balance/index.html b/dev/notebooks/2_finding_balance/index.html
index 7d85318e89a1d753beecd65e9d2592e8df873982..4fc8881bef8202cd55d94af49e98cfb4cdb784d0 100644
--- a/dev/notebooks/2_finding_balance/index.html
+++ b/dev/notebooks/2_finding_balance/index.html
@@ -170,4 +170,4 @@ Number of metabolites: 72
  -25.642083259145206
    0.0161569956400718
    0.004729690379188246
-   3.8887743479784547</pre><hr/><p><em>This page was generated using <a href="https://github.com/fredrikekre/Literate.jl">Literate.jl</a>.</em></p></article><nav class="docs-footer"><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:12">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
+   3.8887743479784547</pre><hr/><p><em>This page was generated using <a href="https://github.com/fredrikekre/Literate.jl">Literate.jl</a>.</em></p></article><nav class="docs-footer"><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:25">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
diff --git a/dev/notebooks/3_basic_stdmodel_usage.ipynb b/dev/notebooks/3_basic_stdmodel_usage.ipynb
index 81573575edcce033b263280210e46aacbb76c1cd..1c7fa16b6e1aa271f6aa21308b0312e79d562c22 100644
Binary files a/dev/notebooks/3_basic_stdmodel_usage.ipynb and b/dev/notebooks/3_basic_stdmodel_usage.ipynb differ
diff --git a/dev/notebooks/3_basic_stdmodel_usage/index.html b/dev/notebooks/3_basic_stdmodel_usage/index.html
index 67d40ec32ab729eefec6578f1c12031e1e5209e6..4de70d356838686d367a8ca4224a25bb2a64241c 100644
--- a/dev/notebooks/3_basic_stdmodel_usage/index.html
+++ b/dev/notebooks/3_basic_stdmodel_usage/index.html
@@ -182,4 +182,4 @@ Reaction.notes: ---
 Reaction.annotations: ---
 Reaction.objective_coefficient: 0.0
 </pre><pre><code class="language-julia">check_duplicate_reaction(pgm_duplicate, model.reactions; only_metabolites = false) # can also just check if only the metabolites are the same but different stoichiometry is used</code></pre><pre class="documenter-example-output">&quot;PGM&quot;</pre><h2 id="Checking-the-internals-of-StandardModels:-is_mass_balanced"><a class="docs-heading-anchor" href="#Checking-the-internals-of-StandardModels:-is_mass_balanced">Checking the internals of <code>StandardModel</code>s: <code>is_mass_balanced</code></a><a id="Checking-the-internals-of-StandardModels:-is_mass_balanced-1"></a><a class="docs-heading-anchor-permalink" href="#Checking-the-internals-of-StandardModels:-is_mass_balanced" title="Permalink"></a></h2><p>Finally, <a href="../../functions/#COBREXA.is_mass_balanced-Tuple{StandardModel, Reaction}"><code>is_mass_balanced</code></a> can be used to check if a reaction is mass balanced based on the formulas of the reaction equation.</p><pre><code class="language-julia">pgm_duplicate.metabolites = Dict{String,Float64}(&quot;3pg_c&quot; =&gt; 1, &quot;2pg_c&quot; =&gt; -1, &quot;h2o_c&quot; =&gt; 1) # not mass balanced now
-is_bal, extra_atoms = is_mass_balanced(model, pgm_duplicate) # extra_atoms shows which atoms are in excess/deficit</code></pre><pre class="documenter-example-output">(false, Dict(&quot;C&quot; =&gt; 0.0, &quot;P&quot; =&gt; 0.0, &quot;H&quot; =&gt; 2.0, &quot;O&quot; =&gt; 1.0))</pre><hr/><p><em>This page was generated using <a href="https://github.com/fredrikekre/Literate.jl">Literate.jl</a>.</em></p></article><nav class="docs-footer"><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:12">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
+is_bal, extra_atoms = is_mass_balanced(model, pgm_duplicate) # extra_atoms shows which atoms are in excess/deficit</code></pre><pre class="documenter-example-output">(false, Dict(&quot;C&quot; =&gt; 0.0, &quot;P&quot; =&gt; 0.0, &quot;H&quot; =&gt; 2.0, &quot;O&quot; =&gt; 1.0))</pre><hr/><p><em>This page was generated using <a href="https://github.com/fredrikekre/Literate.jl">Literate.jl</a>.</em></p></article><nav class="docs-footer"><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:25">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
diff --git a/dev/notebooks/4_basic_core_coupled_usage/index.html b/dev/notebooks/4_basic_core_coupled_usage/index.html
index bc40478abfc9507b50df12b0af5e38f0453732ae..0e871ac90d95bbed1d848caf18b72345654a63cf 100644
--- a/dev/notebooks/4_basic_core_coupled_usage/index.html
+++ b/dev/notebooks/4_basic_core_coupled_usage/index.html
@@ -105,4 +105,4 @@ Number of reactions: 95
 Number of metabolites: 72
 </pre><pre><code class="language-julia">d = flux_balance_analysis_dict(model, Tulip.Optimizer)
 d[&quot;R_BIOMASS_Ecoli_core_w_GAM&quot;]</code></pre><pre class="documenter-example-output">0.8739215022661532</pre><pre><code class="language-julia">dc = flux_balance_analysis_dict(cmodel, Tulip.Optimizer)
-dc[&quot;R_BIOMASS_Ecoli_core_w_GAM&quot;]</code></pre><pre class="documenter-example-output">0.6655856992982552</pre><hr/><p><em>This page was generated using <a href="https://github.com/fredrikekre/Literate.jl">Literate.jl</a>.</em></p></article><nav class="docs-footer"><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:12">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
+dc[&quot;R_BIOMASS_Ecoli_core_w_GAM&quot;]</code></pre><pre class="documenter-example-output">0.6655856992982552</pre><hr/><p><em>This page was generated using <a href="https://github.com/fredrikekre/Literate.jl">Literate.jl</a>.</em></p></article><nav class="docs-footer"><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:25">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
diff --git a/dev/notebooks/5_basic_stdmodel_construction/index.html b/dev/notebooks/5_basic_stdmodel_construction/index.html
index 28360e3ddeafcf2906428ab035c9248677e8b894..4a7cd737f513f9189a8597dfa191ed37b7f929ee 100644
--- a/dev/notebooks/5_basic_stdmodel_construction/index.html
+++ b/dev/notebooks/5_basic_stdmodel_construction/index.html
@@ -58,4 +58,4 @@ model</code></pre><pre class="documenter-example-output">Metabolic model of type
    â‹…     â‹…     â‹…     â‹…    1.0    â‹…   -1.0  -1.0
 Number of reactions: 8
 Number of metabolites: 4
-</pre><hr/><p><em>This page was generated using <a href="https://github.com/fredrikekre/Literate.jl">Literate.jl</a>.</em></p></article><nav class="docs-footer"><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:12">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
+</pre><hr/><p><em>This page was generated using <a href="https://github.com/fredrikekre/Literate.jl">Literate.jl</a>.</em></p></article><nav class="docs-footer"><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:24">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
diff --git a/dev/notebooks/6_screening.ipynb b/dev/notebooks/6_screening.ipynb
index 058487ac8b23829fa4b2a7c7d1e6f8c03fbe199e..5d4b52543797090aecc1b1b0434c93a08e22eae0 100644
Binary files a/dev/notebooks/6_screening.ipynb and b/dev/notebooks/6_screening.ipynb differ
diff --git a/dev/notebooks/6_screening/index.html b/dev/notebooks/6_screening/index.html
index 48cc2d28b86a75cb631d4a84239c5a842c08cbcf..460bc6e5b6ae3f140a92f8a8719bc40928a250ba 100644
--- a/dev/notebooks/6_screening/index.html
+++ b/dev/notebooks/6_screening/index.html
@@ -65,699 +65,699 @@ productions = screen_variants(
 bar(reactions(model), productions, orientation = :hor, dpi = 600)</code></pre><?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="3600" height="2400" viewBox="0 0 14400 9600">
 <defs>
-  <clipPath id="clip780">
+  <clipPath id="clip510">
     <rect x="0" y="0" width="14400" height="9600"/>
   </clipPath>
 </defs>
-<path clip-path="url(#clip780)" d="
+<path clip-path="url(#clip510)" d="
 M0 9600 L14400 9600 L14400 0 L0 0  Z
   " fill="#ffffff" fill-rule="evenodd" fill-opacity="1"/>
 <defs>
-  <clipPath id="clip781">
+  <clipPath id="clip511">
     <rect x="2880" y="0" width="10081" height="9600"/>
   </clipPath>
 </defs>
-<path clip-path="url(#clip780)" d="
+<path clip-path="url(#clip510)" d="
 M521.953 9126.05 L14116.5 9126.05 L14116.5 283.465 L521.953 283.465  Z
   " fill="#ffffff" fill-rule="evenodd" fill-opacity="1"/>
 <defs>
-  <clipPath id="clip782">
+  <clipPath id="clip512">
     <rect x="521" y="283" width="13596" height="8844"/>
   </clipPath>
 </defs>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
   906.705,9126.05 906.705,283.465 
   "/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
   3841.77,9126.05 3841.77,283.465 
   "/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
   6776.83,9126.05 6776.83,283.465 
   "/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
   9711.9,9126.05 9711.9,283.465 
   "/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
   12647,9126.05 12647,283.465 
   "/>
-<polyline clip-path="url(#clip780)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip510)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   521.953,9126.05 14116.5,9126.05 
   "/>
-<polyline clip-path="url(#clip780)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip510)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   906.705,9126.05 906.705,9019.94 
   "/>
-<polyline clip-path="url(#clip780)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip510)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   3841.77,9126.05 3841.77,9019.94 
   "/>
-<polyline clip-path="url(#clip780)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip510)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   6776.83,9126.05 6776.83,9019.94 
   "/>
-<polyline clip-path="url(#clip780)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip510)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   9711.9,9126.05 9711.9,9019.94 
   "/>
-<polyline clip-path="url(#clip780)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip510)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   12647,9126.05 12647,9019.94 
   "/>
-<path clip-path="url(#clip780)" d="M771.011 9301.19 Q749.345 9301.19 738.373 9322.58 Q727.539 9343.83 727.539 9386.61 Q727.539 9429.25 738.373 9450.64 Q749.345 9471.88 771.011 9471.88 Q792.817 9471.88 803.65 9450.64 Q814.622 9429.25 814.622 9386.61 Q814.622 9343.83 803.65 9322.58 Q792.817 9301.19 771.011 9301.19 M771.011 9278.97 Q805.872 9278.97 824.206 9306.61 Q842.678 9334.11 842.678 9386.61 Q842.678 9438.97 824.206 9466.61 Q805.872 9494.11 771.011 9494.11 Q736.15 9494.11 717.678 9466.61 Q699.345 9438.97 699.345 9386.61 Q699.345 9334.11 717.678 9306.61 Q736.15 9278.97 771.011 9278.97 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M891.983 9454.8 L921.288 9454.8 L921.288 9490.08 L891.983 9490.08 L891.983 9454.8 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M1042.4 9301.19 Q1020.73 9301.19 1009.76 9322.58 Q998.927 9343.83 998.927 9386.61 Q998.927 9429.25 1009.76 9450.64 Q1020.73 9471.88 1042.4 9471.88 Q1064.2 9471.88 1075.04 9450.64 Q1086.01 9429.25 1086.01 9386.61 Q1086.01 9343.83 1075.04 9322.58 Q1064.2 9301.19 1042.4 9301.19 M1042.4 9278.97 Q1077.26 9278.97 1095.59 9306.61 Q1114.07 9334.11 1114.07 9386.61 Q1114.07 9438.97 1095.59 9466.61 Q1077.26 9494.11 1042.4 9494.11 Q1007.54 9494.11 989.066 9466.61 Q970.733 9438.97 970.733 9386.61 Q970.733 9334.11 989.066 9306.61 Q1007.54 9278.97 1042.4 9278.97 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M3710.87 9301.19 Q3689.2 9301.19 3678.23 9322.58 Q3667.4 9343.83 3667.4 9386.61 Q3667.4 9429.25 3678.23 9450.64 Q3689.2 9471.88 3710.87 9471.88 Q3732.67 9471.88 3743.51 9450.64 Q3754.48 9429.25 3754.48 9386.61 Q3754.48 9343.83 3743.51 9322.58 Q3732.67 9301.19 3710.87 9301.19 M3710.87 9278.97 Q3745.73 9278.97 3764.06 9306.61 Q3782.53 9334.11 3782.53 9386.61 Q3782.53 9438.97 3764.06 9466.61 Q3745.73 9494.11 3710.87 9494.11 Q3676.01 9494.11 3657.53 9466.61 Q3639.2 9438.97 3639.2 9386.61 Q3639.2 9334.11 3657.53 9306.61 Q3676.01 9278.97 3710.87 9278.97 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M3831.84 9454.8 L3861.14 9454.8 L3861.14 9490.08 L3831.84 9490.08 L3831.84 9454.8 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M3946.42 9466.47 L4044.34 9466.47 L4044.34 9490.08 L3912.67 9490.08 L3912.67 9466.47 Q3928.64 9449.94 3956.14 9422.16 Q3983.78 9394.25 3990.87 9386.19 Q4004.34 9371.05 4009.62 9360.64 Q4015.03 9350.08 4015.03 9339.94 Q4015.03 9323.41 4003.37 9313 Q3991.84 9302.58 3973.23 9302.58 Q3960.03 9302.58 3945.31 9307.16 Q3930.73 9311.75 3914.06 9321.05 L3914.06 9292.72 Q3931 9285.91 3945.73 9282.44 Q3960.45 9278.97 3972.67 9278.97 Q4004.89 9278.97 4024.06 9295.08 Q4043.23 9311.19 4043.23 9338.14 Q4043.23 9350.91 4038.37 9362.44 Q4033.64 9373.83 4021 9389.39 Q4017.53 9393.41 3998.92 9412.72 Q3980.31 9431.89 3946.42 9466.47 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M6639.68 9301.19 Q6618.01 9301.19 6607.04 9322.58 Q6596.21 9343.83 6596.21 9386.61 Q6596.21 9429.25 6607.04 9450.64 Q6618.01 9471.88 6639.68 9471.88 Q6661.49 9471.88 6672.32 9450.64 Q6683.29 9429.25 6683.29 9386.61 Q6683.29 9343.83 6672.32 9322.58 Q6661.49 9301.19 6639.68 9301.19 M6639.68 9278.97 Q6674.54 9278.97 6692.88 9306.61 Q6711.35 9334.11 6711.35 9386.61 Q6711.35 9438.97 6692.88 9466.61 Q6674.54 9494.11 6639.68 9494.11 Q6604.82 9494.11 6586.35 9466.61 Q6568.01 9438.97 6568.01 9386.61 Q6568.01 9334.11 6586.35 9306.61 Q6604.82 9278.97 6639.68 9278.97 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M6760.65 9454.8 L6789.96 9454.8 L6789.96 9490.08 L6760.65 9490.08 L6760.65 9454.8 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M6928.15 9307.16 L6857.32 9417.86 L6928.15 9417.86 L6928.15 9307.16 M6920.79 9282.72 L6956.07 9282.72 L6956.07 9417.86 L6985.65 9417.86 L6985.65 9441.19 L6956.07 9441.19 L6956.07 9490.08 L6928.15 9490.08 L6928.15 9441.19 L6834.54 9441.19 L6834.54 9414.11 L6920.79 9282.72 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M9575.72 9301.19 Q9554.05 9301.19 9543.08 9322.58 Q9532.25 9343.83 9532.25 9386.61 Q9532.25 9429.25 9543.08 9450.64 Q9554.05 9471.88 9575.72 9471.88 Q9597.52 9471.88 9608.36 9450.64 Q9619.33 9429.25 9619.33 9386.61 Q9619.33 9343.83 9608.36 9322.58 Q9597.52 9301.19 9575.72 9301.19 M9575.72 9278.97 Q9610.58 9278.97 9628.91 9306.61 Q9647.38 9334.11 9647.38 9386.61 Q9647.38 9438.97 9628.91 9466.61 Q9610.58 9494.11 9575.72 9494.11 Q9540.86 9494.11 9522.38 9466.61 Q9504.05 9438.97 9504.05 9386.61 Q9504.05 9334.11 9522.38 9306.61 Q9540.86 9278.97 9575.72 9278.97 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M9696.69 9454.8 L9725.99 9454.8 L9725.99 9490.08 L9696.69 9490.08 L9696.69 9454.8 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M9850.58 9375.22 Q9831.69 9375.22 9820.58 9388.14 Q9809.61 9401.05 9809.61 9423.55 Q9809.61 9445.91 9820.58 9458.97 Q9831.69 9471.88 9850.58 9471.88 Q9869.47 9471.88 9880.44 9458.97 Q9891.55 9445.91 9891.55 9423.55 Q9891.55 9401.05 9880.44 9388.14 Q9869.47 9375.22 9850.58 9375.22 M9906.27 9287.3 L9906.27 9312.86 Q9895.72 9307.86 9884.88 9305.22 Q9874.19 9302.58 9863.63 9302.58 Q9835.85 9302.58 9821.13 9321.33 Q9806.55 9340.08 9804.47 9378 Q9812.66 9365.91 9825.02 9359.52 Q9837.38 9353 9852.24 9353 Q9883.49 9353 9901.55 9372.02 Q9919.74 9390.91 9919.74 9423.55 Q9919.74 9455.5 9900.85 9474.8 Q9881.97 9494.11 9850.58 9494.11 Q9814.61 9494.11 9795.58 9466.61 Q9776.55 9438.97 9776.55 9386.61 Q9776.55 9337.44 9799.88 9308.27 Q9823.22 9278.97 9862.52 9278.97 Q9873.08 9278.97 9883.77 9281.05 Q9894.6 9283.14 9906.27 9287.3 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M12511.5 9301.19 Q12489.9 9301.19 12478.9 9322.58 Q12468.1 9343.83 12468.1 9386.61 Q12468.1 9429.25 12478.9 9450.64 Q12489.9 9471.88 12511.5 9471.88 Q12533.4 9471.88 12544.2 9450.64 Q12555.2 9429.25 12555.2 9386.61 Q12555.2 9343.83 12544.2 9322.58 Q12533.4 9301.19 12511.5 9301.19 M12511.5 9278.97 Q12546.4 9278.97 12564.7 9306.61 Q12583.2 9334.11 12583.2 9386.61 Q12583.2 9438.97 12564.7 9466.61 Q12546.4 9494.11 12511.5 9494.11 Q12476.7 9494.11 12458.2 9466.61 Q12439.9 9438.97 12439.9 9386.61 Q12439.9 9334.11 12458.2 9306.61 Q12476.7 9278.97 12511.5 9278.97 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M12632.5 9454.8 L12661.8 9454.8 L12661.8 9490.08 L12632.5 9490.08 L12632.5 9454.8 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M12782.9 9391.61 Q12762.9 9391.61 12751.4 9402.3 Q12740 9413 12740 9431.75 Q12740 9450.5 12751.4 9461.19 Q12762.9 9471.88 12782.9 9471.88 Q12802.9 9471.88 12814.5 9461.19 Q12826 9450.36 12826 9431.75 Q12826 9413 12814.5 9402.3 Q12803.1 9391.61 12782.9 9391.61 M12754.9 9379.66 Q12736.8 9375.22 12726.7 9362.86 Q12716.7 9350.5 12716.7 9332.72 Q12716.7 9307.86 12734.3 9293.41 Q12752.1 9278.97 12782.9 9278.97 Q12813.9 9278.97 12831.5 9293.41 Q12849.2 9307.86 12849.2 9332.72 Q12849.2 9350.5 12839 9362.86 Q12829 9375.22 12811.1 9379.66 Q12831.4 9384.39 12842.7 9398.14 Q12854 9411.89 12854 9431.75 Q12854 9461.88 12835.6 9478 Q12817.2 9494.11 12782.9 9494.11 Q12748.6 9494.11 12730.2 9478 Q12711.8 9461.88 12711.8 9431.75 Q12711.8 9411.89 12723.2 9398.14 Q12734.6 9384.39 12754.9 9379.66 M12744.6 9335.36 Q12744.6 9351.47 12754.6 9360.5 Q12764.7 9369.52 12782.9 9369.52 Q12801 9369.52 12811.1 9360.5 Q12821.4 9351.47 12821.4 9335.36 Q12821.4 9319.25 12811.1 9310.22 Q12801 9301.19 12782.9 9301.19 Q12764.7 9301.19 12754.6 9310.22 Q12744.6 9319.25 12744.6 9335.36 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
+<path clip-path="url(#clip510)" d="M771.011 9301.19 Q749.345 9301.19 738.373 9322.58 Q727.539 9343.83 727.539 9386.61 Q727.539 9429.25 738.373 9450.64 Q749.345 9471.88 771.011 9471.88 Q792.817 9471.88 803.65 9450.64 Q814.622 9429.25 814.622 9386.61 Q814.622 9343.83 803.65 9322.58 Q792.817 9301.19 771.011 9301.19 M771.011 9278.97 Q805.872 9278.97 824.206 9306.61 Q842.678 9334.11 842.678 9386.61 Q842.678 9438.97 824.206 9466.61 Q805.872 9494.11 771.011 9494.11 Q736.15 9494.11 717.678 9466.61 Q699.345 9438.97 699.345 9386.61 Q699.345 9334.11 717.678 9306.61 Q736.15 9278.97 771.011 9278.97 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M891.983 9454.8 L921.288 9454.8 L921.288 9490.08 L891.983 9490.08 L891.983 9454.8 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M1042.4 9301.19 Q1020.73 9301.19 1009.76 9322.58 Q998.927 9343.83 998.927 9386.61 Q998.927 9429.25 1009.76 9450.64 Q1020.73 9471.88 1042.4 9471.88 Q1064.2 9471.88 1075.04 9450.64 Q1086.01 9429.25 1086.01 9386.61 Q1086.01 9343.83 1075.04 9322.58 Q1064.2 9301.19 1042.4 9301.19 M1042.4 9278.97 Q1077.26 9278.97 1095.59 9306.61 Q1114.07 9334.11 1114.07 9386.61 Q1114.07 9438.97 1095.59 9466.61 Q1077.26 9494.11 1042.4 9494.11 Q1007.54 9494.11 989.066 9466.61 Q970.733 9438.97 970.733 9386.61 Q970.733 9334.11 989.066 9306.61 Q1007.54 9278.97 1042.4 9278.97 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M3710.87 9301.19 Q3689.2 9301.19 3678.23 9322.58 Q3667.4 9343.83 3667.4 9386.61 Q3667.4 9429.25 3678.23 9450.64 Q3689.2 9471.88 3710.87 9471.88 Q3732.67 9471.88 3743.51 9450.64 Q3754.48 9429.25 3754.48 9386.61 Q3754.48 9343.83 3743.51 9322.58 Q3732.67 9301.19 3710.87 9301.19 M3710.87 9278.97 Q3745.73 9278.97 3764.06 9306.61 Q3782.53 9334.11 3782.53 9386.61 Q3782.53 9438.97 3764.06 9466.61 Q3745.73 9494.11 3710.87 9494.11 Q3676.01 9494.11 3657.53 9466.61 Q3639.2 9438.97 3639.2 9386.61 Q3639.2 9334.11 3657.53 9306.61 Q3676.01 9278.97 3710.87 9278.97 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M3831.84 9454.8 L3861.14 9454.8 L3861.14 9490.08 L3831.84 9490.08 L3831.84 9454.8 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M3946.42 9466.47 L4044.34 9466.47 L4044.34 9490.08 L3912.67 9490.08 L3912.67 9466.47 Q3928.64 9449.94 3956.14 9422.16 Q3983.78 9394.25 3990.87 9386.19 Q4004.34 9371.05 4009.62 9360.64 Q4015.03 9350.08 4015.03 9339.94 Q4015.03 9323.41 4003.37 9313 Q3991.84 9302.58 3973.23 9302.58 Q3960.03 9302.58 3945.31 9307.16 Q3930.73 9311.75 3914.06 9321.05 L3914.06 9292.72 Q3931 9285.91 3945.73 9282.44 Q3960.45 9278.97 3972.67 9278.97 Q4004.89 9278.97 4024.06 9295.08 Q4043.23 9311.19 4043.23 9338.14 Q4043.23 9350.91 4038.37 9362.44 Q4033.64 9373.83 4021 9389.39 Q4017.53 9393.41 3998.92 9412.72 Q3980.31 9431.89 3946.42 9466.47 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M6639.68 9301.19 Q6618.01 9301.19 6607.04 9322.58 Q6596.21 9343.83 6596.21 9386.61 Q6596.21 9429.25 6607.04 9450.64 Q6618.01 9471.88 6639.68 9471.88 Q6661.49 9471.88 6672.32 9450.64 Q6683.29 9429.25 6683.29 9386.61 Q6683.29 9343.83 6672.32 9322.58 Q6661.49 9301.19 6639.68 9301.19 M6639.68 9278.97 Q6674.54 9278.97 6692.88 9306.61 Q6711.35 9334.11 6711.35 9386.61 Q6711.35 9438.97 6692.88 9466.61 Q6674.54 9494.11 6639.68 9494.11 Q6604.82 9494.11 6586.35 9466.61 Q6568.01 9438.97 6568.01 9386.61 Q6568.01 9334.11 6586.35 9306.61 Q6604.82 9278.97 6639.68 9278.97 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M6760.65 9454.8 L6789.96 9454.8 L6789.96 9490.08 L6760.65 9490.08 L6760.65 9454.8 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M6928.15 9307.16 L6857.32 9417.86 L6928.15 9417.86 L6928.15 9307.16 M6920.79 9282.72 L6956.07 9282.72 L6956.07 9417.86 L6985.65 9417.86 L6985.65 9441.19 L6956.07 9441.19 L6956.07 9490.08 L6928.15 9490.08 L6928.15 9441.19 L6834.54 9441.19 L6834.54 9414.11 L6920.79 9282.72 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M9575.72 9301.19 Q9554.05 9301.19 9543.08 9322.58 Q9532.25 9343.83 9532.25 9386.61 Q9532.25 9429.25 9543.08 9450.64 Q9554.05 9471.88 9575.72 9471.88 Q9597.52 9471.88 9608.36 9450.64 Q9619.33 9429.25 9619.33 9386.61 Q9619.33 9343.83 9608.36 9322.58 Q9597.52 9301.19 9575.72 9301.19 M9575.72 9278.97 Q9610.58 9278.97 9628.91 9306.61 Q9647.38 9334.11 9647.38 9386.61 Q9647.38 9438.97 9628.91 9466.61 Q9610.58 9494.11 9575.72 9494.11 Q9540.86 9494.11 9522.38 9466.61 Q9504.05 9438.97 9504.05 9386.61 Q9504.05 9334.11 9522.38 9306.61 Q9540.86 9278.97 9575.72 9278.97 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M9696.69 9454.8 L9725.99 9454.8 L9725.99 9490.08 L9696.69 9490.08 L9696.69 9454.8 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M9850.58 9375.22 Q9831.69 9375.22 9820.58 9388.14 Q9809.61 9401.05 9809.61 9423.55 Q9809.61 9445.91 9820.58 9458.97 Q9831.69 9471.88 9850.58 9471.88 Q9869.47 9471.88 9880.44 9458.97 Q9891.55 9445.91 9891.55 9423.55 Q9891.55 9401.05 9880.44 9388.14 Q9869.47 9375.22 9850.58 9375.22 M9906.27 9287.3 L9906.27 9312.86 Q9895.72 9307.86 9884.88 9305.22 Q9874.19 9302.58 9863.63 9302.58 Q9835.85 9302.58 9821.13 9321.33 Q9806.55 9340.08 9804.47 9378 Q9812.66 9365.91 9825.02 9359.52 Q9837.38 9353 9852.24 9353 Q9883.49 9353 9901.55 9372.02 Q9919.74 9390.91 9919.74 9423.55 Q9919.74 9455.5 9900.85 9474.8 Q9881.97 9494.11 9850.58 9494.11 Q9814.61 9494.11 9795.58 9466.61 Q9776.55 9438.97 9776.55 9386.61 Q9776.55 9337.44 9799.88 9308.27 Q9823.22 9278.97 9862.52 9278.97 Q9873.08 9278.97 9883.77 9281.05 Q9894.6 9283.14 9906.27 9287.3 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M12511.5 9301.19 Q12489.9 9301.19 12478.9 9322.58 Q12468.1 9343.83 12468.1 9386.61 Q12468.1 9429.25 12478.9 9450.64 Q12489.9 9471.88 12511.5 9471.88 Q12533.4 9471.88 12544.2 9450.64 Q12555.2 9429.25 12555.2 9386.61 Q12555.2 9343.83 12544.2 9322.58 Q12533.4 9301.19 12511.5 9301.19 M12511.5 9278.97 Q12546.4 9278.97 12564.7 9306.61 Q12583.2 9334.11 12583.2 9386.61 Q12583.2 9438.97 12564.7 9466.61 Q12546.4 9494.11 12511.5 9494.11 Q12476.7 9494.11 12458.2 9466.61 Q12439.9 9438.97 12439.9 9386.61 Q12439.9 9334.11 12458.2 9306.61 Q12476.7 9278.97 12511.5 9278.97 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M12632.5 9454.8 L12661.8 9454.8 L12661.8 9490.08 L12632.5 9490.08 L12632.5 9454.8 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M12782.9 9391.61 Q12762.9 9391.61 12751.4 9402.3 Q12740 9413 12740 9431.75 Q12740 9450.5 12751.4 9461.19 Q12762.9 9471.88 12782.9 9471.88 Q12802.9 9471.88 12814.5 9461.19 Q12826 9450.36 12826 9431.75 Q12826 9413 12814.5 9402.3 Q12803.1 9391.61 12782.9 9391.61 M12754.9 9379.66 Q12736.8 9375.22 12726.7 9362.86 Q12716.7 9350.5 12716.7 9332.72 Q12716.7 9307.86 12734.3 9293.41 Q12752.1 9278.97 12782.9 9278.97 Q12813.9 9278.97 12831.5 9293.41 Q12849.2 9307.86 12849.2 9332.72 Q12849.2 9350.5 12839 9362.86 Q12829 9375.22 12811.1 9379.66 Q12831.4 9384.39 12842.7 9398.14 Q12854 9411.89 12854 9431.75 Q12854 9461.88 12835.6 9478 Q12817.2 9494.11 12782.9 9494.11 Q12748.6 9494.11 12730.2 9478 Q12711.8 9461.88 12711.8 9431.75 Q12711.8 9411.89 12723.2 9398.14 Q12734.6 9384.39 12754.9 9379.66 M12744.6 9335.36 Q12744.6 9351.47 12754.6 9360.5 Q12764.7 9369.52 12782.9 9369.52 Q12801 9369.52 12811.1 9360.5 Q12821.4 9351.47 12821.4 9335.36 Q12821.4 9319.25 12811.1 9310.22 Q12801 9301.19 12782.9 9301.19 Q12764.7 9301.19 12754.6 9310.22 Q12744.6 9319.25 12744.6 9335.36 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
   521.953,7859.34 14116.5,7859.34 
   "/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
   521.953,7029.19 14116.5,7029.19 
   "/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
   521.953,6199.03 14116.5,6199.03 
   "/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
   521.953,5368.88 14116.5,5368.88 
   "/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
   521.953,4538.72 14116.5,4538.72 
   "/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
   521.953,3708.57 14116.5,3708.57 
   "/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
   521.953,2878.42 14116.5,2878.42 
   "/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
   521.953,2048.26 14116.5,2048.26 
   "/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
   521.953,1218.11 14116.5,1218.11 
   "/>
-<polyline clip-path="url(#clip780)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip510)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   521.953,9126.05 521.953,283.465 
   "/>
-<polyline clip-path="url(#clip780)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip510)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   521.953,7859.34 685.088,7859.34 
   "/>
-<polyline clip-path="url(#clip780)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip510)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   521.953,7029.19 685.088,7029.19 
   "/>
-<polyline clip-path="url(#clip780)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip510)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   521.953,6199.03 685.088,6199.03 
   "/>
-<polyline clip-path="url(#clip780)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip510)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   521.953,5368.88 685.088,5368.88 
   "/>
-<polyline clip-path="url(#clip780)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip510)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   521.953,4538.72 685.088,4538.72 
   "/>
-<polyline clip-path="url(#clip780)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip510)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   521.953,3708.57 685.088,3708.57 
   "/>
-<polyline clip-path="url(#clip780)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip510)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   521.953,2878.42 685.088,2878.42 
   "/>
-<polyline clip-path="url(#clip780)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip510)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   521.953,2048.26 685.088,2048.26 
   "/>
-<polyline clip-path="url(#clip780)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip510)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   521.953,1218.11 685.088,1218.11 
   "/>
-<path clip-path="url(#clip780)" d="M-707.514 7783.3 L-745.569 7886.5 L-669.32 7886.5 L-707.514 7783.3 M-723.347 7755.66 L-691.542 7755.66 L-612.515 7963.02 L-641.681 7963.02 L-660.57 7909.83 L-754.042 7909.83 L-772.93 7963.02 L-802.514 7963.02 L-723.347 7755.66 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M-582.237 7755.66 L-554.182 7755.66 L-554.182 7939.41 L-453.21 7939.41 L-453.21 7963.02 L-582.237 7963.02 L-582.237 7755.66 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M-268.489 7771.64 L-268.489 7801.22 Q-282.655 7788.02 -298.766 7781.5 Q-314.738 7774.97 -332.794 7774.97 Q-368.349 7774.97 -387.238 7796.77 Q-406.127 7818.44 -406.127 7859.55 Q-406.127 7900.52 -387.238 7922.33 Q-368.349 7944 -332.794 7944 Q-314.738 7944 -298.766 7937.47 Q-282.655 7930.94 -268.489 7917.75 L-268.489 7947.05 Q-283.211 7957.05 -299.738 7962.05 Q-316.127 7967.05 -334.46 7967.05 Q-381.544 7967.05 -408.627 7938.3 Q-435.71 7909.41 -435.71 7859.55 Q-435.71 7809.55 -408.627 7780.8 Q-381.544 7751.91 -334.46 7751.91 Q-315.849 7751.91 -299.461 7756.91 Q-282.933 7761.78 -268.489 7771.64 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M-197.1 7778.72 L-197.1 7939.97 L-163.211 7939.97 Q-120.295 7939.97 -100.434 7920.52 Q-80.4341 7901.08 -80.4341 7859.14 Q-80.4341 7817.47 -100.434 7798.16 Q-120.295 7778.72 -163.211 7778.72 L-197.1 7778.72 M-225.156 7755.66 L-167.517 7755.66 Q-107.239 7755.66 -79.0452 7780.8 Q-50.8509 7805.8 -50.8509 7859.14 Q-50.8509 7912.75 -79.1841 7937.89 Q-107.517 7963.02 -167.517 7963.02 L-225.156 7963.02 L-225.156 7755.66 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M20.5376 7939.41 L118.454 7939.41 L118.454 7963.02 L-13.2122 7963.02 L-13.2122 7939.41 Q2.75994 7922.89 30.2598 7895.11 Q57.8985 7867.19 64.9818 7859.14 Q78.454 7844 83.7317 7833.58 Q89.1484 7823.02 89.1484 7812.89 Q89.1484 7796.36 77.4818 7785.94 Q65.954 7775.52 47.343 7775.52 Q34.1487 7775.52 19.4265 7780.11 Q4.84326 7784.69 -11.8233 7794 L-11.8233 7765.66 Q5.12103 7758.86 19.8432 7755.39 Q34.5653 7751.91 46.7875 7751.91 Q79.0095 7751.91 98.1761 7768.03 Q117.343 7784.14 117.343 7811.08 Q117.343 7823.86 112.482 7835.39 Q107.759 7846.77 95.1206 7862.33 Q91.6483 7866.36 73.0373 7885.66 Q54.4263 7904.83 20.5376 7939.41 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M303.036 7807.47 L246.786 7883.16 L305.953 7963.02 L275.814 7963.02 L230.536 7901.91 L185.259 7963.02 L155.12 7963.02 L215.537 7881.64 L160.259 7807.47 L190.398 7807.47 L231.648 7862.89 L272.897 7807.47 L303.036 7807.47 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M-351.683 6953.15 L-389.738 7056.34 L-313.488 7056.34 L-351.683 6953.15 M-367.516 6925.51 L-335.71 6925.51 L-256.683 7132.87 L-285.85 7132.87 L-304.738 7079.68 L-398.21 7079.68 L-417.099 7132.87 L-446.682 7132.87 L-367.516 6925.51 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M-198.35 6948.56 L-198.35 7109.81 L-164.461 7109.81 Q-121.545 7109.81 -101.684 7090.37 Q-81.6841 7070.93 -81.6841 7028.98 Q-81.6841 6987.31 -101.684 6968.01 Q-121.545 6948.56 -164.461 6948.56 L-198.35 6948.56 M-226.406 6925.51 L-168.767 6925.51 Q-108.489 6925.51 -80.2952 6950.65 Q-52.1009 6975.65 -52.1009 7028.98 Q-52.1009 7082.59 -80.4341 7107.73 Q-108.767 7132.87 -168.767 7132.87 L-226.406 7132.87 L-226.406 6925.51 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M-7.3789 6925.51 L20.6765 6925.51 L20.6765 7013.15 L113.732 6925.51 L149.842 6925.51 L46.9264 7022.18 L157.204 7132.87 L120.259 7132.87 L20.6765 7033.01 L20.6765 7132.87 L-7.3789 7132.87 L-7.3789 6925.51 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M186.509 7109.26 L232.342 7109.26 L232.342 6951.06 L182.481 6961.06 L182.481 6935.51 L232.064 6925.51 L260.12 6925.51 L260.12 7109.26 L305.953 7109.26 L305.953 7132.87 L186.509 7132.87 L186.509 7109.26 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M7.06547 6205.49 Q16.0932 6208.55 24.5654 6218.55 Q33.1764 6228.55 41.7875 6246.05 L70.2596 6302.71 L40.1208 6302.71 L13.5932 6249.52 Q3.31549 6228.69 -6.40668 6221.88 Q-15.99 6215.08 -32.6565 6215.08 L-63.2119 6215.08 L-63.2119 6302.71 L-91.2673 6302.71 L-91.2673 6095.35 L-27.9343 6095.35 Q7.62102 6095.35 25.1209 6110.22 Q42.6208 6125.08 42.6208 6155.08 Q42.6208 6174.66 33.4542 6187.58 Q24.4265 6200.49 7.06547 6205.49 M-63.2119 6118.41 L-63.2119 6192.02 L-27.9343 6192.02 Q-7.65667 6192.02 2.62105 6182.72 Q13.0377 6173.27 13.0377 6155.08 Q13.0377 6136.88 2.62105 6127.72 Q-7.65667 6118.41 -27.9343 6118.41 L-63.2119 6118.41 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M134.426 6118.41 L134.426 6196.33 L169.703 6196.33 Q189.287 6196.33 199.981 6186.19 Q210.675 6176.05 210.675 6157.3 Q210.675 6138.69 199.981 6128.55 Q189.287 6118.41 169.703 6118.41 L134.426 6118.41 M106.37 6095.35 L169.703 6095.35 Q204.564 6095.35 222.342 6111.19 Q240.259 6126.88 240.259 6157.3 Q240.259 6187.99 222.342 6203.69 Q204.564 6219.38 169.703 6219.38 L134.426 6219.38 L134.426 6302.71 L106.37 6302.71 L106.37 6095.35 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M277.897 6095.35 L305.953 6095.35 L305.953 6302.71 L277.897 6302.71 L277.897 6095.35 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M-454.043 5265.2 L-278.627 5265.2 L-278.627 5288.81 L-352.238 5288.81 L-352.238 5472.56 L-380.432 5472.56 L-380.432 5288.81 L-454.043 5288.81 L-454.043 5265.2 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M-251.544 5265.2 L-223.489 5265.2 L-223.489 5350.2 L-121.545 5350.2 L-121.545 5265.2 L-93.4895 5265.2 L-93.4895 5472.56 L-121.545 5472.56 L-121.545 5373.81 L-223.489 5373.81 L-223.489 5472.56 L-251.544 5472.56 L-251.544 5265.2 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M-9.60111 5288.26 L-9.60111 5449.5 L24.2876 5449.5 Q67.204 5449.5 87.065 5430.06 Q107.065 5410.62 107.065 5368.67 Q107.065 5327 87.065 5307.7 Q67.204 5288.26 24.2876 5288.26 L-9.60111 5288.26 M-37.6565 5265.2 L19.9821 5265.2 Q80.2595 5265.2 108.454 5290.34 Q136.648 5315.34 136.648 5368.67 Q136.648 5422.28 108.315 5447.42 Q79.9817 5472.56 19.9821 5472.56 L-37.6565 5472.56 L-37.6565 5265.2 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M208.037 5448.95 L305.953 5448.95 L305.953 5472.56 L174.287 5472.56 L174.287 5448.95 Q190.259 5432.42 217.759 5404.64 Q245.398 5376.73 252.481 5368.67 Q265.953 5353.53 271.231 5343.12 Q276.647 5332.56 276.647 5322.42 Q276.647 5305.89 264.981 5295.48 Q253.453 5285.06 234.842 5285.06 Q221.648 5285.06 206.926 5289.64 Q192.342 5294.23 175.676 5303.53 L175.676 5275.2 Q192.62 5268.39 207.342 5264.92 Q222.064 5261.45 234.286 5261.45 Q266.509 5261.45 285.675 5277.56 Q304.842 5293.67 304.842 5320.62 Q304.842 5333.39 299.981 5344.92 Q295.258 5356.31 282.62 5371.87 Q279.147 5375.89 260.536 5395.2 Q241.925 5414.37 208.037 5448.95 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M-882.374 4435.04 L-751.264 4435.04 L-751.264 4458.66 L-854.319 4458.66 L-854.319 4520.04 L-755.569 4520.04 L-755.569 4543.66 L-854.319 4543.66 L-854.319 4618.79 L-748.764 4618.79 L-748.764 4642.4 L-882.374 4642.4 L-882.374 4435.04 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M-712.653 4435.04 L-682.514 4435.04 L-630.987 4512.13 L-579.181 4435.04 L-549.043 4435.04 L-615.709 4534.63 L-544.598 4642.4 L-574.737 4642.4 L-633.07 4554.21 L-691.82 4642.4 L-722.097 4642.4 L-648.07 4531.71 L-712.653 4435.04 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M-390.71 4689.63 L-390.71 4709.49 L-538.487 4709.49 L-538.487 4689.63 L-390.71 4689.63 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M-287.933 4426.3 L-287.933 4447.54 L-312.377 4447.54 Q-326.127 4447.54 -331.544 4453.1 Q-336.822 4458.66 -336.822 4473.1 L-336.822 4486.85 L-294.738 4486.85 L-294.738 4506.71 L-336.822 4506.71 L-336.822 4642.4 L-362.516 4642.4 L-362.516 4506.71 L-386.96 4506.71 L-386.96 4486.85 L-362.516 4486.85 L-362.516 4476.02 Q-362.516 4450.04 -350.433 4438.24 Q-338.349 4426.3 -312.099 4426.3 L-287.933 4426.3 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M-176.406 4510.74 Q-180.711 4508.24 -185.85 4507.13 Q-190.85 4505.88 -196.961 4505.88 Q-218.628 4505.88 -230.294 4520.04 Q-241.822 4534.07 -241.822 4560.46 L-241.822 4642.4 L-267.516 4642.4 L-267.516 4486.85 L-241.822 4486.85 L-241.822 4511.02 Q-233.767 4496.85 -220.85 4490.04 Q-207.933 4483.1 -189.461 4483.1 Q-186.822 4483.1 -183.628 4483.52 Q-180.434 4483.79 -176.545 4484.49 L-176.406 4510.74 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M-152.239 4581.02 L-152.239 4486.85 L-126.684 4486.85 L-126.684 4580.04 Q-126.684 4602.13 -118.073 4613.24 Q-109.462 4624.21 -92.2396 4624.21 Q-71.5452 4624.21 -59.6008 4611.02 Q-47.5176 4597.82 -47.5176 4575.04 L-47.5176 4486.85 L-21.9622 4486.85 L-21.9622 4642.4 L-47.5176 4642.4 L-47.5176 4618.52 Q-56.8231 4632.68 -69.1841 4639.63 Q-81.4063 4646.43 -97.6562 4646.43 Q-124.462 4646.43 -138.35 4629.77 Q-152.239 4613.1 -152.239 4581.02 M-87.934 4483.1 L-87.934 4483.1 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M148.87 4689.63 L148.87 4709.49 L1.09328 4709.49 L1.09328 4689.63 L148.87 4689.63 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M305.953 4558.24 L305.953 4570.74 L188.453 4570.74 Q190.12 4597.13 204.287 4611.02 Q218.592 4624.77 244.009 4624.77 Q258.731 4624.77 272.481 4621.16 Q286.37 4617.54 299.981 4610.32 L299.981 4634.49 Q286.231 4640.32 271.786 4643.38 Q257.342 4646.43 242.481 4646.43 Q205.259 4646.43 183.453 4624.77 Q161.787 4603.1 161.787 4566.16 Q161.787 4527.96 182.342 4505.6 Q203.037 4483.1 238.036 4483.1 Q269.425 4483.1 287.62 4503.38 Q305.953 4523.52 305.953 4558.24 M280.397 4550.74 Q280.12 4529.77 268.592 4517.27 Q257.203 4504.77 238.314 4504.77 Q216.925 4504.77 204.009 4516.85 Q191.231 4528.93 189.287 4550.88 L280.397 4550.74 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M-840.013 3604.89 L-708.903 3604.89 L-708.903 3628.5 L-811.958 3628.5 L-811.958 3689.89 L-713.208 3689.89 L-713.208 3713.5 L-811.958 3713.5 L-811.958 3788.64 L-706.403 3788.64 L-706.403 3812.25 L-840.013 3812.25 L-840.013 3604.89 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M-670.292 3604.89 L-640.153 3604.89 L-588.626 3681.97 L-536.821 3604.89 L-506.682 3604.89 L-573.348 3704.47 L-502.237 3812.25 L-532.376 3812.25 L-590.709 3724.06 L-649.459 3812.25 L-679.736 3812.25 L-605.709 3701.56 L-670.292 3604.89 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M-348.349 3859.47 L-348.349 3879.33 L-496.126 3879.33 L-496.126 3859.47 L-348.349 3859.47 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M-264.044 3674.61 Q-284.6 3674.61 -296.544 3690.72 Q-308.488 3706.7 -308.488 3734.61 Q-308.488 3762.53 -296.683 3778.64 Q-284.739 3794.61 -264.044 3794.61 Q-243.628 3794.61 -231.683 3778.5 Q-219.739 3762.39 -219.739 3734.61 Q-219.739 3706.97 -231.683 3690.86 Q-243.628 3674.61 -264.044 3674.61 M-264.044 3652.95 Q-230.711 3652.95 -211.683 3674.61 Q-192.656 3696.28 -192.656 3734.61 Q-192.656 3772.81 -211.683 3794.61 Q-230.711 3816.28 -264.044 3816.28 Q-297.516 3816.28 -316.544 3794.61 Q-335.433 3772.81 -335.433 3734.61 Q-335.433 3696.28 -316.544 3674.61 Q-297.516 3652.95 -264.044 3652.95 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M-122.517 3788.64 L-24.601 3788.64 L-24.601 3812.25 L-156.267 3812.25 L-156.267 3788.64 Q-140.295 3772.11 -112.795 3744.33 Q-85.1563 3716.42 -78.073 3708.36 Q-64.6008 3693.22 -59.3231 3682.81 Q-53.9064 3672.25 -53.9064 3662.11 Q-53.9064 3645.58 -65.573 3635.17 Q-77.1007 3624.75 -95.7118 3624.75 Q-108.906 3624.75 -123.628 3629.33 Q-138.212 3633.92 -154.878 3643.22 L-154.878 3614.89 Q-137.934 3608.08 -123.212 3604.61 Q-108.489 3601.14 -96.2673 3601.14 Q-64.0453 3601.14 -44.8787 3617.25 Q-25.7121 3633.36 -25.7121 3660.31 Q-25.7121 3673.08 -30.5732 3684.61 Q-35.2954 3696 -47.9342 3711.56 Q-51.4064 3715.58 -70.0175 3734.89 Q-88.6285 3754.06 -122.517 3788.64 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M148.87 3859.47 L148.87 3879.33 L1.09328 3879.33 L1.09328 3859.47 L148.87 3859.47 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M305.953 3728.08 L305.953 3740.58 L188.453 3740.58 Q190.12 3766.97 204.287 3780.86 Q218.592 3794.61 244.009 3794.61 Q258.731 3794.61 272.481 3791 Q286.37 3787.39 299.981 3780.17 L299.981 3804.33 Q286.231 3810.17 271.786 3813.22 Q257.342 3816.28 242.481 3816.28 Q205.259 3816.28 183.453 3794.61 Q161.787 3772.94 161.787 3736 Q161.787 3697.81 182.342 3675.45 Q203.037 3652.95 238.036 3652.95 Q269.425 3652.95 287.62 3673.22 Q305.953 3693.36 305.953 3728.08 M280.397 3720.58 Q280.12 3699.61 268.592 3687.11 Q257.203 3674.61 238.314 3674.61 Q216.925 3674.61 204.009 3686.7 Q191.231 3698.78 189.287 3720.72 L280.397 3720.58 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M-255.572 2774.74 L-136.406 2774.74 L-136.406 2798.35 L-227.517 2798.35 L-227.517 2859.46 L-145.295 2859.46 L-145.295 2883.07 L-227.517 2883.07 L-227.517 2982.1 L-255.572 2982.1 L-255.572 2774.74 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M-95.1562 2774.74 L-66.9619 2774.74 L-66.9619 2900.71 Q-66.9619 2934.04 -54.8786 2948.76 Q-42.7954 2963.35 -15.7122 2963.35 Q11.2321 2963.35 23.3154 2948.76 Q35.3987 2934.04 35.3987 2900.71 L35.3987 2774.74 L63.5929 2774.74 L63.5929 2904.18 Q63.5929 2944.73 43.4542 2965.43 Q23.4543 2986.12 -15.7122 2986.12 Q-55.0175 2986.12 -75.1563 2965.43 Q-95.1562 2944.73 -95.1562 2904.18 L-95.1562 2774.74 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M116.232 2774.74 L158.037 2774.74 L210.953 2915.85 L264.147 2774.74 L305.953 2774.74 L305.953 2982.1 L278.592 2982.1 L278.592 2800.01 L225.12 2942.23 L196.926 2942.23 L143.454 2800.01 L143.454 2982.1 L116.232 2982.1 L116.232 2774.74 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M-507.098 2122.36 L-507.098 2066.66 L-552.932 2066.66 L-552.932 2043.61 L-479.321 2043.61 L-479.321 2132.64 Q-495.571 2144.16 -515.154 2150.14 Q-534.737 2155.97 -556.959 2155.97 Q-605.57 2155.97 -633.07 2127.64 Q-660.431 2099.16 -660.431 2048.47 Q-660.431 1997.64 -633.07 1969.3 Q-605.57 1940.83 -556.959 1940.83 Q-536.682 1940.83 -518.487 1945.83 Q-500.154 1950.83 -484.737 1960.55 L-484.737 1990.41 Q-500.293 1977.22 -517.793 1970.55 Q-535.293 1963.89 -554.598 1963.89 Q-592.654 1963.89 -611.82 1985.14 Q-630.848 2006.39 -630.848 2048.47 Q-630.848 2090.41 -611.82 2111.66 Q-592.654 2132.91 -554.598 2132.91 Q-539.737 2132.91 -528.071 2130.41 Q-516.404 2127.77 -507.098 2122.36 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M-428.071 1944.58 L-400.016 1944.58 L-400.016 2128.33 L-299.044 2128.33 L-299.044 2151.94 L-428.071 2151.94 L-428.071 1944.58 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M-286.961 1944.58 L-258.766 1944.58 L-258.766 2070.55 Q-258.766 2103.89 -246.683 2118.61 Q-234.6 2133.19 -207.517 2133.19 Q-180.572 2133.19 -168.489 2118.61 Q-156.406 2103.89 -156.406 2070.55 L-156.406 1944.58 L-128.212 1944.58 L-128.212 2074.02 Q-128.212 2114.58 -148.35 2135.27 Q-168.35 2155.97 -207.517 2155.97 Q-246.822 2155.97 -266.961 2135.27 Q-286.961 2114.58 -286.961 2074.02 L-286.961 1944.58 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M-51.4064 1952.22 L-51.4064 1996.39 L1.23217 1996.39 L1.23217 2016.25 L-51.4064 2016.25 L-51.4064 2100.69 Q-51.4064 2119.72 -46.2676 2125.14 Q-40.9898 2130.55 -25.0177 2130.55 L1.23217 2130.55 L1.23217 2151.94 L-25.0177 2151.94 Q-54.6009 2151.94 -65.8508 2140.97 Q-77.1007 2129.86 -77.1007 2100.69 L-77.1007 2016.25 L-95.8506 2016.25 L-95.8506 1996.39 L-77.1007 1996.39 L-77.1007 1952.22 L-51.4064 1952.22 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M62.6207 2128.33 L160.537 2128.33 L160.537 2151.94 L28.8709 2151.94 L28.8709 2128.33 Q44.843 2111.8 72.3429 2084.02 Q99.9816 2056.11 107.065 2048.05 Q120.537 2032.91 125.815 2022.5 Q131.231 2011.94 131.231 2001.8 Q131.231 1985.27 119.565 1974.86 Q108.037 1964.44 89.4261 1964.44 Q76.2318 1964.44 61.5096 1969.02 Q46.9264 1973.61 30.2598 1982.91 L30.2598 1954.58 Q47.2041 1947.78 61.9263 1944.3 Q76.6484 1940.83 88.8706 1940.83 Q121.093 1940.83 140.259 1956.94 Q159.426 1973.05 159.426 2000 Q159.426 2012.77 154.565 2024.3 Q149.842 2035.69 137.204 2051.25 Q133.731 2055.27 115.12 2074.58 Q96.5094 2093.75 62.6207 2128.33 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M305.953 2020.27 Q301.647 2017.77 296.508 2016.66 Q291.508 2015.41 285.397 2015.41 Q263.731 2015.41 252.064 2029.58 Q240.536 2043.61 240.536 2070 L240.536 2151.94 L214.842 2151.94 L214.842 1996.39 L240.536 1996.39 L240.536 2020.55 Q248.592 2006.39 261.509 1999.58 Q274.425 1992.64 292.897 1992.64 Q295.536 1992.64 298.731 1993.05 Q301.925 1993.33 305.814 1994.02 L305.953 2020.27 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M-243.767 1114.43 L-201.961 1114.43 L-149.045 1255.54 L-95.8506 1114.43 L-54.0453 1114.43 L-54.0453 1321.79 L-81.4063 1321.79 L-81.4063 1139.7 L-134.878 1281.93 L-163.073 1281.93 L-216.544 1139.7 L-216.544 1321.79 L-243.767 1321.79 L-243.767 1114.43 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M1.64883 1114.43 L132.759 1114.43 L132.759 1138.04 L29.7042 1138.04 L29.7042 1199.43 L128.454 1199.43 L128.454 1223.04 L29.7042 1223.04 L29.7042 1298.17 L135.259 1298.17 L135.259 1321.79 L1.64883 1321.79 L1.64883 1114.43 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M208.037 1298.17 L305.953 1298.17 L305.953 1321.79 L174.287 1321.79 L174.287 1298.17 Q190.259 1281.65 217.759 1253.87 Q245.398 1225.95 252.481 1217.9 Q265.953 1202.76 271.231 1192.34 Q276.647 1181.79 276.647 1171.65 Q276.647 1155.12 264.981 1144.7 Q253.453 1134.29 234.842 1134.29 Q221.648 1134.29 206.926 1138.87 Q192.342 1143.45 175.676 1152.76 L175.676 1124.43 Q192.62 1117.62 207.342 1114.15 Q222.064 1110.68 234.286 1110.68 Q266.509 1110.68 285.675 1126.79 Q304.842 1142.9 304.842 1169.84 Q304.842 1182.62 299.981 1194.15 Q295.258 1205.54 282.62 1221.09 Q279.147 1225.12 260.536 1244.43 Q241.925 1263.59 208.037 1298.17 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip510)" d="M-707.514 7783.3 L-745.569 7886.5 L-669.32 7886.5 L-707.514 7783.3 M-723.347 7755.66 L-691.542 7755.66 L-612.515 7963.02 L-641.681 7963.02 L-660.57 7909.83 L-754.042 7909.83 L-772.93 7963.02 L-802.514 7963.02 L-723.347 7755.66 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M-582.237 7755.66 L-554.182 7755.66 L-554.182 7939.41 L-453.21 7939.41 L-453.21 7963.02 L-582.237 7963.02 L-582.237 7755.66 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M-268.489 7771.64 L-268.489 7801.22 Q-282.655 7788.02 -298.766 7781.5 Q-314.738 7774.97 -332.794 7774.97 Q-368.349 7774.97 -387.238 7796.77 Q-406.127 7818.44 -406.127 7859.55 Q-406.127 7900.52 -387.238 7922.33 Q-368.349 7944 -332.794 7944 Q-314.738 7944 -298.766 7937.47 Q-282.655 7930.94 -268.489 7917.75 L-268.489 7947.05 Q-283.211 7957.05 -299.738 7962.05 Q-316.127 7967.05 -334.46 7967.05 Q-381.544 7967.05 -408.627 7938.3 Q-435.71 7909.41 -435.71 7859.55 Q-435.71 7809.55 -408.627 7780.8 Q-381.544 7751.91 -334.46 7751.91 Q-315.849 7751.91 -299.461 7756.91 Q-282.933 7761.78 -268.489 7771.64 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M-197.1 7778.72 L-197.1 7939.97 L-163.211 7939.97 Q-120.295 7939.97 -100.434 7920.52 Q-80.4341 7901.08 -80.4341 7859.14 Q-80.4341 7817.47 -100.434 7798.16 Q-120.295 7778.72 -163.211 7778.72 L-197.1 7778.72 M-225.156 7755.66 L-167.517 7755.66 Q-107.239 7755.66 -79.0452 7780.8 Q-50.8509 7805.8 -50.8509 7859.14 Q-50.8509 7912.75 -79.1841 7937.89 Q-107.517 7963.02 -167.517 7963.02 L-225.156 7963.02 L-225.156 7755.66 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M20.5376 7939.41 L118.454 7939.41 L118.454 7963.02 L-13.2122 7963.02 L-13.2122 7939.41 Q2.75994 7922.89 30.2598 7895.11 Q57.8985 7867.19 64.9818 7859.14 Q78.454 7844 83.7317 7833.58 Q89.1484 7823.02 89.1484 7812.89 Q89.1484 7796.36 77.4818 7785.94 Q65.954 7775.52 47.343 7775.52 Q34.1487 7775.52 19.4265 7780.11 Q4.84326 7784.69 -11.8233 7794 L-11.8233 7765.66 Q5.12103 7758.86 19.8432 7755.39 Q34.5653 7751.91 46.7875 7751.91 Q79.0095 7751.91 98.1761 7768.03 Q117.343 7784.14 117.343 7811.08 Q117.343 7823.86 112.482 7835.39 Q107.759 7846.77 95.1206 7862.33 Q91.6483 7866.36 73.0373 7885.66 Q54.4263 7904.83 20.5376 7939.41 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M303.036 7807.47 L246.786 7883.16 L305.953 7963.02 L275.814 7963.02 L230.536 7901.91 L185.259 7963.02 L155.12 7963.02 L215.537 7881.64 L160.259 7807.47 L190.398 7807.47 L231.648 7862.89 L272.897 7807.47 L303.036 7807.47 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M-351.683 6953.15 L-389.738 7056.34 L-313.488 7056.34 L-351.683 6953.15 M-367.516 6925.51 L-335.71 6925.51 L-256.683 7132.87 L-285.85 7132.87 L-304.738 7079.68 L-398.21 7079.68 L-417.099 7132.87 L-446.682 7132.87 L-367.516 6925.51 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M-198.35 6948.56 L-198.35 7109.81 L-164.461 7109.81 Q-121.545 7109.81 -101.684 7090.37 Q-81.6841 7070.93 -81.6841 7028.98 Q-81.6841 6987.31 -101.684 6968.01 Q-121.545 6948.56 -164.461 6948.56 L-198.35 6948.56 M-226.406 6925.51 L-168.767 6925.51 Q-108.489 6925.51 -80.2952 6950.65 Q-52.1009 6975.65 -52.1009 7028.98 Q-52.1009 7082.59 -80.4341 7107.73 Q-108.767 7132.87 -168.767 7132.87 L-226.406 7132.87 L-226.406 6925.51 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M-7.3789 6925.51 L20.6765 6925.51 L20.6765 7013.15 L113.732 6925.51 L149.842 6925.51 L46.9264 7022.18 L157.204 7132.87 L120.259 7132.87 L20.6765 7033.01 L20.6765 7132.87 L-7.3789 7132.87 L-7.3789 6925.51 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M186.509 7109.26 L232.342 7109.26 L232.342 6951.06 L182.481 6961.06 L182.481 6935.51 L232.064 6925.51 L260.12 6925.51 L260.12 7109.26 L305.953 7109.26 L305.953 7132.87 L186.509 7132.87 L186.509 7109.26 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M7.06547 6205.49 Q16.0932 6208.55 24.5654 6218.55 Q33.1764 6228.55 41.7875 6246.05 L70.2596 6302.71 L40.1208 6302.71 L13.5932 6249.52 Q3.31549 6228.69 -6.40668 6221.88 Q-15.99 6215.08 -32.6565 6215.08 L-63.2119 6215.08 L-63.2119 6302.71 L-91.2673 6302.71 L-91.2673 6095.35 L-27.9343 6095.35 Q7.62102 6095.35 25.1209 6110.22 Q42.6208 6125.08 42.6208 6155.08 Q42.6208 6174.66 33.4542 6187.58 Q24.4265 6200.49 7.06547 6205.49 M-63.2119 6118.41 L-63.2119 6192.02 L-27.9343 6192.02 Q-7.65667 6192.02 2.62105 6182.72 Q13.0377 6173.27 13.0377 6155.08 Q13.0377 6136.88 2.62105 6127.72 Q-7.65667 6118.41 -27.9343 6118.41 L-63.2119 6118.41 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M134.426 6118.41 L134.426 6196.33 L169.703 6196.33 Q189.287 6196.33 199.981 6186.19 Q210.675 6176.05 210.675 6157.3 Q210.675 6138.69 199.981 6128.55 Q189.287 6118.41 169.703 6118.41 L134.426 6118.41 M106.37 6095.35 L169.703 6095.35 Q204.564 6095.35 222.342 6111.19 Q240.259 6126.88 240.259 6157.3 Q240.259 6187.99 222.342 6203.69 Q204.564 6219.38 169.703 6219.38 L134.426 6219.38 L134.426 6302.71 L106.37 6302.71 L106.37 6095.35 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M277.897 6095.35 L305.953 6095.35 L305.953 6302.71 L277.897 6302.71 L277.897 6095.35 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M-454.043 5265.2 L-278.627 5265.2 L-278.627 5288.81 L-352.238 5288.81 L-352.238 5472.56 L-380.432 5472.56 L-380.432 5288.81 L-454.043 5288.81 L-454.043 5265.2 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M-251.544 5265.2 L-223.489 5265.2 L-223.489 5350.2 L-121.545 5350.2 L-121.545 5265.2 L-93.4895 5265.2 L-93.4895 5472.56 L-121.545 5472.56 L-121.545 5373.81 L-223.489 5373.81 L-223.489 5472.56 L-251.544 5472.56 L-251.544 5265.2 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M-9.60111 5288.26 L-9.60111 5449.5 L24.2876 5449.5 Q67.204 5449.5 87.065 5430.06 Q107.065 5410.62 107.065 5368.67 Q107.065 5327 87.065 5307.7 Q67.204 5288.26 24.2876 5288.26 L-9.60111 5288.26 M-37.6565 5265.2 L19.9821 5265.2 Q80.2595 5265.2 108.454 5290.34 Q136.648 5315.34 136.648 5368.67 Q136.648 5422.28 108.315 5447.42 Q79.9817 5472.56 19.9821 5472.56 L-37.6565 5472.56 L-37.6565 5265.2 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M208.037 5448.95 L305.953 5448.95 L305.953 5472.56 L174.287 5472.56 L174.287 5448.95 Q190.259 5432.42 217.759 5404.64 Q245.398 5376.73 252.481 5368.67 Q265.953 5353.53 271.231 5343.12 Q276.647 5332.56 276.647 5322.42 Q276.647 5305.89 264.981 5295.48 Q253.453 5285.06 234.842 5285.06 Q221.648 5285.06 206.926 5289.64 Q192.342 5294.23 175.676 5303.53 L175.676 5275.2 Q192.62 5268.39 207.342 5264.92 Q222.064 5261.45 234.286 5261.45 Q266.509 5261.45 285.675 5277.56 Q304.842 5293.67 304.842 5320.62 Q304.842 5333.39 299.981 5344.92 Q295.258 5356.31 282.62 5371.87 Q279.147 5375.89 260.536 5395.2 Q241.925 5414.37 208.037 5448.95 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M-882.374 4435.04 L-751.264 4435.04 L-751.264 4458.66 L-854.319 4458.66 L-854.319 4520.04 L-755.569 4520.04 L-755.569 4543.66 L-854.319 4543.66 L-854.319 4618.79 L-748.764 4618.79 L-748.764 4642.4 L-882.374 4642.4 L-882.374 4435.04 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M-712.653 4435.04 L-682.514 4435.04 L-630.987 4512.13 L-579.181 4435.04 L-549.043 4435.04 L-615.709 4534.63 L-544.598 4642.4 L-574.737 4642.4 L-633.07 4554.21 L-691.82 4642.4 L-722.097 4642.4 L-648.07 4531.71 L-712.653 4435.04 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M-390.71 4689.63 L-390.71 4709.49 L-538.487 4709.49 L-538.487 4689.63 L-390.71 4689.63 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M-287.933 4426.3 L-287.933 4447.54 L-312.377 4447.54 Q-326.127 4447.54 -331.544 4453.1 Q-336.822 4458.66 -336.822 4473.1 L-336.822 4486.85 L-294.738 4486.85 L-294.738 4506.71 L-336.822 4506.71 L-336.822 4642.4 L-362.516 4642.4 L-362.516 4506.71 L-386.96 4506.71 L-386.96 4486.85 L-362.516 4486.85 L-362.516 4476.02 Q-362.516 4450.04 -350.433 4438.24 Q-338.349 4426.3 -312.099 4426.3 L-287.933 4426.3 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M-176.406 4510.74 Q-180.711 4508.24 -185.85 4507.13 Q-190.85 4505.88 -196.961 4505.88 Q-218.628 4505.88 -230.294 4520.04 Q-241.822 4534.07 -241.822 4560.46 L-241.822 4642.4 L-267.516 4642.4 L-267.516 4486.85 L-241.822 4486.85 L-241.822 4511.02 Q-233.767 4496.85 -220.85 4490.04 Q-207.933 4483.1 -189.461 4483.1 Q-186.822 4483.1 -183.628 4483.52 Q-180.434 4483.79 -176.545 4484.49 L-176.406 4510.74 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M-152.239 4581.02 L-152.239 4486.85 L-126.684 4486.85 L-126.684 4580.04 Q-126.684 4602.13 -118.073 4613.24 Q-109.462 4624.21 -92.2396 4624.21 Q-71.5452 4624.21 -59.6008 4611.02 Q-47.5176 4597.82 -47.5176 4575.04 L-47.5176 4486.85 L-21.9622 4486.85 L-21.9622 4642.4 L-47.5176 4642.4 L-47.5176 4618.52 Q-56.8231 4632.68 -69.1841 4639.63 Q-81.4063 4646.43 -97.6562 4646.43 Q-124.462 4646.43 -138.35 4629.77 Q-152.239 4613.1 -152.239 4581.02 M-87.934 4483.1 L-87.934 4483.1 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M148.87 4689.63 L148.87 4709.49 L1.09328 4709.49 L1.09328 4689.63 L148.87 4689.63 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M305.953 4558.24 L305.953 4570.74 L188.453 4570.74 Q190.12 4597.13 204.287 4611.02 Q218.592 4624.77 244.009 4624.77 Q258.731 4624.77 272.481 4621.16 Q286.37 4617.54 299.981 4610.32 L299.981 4634.49 Q286.231 4640.32 271.786 4643.38 Q257.342 4646.43 242.481 4646.43 Q205.259 4646.43 183.453 4624.77 Q161.787 4603.1 161.787 4566.16 Q161.787 4527.96 182.342 4505.6 Q203.037 4483.1 238.036 4483.1 Q269.425 4483.1 287.62 4503.38 Q305.953 4523.52 305.953 4558.24 M280.397 4550.74 Q280.12 4529.77 268.592 4517.27 Q257.203 4504.77 238.314 4504.77 Q216.925 4504.77 204.009 4516.85 Q191.231 4528.93 189.287 4550.88 L280.397 4550.74 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M-840.013 3604.89 L-708.903 3604.89 L-708.903 3628.5 L-811.958 3628.5 L-811.958 3689.89 L-713.208 3689.89 L-713.208 3713.5 L-811.958 3713.5 L-811.958 3788.64 L-706.403 3788.64 L-706.403 3812.25 L-840.013 3812.25 L-840.013 3604.89 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M-670.292 3604.89 L-640.153 3604.89 L-588.626 3681.97 L-536.821 3604.89 L-506.682 3604.89 L-573.348 3704.47 L-502.237 3812.25 L-532.376 3812.25 L-590.709 3724.06 L-649.459 3812.25 L-679.736 3812.25 L-605.709 3701.56 L-670.292 3604.89 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M-348.349 3859.47 L-348.349 3879.33 L-496.126 3879.33 L-496.126 3859.47 L-348.349 3859.47 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M-264.044 3674.61 Q-284.6 3674.61 -296.544 3690.72 Q-308.488 3706.7 -308.488 3734.61 Q-308.488 3762.53 -296.683 3778.64 Q-284.739 3794.61 -264.044 3794.61 Q-243.628 3794.61 -231.683 3778.5 Q-219.739 3762.39 -219.739 3734.61 Q-219.739 3706.97 -231.683 3690.86 Q-243.628 3674.61 -264.044 3674.61 M-264.044 3652.95 Q-230.711 3652.95 -211.683 3674.61 Q-192.656 3696.28 -192.656 3734.61 Q-192.656 3772.81 -211.683 3794.61 Q-230.711 3816.28 -264.044 3816.28 Q-297.516 3816.28 -316.544 3794.61 Q-335.433 3772.81 -335.433 3734.61 Q-335.433 3696.28 -316.544 3674.61 Q-297.516 3652.95 -264.044 3652.95 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M-122.517 3788.64 L-24.601 3788.64 L-24.601 3812.25 L-156.267 3812.25 L-156.267 3788.64 Q-140.295 3772.11 -112.795 3744.33 Q-85.1563 3716.42 -78.073 3708.36 Q-64.6008 3693.22 -59.3231 3682.81 Q-53.9064 3672.25 -53.9064 3662.11 Q-53.9064 3645.58 -65.573 3635.17 Q-77.1007 3624.75 -95.7118 3624.75 Q-108.906 3624.75 -123.628 3629.33 Q-138.212 3633.92 -154.878 3643.22 L-154.878 3614.89 Q-137.934 3608.08 -123.212 3604.61 Q-108.489 3601.14 -96.2673 3601.14 Q-64.0453 3601.14 -44.8787 3617.25 Q-25.7121 3633.36 -25.7121 3660.31 Q-25.7121 3673.08 -30.5732 3684.61 Q-35.2954 3696 -47.9342 3711.56 Q-51.4064 3715.58 -70.0175 3734.89 Q-88.6285 3754.06 -122.517 3788.64 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M148.87 3859.47 L148.87 3879.33 L1.09328 3879.33 L1.09328 3859.47 L148.87 3859.47 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M305.953 3728.08 L305.953 3740.58 L188.453 3740.58 Q190.12 3766.97 204.287 3780.86 Q218.592 3794.61 244.009 3794.61 Q258.731 3794.61 272.481 3791 Q286.37 3787.39 299.981 3780.17 L299.981 3804.33 Q286.231 3810.17 271.786 3813.22 Q257.342 3816.28 242.481 3816.28 Q205.259 3816.28 183.453 3794.61 Q161.787 3772.94 161.787 3736 Q161.787 3697.81 182.342 3675.45 Q203.037 3652.95 238.036 3652.95 Q269.425 3652.95 287.62 3673.22 Q305.953 3693.36 305.953 3728.08 M280.397 3720.58 Q280.12 3699.61 268.592 3687.11 Q257.203 3674.61 238.314 3674.61 Q216.925 3674.61 204.009 3686.7 Q191.231 3698.78 189.287 3720.72 L280.397 3720.58 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M-255.572 2774.74 L-136.406 2774.74 L-136.406 2798.35 L-227.517 2798.35 L-227.517 2859.46 L-145.295 2859.46 L-145.295 2883.07 L-227.517 2883.07 L-227.517 2982.1 L-255.572 2982.1 L-255.572 2774.74 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M-95.1562 2774.74 L-66.9619 2774.74 L-66.9619 2900.71 Q-66.9619 2934.04 -54.8786 2948.76 Q-42.7954 2963.35 -15.7122 2963.35 Q11.2321 2963.35 23.3154 2948.76 Q35.3987 2934.04 35.3987 2900.71 L35.3987 2774.74 L63.5929 2774.74 L63.5929 2904.18 Q63.5929 2944.73 43.4542 2965.43 Q23.4543 2986.12 -15.7122 2986.12 Q-55.0175 2986.12 -75.1563 2965.43 Q-95.1562 2944.73 -95.1562 2904.18 L-95.1562 2774.74 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M116.232 2774.74 L158.037 2774.74 L210.953 2915.85 L264.147 2774.74 L305.953 2774.74 L305.953 2982.1 L278.592 2982.1 L278.592 2800.01 L225.12 2942.23 L196.926 2942.23 L143.454 2800.01 L143.454 2982.1 L116.232 2982.1 L116.232 2774.74 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M-507.098 2122.36 L-507.098 2066.66 L-552.932 2066.66 L-552.932 2043.61 L-479.321 2043.61 L-479.321 2132.64 Q-495.571 2144.16 -515.154 2150.14 Q-534.737 2155.97 -556.959 2155.97 Q-605.57 2155.97 -633.07 2127.64 Q-660.431 2099.16 -660.431 2048.47 Q-660.431 1997.64 -633.07 1969.3 Q-605.57 1940.83 -556.959 1940.83 Q-536.682 1940.83 -518.487 1945.83 Q-500.154 1950.83 -484.737 1960.55 L-484.737 1990.41 Q-500.293 1977.22 -517.793 1970.55 Q-535.293 1963.89 -554.598 1963.89 Q-592.654 1963.89 -611.82 1985.14 Q-630.848 2006.39 -630.848 2048.47 Q-630.848 2090.41 -611.82 2111.66 Q-592.654 2132.91 -554.598 2132.91 Q-539.737 2132.91 -528.071 2130.41 Q-516.404 2127.77 -507.098 2122.36 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M-428.071 1944.58 L-400.016 1944.58 L-400.016 2128.33 L-299.044 2128.33 L-299.044 2151.94 L-428.071 2151.94 L-428.071 1944.58 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M-286.961 1944.58 L-258.766 1944.58 L-258.766 2070.55 Q-258.766 2103.89 -246.683 2118.61 Q-234.6 2133.19 -207.517 2133.19 Q-180.572 2133.19 -168.489 2118.61 Q-156.406 2103.89 -156.406 2070.55 L-156.406 1944.58 L-128.212 1944.58 L-128.212 2074.02 Q-128.212 2114.58 -148.35 2135.27 Q-168.35 2155.97 -207.517 2155.97 Q-246.822 2155.97 -266.961 2135.27 Q-286.961 2114.58 -286.961 2074.02 L-286.961 1944.58 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M-51.4064 1952.22 L-51.4064 1996.39 L1.23217 1996.39 L1.23217 2016.25 L-51.4064 2016.25 L-51.4064 2100.69 Q-51.4064 2119.72 -46.2676 2125.14 Q-40.9898 2130.55 -25.0177 2130.55 L1.23217 2130.55 L1.23217 2151.94 L-25.0177 2151.94 Q-54.6009 2151.94 -65.8508 2140.97 Q-77.1007 2129.86 -77.1007 2100.69 L-77.1007 2016.25 L-95.8506 2016.25 L-95.8506 1996.39 L-77.1007 1996.39 L-77.1007 1952.22 L-51.4064 1952.22 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M62.6207 2128.33 L160.537 2128.33 L160.537 2151.94 L28.8709 2151.94 L28.8709 2128.33 Q44.843 2111.8 72.3429 2084.02 Q99.9816 2056.11 107.065 2048.05 Q120.537 2032.91 125.815 2022.5 Q131.231 2011.94 131.231 2001.8 Q131.231 1985.27 119.565 1974.86 Q108.037 1964.44 89.4261 1964.44 Q76.2318 1964.44 61.5096 1969.02 Q46.9264 1973.61 30.2598 1982.91 L30.2598 1954.58 Q47.2041 1947.78 61.9263 1944.3 Q76.6484 1940.83 88.8706 1940.83 Q121.093 1940.83 140.259 1956.94 Q159.426 1973.05 159.426 2000 Q159.426 2012.77 154.565 2024.3 Q149.842 2035.69 137.204 2051.25 Q133.731 2055.27 115.12 2074.58 Q96.5094 2093.75 62.6207 2128.33 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M305.953 2020.27 Q301.647 2017.77 296.508 2016.66 Q291.508 2015.41 285.397 2015.41 Q263.731 2015.41 252.064 2029.58 Q240.536 2043.61 240.536 2070 L240.536 2151.94 L214.842 2151.94 L214.842 1996.39 L240.536 1996.39 L240.536 2020.55 Q248.592 2006.39 261.509 1999.58 Q274.425 1992.64 292.897 1992.64 Q295.536 1992.64 298.731 1993.05 Q301.925 1993.33 305.814 1994.02 L305.953 2020.27 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M-243.767 1114.43 L-201.961 1114.43 L-149.045 1255.54 L-95.8506 1114.43 L-54.0453 1114.43 L-54.0453 1321.79 L-81.4063 1321.79 L-81.4063 1139.7 L-134.878 1281.93 L-163.073 1281.93 L-216.544 1139.7 L-216.544 1321.79 L-243.767 1321.79 L-243.767 1114.43 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M1.64883 1114.43 L132.759 1114.43 L132.759 1138.04 L29.7042 1138.04 L29.7042 1199.43 L128.454 1199.43 L128.454 1223.04 L29.7042 1223.04 L29.7042 1298.17 L135.259 1298.17 L135.259 1321.79 L1.64883 1321.79 L1.64883 1114.43 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M208.037 1298.17 L305.953 1298.17 L305.953 1321.79 L174.287 1321.79 L174.287 1298.17 Q190.259 1281.65 217.759 1253.87 Q245.398 1225.95 252.481 1217.9 Q265.953 1202.76 271.231 1192.34 Q276.647 1181.79 276.647 1171.65 Q276.647 1155.12 264.981 1144.7 Q253.453 1134.29 234.842 1134.29 Q221.648 1134.29 206.926 1138.87 Q192.342 1143.45 175.676 1152.76 L175.676 1124.43 Q192.62 1117.62 207.342 1114.15 Q222.064 1110.68 234.286 1110.68 Q266.509 1110.68 285.675 1126.79 Q304.842 1142.9 304.842 1169.84 Q304.842 1182.62 299.981 1194.15 Q295.258 1205.54 282.62 1221.09 Q279.147 1225.12 260.536 1244.43 Q241.925 1263.59 208.037 1298.17 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip512)" d="
 M11342 8639.69 L906.705 8639.69 L906.705 8573.28 L11342 8573.28 L11342 8639.69 L11342 8639.69  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   11342,8639.69 906.705,8639.69 906.705,8573.28 11342,8573.28 11342,8639.69 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 8556.67 L906.705 8556.67 L906.705 8490.26 L13731.8 8490.26 L13731.8 8556.67 L13731.8 8556.67  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,8556.67 906.705,8556.67 906.705,8490.26 13731.8,8490.26 13731.8,8556.67 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13577.1 8473.66 L906.705 8473.66 L906.705 8407.25 L13577.1 8407.25 L13577.1 8473.66 L13577.1 8473.66  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13577.1,8473.66 906.705,8473.66 906.705,8407.25 13577.1,8407.25 13577.1,8473.66 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M1023.73 8390.64 L906.705 8390.64 L906.705 8324.23 L1023.73 8324.23 L1023.73 8390.64 L1023.73 8390.64  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   1023.73,8390.64 906.705,8390.64 906.705,8324.23 1023.73,8324.23 1023.73,8390.64 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13586.4 8307.63 L906.705 8307.63 L906.705 8241.22 L13586.4 8241.22 L13586.4 8307.63 L13586.4 8307.63  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13586.4,8307.63 906.705,8307.63 906.705,8241.22 13586.4,8241.22 13586.4,8307.63 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 8224.61 L906.705 8224.61 L906.705 8158.2 L13731.8 8158.2 L13731.8 8224.61 L13731.8 8224.61  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,8224.61 906.705,8224.61 906.705,8158.2 13731.8,8158.2 13731.8,8224.61 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 8141.6 L906.705 8141.6 L906.705 8075.18 L13731.8 8075.18 L13731.8 8141.6 L13731.8 8141.6  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,8141.6 906.705,8141.6 906.705,8075.18 13731.8,8075.18 13731.8,8141.6 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M1039.58 8058.58 L906.705 8058.58 L906.705 7992.17 L1039.58 7992.17 L1039.58 8058.58 L1039.58 8058.58  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   1039.58,8058.58 906.705,8058.58 906.705,7992.17 1039.58,7992.17 1039.58,8058.58 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M1305.63 7975.57 L906.705 7975.57 L906.705 7909.15 L1305.63 7909.15 L1305.63 7975.57 L1305.63 7975.57  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   1305.63,7975.57 906.705,7975.57 906.705,7909.15 1305.63,7909.15 1305.63,7975.57 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 7892.55 L906.705 7892.55 L906.705 7826.14 L13731.8 7826.14 L13731.8 7892.55 L13731.8 7892.55  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,7892.55 906.705,7892.55 906.705,7826.14 13731.8,7826.14 13731.8,7892.55 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 7809.53 L906.705 7809.53 L906.705 7743.12 L13731.8 7743.12 L13731.8 7809.53 L13731.8 7809.53  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,7809.53 906.705,7809.53 906.705,7743.12 13731.8,7743.12 13731.8,7809.53 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 7726.52 L906.705 7726.52 L906.705 7660.11 L13731.8 7660.11 L13731.8 7726.52 L13731.8 7726.52  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,7726.52 906.705,7726.52 906.705,7660.11 13731.8,7660.11 13731.8,7726.52 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13687 7643.5 L906.705 7643.5 L906.705 7577.09 L13687 7577.09 L13687 7643.5 L13687 7643.5  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13687,7643.5 906.705,7643.5 906.705,7577.09 13687,7577.09 13687,7643.5 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M2266.92 7560.49 L906.705 7560.49 L906.705 7494.08 L2266.92 7494.08 L2266.92 7560.49 L2266.92 7560.49  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   2266.92,7560.49 906.705,7560.49 906.705,7494.08 2266.92,7494.08 2266.92,7560.49 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M2266.92 7477.47 L906.705 7477.47 L906.705 7411.06 L2266.92 7411.06 L2266.92 7477.47 L2266.92 7477.47  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   2266.92,7477.47 906.705,7477.47 906.705,7411.06 2266.92,7411.06 2266.92,7477.47 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M906.705 7394.46 L906.705 7394.46 L906.705 7328.04 L906.705 7328.04 L906.705 7394.46 L906.705 7394.46  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   906.705,7394.46 906.705,7394.46 906.705,7328.04 906.705,7394.46 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 7311.44 L906.705 7311.44 L906.705 7245.03 L13731.8 7245.03 L13731.8 7311.44 L13731.8 7311.44  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,7311.44 906.705,7311.44 906.705,7245.03 13731.8,7245.03 13731.8,7311.44 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 7228.43 L906.705 7228.43 L906.705 7162.01 L13731.8 7162.01 L13731.8 7228.43 L13731.8 7228.43  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,7228.43 906.705,7228.43 906.705,7162.01 13731.8,7162.01 13731.8,7228.43 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 7145.41 L906.705 7145.41 L906.705 7079 L13731.8 7079 L13731.8 7145.41 L13731.8 7145.41  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,7145.41 906.705,7145.41 906.705,7079 13731.8,7079 13731.8,7145.41 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 7062.4 L906.705 7062.4 L906.705 6995.98 L13731.8 6995.98 L13731.8 7062.4 L13731.8 7062.4  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,7062.4 906.705,7062.4 906.705,6995.98 13731.8,6995.98 13731.8,7062.4 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13511.2 6979.38 L906.705 6979.38 L906.705 6912.97 L13511.2 6912.97 L13511.2 6979.38 L13511.2 6979.38  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13511.2,6979.38 906.705,6979.38 906.705,6912.97 13511.2,6912.97 13511.2,6979.38 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M6416.02 6896.36 L906.705 6896.36 L906.705 6829.95 L6416.02 6829.95 L6416.02 6896.36 L6416.02 6896.36  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   6416.02,6896.36 906.705,6896.36 906.705,6829.95 6416.02,6829.95 6416.02,6896.36 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 6813.35 L906.705 6813.35 L906.705 6746.94 L13731.8 6746.94 L13731.8 6813.35 L13731.8 6813.35  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,6813.35 906.705,6813.35 906.705,6746.94 13731.8,6746.94 13731.8,6813.35 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13607.3 6730.33 L906.705 6730.33 L906.705 6663.92 L13607.3 6663.92 L13607.3 6730.33 L13607.3 6730.33  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13607.3,6730.33 906.705,6730.33 906.705,6663.92 13607.3,6663.92 13607.3,6730.33 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M2374.24 6647.32 L906.705 6647.32 L906.705 6580.91 L2374.24 6580.91 L2374.24 6647.32 L2374.24 6647.32  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   2374.24,6647.32 906.705,6647.32 906.705,6580.91 2374.24,6580.91 2374.24,6647.32 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 6564.3 L906.705 6564.3 L906.705 6497.89 L13731.8 6497.89 L13731.8 6564.3 L13731.8 6564.3  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,6564.3 906.705,6564.3 906.705,6497.89 13731.8,6497.89 13731.8,6564.3 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M7717.96 6481.29 L906.705 6481.29 L906.705 6414.87 L7717.96 6414.87 L7717.96 6481.29 L7717.96 6481.29  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   7717.96,6481.29 906.705,6481.29 906.705,6414.87 7717.96,6414.87 7717.96,6481.29 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13615.9 6398.27 L906.705 6398.27 L906.705 6331.86 L13615.9 6331.86 L13615.9 6398.27 L13615.9 6398.27  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13615.9,6398.27 906.705,6398.27 906.705,6331.86 13615.9,6331.86 13615.9,6398.27 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M2266.92 6315.26 L906.705 6315.26 L906.705 6248.84 L2266.92 6248.84 L2266.92 6315.26 L2266.92 6315.26  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   2266.92,6315.26 906.705,6315.26 906.705,6248.84 2266.92,6248.84 2266.92,6315.26 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M2948.35 6232.24 L906.705 6232.24 L906.705 6165.83 L2948.35 6165.83 L2948.35 6232.24 L2948.35 6232.24  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   2948.35,6232.24 906.705,6232.24 906.705,6165.83 2948.35,6165.83 2948.35,6232.24 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 6149.23 L906.705 6149.23 L906.705 6082.81 L13731.8 6082.81 L13731.8 6149.23 L13731.8 6149.23  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,6149.23 906.705,6149.23 906.705,6082.81 13731.8,6082.81 13731.8,6149.23 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M4039.34 6066.21 L906.705 6066.21 L906.705 5999.8 L4039.34 5999.8 L4039.34 6066.21 L4039.34 6066.21  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   4039.34,6066.21 906.705,6066.21 906.705,5999.8 4039.34,5999.8 4039.34,6066.21 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 5983.19 L906.705 5983.19 L906.705 5916.78 L13731.8 5916.78 L13731.8 5983.19 L13731.8 5983.19  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,5983.19 906.705,5983.19 906.705,5916.78 13731.8,5916.78 13731.8,5983.19 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M1039.58 5900.18 L906.705 5900.18 L906.705 5833.77 L1039.58 5833.77 L1039.58 5900.18 L1039.58 5900.18  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   1039.58,5900.18 906.705,5900.18 906.705,5833.77 1039.58,5833.77 1039.58,5900.18 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 5817.16 L906.705 5817.16 L906.705 5750.75 L13731.8 5750.75 L13731.8 5817.16 L13731.8 5817.16  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,5817.16 906.705,5817.16 906.705,5750.75 13731.8,5750.75 13731.8,5817.16 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 5734.15 L906.705 5734.15 L906.705 5667.74 L13731.8 5667.74 L13731.8 5734.15 L13731.8 5734.15  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,5734.15 906.705,5734.15 906.705,5667.74 13731.8,5667.74 13731.8,5734.15 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M12886.3 5651.13 L906.705 5651.13 L906.705 5584.72 L12886.3 5584.72 L12886.3 5651.13 L12886.3 5651.13  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   12886.3,5651.13 906.705,5651.13 906.705,5584.72 12886.3,5584.72 12886.3,5651.13 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13511.2 5568.12 L906.705 5568.12 L906.705 5501.7 L13511.2 5501.7 L13511.2 5568.12 L13511.2 5568.12  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13511.2,5568.12 906.705,5568.12 906.705,5501.7 13511.2,5501.7 13511.2,5568.12 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13606.3 5485.1 L906.705 5485.1 L906.705 5418.69 L13606.3 5418.69 L13606.3 5485.1 L13606.3 5485.1  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13606.3,5485.1 906.705,5485.1 906.705,5418.69 13606.3,5418.69 13606.3,5485.1 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 5402.09 L906.705 5402.09 L906.705 5335.67 L13731.8 5335.67 L13731.8 5402.09 L13731.8 5402.09  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,5402.09 906.705,5402.09 906.705,5335.67 13731.8,5335.67 13731.8,5402.09 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13606.3 5319.07 L906.705 5319.07 L906.705 5252.66 L13606.3 5252.66 L13606.3 5319.07 L13606.3 5319.07  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13606.3,5319.07 906.705,5319.07 906.705,5252.66 13606.3,5252.66 13606.3,5319.07 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13634.4 5236.05 L906.705 5236.05 L906.705 5169.64 L13634.4 5169.64 L13634.4 5236.05 L13634.4 5236.05  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13634.4,5236.05 906.705,5236.05 906.705,5169.64 13634.4,5169.64 13634.4,5236.05 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M11342 5153.04 L906.705 5153.04 L906.705 5086.63 L11342 5086.63 L11342 5153.04 L11342 5153.04  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   11342,5153.04 906.705,5153.04 906.705,5086.63 11342,5086.63 11342,5153.04 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 5070.02 L906.705 5070.02 L906.705 5003.61 L13731.8 5003.61 L13731.8 5070.02 L13731.8 5070.02  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,5070.02 906.705,5070.02 906.705,5003.61 13731.8,5003.61 13731.8,5070.02 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 4987.01 L906.705 4987.01 L906.705 4920.6 L13731.8 4920.6 L13731.8 4987.01 L13731.8 4987.01  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,4987.01 906.705,4987.01 906.705,4920.6 13731.8,4920.6 13731.8,4987.01 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 4903.99 L906.705 4903.99 L906.705 4837.58 L13731.8 4837.58 L13731.8 4903.99 L13731.8 4903.99  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,4903.99 906.705,4903.99 906.705,4837.58 13731.8,4837.58 13731.8,4903.99 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M7717.96 4820.98 L906.705 4820.98 L906.705 4754.57 L7717.96 4754.57 L7717.96 4820.98 L7717.96 4820.98  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   7717.96,4820.98 906.705,4820.98 906.705,4754.57 7717.96,4754.57 7717.96,4820.98 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 4737.96 L906.705 4737.96 L906.705 4671.55 L13731.8 4671.55 L13731.8 4737.96 L13731.8 4737.96  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,4737.96 906.705,4737.96 906.705,4671.55 13731.8,4671.55 13731.8,4737.96 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 4654.95 L906.705 4654.95 L906.705 4588.53 L13731.8 4588.53 L13731.8 4654.95 L13731.8 4654.95  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,4654.95 906.705,4654.95 906.705,4588.53 13731.8,4588.53 13731.8,4654.95 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 4571.93 L906.705 4571.93 L906.705 4505.52 L13731.8 4505.52 L13731.8 4571.93 L13731.8 4571.93  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,4571.93 906.705,4571.93 906.705,4505.52 13731.8,4505.52 13731.8,4571.93 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 4488.92 L906.705 4488.92 L906.705 4422.5 L13731.8 4422.5 L13731.8 4488.92 L13731.8 4488.92  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,4488.92 906.705,4488.92 906.705,4422.5 13731.8,4422.5 13731.8,4488.92 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M906.705 4405.9 L906.705 4405.9 L906.705 4339.49 L906.705 4339.49 L906.705 4405.9 L906.705 4405.9  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   906.705,4405.9 906.705,4405.9 906.705,4339.49 906.705,4405.9 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 4322.88 L906.705 4322.88 L906.705 4256.47 L13731.8 4256.47 L13731.8 4322.88 L13731.8 4322.88  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,4322.88 906.705,4322.88 906.705,4256.47 13731.8,4256.47 13731.8,4322.88 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 4239.87 L906.705 4239.87 L906.705 4173.46 L13731.8 4173.46 L13731.8 4239.87 L13731.8 4239.87  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,4239.87 906.705,4239.87 906.705,4173.46 13731.8,4173.46 13731.8,4239.87 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M979.862 4156.85 L906.705 4156.85 L906.705 4090.44 L979.862 4090.44 L979.862 4156.85 L979.862 4156.85  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   979.862,4156.85 906.705,4156.85 906.705,4090.44 979.862,4090.44 979.862,4156.85 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M6570.36 4073.84 L906.705 4073.84 L906.705 4007.43 L6570.36 4007.43 L6570.36 4073.84 L6570.36 4073.84  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   6570.36,4073.84 906.705,4073.84 906.705,4007.43 6570.36,4007.43 6570.36,4073.84 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 3990.82 L906.705 3990.82 L906.705 3924.41 L13731.8 3924.41 L13731.8 3990.82 L13731.8 3990.82  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,3990.82 906.705,3990.82 906.705,3924.41 13731.8,3924.41 13731.8,3990.82 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 3907.81 L906.705 3907.81 L906.705 3841.39 L13731.8 3841.39 L13731.8 3907.81 L13731.8 3907.81  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,3907.81 906.705,3907.81 906.705,3841.39 13731.8,3841.39 13731.8,3907.81 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M1175.84 3824.79 L906.705 3824.79 L906.705 3758.38 L1175.84 3758.38 L1175.84 3824.79 L1175.84 3824.79  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   1175.84,3824.79 906.705,3824.79 906.705,3758.38 1175.84,3758.38 1175.84,3824.79 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M4065.75 3741.78 L906.705 3741.78 L906.705 3675.36 L4065.75 3675.36 L4065.75 3741.78 L4065.75 3741.78  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   4065.75,3741.78 906.705,3741.78 906.705,3675.36 4065.75,3675.36 4065.75,3741.78 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M1305.63 3658.76 L906.705 3658.76 L906.705 3592.35 L1305.63 3592.35 L1305.63 3658.76 L1305.63 3658.76  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   1305.63,3658.76 906.705,3658.76 906.705,3592.35 1305.63,3592.35 1305.63,3658.76 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 3575.75 L906.705 3575.75 L906.705 3509.33 L13731.8 3509.33 L13731.8 3575.75 L13731.8 3575.75  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,3575.75 906.705,3575.75 906.705,3509.33 13731.8,3509.33 13731.8,3575.75 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 3492.73 L906.705 3492.73 L906.705 3426.32 L13731.8 3426.32 L13731.8 3492.73 L13731.8 3492.73  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,3492.73 906.705,3492.73 906.705,3426.32 13731.8,3426.32 13731.8,3492.73 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M11342 3409.71 L906.705 3409.71 L906.705 3343.3 L11342 3343.3 L11342 3409.71 L11342 3409.71  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   11342,3409.71 906.705,3409.71 906.705,3343.3 11342,3343.3 11342,3409.71 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 3326.7 L906.705 3326.7 L906.705 3260.29 L13731.8 3260.29 L13731.8 3326.7 L13731.8 3326.7  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,3326.7 906.705,3326.7 906.705,3260.29 13731.8,3260.29 13731.8,3326.7 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 3243.68 L906.705 3243.68 L906.705 3177.27 L13731.8 3177.27 L13731.8 3243.68 L13731.8 3243.68  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,3243.68 906.705,3243.68 906.705,3177.27 13731.8,3177.27 13731.8,3243.68 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 3160.67 L906.705 3160.67 L906.705 3094.26 L13731.8 3094.26 L13731.8 3160.67 L13731.8 3160.67  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,3160.67 906.705,3160.67 906.705,3094.26 13731.8,3094.26 13731.8,3160.67 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 3077.65 L906.705 3077.65 L906.705 3011.24 L13731.8 3011.24 L13731.8 3077.65 L13731.8 3077.65  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,3077.65 906.705,3077.65 906.705,3011.24 13731.8,3011.24 13731.8,3077.65 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 2994.64 L906.705 2994.64 L906.705 2928.22 L13731.8 2928.22 L13731.8 2994.64 L13731.8 2994.64  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,2994.64 906.705,2994.64 906.705,2928.22 13731.8,2928.22 13731.8,2994.64 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M12886.3 2911.62 L906.705 2911.62 L906.705 2845.21 L12886.3 2845.21 L12886.3 2911.62 L12886.3 2911.62  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   12886.3,2911.62 906.705,2911.62 906.705,2845.21 12886.3,2845.21 12886.3,2911.62 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 2828.61 L906.705 2828.61 L906.705 2762.19 L13731.8 2762.19 L13731.8 2828.61 L13731.8 2828.61  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,2828.61 906.705,2828.61 906.705,2762.19 13731.8,2762.19 13731.8,2828.61 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13586.4 2745.59 L906.705 2745.59 L906.705 2679.18 L13586.4 2679.18 L13586.4 2745.59 L13586.4 2745.59  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13586.4,2745.59 906.705,2745.59 906.705,2679.18 13586.4,2679.18 13586.4,2745.59 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M1023.73 2662.58 L906.705 2662.58 L906.705 2596.16 L1023.73 2596.16 L1023.73 2662.58 L1023.73 2662.58  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   1023.73,2662.58 906.705,2662.58 906.705,2596.16 1023.73,2596.16 1023.73,2662.58 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M906.705 2579.56 L906.705 2579.56 L906.705 2513.15 L906.705 2513.15 L906.705 2579.56 L906.705 2579.56  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   906.705,2579.56 906.705,2579.56 906.705,2513.15 906.705,2579.56 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M6645.98 2496.54 L906.705 2496.54 L906.705 2430.13 L6645.98 2430.13 L6645.98 2496.54 L6645.98 2496.54  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   6645.98,2496.54 906.705,2496.54 906.705,2430.13 6645.98,2430.13 6645.98,2496.54 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 2413.53 L906.705 2413.53 L906.705 2347.12 L13731.8 2347.12 L13731.8 2413.53 L13731.8 2413.53  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,2413.53 906.705,2413.53 906.705,2347.12 13731.8,2347.12 13731.8,2413.53 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13408.4 2330.51 L906.705 2330.51 L906.705 2264.1 L13408.4 2264.1 L13408.4 2330.51 L13408.4 2330.51  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13408.4,2330.51 906.705,2330.51 906.705,2264.1 13408.4,2264.1 13408.4,2330.51 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 2247.5 L906.705 2247.5 L906.705 2181.09 L13731.8 2181.09 L13731.8 2247.5 L13731.8 2247.5  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,2247.5 906.705,2247.5 906.705,2181.09 13731.8,2181.09 13731.8,2247.5 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 2164.48 L906.705 2164.48 L906.705 2098.07 L13731.8 2098.07 L13731.8 2164.48 L13731.8 2164.48  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,2164.48 906.705,2164.48 906.705,2098.07 13731.8,2098.07 13731.8,2164.48 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 2081.47 L906.705 2081.47 L906.705 2015.05 L13731.8 2015.05 L13731.8 2081.47 L13731.8 2081.47  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,2081.47 906.705,2081.47 906.705,2015.05 13731.8,2015.05 13731.8,2081.47 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13586.4 1998.45 L906.705 1998.45 L906.705 1932.04 L13586.4 1932.04 L13586.4 1998.45 L13586.4 1998.45  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13586.4,1998.45 906.705,1998.45 906.705,1932.04 13586.4,1932.04 13586.4,1998.45 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M6570.36 1915.44 L906.705 1915.44 L906.705 1849.02 L6570.36 1849.02 L6570.36 1915.44 L6570.36 1915.44  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   6570.36,1915.44 906.705,1915.44 906.705,1849.02 6570.36,1849.02 6570.36,1915.44 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M2266.92 1832.42 L906.705 1832.42 L906.705 1766.01 L2266.92 1766.01 L2266.92 1832.42 L2266.92 1832.42  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   2266.92,1832.42 906.705,1832.42 906.705,1766.01 2266.92,1766.01 2266.92,1832.42 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 1749.4 L906.705 1749.4 L906.705 1682.99 L13731.8 1682.99 L13731.8 1749.4 L13731.8 1749.4  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,1749.4 906.705,1749.4 906.705,1682.99 13731.8,1682.99 13731.8,1749.4 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 1666.39 L906.705 1666.39 L906.705 1599.98 L13731.8 1599.98 L13731.8 1666.39 L13731.8 1666.39  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,1666.39 906.705,1666.39 906.705,1599.98 13731.8,1599.98 13731.8,1666.39 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 1583.37 L906.705 1583.37 L906.705 1516.96 L13731.8 1516.96 L13731.8 1583.37 L13731.8 1583.37  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,1583.37 906.705,1583.37 906.705,1516.96 13731.8,1516.96 13731.8,1583.37 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 1500.36 L906.705 1500.36 L906.705 1433.95 L13731.8 1433.95 L13731.8 1500.36 L13731.8 1500.36  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,1500.36 906.705,1500.36 906.705,1433.95 13731.8,1433.95 13731.8,1500.36 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13043.6 1417.34 L906.705 1417.34 L906.705 1350.93 L13043.6 1350.93 L13043.6 1417.34 L13043.6 1417.34  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13043.6,1417.34 906.705,1417.34 906.705,1350.93 13043.6,1350.93 13043.6,1417.34 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 1334.33 L906.705 1334.33 L906.705 1267.92 L13731.8 1267.92 L13731.8 1334.33 L13731.8 1334.33  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,1334.33 906.705,1334.33 906.705,1267.92 13731.8,1267.92 13731.8,1334.33 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 1251.31 L906.705 1251.31 L906.705 1184.9 L13731.8 1184.9 L13731.8 1251.31 L13731.8 1251.31  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,1251.31 906.705,1251.31 906.705,1184.9 13731.8,1184.9 13731.8,1251.31 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M4039.34 1168.3 L906.705 1168.3 L906.705 1101.88 L4039.34 1101.88 L4039.34 1168.3 L4039.34 1168.3  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   4039.34,1168.3 906.705,1168.3 906.705,1101.88 4039.34,1101.88 4039.34,1168.3 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M13731.8 1085.28 L906.705 1085.28 L906.705 1018.87 L13731.8 1018.87 L13731.8 1085.28 L13731.8 1085.28  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13731.8,1085.28 906.705,1085.28 906.705,1018.87 13731.8,1018.87 13731.8,1085.28 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M1175.84 1002.27 L906.705 1002.27 L906.705 935.853 L1175.84 935.853 L1175.84 1002.27 L1175.84 1002.27  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   1175.84,1002.27 906.705,1002.27 906.705,935.853 1175.84,935.853 1175.84,1002.27 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M4065.75 919.25 L906.705 919.25 L906.705 852.838 L4065.75 852.838 L4065.75 919.25 L4065.75 919.25  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   4065.75,919.25 906.705,919.25 906.705,852.838 4065.75,852.838 4065.75,919.25 
   "/>
-<path clip-path="url(#clip782)" d="
+<path clip-path="url(#clip512)" d="
 M12611.1 836.235 L906.705 836.235 L906.705 769.822 L12611.1 769.822 L12611.1 836.235 L12611.1 836.235  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip782)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip512)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   12611.1,836.235 906.705,836.235 906.705,769.822 12611.1,769.822 12611.1,836.235 
   "/>
-<path clip-path="url(#clip780)" d="
+<path clip-path="url(#clip510)" d="
 M11838.3 1200.3 L13663.4 1200.3 L13663.4 578.217 L11838.3 578.217  Z
   " fill="#ffffff" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip780)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip510)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   11838.3,1200.3 13663.4,1200.3 13663.4,578.217 11838.3,578.217 11838.3,1200.3 
   "/>
-<path clip-path="url(#clip780)" d="
+<path clip-path="url(#clip510)" d="
 M11989.3 1013.67 L12895.6 1013.67 L12895.6 764.841 L11989.3 764.841 L11989.3 1013.67  Z
   " fill="#009af9" fill-rule="evenodd" fill-opacity="1"/>
-<polyline clip-path="url(#clip780)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip510)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   11989.3,1013.67 12895.6,1013.67 12895.6,764.841 11989.3,764.841 11989.3,1013.67 
   "/>
-<path clip-path="url(#clip780)" d="M13129.8 1007.38 Q13118.9 1035.16 13108.6 1043.63 Q13098.4 1052.1 13081.1 1052.1 L13060.7 1052.1 L13060.7 1030.71 L13075.7 1030.71 Q13086.3 1030.71 13092.1 1025.71 Q13097.9 1020.71 13105 1002.1 L13109.6 990.437 L13046.7 837.383 L13073.8 837.383 L13122.4 959.049 L13171 837.383 L13198.1 837.383 L13129.8 1007.38 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip780)" d="M13241.8 969.326 L13287.7 969.326 L13287.7 811.133 L13237.8 821.133 L13237.8 795.577 L13287.4 785.577 L13315.4 785.577 L13315.4 969.326 L13361.3 969.326 L13361.3 992.937 L13241.8 992.937 L13241.8 969.326 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /></svg>
+<path clip-path="url(#clip510)" d="M13129.8 1007.38 Q13118.9 1035.16 13108.6 1043.63 Q13098.4 1052.1 13081.1 1052.1 L13060.7 1052.1 L13060.7 1030.71 L13075.7 1030.71 Q13086.3 1030.71 13092.1 1025.71 Q13097.9 1020.71 13105 1002.1 L13109.6 990.437 L13046.7 837.383 L13073.8 837.383 L13122.4 959.049 L13171 837.383 L13198.1 837.383 L13129.8 1007.38 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip510)" d="M13241.8 969.326 L13287.7 969.326 L13287.7 811.133 L13237.8 821.133 L13237.8 795.577 L13287.4 785.577 L13315.4 785.577 L13315.4 969.326 L13361.3 969.326 L13361.3 992.937 L13241.8 992.937 L13241.8 969.326 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /></svg>
 <h2 id="Knocking-out-reaction-combinations"><a class="docs-heading-anchor" href="#Knocking-out-reaction-combinations">Knocking out reaction combinations</a><a id="Knocking-out-reaction-combinations-1"></a><a class="docs-heading-anchor-permalink" href="#Knocking-out-reaction-combinations" title="Permalink"></a></h2><p>It is very easy to prepare matrices of biomass productions from all possible two-reaction knockouts. To make it more interesting, we will restrict one of the reactions of the pair a bit less, to see more possible outcomes.</p><p>We do not process all reactions here to make the notebook rendering efficient, but you can easily remove the restriction, and speed the process up using parallel execution, by specifying <code>workers</code> argument (see documentation of <a href="../../functions/#COBREXA.screen-Union{Tuple{MetabolicModel}, Tuple{N}, Tuple{T}, Tuple{V}} where {V&lt;:(AbstractVector{T} where T), T&lt;:Tuple, N}"><code>screen</code></a> for details)</p><pre><code class="language-julia">rxns = reactions(model)
 
 productions = screen_variants(
@@ -772,81 +772,81 @@ productions = screen_variants(
 heatmap(productions, dpi = 600)</code></pre><?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="3600" height="2400" viewBox="0 0 14400 9600">
 <defs>
-  <clipPath id="clip840">
+  <clipPath id="clip570">
     <rect x="0" y="0" width="14400" height="9600"/>
   </clipPath>
 </defs>
-<path clip-path="url(#clip840)" d="
+<path clip-path="url(#clip570)" d="
 M0 9600 L14400 9600 L14400 0 L0 0  Z
   " fill="#ffffff" fill-rule="evenodd" fill-opacity="1"/>
 <defs>
-  <clipPath id="clip841">
+  <clipPath id="clip571">
     <rect x="2880" y="0" width="10081" height="9600"/>
   </clipPath>
 </defs>
-<path clip-path="url(#clip840)" d="
+<path clip-path="url(#clip570)" d="
 M521.953 9126.05 L12676.5 9126.05 L12676.5 283.465 L521.953 283.465  Z
   " fill="#ffffff" fill-rule="evenodd" fill-opacity="1"/>
 <defs>
-  <clipPath id="clip842">
+  <clipPath id="clip572">
     <rect x="521" y="283" width="12156" height="8844"/>
   </clipPath>
 </defs>
-<polyline clip-path="url(#clip842)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
+<polyline clip-path="url(#clip572)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
   3016.84,9126.05 3016.84,283.465 
   "/>
-<polyline clip-path="url(#clip842)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
+<polyline clip-path="url(#clip572)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
   5575.7,9126.05 5575.7,283.465 
   "/>
-<polyline clip-path="url(#clip842)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
+<polyline clip-path="url(#clip572)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
   8134.56,9126.05 8134.56,283.465 
   "/>
-<polyline clip-path="url(#clip842)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
+<polyline clip-path="url(#clip572)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
   10693.4,9126.05 10693.4,283.465 
   "/>
-<polyline clip-path="url(#clip840)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip570)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   521.953,9126.05 12676.5,9126.05 
   "/>
-<polyline clip-path="url(#clip840)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip570)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   3016.84,9126.05 3016.84,9019.94 
   "/>
-<polyline clip-path="url(#clip840)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip570)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   5575.7,9126.05 5575.7,9019.94 
   "/>
-<polyline clip-path="url(#clip840)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip570)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   8134.56,9126.05 8134.56,9019.94 
   "/>
-<polyline clip-path="url(#clip840)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip570)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   10693.4,9126.05 10693.4,9019.94 
   "/>
-<path clip-path="url(#clip840)" d="M2889.48 9466.47 L2987.4 9466.47 L2987.4 9490.08 L2855.73 9490.08 L2855.73 9466.47 Q2871.7 9449.94 2899.2 9422.16 Q2926.84 9394.25 2933.92 9386.19 Q2947.4 9371.05 2952.67 9360.64 Q2958.09 9350.08 2958.09 9339.94 Q2958.09 9323.41 2946.42 9313 Q2934.9 9302.58 2916.29 9302.58 Q2903.09 9302.58 2888.37 9307.16 Q2873.79 9311.75 2857.12 9321.05 L2857.12 9292.72 Q2874.06 9285.91 2888.79 9282.44 Q2903.51 9278.97 2915.73 9278.97 Q2947.95 9278.97 2967.12 9295.08 Q2986.29 9311.19 2986.29 9338.14 Q2986.29 9350.91 2981.42 9362.44 Q2976.7 9373.83 2964.06 9389.39 Q2960.59 9393.41 2941.98 9412.72 Q2923.37 9431.89 2889.48 9466.47 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip840)" d="M3106.28 9301.19 Q3084.62 9301.19 3073.65 9322.58 Q3062.81 9343.83 3062.81 9386.61 Q3062.81 9429.25 3073.65 9450.64 Q3084.62 9471.88 3106.28 9471.88 Q3128.09 9471.88 3138.92 9450.64 Q3149.9 9429.25 3149.9 9386.61 Q3149.9 9343.83 3138.92 9322.58 Q3128.09 9301.19 3106.28 9301.19 M3106.28 9278.97 Q3141.15 9278.97 3159.48 9306.61 Q3177.95 9334.11 3177.95 9386.61 Q3177.95 9438.97 3159.48 9466.61 Q3141.15 9494.11 3106.28 9494.11 Q3071.42 9494.11 3052.95 9466.61 Q3034.62 9438.97 3034.62 9386.61 Q3034.62 9334.11 3052.95 9306.61 Q3071.42 9278.97 3106.28 9278.97 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip840)" d="M5504.73 9307.16 L5433.9 9417.86 L5504.73 9417.86 L5504.73 9307.16 M5497.37 9282.72 L5532.64 9282.72 L5532.64 9417.86 L5562.23 9417.86 L5562.23 9441.19 L5532.64 9441.19 L5532.64 9490.08 L5504.73 9490.08 L5504.73 9441.19 L5411.12 9441.19 L5411.12 9414.11 L5497.37 9282.72 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip840)" d="M5668.62 9301.19 Q5646.95 9301.19 5635.98 9322.58 Q5625.14 9343.83 5625.14 9386.61 Q5625.14 9429.25 5635.98 9450.64 Q5646.95 9471.88 5668.62 9471.88 Q5690.42 9471.88 5701.26 9450.64 Q5712.23 9429.25 5712.23 9386.61 Q5712.23 9343.83 5701.26 9322.58 Q5690.42 9301.19 5668.62 9301.19 M5668.62 9278.97 Q5703.48 9278.97 5721.81 9306.61 Q5740.28 9334.11 5740.28 9386.61 Q5740.28 9438.97 5721.81 9466.61 Q5703.48 9494.11 5668.62 9494.11 Q5633.76 9494.11 5615.28 9466.61 Q5596.95 9438.97 5596.95 9386.61 Q5596.95 9334.11 5615.28 9306.61 Q5633.76 9278.97 5668.62 9278.97 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip840)" d="M8046.99 9375.22 Q8028.1 9375.22 8016.99 9388.14 Q8006.02 9401.05 8006.02 9423.55 Q8006.02 9445.91 8016.99 9458.97 Q8028.1 9471.88 8046.99 9471.88 Q8065.88 9471.88 8076.85 9458.97 Q8087.96 9445.91 8087.96 9423.55 Q8087.96 9401.05 8076.85 9388.14 Q8065.88 9375.22 8046.99 9375.22 M8102.68 9287.3 L8102.68 9312.86 Q8092.13 9307.86 8081.3 9305.22 Q8070.6 9302.58 8060.05 9302.58 Q8032.27 9302.58 8017.55 9321.33 Q8002.96 9340.08 8000.88 9378 Q8009.07 9365.91 8021.44 9359.52 Q8033.8 9353 8048.66 9353 Q8079.91 9353 8097.96 9372.02 Q8116.16 9390.91 8116.16 9423.55 Q8116.16 9455.5 8097.27 9474.8 Q8078.38 9494.11 8046.99 9494.11 Q8011.02 9494.11 7991.99 9466.61 Q7972.96 9438.97 7972.96 9386.61 Q7972.96 9337.44 7996.3 9308.27 Q8019.63 9278.97 8058.94 9278.97 Q8069.49 9278.97 8080.19 9281.05 Q8091.02 9283.14 8102.68 9287.3 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip840)" d="M8224.49 9301.19 Q8202.82 9301.19 8191.85 9322.58 Q8181.02 9343.83 8181.02 9386.61 Q8181.02 9429.25 8191.85 9450.64 Q8202.82 9471.88 8224.49 9471.88 Q8246.3 9471.88 8257.13 9450.64 Q8268.1 9429.25 8268.1 9386.61 Q8268.1 9343.83 8257.13 9322.58 Q8246.3 9301.19 8224.49 9301.19 M8224.49 9278.97 Q8259.35 9278.97 8277.68 9306.61 Q8296.16 9334.11 8296.16 9386.61 Q8296.16 9438.97 8277.68 9466.61 Q8259.35 9494.11 8224.49 9494.11 Q8189.63 9494.11 8171.16 9466.61 Q8152.82 9438.97 8152.82 9386.61 Q8152.82 9334.11 8171.16 9306.61 Q8189.63 9278.97 8224.49 9278.97 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip840)" d="M10602.7 9391.61 Q10582.7 9391.61 10571.1 9402.3 Q10559.7 9413 10559.7 9431.75 Q10559.7 9450.5 10571.1 9461.19 Q10582.7 9471.88 10602.7 9471.88 Q10622.7 9471.88 10634.2 9461.19 Q10645.7 9450.36 10645.7 9431.75 Q10645.7 9413 10634.2 9402.3 Q10622.8 9391.61 10602.7 9391.61 M10574.6 9379.66 Q10556.5 9375.22 10546.4 9362.86 Q10536.4 9350.5 10536.4 9332.72 Q10536.4 9307.86 10554 9293.41 Q10571.8 9278.97 10602.7 9278.97 Q10633.6 9278.97 10651.3 9293.41 Q10668.9 9307.86 10668.9 9332.72 Q10668.9 9350.5 10658.8 9362.86 Q10648.8 9375.22 10630.9 9379.66 Q10651.1 9384.39 10662.4 9398.14 Q10673.8 9411.89 10673.8 9431.75 Q10673.8 9461.88 10655.3 9478 Q10637 9494.11 10602.7 9494.11 Q10568.4 9494.11 10549.9 9478 Q10531.5 9461.88 10531.5 9431.75 Q10531.5 9411.89 10542.9 9398.14 Q10554.3 9384.39 10574.6 9379.66 M10564.3 9335.36 Q10564.3 9351.47 10574.3 9360.5 Q10584.5 9369.52 10602.7 9369.52 Q10620.7 9369.52 10630.9 9360.5 Q10641.1 9351.47 10641.1 9335.36 Q10641.1 9319.25 10630.9 9310.22 Q10620.7 9301.19 10602.7 9301.19 Q10584.5 9301.19 10574.3 9310.22 Q10564.3 9319.25 10564.3 9335.36 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip840)" d="M10783.6 9301.19 Q10762 9301.19 10751 9322.58 Q10740.2 9343.83 10740.2 9386.61 Q10740.2 9429.25 10751 9450.64 Q10762 9471.88 10783.6 9471.88 Q10805.4 9471.88 10816.3 9450.64 Q10827.2 9429.25 10827.2 9386.61 Q10827.2 9343.83 10816.3 9322.58 Q10805.4 9301.19 10783.6 9301.19 M10783.6 9278.97 Q10818.5 9278.97 10836.8 9306.61 Q10855.3 9334.11 10855.3 9386.61 Q10855.3 9438.97 10836.8 9466.61 Q10818.5 9494.11 10783.6 9494.11 Q10748.8 9494.11 10730.3 9466.61 Q10712 9438.97 10712 9386.61 Q10712 9334.11 10730.3 9306.61 Q10748.8 9278.97 10783.6 9278.97 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><polyline clip-path="url(#clip842)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
+<path clip-path="url(#clip570)" d="M2889.48 9466.47 L2987.4 9466.47 L2987.4 9490.08 L2855.73 9490.08 L2855.73 9466.47 Q2871.7 9449.94 2899.2 9422.16 Q2926.84 9394.25 2933.92 9386.19 Q2947.4 9371.05 2952.67 9360.64 Q2958.09 9350.08 2958.09 9339.94 Q2958.09 9323.41 2946.42 9313 Q2934.9 9302.58 2916.29 9302.58 Q2903.09 9302.58 2888.37 9307.16 Q2873.79 9311.75 2857.12 9321.05 L2857.12 9292.72 Q2874.06 9285.91 2888.79 9282.44 Q2903.51 9278.97 2915.73 9278.97 Q2947.95 9278.97 2967.12 9295.08 Q2986.29 9311.19 2986.29 9338.14 Q2986.29 9350.91 2981.42 9362.44 Q2976.7 9373.83 2964.06 9389.39 Q2960.59 9393.41 2941.98 9412.72 Q2923.37 9431.89 2889.48 9466.47 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip570)" d="M3106.28 9301.19 Q3084.62 9301.19 3073.65 9322.58 Q3062.81 9343.83 3062.81 9386.61 Q3062.81 9429.25 3073.65 9450.64 Q3084.62 9471.88 3106.28 9471.88 Q3128.09 9471.88 3138.92 9450.64 Q3149.9 9429.25 3149.9 9386.61 Q3149.9 9343.83 3138.92 9322.58 Q3128.09 9301.19 3106.28 9301.19 M3106.28 9278.97 Q3141.15 9278.97 3159.48 9306.61 Q3177.95 9334.11 3177.95 9386.61 Q3177.95 9438.97 3159.48 9466.61 Q3141.15 9494.11 3106.28 9494.11 Q3071.42 9494.11 3052.95 9466.61 Q3034.62 9438.97 3034.62 9386.61 Q3034.62 9334.11 3052.95 9306.61 Q3071.42 9278.97 3106.28 9278.97 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip570)" d="M5504.73 9307.16 L5433.9 9417.86 L5504.73 9417.86 L5504.73 9307.16 M5497.37 9282.72 L5532.64 9282.72 L5532.64 9417.86 L5562.23 9417.86 L5562.23 9441.19 L5532.64 9441.19 L5532.64 9490.08 L5504.73 9490.08 L5504.73 9441.19 L5411.12 9441.19 L5411.12 9414.11 L5497.37 9282.72 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip570)" d="M5668.62 9301.19 Q5646.95 9301.19 5635.98 9322.58 Q5625.14 9343.83 5625.14 9386.61 Q5625.14 9429.25 5635.98 9450.64 Q5646.95 9471.88 5668.62 9471.88 Q5690.42 9471.88 5701.26 9450.64 Q5712.23 9429.25 5712.23 9386.61 Q5712.23 9343.83 5701.26 9322.58 Q5690.42 9301.19 5668.62 9301.19 M5668.62 9278.97 Q5703.48 9278.97 5721.81 9306.61 Q5740.28 9334.11 5740.28 9386.61 Q5740.28 9438.97 5721.81 9466.61 Q5703.48 9494.11 5668.62 9494.11 Q5633.76 9494.11 5615.28 9466.61 Q5596.95 9438.97 5596.95 9386.61 Q5596.95 9334.11 5615.28 9306.61 Q5633.76 9278.97 5668.62 9278.97 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip570)" d="M8046.99 9375.22 Q8028.1 9375.22 8016.99 9388.14 Q8006.02 9401.05 8006.02 9423.55 Q8006.02 9445.91 8016.99 9458.97 Q8028.1 9471.88 8046.99 9471.88 Q8065.88 9471.88 8076.85 9458.97 Q8087.96 9445.91 8087.96 9423.55 Q8087.96 9401.05 8076.85 9388.14 Q8065.88 9375.22 8046.99 9375.22 M8102.68 9287.3 L8102.68 9312.86 Q8092.13 9307.86 8081.3 9305.22 Q8070.6 9302.58 8060.05 9302.58 Q8032.27 9302.58 8017.55 9321.33 Q8002.96 9340.08 8000.88 9378 Q8009.07 9365.91 8021.44 9359.52 Q8033.8 9353 8048.66 9353 Q8079.91 9353 8097.96 9372.02 Q8116.16 9390.91 8116.16 9423.55 Q8116.16 9455.5 8097.27 9474.8 Q8078.38 9494.11 8046.99 9494.11 Q8011.02 9494.11 7991.99 9466.61 Q7972.96 9438.97 7972.96 9386.61 Q7972.96 9337.44 7996.3 9308.27 Q8019.63 9278.97 8058.94 9278.97 Q8069.49 9278.97 8080.19 9281.05 Q8091.02 9283.14 8102.68 9287.3 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip570)" d="M8224.49 9301.19 Q8202.82 9301.19 8191.85 9322.58 Q8181.02 9343.83 8181.02 9386.61 Q8181.02 9429.25 8191.85 9450.64 Q8202.82 9471.88 8224.49 9471.88 Q8246.3 9471.88 8257.13 9450.64 Q8268.1 9429.25 8268.1 9386.61 Q8268.1 9343.83 8257.13 9322.58 Q8246.3 9301.19 8224.49 9301.19 M8224.49 9278.97 Q8259.35 9278.97 8277.68 9306.61 Q8296.16 9334.11 8296.16 9386.61 Q8296.16 9438.97 8277.68 9466.61 Q8259.35 9494.11 8224.49 9494.11 Q8189.63 9494.11 8171.16 9466.61 Q8152.82 9438.97 8152.82 9386.61 Q8152.82 9334.11 8171.16 9306.61 Q8189.63 9278.97 8224.49 9278.97 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip570)" d="M10602.7 9391.61 Q10582.7 9391.61 10571.1 9402.3 Q10559.7 9413 10559.7 9431.75 Q10559.7 9450.5 10571.1 9461.19 Q10582.7 9471.88 10602.7 9471.88 Q10622.7 9471.88 10634.2 9461.19 Q10645.7 9450.36 10645.7 9431.75 Q10645.7 9413 10634.2 9402.3 Q10622.8 9391.61 10602.7 9391.61 M10574.6 9379.66 Q10556.5 9375.22 10546.4 9362.86 Q10536.4 9350.5 10536.4 9332.72 Q10536.4 9307.86 10554 9293.41 Q10571.8 9278.97 10602.7 9278.97 Q10633.6 9278.97 10651.3 9293.41 Q10668.9 9307.86 10668.9 9332.72 Q10668.9 9350.5 10658.8 9362.86 Q10648.8 9375.22 10630.9 9379.66 Q10651.1 9384.39 10662.4 9398.14 Q10673.8 9411.89 10673.8 9431.75 Q10673.8 9461.88 10655.3 9478 Q10637 9494.11 10602.7 9494.11 Q10568.4 9494.11 10549.9 9478 Q10531.5 9461.88 10531.5 9431.75 Q10531.5 9411.89 10542.9 9398.14 Q10554.3 9384.39 10574.6 9379.66 M10564.3 9335.36 Q10564.3 9351.47 10574.3 9360.5 Q10584.5 9369.52 10602.7 9369.52 Q10620.7 9369.52 10630.9 9360.5 Q10641.1 9351.47 10641.1 9335.36 Q10641.1 9319.25 10630.9 9310.22 Q10620.7 9301.19 10602.7 9301.19 Q10584.5 9301.19 10574.3 9310.22 Q10564.3 9319.25 10564.3 9335.36 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip570)" d="M10783.6 9301.19 Q10762 9301.19 10751 9322.58 Q10740.2 9343.83 10740.2 9386.61 Q10740.2 9429.25 10751 9450.64 Q10762 9471.88 10783.6 9471.88 Q10805.4 9471.88 10816.3 9450.64 Q10827.2 9429.25 10827.2 9386.61 Q10827.2 9343.83 10816.3 9322.58 Q10805.4 9301.19 10783.6 9301.19 M10783.6 9278.97 Q10818.5 9278.97 10836.8 9306.61 Q10855.3 9334.11 10855.3 9386.61 Q10855.3 9438.97 10836.8 9466.61 Q10818.5 9494.11 10783.6 9494.11 Q10748.8 9494.11 10730.3 9466.61 Q10712 9438.97 10712 9386.61 Q10712 9334.11 10730.3 9306.61 Q10748.8 9278.97 10783.6 9278.97 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><polyline clip-path="url(#clip572)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
   521.953,7310.99 12676.5,7310.99 
   "/>
-<polyline clip-path="url(#clip842)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
+<polyline clip-path="url(#clip572)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
   521.953,5449.39 12676.5,5449.39 
   "/>
-<polyline clip-path="url(#clip842)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
+<polyline clip-path="url(#clip572)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
   521.953,3587.8 12676.5,3587.8 
   "/>
-<polyline clip-path="url(#clip842)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
+<polyline clip-path="url(#clip572)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:12; stroke-opacity:0.1; fill:none" points="
   521.953,1726.2 12676.5,1726.2 
   "/>
-<polyline clip-path="url(#clip840)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip570)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   521.953,9126.05 521.953,283.465 
   "/>
-<polyline clip-path="url(#clip840)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip570)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   521.953,7310.99 667.808,7310.99 
   "/>
-<polyline clip-path="url(#clip840)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip570)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   521.953,5449.39 667.808,5449.39 
   "/>
-<polyline clip-path="url(#clip840)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip570)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   521.953,3587.8 667.808,3587.8 
   "/>
-<polyline clip-path="url(#clip840)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<polyline clip-path="url(#clip570)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   521.953,1726.2 667.808,1726.2 
   "/>
-<path clip-path="url(#clip840)" d="M17.4821 7391.06 L115.398 7391.06 L115.398 7414.67 L-16.2677 7414.67 L-16.2677 7391.06 Q-0.295603 7374.53 27.2042 7346.75 Q54.843 7318.84 61.9263 7310.78 Q75.3984 7295.64 80.6762 7285.23 Q86.0928 7274.67 86.0928 7264.53 Q86.0928 7248.01 74.4262 7237.59 Q62.8985 7227.17 44.2875 7227.17 Q31.0931 7227.17 16.371 7231.76 Q1.78772 7236.34 -14.8789 7245.64 L-14.8789 7217.31 Q2.0655 7210.51 16.7876 7207.03 Q31.5098 7203.56 43.7319 7203.56 Q75.954 7203.56 95.1206 7219.67 Q114.287 7235.78 114.287 7262.73 Q114.287 7275.5 109.426 7287.03 Q104.704 7298.42 92.065 7313.98 Q88.5928 7318 69.9818 7337.31 Q51.3708 7356.48 17.4821 7391.06 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip840)" d="M234.286 7225.78 Q212.62 7225.78 201.648 7247.17 Q190.814 7268.42 190.814 7311.2 Q190.814 7353.84 201.648 7375.23 Q212.62 7396.48 234.286 7396.48 Q256.092 7396.48 266.925 7375.23 Q277.897 7353.84 277.897 7311.2 Q277.897 7268.42 266.925 7247.17 Q256.092 7225.78 234.286 7225.78 M234.286 7203.56 Q269.147 7203.56 287.481 7231.2 Q305.953 7258.7 305.953 7311.2 Q305.953 7363.56 287.481 7391.2 Q269.147 7418.7 234.286 7418.7 Q199.426 7418.7 180.953 7391.2 Q162.62 7363.56 162.62 7311.2 Q162.62 7258.7 180.953 7231.2 Q199.426 7203.56 234.286 7203.56 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip840)" d="M70.3985 5370.16 L-0.434491 5480.85 L70.3985 5480.85 L70.3985 5370.16 M63.0374 5345.71 L98.315 5345.71 L98.315 5480.85 L127.898 5480.85 L127.898 5504.19 L98.315 5504.19 L98.315 5553.07 L70.3985 5553.07 L70.3985 5504.19 L-23.2121 5504.19 L-23.2121 5477.1 L63.0374 5345.71 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip840)" d="M234.286 5364.19 Q212.62 5364.19 201.648 5385.58 Q190.814 5406.83 190.814 5449.6 Q190.814 5492.24 201.648 5513.63 Q212.62 5534.88 234.286 5534.88 Q256.092 5534.88 266.925 5513.63 Q277.897 5492.24 277.897 5449.6 Q277.897 5406.83 266.925 5385.58 Q256.092 5364.19 234.286 5364.19 M234.286 5341.96 Q269.147 5341.96 287.481 5369.6 Q305.953 5397.1 305.953 5449.6 Q305.953 5501.96 287.481 5529.6 Q269.147 5557.1 234.286 5557.1 Q199.426 5557.1 180.953 5529.6 Q162.62 5501.96 162.62 5449.6 Q162.62 5397.1 180.953 5369.6 Q199.426 5341.96 234.286 5341.96 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip840)" d="M56.7874 3576.62 Q37.8986 3576.62 26.7876 3589.53 Q15.8154 3602.45 15.8154 3624.95 Q15.8154 3647.31 26.7876 3660.37 Q37.8986 3673.28 56.7874 3673.28 Q75.6762 3673.28 86.6484 3660.37 Q97.7594 3647.31 97.7594 3624.95 Q97.7594 3602.45 86.6484 3589.53 Q75.6762 3576.62 56.7874 3576.62 M112.482 3488.7 L112.482 3514.26 Q101.926 3509.26 91.0928 3506.62 Q80.3984 3503.98 69.8429 3503.98 Q42.0653 3503.98 27.3431 3522.73 Q12.7599 3541.48 10.6766 3579.4 Q18.871 3567.31 31.232 3560.92 Q43.5931 3554.4 58.4541 3554.4 Q89.7039 3554.4 107.759 3573.42 Q125.954 3592.31 125.954 3624.95 Q125.954 3656.89 107.065 3676.2 Q88.1761 3695.51 56.7874 3695.51 Q20.8154 3695.51 1.78772 3668.01 Q-17.24 3640.37 -17.24 3588.01 Q-17.24 3538.84 6.09325 3509.67 Q29.4265 3480.37 68.7318 3480.37 Q79.2873 3480.37 89.9817 3482.45 Q100.815 3484.53 112.482 3488.7 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip840)" d="M234.286 3502.59 Q212.62 3502.59 201.648 3523.98 Q190.814 3545.23 190.814 3588.01 Q190.814 3630.65 201.648 3652.03 Q212.62 3673.28 234.286 3673.28 Q256.092 3673.28 266.925 3652.03 Q277.897 3630.65 277.897 3588.01 Q277.897 3545.23 266.925 3523.98 Q256.092 3502.59 234.286 3502.59 M234.286 3480.37 Q269.147 3480.37 287.481 3508.01 Q305.953 3535.51 305.953 3588.01 Q305.953 3640.37 287.481 3668.01 Q269.147 3695.51 234.286 3695.51 Q199.426 3695.51 180.953 3668.01 Q162.62 3640.37 162.62 3588.01 Q162.62 3535.51 180.953 3508.01 Q199.426 3480.37 234.286 3480.37 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip840)" d="M53.3152 1731.41 Q33.3153 1731.41 21.7876 1742.1 Q10.3988 1752.8 10.3988 1771.55 Q10.3988 1790.3 21.7876 1800.99 Q33.3153 1811.69 53.3152 1811.69 Q73.3151 1811.69 84.8428 1800.99 Q96.3705 1790.16 96.3705 1771.55 Q96.3705 1752.8 84.8428 1742.1 Q73.454 1731.41 53.3152 1731.41 M25.2598 1719.47 Q7.20436 1715.02 -2.93448 1702.66 Q-12.9344 1690.3 -12.9344 1672.52 Q-12.9344 1647.66 4.70437 1633.22 Q22.4821 1618.77 53.3152 1618.77 Q84.2873 1618.77 101.926 1633.22 Q119.565 1647.66 119.565 1672.52 Q119.565 1690.3 109.426 1702.66 Q99.4261 1715.02 81.5095 1719.47 Q101.787 1724.19 113.037 1737.94 Q124.426 1751.69 124.426 1771.55 Q124.426 1801.69 105.954 1817.8 Q87.6206 1833.91 53.3152 1833.91 Q19.0098 1833.91 0.537726 1817.8 Q-17.7955 1801.69 -17.7955 1771.55 Q-17.7955 1751.69 -6.40668 1737.94 Q4.98215 1724.19 25.2598 1719.47 M14.9821 1675.16 Q14.9821 1691.27 24.982 1700.3 Q35.1209 1709.33 53.3152 1709.33 Q71.3707 1709.33 81.5095 1700.3 Q91.7872 1691.27 91.7872 1675.16 Q91.7872 1659.05 81.5095 1650.02 Q71.3707 1640.99 53.3152 1640.99 Q35.1209 1640.99 24.982 1650.02 Q14.9821 1659.05 14.9821 1675.16 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip840)" d="M234.286 1640.99 Q212.62 1640.99 201.648 1662.38 Q190.814 1683.63 190.814 1726.41 Q190.814 1769.05 201.648 1790.44 Q212.62 1811.69 234.286 1811.69 Q256.092 1811.69 266.925 1790.44 Q277.897 1769.05 277.897 1726.41 Q277.897 1683.63 266.925 1662.38 Q256.092 1640.99 234.286 1640.99 M234.286 1618.77 Q269.147 1618.77 287.481 1646.41 Q305.953 1673.91 305.953 1726.41 Q305.953 1778.77 287.481 1806.41 Q269.147 1833.91 234.286 1833.91 Q199.426 1833.91 180.953 1806.41 Q162.62 1778.77 162.62 1726.41 Q162.62 1673.91 180.953 1646.41 Q199.426 1618.77 234.286 1618.77 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><g clip-path="url(#clip842)">
+<path clip-path="url(#clip570)" d="M17.4821 7391.06 L115.398 7391.06 L115.398 7414.67 L-16.2677 7414.67 L-16.2677 7391.06 Q-0.295603 7374.53 27.2042 7346.75 Q54.843 7318.84 61.9263 7310.78 Q75.3984 7295.64 80.6762 7285.23 Q86.0928 7274.67 86.0928 7264.53 Q86.0928 7248.01 74.4262 7237.59 Q62.8985 7227.17 44.2875 7227.17 Q31.0931 7227.17 16.371 7231.76 Q1.78772 7236.34 -14.8789 7245.64 L-14.8789 7217.31 Q2.0655 7210.51 16.7876 7207.03 Q31.5098 7203.56 43.7319 7203.56 Q75.954 7203.56 95.1206 7219.67 Q114.287 7235.78 114.287 7262.73 Q114.287 7275.5 109.426 7287.03 Q104.704 7298.42 92.065 7313.98 Q88.5928 7318 69.9818 7337.31 Q51.3708 7356.48 17.4821 7391.06 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip570)" d="M234.286 7225.78 Q212.62 7225.78 201.648 7247.17 Q190.814 7268.42 190.814 7311.2 Q190.814 7353.84 201.648 7375.23 Q212.62 7396.48 234.286 7396.48 Q256.092 7396.48 266.925 7375.23 Q277.897 7353.84 277.897 7311.2 Q277.897 7268.42 266.925 7247.17 Q256.092 7225.78 234.286 7225.78 M234.286 7203.56 Q269.147 7203.56 287.481 7231.2 Q305.953 7258.7 305.953 7311.2 Q305.953 7363.56 287.481 7391.2 Q269.147 7418.7 234.286 7418.7 Q199.426 7418.7 180.953 7391.2 Q162.62 7363.56 162.62 7311.2 Q162.62 7258.7 180.953 7231.2 Q199.426 7203.56 234.286 7203.56 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip570)" d="M70.3985 5370.16 L-0.434491 5480.85 L70.3985 5480.85 L70.3985 5370.16 M63.0374 5345.71 L98.315 5345.71 L98.315 5480.85 L127.898 5480.85 L127.898 5504.19 L98.315 5504.19 L98.315 5553.07 L70.3985 5553.07 L70.3985 5504.19 L-23.2121 5504.19 L-23.2121 5477.1 L63.0374 5345.71 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip570)" d="M234.286 5364.19 Q212.62 5364.19 201.648 5385.58 Q190.814 5406.83 190.814 5449.6 Q190.814 5492.24 201.648 5513.63 Q212.62 5534.88 234.286 5534.88 Q256.092 5534.88 266.925 5513.63 Q277.897 5492.24 277.897 5449.6 Q277.897 5406.83 266.925 5385.58 Q256.092 5364.19 234.286 5364.19 M234.286 5341.96 Q269.147 5341.96 287.481 5369.6 Q305.953 5397.1 305.953 5449.6 Q305.953 5501.96 287.481 5529.6 Q269.147 5557.1 234.286 5557.1 Q199.426 5557.1 180.953 5529.6 Q162.62 5501.96 162.62 5449.6 Q162.62 5397.1 180.953 5369.6 Q199.426 5341.96 234.286 5341.96 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip570)" d="M56.7874 3576.62 Q37.8986 3576.62 26.7876 3589.53 Q15.8154 3602.45 15.8154 3624.95 Q15.8154 3647.31 26.7876 3660.37 Q37.8986 3673.28 56.7874 3673.28 Q75.6762 3673.28 86.6484 3660.37 Q97.7594 3647.31 97.7594 3624.95 Q97.7594 3602.45 86.6484 3589.53 Q75.6762 3576.62 56.7874 3576.62 M112.482 3488.7 L112.482 3514.26 Q101.926 3509.26 91.0928 3506.62 Q80.3984 3503.98 69.8429 3503.98 Q42.0653 3503.98 27.3431 3522.73 Q12.7599 3541.48 10.6766 3579.4 Q18.871 3567.31 31.232 3560.92 Q43.5931 3554.4 58.4541 3554.4 Q89.7039 3554.4 107.759 3573.42 Q125.954 3592.31 125.954 3624.95 Q125.954 3656.89 107.065 3676.2 Q88.1761 3695.51 56.7874 3695.51 Q20.8154 3695.51 1.78772 3668.01 Q-17.24 3640.37 -17.24 3588.01 Q-17.24 3538.84 6.09325 3509.67 Q29.4265 3480.37 68.7318 3480.37 Q79.2873 3480.37 89.9817 3482.45 Q100.815 3484.53 112.482 3488.7 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip570)" d="M234.286 3502.59 Q212.62 3502.59 201.648 3523.98 Q190.814 3545.23 190.814 3588.01 Q190.814 3630.65 201.648 3652.03 Q212.62 3673.28 234.286 3673.28 Q256.092 3673.28 266.925 3652.03 Q277.897 3630.65 277.897 3588.01 Q277.897 3545.23 266.925 3523.98 Q256.092 3502.59 234.286 3502.59 M234.286 3480.37 Q269.147 3480.37 287.481 3508.01 Q305.953 3535.51 305.953 3588.01 Q305.953 3640.37 287.481 3668.01 Q269.147 3695.51 234.286 3695.51 Q199.426 3695.51 180.953 3668.01 Q162.62 3640.37 162.62 3588.01 Q162.62 3535.51 180.953 3508.01 Q199.426 3480.37 234.286 3480.37 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip570)" d="M53.3152 1731.41 Q33.3153 1731.41 21.7876 1742.1 Q10.3988 1752.8 10.3988 1771.55 Q10.3988 1790.3 21.7876 1800.99 Q33.3153 1811.69 53.3152 1811.69 Q73.3151 1811.69 84.8428 1800.99 Q96.3705 1790.16 96.3705 1771.55 Q96.3705 1752.8 84.8428 1742.1 Q73.454 1731.41 53.3152 1731.41 M25.2598 1719.47 Q7.20436 1715.02 -2.93448 1702.66 Q-12.9344 1690.3 -12.9344 1672.52 Q-12.9344 1647.66 4.70437 1633.22 Q22.4821 1618.77 53.3152 1618.77 Q84.2873 1618.77 101.926 1633.22 Q119.565 1647.66 119.565 1672.52 Q119.565 1690.3 109.426 1702.66 Q99.4261 1715.02 81.5095 1719.47 Q101.787 1724.19 113.037 1737.94 Q124.426 1751.69 124.426 1771.55 Q124.426 1801.69 105.954 1817.8 Q87.6206 1833.91 53.3152 1833.91 Q19.0098 1833.91 0.537726 1817.8 Q-17.7955 1801.69 -17.7955 1771.55 Q-17.7955 1751.69 -6.40668 1737.94 Q4.98215 1724.19 25.2598 1719.47 M14.9821 1675.16 Q14.9821 1691.27 24.982 1700.3 Q35.1209 1709.33 53.3152 1709.33 Q71.3707 1709.33 81.5095 1700.3 Q91.7872 1691.27 91.7872 1675.16 Q91.7872 1659.05 81.5095 1650.02 Q71.3707 1640.99 53.3152 1640.99 Q35.1209 1640.99 24.982 1650.02 Q14.9821 1659.05 14.9821 1675.16 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip570)" d="M234.286 1640.99 Q212.62 1640.99 201.648 1662.38 Q190.814 1683.63 190.814 1726.41 Q190.814 1769.05 201.648 1790.44 Q212.62 1811.69 234.286 1811.69 Q256.092 1811.69 266.925 1790.44 Q277.897 1769.05 277.897 1726.41 Q277.897 1683.63 266.925 1662.38 Q256.092 1640.99 234.286 1640.99 M234.286 1618.77 Q269.147 1618.77 287.481 1646.41 Q305.953 1673.91 305.953 1726.41 Q305.953 1778.77 287.481 1806.41 Q269.147 1833.91 234.286 1833.91 Q199.426 1833.91 180.953 1806.41 Q162.62 1778.77 162.62 1726.41 Q162.62 1673.91 180.953 1646.41 Q199.426 1618.77 234.286 1618.77 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><g clip-path="url(#clip572)">
 <image width="12155" height="8843" xlink:href="data:image/png;base64,
 iVBORw0KGgoAAAANSUhEUgAAL3sAACKLCAYAAAAME7XCAAAgAElEQVR4nOzdz4rWZRjG8d7blMYc
 ZwhyLGpT6CKtU2gZFLgxiP4sQuwQOhplEiwMEmxVq6JaBC3aRWCiGATTHxLMQWsY37ez8Fpcn88R
@@ -8982,11 +8982,11 @@ jNTf1kjWsPsAAAAASUVORK5CYII=
 " transform="translate(522, 283)"/>
 </g>
 <defs>
-  <clipPath id="clip843">
+  <clipPath id="clip573">
     <rect x="12964" y="283" width="433" height="8844"/>
   </clipPath>
 </defs>
-<g clip-path="url(#clip843)">
+<g clip-path="url(#clip573)">
 <image width="432" height="8843" xlink:href="data:image/png;base64,
 iVBORw0KGgoAAAANSUhEUgAAAbAAACKLCAYAAABYpuRFAAAgAElEQVR4nOzXwQ3dOBQEQf4F84/C
 Wa705BjoC9FAVQRza8zvmT/fAoCY/24PAIB/IWAAJAkYAEkCBkCSgAGQJGAAJAkYAEkCBkCSgAGQ
@@ -9592,10 +9592,10 @@ AZAkYAAkCRgASQIGQJKAAZAkYAAkCRgASQIGQJKAAZAkYAAkCRgASQIGQJKAAZAkYAAkCRgASQIG
 QNI/Z1ooNOxBSQsAAAAASUVORK5CYII=
 " transform="translate(12965, 283)"/>
 </g>
-<path clip-path="url(#clip840)" d="M13684.2 9019.07 Q13662.5 9019.07 13651.6 9040.46 Q13640.7 9061.71 13640.7 9104.48 Q13640.7 9147.12 13651.6 9168.51 Q13662.5 9189.76 13684.2 9189.76 Q13706 9189.76 13716.8 9168.51 Q13727.8 9147.12 13727.8 9104.48 Q13727.8 9061.71 13716.8 9040.46 Q13706 9019.07 13684.2 9019.07 M13684.2 8996.84 Q13719.1 8996.84 13737.4 9024.48 Q13755.9 9051.98 13755.9 9104.48 Q13755.9 9156.84 13737.4 9184.48 Q13719.1 9211.98 13684.2 9211.98 Q13649.3 9211.98 13630.9 9184.48 Q13612.5 9156.84 13612.5 9104.48 Q13612.5 9051.98 13630.9 9024.48 Q13649.3 8996.84 13684.2 8996.84 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip840)" d="M13684.2 8007.24 Q13662.5 8007.24 13651.6 8028.63 Q13640.7 8049.88 13640.7 8092.65 Q13640.7 8135.29 13651.6 8156.68 Q13662.5 8177.93 13684.2 8177.93 Q13706 8177.93 13716.8 8156.68 Q13727.8 8135.29 13727.8 8092.65 Q13727.8 8049.88 13716.8 8028.63 Q13706 8007.24 13684.2 8007.24 M13684.2 7985.02 Q13719.1 7985.02 13737.4 8012.66 Q13755.9 8040.16 13755.9 8092.65 Q13755.9 8145.02 13737.4 8172.65 Q13719.1 8200.15 13684.2 8200.15 Q13649.3 8200.15 13630.9 8172.65 Q13612.5 8145.02 13612.5 8092.65 Q13612.5 8040.16 13630.9 8012.66 Q13649.3 7985.02 13684.2 7985.02 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip840)" d="M13805.2 8160.85 L13834.5 8160.85 L13834.5 8196.13 L13805.2 8196.13 L13805.2 8160.85 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip840)" d="M13900.5 8172.52 L13946.3 8172.52 L13946.3 8014.32 L13896.4 8024.32 L13896.4 7998.77 L13946 7988.77 L13974.1 7988.77 L13974.1 8172.52 L14019.9 8172.52 L14019.9 8196.13 L13900.5 8196.13 L13900.5 8172.52 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip840)" d="M13684.2 6995.41 Q13662.5 6995.41 13651.6 7016.8 Q13640.7 7038.05 13640.7 7080.83 Q13640.7 7123.47 13651.6 7144.85 Q13662.5 7166.1 13684.2 7166.1 Q13706 7166.1 13716.8 7144.85 Q13727.8 7123.47 13727.8 7080.83 Q13727.8 7038.05 13716.8 7016.8 Q13706 6995.41 13684.2 6995.41 M13684.2 6973.19 Q13719.1 6973.19 13737.4 7000.83 Q13755.9 7028.33 13755.9 7080.83 Q13755.9 7133.19 13737.4 7160.83 Q13719.1 7188.33 13684.2 7188.33 Q13649.3 7188.33 13630.9 7160.83 Q13612.5 7133.19 13612.5 7080.83 Q13612.5 7028.33 13630.9 7000.83 Q13649.3 6973.19 13684.2 6973.19 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip840)" d="M13805.2 7149.02 L13834.5 7149.02 L13834.5 7184.3 L13805.2 7184.3 L13805.2 7149.02 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip840)" d="M13919.8 7160.69 L14017.7 7160.69 L14017.7 7184.3 L13886 7184.3 L13886 7160.69 Q13902 7144.16 13929.5 7116.38 Q13957.1 7088.47 13964.2 7080.41 Q13977.7 7065.27 13983 7054.85 Q13988.4 7044.3 13988.4 7034.16 Q13988.4 7017.63 13976.7 7007.22 Q13965.2 6996.8 13946.6 6996.8 Q13933.4 6996.8 13918.6 7001.38 Q13904.1 7005.97 13887.4 7015.27 L13887.4 6986.94 Q13904.3 6980.13 13919.1 6976.66 Q13933.8 6973.19 13946 6973.19 Q13978.2 6973.19 13997.4 6989.3 Q14016.6 7005.41 14016.6 7032.35 Q14016.6 7045.13 14011.7 7056.66 Q14007 7068.05 13994.3 7083.6 Q13990.9 7087.63 13972.3 7106.94 Q13953.6 7126.1 13919.8 7160.69 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip840)" d="M13684.2 5983.58 Q13662.5 5983.58 13651.6 6004.97 Q13640.7 6026.22 13640.7 6069 Q13640.7 6111.64 13651.6 6133.03 Q13662.5 6154.28 13684.2 6154.28 Q13706 6154.28 13716.8 6133.03 Q13727.8 6111.64 13727.8 6069 Q13727.8 6026.22 13716.8 6004.97 Q13706 5983.58 13684.2 5983.58 M13684.2 5961.36 Q13719.1 5961.36 13737.4 5989 Q13755.9 6016.5 13755.9 6069 Q13755.9 6121.36 13737.4 6149 Q13719.1 6176.5 13684.2 6176.5 Q13649.3 6176.5 13630.9 6149 Q13612.5 6121.36 13612.5 6069 Q13612.5 6016.5 13630.9 5989 Q13649.3 5961.36 13684.2 5961.36 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip840)" d="M13805.2 6137.19 L13834.5 6137.19 L13834.5 6172.47 L13805.2 6172.47 L13805.2 6137.19 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip840)" d="M13980.6 6060.67 Q14000.7 6064.97 14012 6078.58 Q14023.4 6092.19 14023.4 6112.19 Q14023.4 6142.89 14002.3 6159.69 Q13981.1 6176.5 13942.3 6176.5 Q13929.2 6176.5 13915.3 6173.86 Q13901.6 6171.36 13886.8 6166.22 L13886.8 6139.14 Q13898.5 6145.94 13912.4 6149.41 Q13926.3 6152.89 13941.4 6152.89 Q13967.8 6152.89 13981.6 6142.47 Q13995.5 6132.05 13995.5 6112.19 Q13995.5 6093.86 13982.5 6083.58 Q13969.8 6073.17 13946.8 6073.17 L13922.7 6073.17 L13922.7 6050.11 L13948 6050.11 Q13968.6 6050.11 13979.6 6041.92 Q13990.6 6033.58 13990.6 6018.03 Q13990.6 6002.05 13979.2 5993.58 Q13968 5984.97 13946.8 5984.97 Q13935.3 5984.97 13922.1 5987.47 Q13908.9 5989.97 13893.1 5995.25 L13893.1 5970.25 Q13909.1 5965.8 13923 5963.58 Q13937 5961.36 13949.3 5961.36 Q13981.3 5961.36 13999.9 5975.94 Q14018.5 5990.39 14018.5 6015.11 Q14018.5 6032.33 14008.6 6044.28 Q13998.8 6056.08 13980.6 6060.67 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip840)" d="M13684.2 4971.75 Q13662.5 4971.75 13651.6 4993.14 Q13640.7 5014.39 13640.7 5057.17 Q13640.7 5099.81 13651.6 5121.2 Q13662.5 5142.45 13684.2 5142.45 Q13706 5142.45 13716.8 5121.2 Q13727.8 5099.81 13727.8 5057.17 Q13727.8 5014.39 13716.8 4993.14 Q13706 4971.75 13684.2 4971.75 M13684.2 4949.53 Q13719.1 4949.53 13737.4 4977.17 Q13755.9 5004.67 13755.9 5057.17 Q13755.9 5109.53 13737.4 5137.17 Q13719.1 5164.67 13684.2 5164.67 Q13649.3 5164.67 13630.9 5137.17 Q13612.5 5109.53 13612.5 5057.17 Q13612.5 5004.67 13630.9 4977.17 Q13649.3 4949.53 13684.2 4949.53 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip840)" d="M13805.2 5125.36 L13834.5 5125.36 L13834.5 5160.64 L13805.2 5160.64 L13805.2 5125.36 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip840)" d="M13972.7 4977.73 L13901.8 5088.42 L13972.7 5088.42 L13972.7 4977.73 M13965.3 4953.28 L14000.6 4953.28 L14000.6 5088.42 L14030.2 5088.42 L14030.2 5111.75 L14000.6 5111.75 L14000.6 5160.64 L13972.7 5160.64 L13972.7 5111.75 L13879.1 5111.75 L13879.1 5084.67 L13965.3 4953.28 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip840)" d="M13684.2 3959.93 Q13662.5 3959.93 13651.6 3981.32 Q13640.7 4002.57 13640.7 4045.34 Q13640.7 4087.98 13651.6 4109.37 Q13662.5 4130.62 13684.2 4130.62 Q13706 4130.62 13716.8 4109.37 Q13727.8 4087.98 13727.8 4045.34 Q13727.8 4002.57 13716.8 3981.32 Q13706 3959.93 13684.2 3959.93 M13684.2 3937.7 Q13719.1 3937.7 13737.4 3965.34 Q13755.9 3992.84 13755.9 4045.34 Q13755.9 4097.7 13737.4 4125.34 Q13719.1 4152.84 13684.2 4152.84 Q13649.3 4152.84 13630.9 4125.34 Q13612.5 4097.7 13612.5 4045.34 Q13612.5 3992.84 13630.9 3965.34 Q13649.3 3937.7 13684.2 3937.7 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip840)" d="M13805.2 4113.54 L13834.5 4113.54 L13834.5 4148.81 L13805.2 4148.81 L13805.2 4113.54 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip840)" d="M13895.9 3941.45 L14006 3941.45 L14006 3965.07 L13921.6 3965.07 L13921.6 4015.9 Q13927.7 4013.82 13933.8 4012.84 Q13939.9 4011.73 13946 4011.73 Q13980.7 4011.73 14001 4030.76 Q14021.3 4049.79 14021.3 4082.29 Q14021.3 4115.76 14000.5 4134.37 Q13979.6 4152.84 13941.7 4152.84 Q13928.6 4152.84 13915 4150.62 Q13901.6 4148.4 13887.1 4143.95 L13887.1 4115.76 Q13899.6 4122.56 13913 4125.9 Q13926.3 4129.23 13941.1 4129.23 Q13965.2 4129.23 13979.2 4116.59 Q13993.2 4103.95 13993.2 4082.29 Q13993.2 4060.62 13979.2 4047.98 Q13965.2 4035.34 13941.1 4035.34 Q13929.9 4035.34 13918.6 4037.84 Q13907.5 4040.34 13895.9 4045.62 L13895.9 3941.45 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip840)" d="M13684.2 2948.1 Q13662.5 2948.1 13651.6 2969.49 Q13640.7 2990.74 13640.7 3033.51 Q13640.7 3076.15 13651.6 3097.54 Q13662.5 3118.79 13684.2 3118.79 Q13706 3118.79 13716.8 3097.54 Q13727.8 3076.15 13727.8 3033.51 Q13727.8 2990.74 13716.8 2969.49 Q13706 2948.1 13684.2 2948.1 M13684.2 2925.88 Q13719.1 2925.88 13737.4 2953.52 Q13755.9 2981.01 13755.9 3033.51 Q13755.9 3085.88 13737.4 3113.51 Q13719.1 3141.01 13684.2 3141.01 Q13649.3 3141.01 13630.9 3113.51 Q13612.5 3085.88 13612.5 3033.51 Q13612.5 2981.01 13630.9 2953.52 Q13649.3 2925.88 13684.2 2925.88 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip840)" d="M13805.2 3101.71 L13834.5 3101.71 L13834.5 3136.99 L13805.2 3136.99 L13805.2 3101.71 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip840)" d="M13959.1 3022.13 Q13940.2 3022.13 13929.1 3035.04 Q13918.1 3047.96 13918.1 3070.46 Q13918.1 3092.82 13929.1 3105.88 Q13940.2 3118.79 13959.1 3118.79 Q13978 3118.79 13988.9 3105.88 Q14000 3092.82 14000 3070.46 Q14000 3047.96 13988.9 3035.04 Q13978 3022.13 13959.1 3022.13 M14014.8 2934.21 L14014.8 2959.77 Q14004.2 2954.77 13993.4 2952.13 Q13982.7 2949.49 13972.1 2949.49 Q13944.3 2949.49 13929.6 2968.24 Q13915 2986.99 13913 3024.9 Q13921.1 3012.82 13933.5 3006.43 Q13945.9 2999.9 13960.7 2999.9 Q13992 2999.9 14010 3018.93 Q14028.2 3037.82 14028.2 3070.46 Q14028.2 3102.4 14009.3 3121.71 Q13990.5 3141.01 13959.1 3141.01 Q13923.1 3141.01 13904.1 3113.51 Q13885 3085.88 13885 3033.51 Q13885 2984.35 13908.4 2955.18 Q13931.7 2925.88 13971 2925.88 Q13981.6 2925.88 13992.3 2927.96 Q14003.1 2930.04 14014.8 2934.21 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip840)" d="M13684.2 1936.27 Q13662.5 1936.27 13651.6 1957.66 Q13640.7 1978.91 13640.7 2021.69 Q13640.7 2064.33 13651.6 2085.71 Q13662.5 2106.96 13684.2 2106.96 Q13706 2106.96 13716.8 2085.71 Q13727.8 2064.33 13727.8 2021.69 Q13727.8 1978.91 13716.8 1957.66 Q13706 1936.27 13684.2 1936.27 M13684.2 1914.05 Q13719.1 1914.05 13737.4 1941.69 Q13755.9 1969.19 13755.9 2021.69 Q13755.9 2074.05 13737.4 2101.69 Q13719.1 2129.19 13684.2 2129.19 Q13649.3 2129.19 13630.9 2101.69 Q13612.5 2074.05 13612.5 2021.69 Q13612.5 1969.19 13630.9 1941.69 Q13649.3 1914.05 13684.2 1914.05 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip840)" d="M13805.2 2089.88 L13834.5 2089.88 L13834.5 2125.16 L13805.2 2125.16 L13805.2 2089.88 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip840)" d="M13888.5 1917.8 L14021.8 1917.8 L14021.8 1929.74 L13946.6 2125.16 L13917.3 2125.16 L13988.1 1941.41 L13888.5 1941.41 L13888.5 1917.8 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip840)" d="M13684.2 924.442 Q13662.5 924.442 13651.6 945.831 Q13640.7 967.081 13640.7 1009.86 Q13640.7 1052.5 13651.6 1073.89 Q13662.5 1095.14 13684.2 1095.14 Q13706 1095.14 13716.8 1073.89 Q13727.8 1052.5 13727.8 1009.86 Q13727.8 967.081 13716.8 945.831 Q13706 924.442 13684.2 924.442 M13684.2 902.22 Q13719.1 902.22 13737.4 929.859 Q13755.9 957.359 13755.9 1009.86 Q13755.9 1062.22 13737.4 1089.86 Q13719.1 1117.36 13684.2 1117.36 Q13649.3 1117.36 13630.9 1089.86 Q13612.5 1062.22 13612.5 1009.86 Q13612.5 957.359 13630.9 929.859 Q13649.3 902.22 13684.2 902.22 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip840)" d="M13805.2 1078.05 L13834.5 1078.05 L13834.5 1113.33 L13805.2 1113.33 L13805.2 1078.05 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip840)" d="M13955.6 1014.86 Q13935.6 1014.86 13924.1 1025.55 Q13912.7 1036.25 13912.7 1055 Q13912.7 1073.75 13924.1 1084.44 Q13935.6 1095.14 13955.6 1095.14 Q13975.6 1095.14 13987.1 1084.44 Q13998.6 1073.61 13998.6 1055 Q13998.6 1036.25 13987.1 1025.55 Q13975.7 1014.86 13955.6 1014.86 M13927.5 1002.91 Q13909.5 998.47 13899.3 986.109 Q13889.3 973.748 13889.3 955.97 Q13889.3 931.109 13907 916.665 Q13924.8 902.22 13955.6 902.22 Q13986.6 902.22 14004.2 916.665 Q14021.8 931.109 14021.8 955.97 Q14021.8 973.748 14011.7 986.109 Q14001.7 998.47 13983.8 1002.91 Q14004.1 1007.64 14015.3 1021.39 Q14026.7 1035.14 14026.7 1055 Q14026.7 1085.14 14008.2 1101.25 Q13989.9 1117.36 13955.6 1117.36 Q13921.3 1117.36 13902.8 1101.25 Q13884.5 1085.14 13884.5 1055 Q13884.5 1035.14 13895.9 1021.39 Q13907.3 1007.64 13927.5 1002.91 M13917.3 958.609 Q13917.3 974.72 13927.3 983.748 Q13937.4 992.775 13955.6 992.775 Q13973.6 992.775 13983.8 983.748 Q13994.1 974.72 13994.1 958.609 Q13994.1 942.498 13983.8 933.47 Q13973.6 924.442 13955.6 924.442 Q13937.4 924.442 13927.3 933.47 Q13917.3 942.498 13917.3 958.609 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><polyline clip-path="url(#clip840)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
+<path clip-path="url(#clip570)" d="M13684.2 9019.07 Q13662.5 9019.07 13651.6 9040.46 Q13640.7 9061.71 13640.7 9104.48 Q13640.7 9147.12 13651.6 9168.51 Q13662.5 9189.76 13684.2 9189.76 Q13706 9189.76 13716.8 9168.51 Q13727.8 9147.12 13727.8 9104.48 Q13727.8 9061.71 13716.8 9040.46 Q13706 9019.07 13684.2 9019.07 M13684.2 8996.84 Q13719.1 8996.84 13737.4 9024.48 Q13755.9 9051.98 13755.9 9104.48 Q13755.9 9156.84 13737.4 9184.48 Q13719.1 9211.98 13684.2 9211.98 Q13649.3 9211.98 13630.9 9184.48 Q13612.5 9156.84 13612.5 9104.48 Q13612.5 9051.98 13630.9 9024.48 Q13649.3 8996.84 13684.2 8996.84 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip570)" d="M13684.2 8007.24 Q13662.5 8007.24 13651.6 8028.63 Q13640.7 8049.88 13640.7 8092.65 Q13640.7 8135.29 13651.6 8156.68 Q13662.5 8177.93 13684.2 8177.93 Q13706 8177.93 13716.8 8156.68 Q13727.8 8135.29 13727.8 8092.65 Q13727.8 8049.88 13716.8 8028.63 Q13706 8007.24 13684.2 8007.24 M13684.2 7985.02 Q13719.1 7985.02 13737.4 8012.66 Q13755.9 8040.16 13755.9 8092.65 Q13755.9 8145.02 13737.4 8172.65 Q13719.1 8200.15 13684.2 8200.15 Q13649.3 8200.15 13630.9 8172.65 Q13612.5 8145.02 13612.5 8092.65 Q13612.5 8040.16 13630.9 8012.66 Q13649.3 7985.02 13684.2 7985.02 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip570)" d="M13805.2 8160.85 L13834.5 8160.85 L13834.5 8196.13 L13805.2 8196.13 L13805.2 8160.85 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip570)" d="M13900.5 8172.52 L13946.3 8172.52 L13946.3 8014.32 L13896.4 8024.32 L13896.4 7998.77 L13946 7988.77 L13974.1 7988.77 L13974.1 8172.52 L14019.9 8172.52 L14019.9 8196.13 L13900.5 8196.13 L13900.5 8172.52 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip570)" d="M13684.2 6995.41 Q13662.5 6995.41 13651.6 7016.8 Q13640.7 7038.05 13640.7 7080.83 Q13640.7 7123.47 13651.6 7144.85 Q13662.5 7166.1 13684.2 7166.1 Q13706 7166.1 13716.8 7144.85 Q13727.8 7123.47 13727.8 7080.83 Q13727.8 7038.05 13716.8 7016.8 Q13706 6995.41 13684.2 6995.41 M13684.2 6973.19 Q13719.1 6973.19 13737.4 7000.83 Q13755.9 7028.33 13755.9 7080.83 Q13755.9 7133.19 13737.4 7160.83 Q13719.1 7188.33 13684.2 7188.33 Q13649.3 7188.33 13630.9 7160.83 Q13612.5 7133.19 13612.5 7080.83 Q13612.5 7028.33 13630.9 7000.83 Q13649.3 6973.19 13684.2 6973.19 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip570)" d="M13805.2 7149.02 L13834.5 7149.02 L13834.5 7184.3 L13805.2 7184.3 L13805.2 7149.02 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip570)" d="M13919.8 7160.69 L14017.7 7160.69 L14017.7 7184.3 L13886 7184.3 L13886 7160.69 Q13902 7144.16 13929.5 7116.38 Q13957.1 7088.47 13964.2 7080.41 Q13977.7 7065.27 13983 7054.85 Q13988.4 7044.3 13988.4 7034.16 Q13988.4 7017.63 13976.7 7007.22 Q13965.2 6996.8 13946.6 6996.8 Q13933.4 6996.8 13918.6 7001.38 Q13904.1 7005.97 13887.4 7015.27 L13887.4 6986.94 Q13904.3 6980.13 13919.1 6976.66 Q13933.8 6973.19 13946 6973.19 Q13978.2 6973.19 13997.4 6989.3 Q14016.6 7005.41 14016.6 7032.35 Q14016.6 7045.13 14011.7 7056.66 Q14007 7068.05 13994.3 7083.6 Q13990.9 7087.63 13972.3 7106.94 Q13953.6 7126.1 13919.8 7160.69 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip570)" d="M13684.2 5983.58 Q13662.5 5983.58 13651.6 6004.97 Q13640.7 6026.22 13640.7 6069 Q13640.7 6111.64 13651.6 6133.03 Q13662.5 6154.28 13684.2 6154.28 Q13706 6154.28 13716.8 6133.03 Q13727.8 6111.64 13727.8 6069 Q13727.8 6026.22 13716.8 6004.97 Q13706 5983.58 13684.2 5983.58 M13684.2 5961.36 Q13719.1 5961.36 13737.4 5989 Q13755.9 6016.5 13755.9 6069 Q13755.9 6121.36 13737.4 6149 Q13719.1 6176.5 13684.2 6176.5 Q13649.3 6176.5 13630.9 6149 Q13612.5 6121.36 13612.5 6069 Q13612.5 6016.5 13630.9 5989 Q13649.3 5961.36 13684.2 5961.36 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip570)" d="M13805.2 6137.19 L13834.5 6137.19 L13834.5 6172.47 L13805.2 6172.47 L13805.2 6137.19 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip570)" d="M13980.6 6060.67 Q14000.7 6064.97 14012 6078.58 Q14023.4 6092.19 14023.4 6112.19 Q14023.4 6142.89 14002.3 6159.69 Q13981.1 6176.5 13942.3 6176.5 Q13929.2 6176.5 13915.3 6173.86 Q13901.6 6171.36 13886.8 6166.22 L13886.8 6139.14 Q13898.5 6145.94 13912.4 6149.41 Q13926.3 6152.89 13941.4 6152.89 Q13967.8 6152.89 13981.6 6142.47 Q13995.5 6132.05 13995.5 6112.19 Q13995.5 6093.86 13982.5 6083.58 Q13969.8 6073.17 13946.8 6073.17 L13922.7 6073.17 L13922.7 6050.11 L13948 6050.11 Q13968.6 6050.11 13979.6 6041.92 Q13990.6 6033.58 13990.6 6018.03 Q13990.6 6002.05 13979.2 5993.58 Q13968 5984.97 13946.8 5984.97 Q13935.3 5984.97 13922.1 5987.47 Q13908.9 5989.97 13893.1 5995.25 L13893.1 5970.25 Q13909.1 5965.8 13923 5963.58 Q13937 5961.36 13949.3 5961.36 Q13981.3 5961.36 13999.9 5975.94 Q14018.5 5990.39 14018.5 6015.11 Q14018.5 6032.33 14008.6 6044.28 Q13998.8 6056.08 13980.6 6060.67 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip570)" d="M13684.2 4971.75 Q13662.5 4971.75 13651.6 4993.14 Q13640.7 5014.39 13640.7 5057.17 Q13640.7 5099.81 13651.6 5121.2 Q13662.5 5142.45 13684.2 5142.45 Q13706 5142.45 13716.8 5121.2 Q13727.8 5099.81 13727.8 5057.17 Q13727.8 5014.39 13716.8 4993.14 Q13706 4971.75 13684.2 4971.75 M13684.2 4949.53 Q13719.1 4949.53 13737.4 4977.17 Q13755.9 5004.67 13755.9 5057.17 Q13755.9 5109.53 13737.4 5137.17 Q13719.1 5164.67 13684.2 5164.67 Q13649.3 5164.67 13630.9 5137.17 Q13612.5 5109.53 13612.5 5057.17 Q13612.5 5004.67 13630.9 4977.17 Q13649.3 4949.53 13684.2 4949.53 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip570)" d="M13805.2 5125.36 L13834.5 5125.36 L13834.5 5160.64 L13805.2 5160.64 L13805.2 5125.36 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip570)" d="M13972.7 4977.73 L13901.8 5088.42 L13972.7 5088.42 L13972.7 4977.73 M13965.3 4953.28 L14000.6 4953.28 L14000.6 5088.42 L14030.2 5088.42 L14030.2 5111.75 L14000.6 5111.75 L14000.6 5160.64 L13972.7 5160.64 L13972.7 5111.75 L13879.1 5111.75 L13879.1 5084.67 L13965.3 4953.28 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip570)" d="M13684.2 3959.93 Q13662.5 3959.93 13651.6 3981.32 Q13640.7 4002.57 13640.7 4045.34 Q13640.7 4087.98 13651.6 4109.37 Q13662.5 4130.62 13684.2 4130.62 Q13706 4130.62 13716.8 4109.37 Q13727.8 4087.98 13727.8 4045.34 Q13727.8 4002.57 13716.8 3981.32 Q13706 3959.93 13684.2 3959.93 M13684.2 3937.7 Q13719.1 3937.7 13737.4 3965.34 Q13755.9 3992.84 13755.9 4045.34 Q13755.9 4097.7 13737.4 4125.34 Q13719.1 4152.84 13684.2 4152.84 Q13649.3 4152.84 13630.9 4125.34 Q13612.5 4097.7 13612.5 4045.34 Q13612.5 3992.84 13630.9 3965.34 Q13649.3 3937.7 13684.2 3937.7 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip570)" d="M13805.2 4113.54 L13834.5 4113.54 L13834.5 4148.81 L13805.2 4148.81 L13805.2 4113.54 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip570)" d="M13895.9 3941.45 L14006 3941.45 L14006 3965.07 L13921.6 3965.07 L13921.6 4015.9 Q13927.7 4013.82 13933.8 4012.84 Q13939.9 4011.73 13946 4011.73 Q13980.7 4011.73 14001 4030.76 Q14021.3 4049.79 14021.3 4082.29 Q14021.3 4115.76 14000.5 4134.37 Q13979.6 4152.84 13941.7 4152.84 Q13928.6 4152.84 13915 4150.62 Q13901.6 4148.4 13887.1 4143.95 L13887.1 4115.76 Q13899.6 4122.56 13913 4125.9 Q13926.3 4129.23 13941.1 4129.23 Q13965.2 4129.23 13979.2 4116.59 Q13993.2 4103.95 13993.2 4082.29 Q13993.2 4060.62 13979.2 4047.98 Q13965.2 4035.34 13941.1 4035.34 Q13929.9 4035.34 13918.6 4037.84 Q13907.5 4040.34 13895.9 4045.62 L13895.9 3941.45 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip570)" d="M13684.2 2948.1 Q13662.5 2948.1 13651.6 2969.49 Q13640.7 2990.74 13640.7 3033.51 Q13640.7 3076.15 13651.6 3097.54 Q13662.5 3118.79 13684.2 3118.79 Q13706 3118.79 13716.8 3097.54 Q13727.8 3076.15 13727.8 3033.51 Q13727.8 2990.74 13716.8 2969.49 Q13706 2948.1 13684.2 2948.1 M13684.2 2925.88 Q13719.1 2925.88 13737.4 2953.52 Q13755.9 2981.01 13755.9 3033.51 Q13755.9 3085.88 13737.4 3113.51 Q13719.1 3141.01 13684.2 3141.01 Q13649.3 3141.01 13630.9 3113.51 Q13612.5 3085.88 13612.5 3033.51 Q13612.5 2981.01 13630.9 2953.52 Q13649.3 2925.88 13684.2 2925.88 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip570)" d="M13805.2 3101.71 L13834.5 3101.71 L13834.5 3136.99 L13805.2 3136.99 L13805.2 3101.71 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip570)" d="M13959.1 3022.13 Q13940.2 3022.13 13929.1 3035.04 Q13918.1 3047.96 13918.1 3070.46 Q13918.1 3092.82 13929.1 3105.88 Q13940.2 3118.79 13959.1 3118.79 Q13978 3118.79 13988.9 3105.88 Q14000 3092.82 14000 3070.46 Q14000 3047.96 13988.9 3035.04 Q13978 3022.13 13959.1 3022.13 M14014.8 2934.21 L14014.8 2959.77 Q14004.2 2954.77 13993.4 2952.13 Q13982.7 2949.49 13972.1 2949.49 Q13944.3 2949.49 13929.6 2968.24 Q13915 2986.99 13913 3024.9 Q13921.1 3012.82 13933.5 3006.43 Q13945.9 2999.9 13960.7 2999.9 Q13992 2999.9 14010 3018.93 Q14028.2 3037.82 14028.2 3070.46 Q14028.2 3102.4 14009.3 3121.71 Q13990.5 3141.01 13959.1 3141.01 Q13923.1 3141.01 13904.1 3113.51 Q13885 3085.88 13885 3033.51 Q13885 2984.35 13908.4 2955.18 Q13931.7 2925.88 13971 2925.88 Q13981.6 2925.88 13992.3 2927.96 Q14003.1 2930.04 14014.8 2934.21 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip570)" d="M13684.2 1936.27 Q13662.5 1936.27 13651.6 1957.66 Q13640.7 1978.91 13640.7 2021.69 Q13640.7 2064.33 13651.6 2085.71 Q13662.5 2106.96 13684.2 2106.96 Q13706 2106.96 13716.8 2085.71 Q13727.8 2064.33 13727.8 2021.69 Q13727.8 1978.91 13716.8 1957.66 Q13706 1936.27 13684.2 1936.27 M13684.2 1914.05 Q13719.1 1914.05 13737.4 1941.69 Q13755.9 1969.19 13755.9 2021.69 Q13755.9 2074.05 13737.4 2101.69 Q13719.1 2129.19 13684.2 2129.19 Q13649.3 2129.19 13630.9 2101.69 Q13612.5 2074.05 13612.5 2021.69 Q13612.5 1969.19 13630.9 1941.69 Q13649.3 1914.05 13684.2 1914.05 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip570)" d="M13805.2 2089.88 L13834.5 2089.88 L13834.5 2125.16 L13805.2 2125.16 L13805.2 2089.88 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip570)" d="M13888.5 1917.8 L14021.8 1917.8 L14021.8 1929.74 L13946.6 2125.16 L13917.3 2125.16 L13988.1 1941.41 L13888.5 1941.41 L13888.5 1917.8 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip570)" d="M13684.2 924.442 Q13662.5 924.442 13651.6 945.831 Q13640.7 967.081 13640.7 1009.86 Q13640.7 1052.5 13651.6 1073.89 Q13662.5 1095.14 13684.2 1095.14 Q13706 1095.14 13716.8 1073.89 Q13727.8 1052.5 13727.8 1009.86 Q13727.8 967.081 13716.8 945.831 Q13706 924.442 13684.2 924.442 M13684.2 902.22 Q13719.1 902.22 13737.4 929.859 Q13755.9 957.359 13755.9 1009.86 Q13755.9 1062.22 13737.4 1089.86 Q13719.1 1117.36 13684.2 1117.36 Q13649.3 1117.36 13630.9 1089.86 Q13612.5 1062.22 13612.5 1009.86 Q13612.5 957.359 13630.9 929.859 Q13649.3 902.22 13684.2 902.22 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip570)" d="M13805.2 1078.05 L13834.5 1078.05 L13834.5 1113.33 L13805.2 1113.33 L13805.2 1078.05 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><path clip-path="url(#clip570)" d="M13955.6 1014.86 Q13935.6 1014.86 13924.1 1025.55 Q13912.7 1036.25 13912.7 1055 Q13912.7 1073.75 13924.1 1084.44 Q13935.6 1095.14 13955.6 1095.14 Q13975.6 1095.14 13987.1 1084.44 Q13998.6 1073.61 13998.6 1055 Q13998.6 1036.25 13987.1 1025.55 Q13975.7 1014.86 13955.6 1014.86 M13927.5 1002.91 Q13909.5 998.47 13899.3 986.109 Q13889.3 973.748 13889.3 955.97 Q13889.3 931.109 13907 916.665 Q13924.8 902.22 13955.6 902.22 Q13986.6 902.22 14004.2 916.665 Q14021.8 931.109 14021.8 955.97 Q14021.8 973.748 14011.7 986.109 Q14001.7 998.47 13983.8 1002.91 Q14004.1 1007.64 14015.3 1021.39 Q14026.7 1035.14 14026.7 1055 Q14026.7 1085.14 14008.2 1101.25 Q13989.9 1117.36 13955.6 1117.36 Q13921.3 1117.36 13902.8 1101.25 Q13884.5 1085.14 13884.5 1055 Q13884.5 1035.14 13895.9 1021.39 Q13907.3 1007.64 13927.5 1002.91 M13917.3 958.609 Q13917.3 974.72 13927.3 983.748 Q13937.4 992.775 13955.6 992.775 Q13973.6 992.775 13983.8 983.748 Q13994.1 974.72 13994.1 958.609 Q13994.1 942.498 13983.8 933.47 Q13973.6 924.442 13955.6 924.442 Q13937.4 924.442 13927.3 933.47 Q13917.3 942.498 13917.3 958.609 Z" fill="#000000" fill-rule="evenodd" fill-opacity="1" /><polyline clip-path="url(#clip570)" style="stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:24; stroke-opacity:1; fill:none" points="
   13396.5,9126.05 13396.5,9126.05 13540.5,9126.05 13396.5,9126.05 13396.5,8114.22 13540.5,8114.22 13396.5,8114.22 13396.5,7102.39 13540.5,7102.39 13396.5,7102.39 
   13396.5,6090.56 13540.5,6090.56 13396.5,6090.56 13396.5,5078.74 13540.5,5078.74 13396.5,5078.74 13396.5,4066.91 13540.5,4066.91 13396.5,4066.91 13396.5,3055.08 
   13540.5,3055.08 13396.5,3055.08 13396.5,2043.25 13540.5,2043.25 13396.5,2043.25 13396.5,1031.42 13540.5,1031.42 13396.5,1031.42 13396.5,283.465 
   "/>
 </svg>
-<hr/><p><em>This page was generated using <a href="https://github.com/fredrikekre/Literate.jl">Literate.jl</a>.</em></p></article><nav class="docs-footer"><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:12">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
+<hr/><p><em>This page was generated using <a href="https://github.com/fredrikekre/Literate.jl">Literate.jl</a>.</em></p></article><nav class="docs-footer"><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:25">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
diff --git a/dev/notebooks/7_community_model/index.html b/dev/notebooks/7_community_model/index.html
index 6973366340ea622dde695e589a3b1fff48ac08dc..8d502bd5ab7abb2898e742ddb5d7c9c5743729e4 100644
--- a/dev/notebooks/7_community_model/index.html
+++ b/dev/notebooks/7_community_model/index.html
@@ -133,4 +133,4 @@ d = flux_balance_analysis_dict(
     Tulip.Optimizer;
     modifications = [change_optimizer_attribute(&quot;IPM_IterationsLimit&quot;, 1000)],
 )
-d[&quot;community_biomass&quot;] # community μ</code></pre><pre class="documenter-example-output">0.23607110796208797</pre><p>Notice that the growth rate is now above 0! Nutrient sharing saved the day!</p><hr/><p><em>This page was generated using <a href="https://github.com/fredrikekre/Literate.jl">Literate.jl</a>.</em></p></article><nav class="docs-footer"><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:12">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
+d[&quot;community_biomass&quot;] # community μ</code></pre><pre class="documenter-example-output">0.23607110796208797</pre><p>Notice that the growth rate is now above 0! Nutrient sharing saved the day!</p><hr/><p><em>This page was generated using <a href="https://github.com/fredrikekre/Literate.jl">Literate.jl</a>.</em></p></article><nav class="docs-footer"><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:25">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
diff --git a/dev/notebooks/8_custom_model/index.html b/dev/notebooks/8_custom_model/index.html
index 3e904cc4087116a9ace424b13d3b49fff2ed77e8..125c55d02fc4ed5090cbd587b29d2ebef636ab63 100644
--- a/dev/notebooks/8_custom_model/index.html
+++ b/dev/notebooks/8_custom_model/index.html
@@ -126,4 +126,4 @@ reactions_to_remove .=&gt; screen_variants(
  &quot;Reaction W&quot; =&gt; 0.3044596423819445
  &quot;Reaction X&quot; =&gt; 0.3044596423819445
  &quot;Reaction Y&quot; =&gt; 0.3044596260552588
- &quot;Reaction Z&quot; =&gt; 0.3044596424137387</pre><hr/><p><em>This page was generated using <a href="https://github.com/fredrikekre/Literate.jl">Literate.jl</a>.</em></p></article><nav class="docs-footer"><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:12">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
+ &quot;Reaction Z&quot; =&gt; 0.3044596424137387</pre><hr/><p><em>This page was generated using <a href="https://github.com/fredrikekre/Literate.jl">Literate.jl</a>.</em></p></article><nav class="docs-footer"><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:25">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
diff --git a/dev/notebooks/index.html b/dev/notebooks/index.html
index 10a00312ecec724a26ea9fe9cb4af2db417184ef..c3aa59540d0bce980222cbf9afcb1a73f68add59 100644
--- a/dev/notebooks/index.html
+++ b/dev/notebooks/index.html
@@ -1,2 +1,2 @@
 <!DOCTYPE html>
-<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Examples and notebooks · COBREXA.jl</title><link href="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL=".."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../assets/documenter.js"></script><script src="../siteinfo.js"></script><script src="../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../assets/themeswap.js"></script><link href="../assets/favicon.ico" rel="icon" type="image/x-icon"/></head><body><div id="documenter"><nav class="docs-sidebar"><a class="docs-logo" href="../"><img class="docs-light-only" src="../assets/logo.svg" alt="COBREXA.jl logo"/><img class="docs-dark-only" src="../assets/logo-dark.svg" alt="COBREXA.jl logo"/></a><div class="docs-package-name"><span class="docs-autofit">COBREXA.jl</span></div><form class="docs-search" action="../search/"><input class="docs-search-query" id="documenter-search-query" name="q" type="text" placeholder="Search docs"/></form><ul class="docs-menu"><li><a class="tocitem" href="../">Home</a></li><li><a class="tocitem" href="../tutorials/">Quickstart tutorials</a></li><li><a class="tocitem" href="../advanced/">Advanced tutorials</a></li><li class="is-active"><a class="tocitem" href>Examples and notebooks</a></li><li><a class="tocitem" href="../functions/">Function reference</a></li><li><a class="tocitem" href="../howToContribute/">How to contribute</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><nav class="breadcrumb"><ul class="is-hidden-mobile"><li class="is-active"><a href>Examples and notebooks</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Examples and notebooks</a></li></ul></nav><div class="docs-right"><a class="docs-edit-link" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/master/docs/src/notebooks.md" title="Edit on GitHub"><span class="docs-icon fab"></span><span class="docs-label is-hidden-touch">Edit on GitHub</span></a><a class="docs-settings-button fas fa-cog" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-sidebar-button fa fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a></div></header><article class="content" id="documenter-page"><h1 id="Notebooks-and-example-workflows"><a class="docs-heading-anchor" href="#Notebooks-and-example-workflows">Notebooks and example workflows</a><a id="Notebooks-and-example-workflows-1"></a><a class="docs-heading-anchor-permalink" href="#Notebooks-and-example-workflows" title="Permalink"></a></h1><ul><li><a href="1_loading_converting_saving/#Loading,-converting,-and-saving-models">Loading, converting, and saving models</a></li><ul><li><a href="1_loading_converting_saving/#Loading-models">Loading models</a></li><li><a href="1_loading_converting_saving/#Using-the-generic-interface-to-access-model-details">Using the generic interface to access model details</a></li><li><a href="1_loading_converting_saving/#Converting-between-model-types">Converting between model types</a></li><li><a href="1_loading_converting_saving/#Saving-and-exporting-models">Saving and exporting models</a></li></ul><li><a href="2_finding_balance/#Finding-balance-and-variability-of-constraint-based-models">Finding balance and variability of constraint-based models</a></li><ul><li><a href="2_finding_balance/#Optimization-solvers-in-COBREXA">Optimization solvers in <code>COBREXA</code></a></li><li><a href="2_finding_balance/#Flux-balance-analysis-(FBA)">Flux balance analysis (FBA)</a></li><li><a href="2_finding_balance/#Modifications">Modifications</a></li><li><a href="2_finding_balance/#Flux-variability-analysis-(FVA)">Flux variability analysis (FVA)</a></li><li><a href="2_finding_balance/#Parsimonious-flux-balance-analysis-(pFBA)">Parsimonious flux balance analysis (pFBA)</a></li></ul><li><a href="3_basic_stdmodel_usage/#Basic-usage-of-StandardModel">Basic usage of <code>StandardModel</code></a></li><ul><li><a href="3_basic_stdmodel_usage/#Loading-a-model">Loading a model</a></li><li><a href="3_basic_stdmodel_usage/#Basic-analysis">Basic analysis</a></li><li><a href="3_basic_stdmodel_usage/#Inspecting-the-flux-solution:-atom_exchange">Inspecting the flux solution: <code>atom_exchange</code></a></li><li><a href="3_basic_stdmodel_usage/#Inspecting-the-flux-solution:-metabolite_fluxes">Inspecting the flux solution: <code>metabolite_fluxes</code></a></li><li><a href="3_basic_stdmodel_usage/#Internals-of-StandardModel">Internals of <code>StandardModel</code></a></li><li><a href="3_basic_stdmodel_usage/#Genes,-Reactions,-and-Metabolites"><code>Gene</code>s, <code>Reaction</code>s, and <code>Metabolite</code>s</a></li><li><a href="3_basic_stdmodel_usage/#Checking-the-internals-of-StandardModels:-annotation_index">Checking the internals of <code>StandardModel</code>s: <code>annotation_index</code></a></li><li><a href="3_basic_stdmodel_usage/#Checking-the-internals-of-StandardModels:-check_duplicate_reaction">Checking the internals of <code>StandardModel</code>s: <code>check_duplicate_reaction</code></a></li><li><a href="3_basic_stdmodel_usage/#Checking-the-internals-of-StandardModels:-is_mass_balanced">Checking the internals of <code>StandardModel</code>s: <code>is_mass_balanced</code></a></li></ul><li><a href="4_basic_core_coupled_usage/#Basic-usage-of-CoreModel-and-CoreModelCoupled">Basic usage of <code>CoreModel</code> and <code>CoreModelCoupled</code></a></li><ul><li><a href="4_basic_core_coupled_usage/#Loading-a-CoreModel">Loading a <code>CoreModel</code></a></li><li><a href="4_basic_core_coupled_usage/#Basic-analysis-on-CoreModel">Basic analysis on <code>CoreModel</code></a></li><li><a href="4_basic_core_coupled_usage/#Structure-of-CoreModel">Structure of <code>CoreModel</code></a></li><li><a href="4_basic_core_coupled_usage/#CoreModelCoupled-adds-coupling-constraints-to-CoreModel"><code>CoreModelCoupled</code> adds coupling constraints to <code>CoreModel</code></a></li></ul><li><a href="5_basic_stdmodel_construction/#Model-construction-and-modification">Model construction and modification</a></li><ul><li><a href="5_basic_stdmodel_construction/#Model-construction">Model construction</a></li><li><a href="5_basic_stdmodel_construction/#Modifying-existing-models">Modifying existing models</a></li></ul><li><a href="6_screening/#Exploring-model-variants-with-screen">Exploring model variants with <code>screen</code></a></li><ul><li><a href="6_screening/#Preparing-the-functions">Preparing the functions</a></li><li><a href="6_screening/#Knocking-out-single-reactions">Knocking out single reactions</a></li><li><a href="6_screening/#Knocking-out-reaction-combinations">Knocking out reaction combinations</a></li></ul><li><a href="7_community_model/#Building-and-analysing-a-small-community-model">Building and analysing a small community model</a></li><ul><li><a href="7_community_model/#Load-the-base-model">Load the base model</a></li><li><a href="7_community_model/#Load-the-models-and-inspect-fba-solutions">Load the models and inspect fba solutions</a></li><li><a href="7_community_model/#Build-a-community-model-of-the-cytochrome-oxidase-knockout-and-the-ATP-synthase-knockout-models">Build a community model of the cytochrome oxidase knockout and the ATP synthase knockout models</a></li><li><a href="7_community_model/#Set-exchange-reaction-bounds-of-community-model-based-on-the-bounds-of-the-individual-models">Set exchange reaction bounds of community model based on the bounds of the individual models</a></li><li><a href="7_community_model/#Add-objective-function-to-community-model">Add objective function to community model`</a></li><li><a href="7_community_model/#Perform-community-FBA">Perform community FBA</a></li><li><a href="7_community_model/#Add-the-enolase-knockout-to-the-community-model">Add the enolase knockout to the community model</a></li><li><a href="7_community_model/#Allow-the-mutants-to-rescue-each-other-by-sharing-pyruvate">Allow the mutants to rescue each other by sharing pyruvate</a></li></ul><li><a href="8_custom_model/#Using-a-custom-model-data-structure">Using a custom model data structure</a></li></ul></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../advanced/">« Advanced tutorials</a><a class="docs-footer-nextpage" href="../functions/">Function reference »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:12">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
+<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Examples and notebooks · COBREXA.jl</title><link href="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL=".."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../assets/documenter.js"></script><script src="../siteinfo.js"></script><script src="../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../assets/themeswap.js"></script><link href="../assets/favicon.ico" rel="icon" type="image/x-icon"/></head><body><div id="documenter"><nav class="docs-sidebar"><a class="docs-logo" href="../"><img class="docs-light-only" src="../assets/logo.svg" alt="COBREXA.jl logo"/><img class="docs-dark-only" src="../assets/logo-dark.svg" alt="COBREXA.jl logo"/></a><div class="docs-package-name"><span class="docs-autofit">COBREXA.jl</span></div><form class="docs-search" action="../search/"><input class="docs-search-query" id="documenter-search-query" name="q" type="text" placeholder="Search docs"/></form><ul class="docs-menu"><li><a class="tocitem" href="../">Home</a></li><li><a class="tocitem" href="../tutorials/">Quickstart tutorials</a></li><li><a class="tocitem" href="../advanced/">Advanced tutorials</a></li><li class="is-active"><a class="tocitem" href>Examples and notebooks</a></li><li><a class="tocitem" href="../functions/">Function reference</a></li><li><a class="tocitem" href="../howToContribute/">How to contribute</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><nav class="breadcrumb"><ul class="is-hidden-mobile"><li class="is-active"><a href>Examples and notebooks</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Examples and notebooks</a></li></ul></nav><div class="docs-right"><a class="docs-edit-link" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/master/docs/src/notebooks.md" title="Edit on GitHub"><span class="docs-icon fab"></span><span class="docs-label is-hidden-touch">Edit on GitHub</span></a><a class="docs-settings-button fas fa-cog" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-sidebar-button fa fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a></div></header><article class="content" id="documenter-page"><h1 id="Notebooks-and-example-workflows"><a class="docs-heading-anchor" href="#Notebooks-and-example-workflows">Notebooks and example workflows</a><a id="Notebooks-and-example-workflows-1"></a><a class="docs-heading-anchor-permalink" href="#Notebooks-and-example-workflows" title="Permalink"></a></h1><ul><li><a href="1_loading_converting_saving/#Loading,-converting,-and-saving-models">Loading, converting, and saving models</a></li><ul><li><a href="1_loading_converting_saving/#Loading-models">Loading models</a></li><li><a href="1_loading_converting_saving/#Using-the-generic-interface-to-access-model-details">Using the generic interface to access model details</a></li><li><a href="1_loading_converting_saving/#Converting-between-model-types">Converting between model types</a></li><li><a href="1_loading_converting_saving/#Saving-and-exporting-models">Saving and exporting models</a></li></ul><li><a href="2_finding_balance/#Finding-balance-and-variability-of-constraint-based-models">Finding balance and variability of constraint-based models</a></li><ul><li><a href="2_finding_balance/#Optimization-solvers-in-COBREXA">Optimization solvers in <code>COBREXA</code></a></li><li><a href="2_finding_balance/#Flux-balance-analysis-(FBA)">Flux balance analysis (FBA)</a></li><li><a href="2_finding_balance/#Modifications">Modifications</a></li><li><a href="2_finding_balance/#Flux-variability-analysis-(FVA)">Flux variability analysis (FVA)</a></li><li><a href="2_finding_balance/#Parsimonious-flux-balance-analysis-(pFBA)">Parsimonious flux balance analysis (pFBA)</a></li></ul><li><a href="3_basic_stdmodel_usage/#Basic-usage-of-StandardModel">Basic usage of <code>StandardModel</code></a></li><ul><li><a href="3_basic_stdmodel_usage/#Loading-a-model">Loading a model</a></li><li><a href="3_basic_stdmodel_usage/#Basic-analysis">Basic analysis</a></li><li><a href="3_basic_stdmodel_usage/#Inspecting-the-flux-solution:-atom_exchange">Inspecting the flux solution: <code>atom_exchange</code></a></li><li><a href="3_basic_stdmodel_usage/#Inspecting-the-flux-solution:-metabolite_fluxes">Inspecting the flux solution: <code>metabolite_fluxes</code></a></li><li><a href="3_basic_stdmodel_usage/#Internals-of-StandardModel">Internals of <code>StandardModel</code></a></li><li><a href="3_basic_stdmodel_usage/#Genes,-Reactions,-and-Metabolites"><code>Gene</code>s, <code>Reaction</code>s, and <code>Metabolite</code>s</a></li><li><a href="3_basic_stdmodel_usage/#Checking-the-internals-of-StandardModels:-annotation_index">Checking the internals of <code>StandardModel</code>s: <code>annotation_index</code></a></li><li><a href="3_basic_stdmodel_usage/#Checking-the-internals-of-StandardModels:-check_duplicate_reaction">Checking the internals of <code>StandardModel</code>s: <code>check_duplicate_reaction</code></a></li><li><a href="3_basic_stdmodel_usage/#Checking-the-internals-of-StandardModels:-is_mass_balanced">Checking the internals of <code>StandardModel</code>s: <code>is_mass_balanced</code></a></li></ul><li><a href="4_basic_core_coupled_usage/#Basic-usage-of-CoreModel-and-CoreModelCoupled">Basic usage of <code>CoreModel</code> and <code>CoreModelCoupled</code></a></li><ul><li><a href="4_basic_core_coupled_usage/#Loading-a-CoreModel">Loading a <code>CoreModel</code></a></li><li><a href="4_basic_core_coupled_usage/#Basic-analysis-on-CoreModel">Basic analysis on <code>CoreModel</code></a></li><li><a href="4_basic_core_coupled_usage/#Structure-of-CoreModel">Structure of <code>CoreModel</code></a></li><li><a href="4_basic_core_coupled_usage/#CoreModelCoupled-adds-coupling-constraints-to-CoreModel"><code>CoreModelCoupled</code> adds coupling constraints to <code>CoreModel</code></a></li></ul><li><a href="5_basic_stdmodel_construction/#Model-construction-and-modification">Model construction and modification</a></li><ul><li><a href="5_basic_stdmodel_construction/#Model-construction">Model construction</a></li><li><a href="5_basic_stdmodel_construction/#Modifying-existing-models">Modifying existing models</a></li></ul><li><a href="6_screening/#Exploring-model-variants-with-screen">Exploring model variants with <code>screen</code></a></li><ul><li><a href="6_screening/#Preparing-the-functions">Preparing the functions</a></li><li><a href="6_screening/#Knocking-out-single-reactions">Knocking out single reactions</a></li><li><a href="6_screening/#Knocking-out-reaction-combinations">Knocking out reaction combinations</a></li></ul><li><a href="7_community_model/#Building-and-analysing-a-small-community-model">Building and analysing a small community model</a></li><ul><li><a href="7_community_model/#Load-the-base-model">Load the base model</a></li><li><a href="7_community_model/#Load-the-models-and-inspect-fba-solutions">Load the models and inspect fba solutions</a></li><li><a href="7_community_model/#Build-a-community-model-of-the-cytochrome-oxidase-knockout-and-the-ATP-synthase-knockout-models">Build a community model of the cytochrome oxidase knockout and the ATP synthase knockout models</a></li><li><a href="7_community_model/#Set-exchange-reaction-bounds-of-community-model-based-on-the-bounds-of-the-individual-models">Set exchange reaction bounds of community model based on the bounds of the individual models</a></li><li><a href="7_community_model/#Add-objective-function-to-community-model">Add objective function to community model`</a></li><li><a href="7_community_model/#Perform-community-FBA">Perform community FBA</a></li><li><a href="7_community_model/#Add-the-enolase-knockout-to-the-community-model">Add the enolase knockout to the community model</a></li><li><a href="7_community_model/#Allow-the-mutants-to-rescue-each-other-by-sharing-pyruvate">Allow the mutants to rescue each other by sharing pyruvate</a></li></ul><li><a href="8_custom_model/#Using-a-custom-model-data-structure">Using a custom model data structure</a></li></ul></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../advanced/">« Advanced tutorials</a><a class="docs-footer-nextpage" href="../functions/">Function reference »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:24">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
diff --git a/dev/search/index.html b/dev/search/index.html
index db12980b3746aa25d27c569e3112bd54e60902d6..12bd8b870c78931b0a6c10a9d6dd19b60794d4a6 100644
--- a/dev/search/index.html
+++ b/dev/search/index.html
@@ -1,2 +1,2 @@
 <!DOCTYPE html>
-<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Search · COBREXA.jl</title><link href="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL=".."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../assets/documenter.js"></script><script src="../siteinfo.js"></script><script src="../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../assets/themeswap.js"></script><link href="../assets/favicon.ico" rel="icon" type="image/x-icon"/></head><body><div id="documenter"><nav class="docs-sidebar"><a class="docs-logo" href="../"><img class="docs-light-only" src="../assets/logo.svg" alt="COBREXA.jl logo"/><img class="docs-dark-only" src="../assets/logo-dark.svg" alt="COBREXA.jl logo"/></a><div class="docs-package-name"><span class="docs-autofit">COBREXA.jl</span></div><form class="docs-search" action><input class="docs-search-query" id="documenter-search-query" name="q" type="text" placeholder="Search docs"/></form><ul class="docs-menu"><li><a class="tocitem" href="../">Home</a></li><li><a class="tocitem" href="../tutorials/">Quickstart tutorials</a></li><li><a class="tocitem" href="../advanced/">Advanced tutorials</a></li><li><a class="tocitem" href="../notebooks/">Examples and notebooks</a></li><li><a class="tocitem" href="../functions/">Function reference</a></li><li><a class="tocitem" href="../howToContribute/">How to contribute</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><nav class="breadcrumb"><ul class="is-hidden-mobile"><li class="is-active"><a href>Search</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Search</a></li></ul></nav><div class="docs-right"><a class="docs-settings-button fas fa-cog" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-sidebar-button fa fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a></div></header><article><p id="documenter-search-info">Loading search...</p><ul id="documenter-search-results"></ul></article><nav class="docs-footer"><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:12">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><script src="../search_index.js"></script><script src="../assets/search.js"></script></html>
+<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Search · COBREXA.jl</title><link href="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL=".."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../assets/documenter.js"></script><script src="../siteinfo.js"></script><script src="../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../assets/themeswap.js"></script><link href="../assets/favicon.ico" rel="icon" type="image/x-icon"/></head><body><div id="documenter"><nav class="docs-sidebar"><a class="docs-logo" href="../"><img class="docs-light-only" src="../assets/logo.svg" alt="COBREXA.jl logo"/><img class="docs-dark-only" src="../assets/logo-dark.svg" alt="COBREXA.jl logo"/></a><div class="docs-package-name"><span class="docs-autofit">COBREXA.jl</span></div><form class="docs-search" action><input class="docs-search-query" id="documenter-search-query" name="q" type="text" placeholder="Search docs"/></form><ul class="docs-menu"><li><a class="tocitem" href="../">Home</a></li><li><a class="tocitem" href="../tutorials/">Quickstart tutorials</a></li><li><a class="tocitem" href="../advanced/">Advanced tutorials</a></li><li><a class="tocitem" href="../notebooks/">Examples and notebooks</a></li><li><a class="tocitem" href="../functions/">Function reference</a></li><li><a class="tocitem" href="../howToContribute/">How to contribute</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><nav class="breadcrumb"><ul class="is-hidden-mobile"><li class="is-active"><a href>Search</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Search</a></li></ul></nav><div class="docs-right"><a class="docs-settings-button fas fa-cog" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-sidebar-button fa fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a></div></header><article><p id="documenter-search-info">Loading search...</p><ul id="documenter-search-results"></ul></article><nav class="docs-footer"><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:25">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><script src="../search_index.js"></script><script src="../assets/search.js"></script></html>
diff --git a/dev/tutorials/1_loading/index.html b/dev/tutorials/1_loading/index.html
index 917a7ec7b84834b1fb6b8a0531f5e1e577d7ad5e..02942587673ba17fd4bb405392711b3aeff709d0 100644
--- a/dev/tutorials/1_loading/index.html
+++ b/dev/tutorials/1_loading/index.html
@@ -18,4 +18,4 @@ jm.json[&quot;reactions&quot;][1]</code></pre><p>That should print out the first
   &quot;upper_bound&quot;        =&gt; 1000.0
   &quot;subsystem&quot;          =&gt; &quot;Glycolysis/Gluconeogenesis&quot;
   &quot;annotation&quot;         =&gt; Dict{String,Any}(&quot;ec-code&quot;=&gt;Any[&quot;2.7.1.11&quot;],&quot;metanetx…</code></pre><p><a href="../../functions/#COBREXA.MATModel"><code>MATModel</code></a> and <a href="../../functions/#COBREXA.SBMLModel"><code>SBMLModel</code></a> (returned by the respective loading functions) contain similar &quot;full&quot; model information – you can access the whole MATLAB and SBML data and build on them without any restrictions.</p><h2 id="Converting-to-other-model-types"><a class="docs-heading-anchor" href="#Converting-to-other-model-types">Converting to other model types</a><a id="Converting-to-other-model-types-1"></a><a class="docs-heading-anchor-permalink" href="#Converting-to-other-model-types" title="Permalink"></a></h2><p>Despite JSON and SBML are great for storing and exchanging the models, the data representation is not very suitable for analyzing the model and processing it mathematically.</p><p>COBREXA.jl contains several model types that are much better suited  for supporting the analysis tasks. You can use the following:</p><ul><li><a href="../../functions/#COBREXA.CoreModel"><code>CoreModel</code></a>, which represents the &quot;core&quot; of the optimization problem and the corresponding linear programming problem – a sparse representation of the stoichiometric matrix, flux bounds vectors, objective vector, etc.</li><li><a href="../../functions/#COBREXA.StandardModel"><code>StandardModel</code></a> (a &quot;standard&quot; for COBREXA.jl), which represents a highly flexible, object-like, dictionary-based representation of a model that contains individual <a href="../../functions/#COBREXA.Reaction"><code>Reaction</code></a>s, <a href="../../functions/#COBREXA.Metabolite"><code>Metabolite</code></a>s, <a href="../../functions/#COBREXA.Gene"><code>Gene</code></a>s, and other things.</li></ul><div class="admonition is-info"><header class="admonition-header">Conversion limitations and possible data loss</header><div class="admonition-body"><p>Because of the specifics of the format of each model structure, the conversion is not always able to preserve all information from the source data. You may need to check if any complicated and less-standard annotations are still present. If you require them, and either use a more complicated model, or collect them manually.</p></div></div><p>A loaded model can be converted to any other model type using the standard Julia conversion:</p><pre><code class="language-none">cm = convert(CoreModel, jm)</code></pre><p>You can also use a shortcut in <a href="../../functions/#COBREXA.load_model-Tuple{String}"><code>load_model</code></a> to convert the model to the desired format in one command:</p><pre><code class="language-none">cm = load_model(CoreModel, &quot;e_coli_core.xml&quot;)</code></pre><p>With <a href="../../functions/#COBREXA.CoreModel"><code>CoreModel</code></a>, the information is easily accessible in matrix form. For example, <code>cm.S</code> now contains the sparse stoichiometric matrix, which you can convert to a dense matrix and manipulate it in Julia as any other matrix:</p><pre><code class="language-none">Matrix(cm.S)</code></pre><p>...should show you the (relatively empty) stoichiometry of the model.</p><p><a href="../../functions/#COBREXA.StandardModel"><code>StandardModel</code></a> is more suitable for fine-grained access to individual items of the model, perhaps closer to the SBML-style models. For example, you can view and set reaction bounds as follows:</p><pre><code class="language-none">sm = load_model(StandardModel, &quot;e_coli_core.json&quot;)
-sm.reactions[&quot;PGI&quot;].ub</code></pre><p>...this prints the upper bound of the reaction (in this case, <code>1000.0</code>); you can change it the usual way:</p><pre><code class="language-none">sm.reactions[&quot;PGI&quot;].ub = 500</code></pre><p>This change will naturally project to future analysis results.</p></article><nav class="docs-footer"><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:12">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
+sm.reactions[&quot;PGI&quot;].ub</code></pre><p>...this prints the upper bound of the reaction (in this case, <code>1000.0</code>); you can change it the usual way:</p><pre><code class="language-none">sm.reactions[&quot;PGI&quot;].ub = 500</code></pre><p>This change will naturally project to future analysis results.</p></article><nav class="docs-footer"><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:24">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
diff --git a/dev/tutorials/2_analysis/index.html b/dev/tutorials/2_analysis/index.html
index 00dbae3ad209f799c5e5bbf082d8f811b84c0d25..fefaceb710d559e211fd049e8196fc69ad06c505 100644
--- a/dev/tutorials/2_analysis/index.html
+++ b/dev/tutorials/2_analysis/index.html
@@ -32,4 +32,4 @@ Names registered in the model: lbs, mb, ubs, x</code></pre><p>From that, you can
  -16.243       -37.4763         -5.57301
    0.0           0.0             0.0
   -0.310819     -1.20057e-7     -2.13126
-   5.71597e-5    0.00990677      0.692399</code></pre></article><nav class="docs-footer"><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:12">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
+   5.71597e-5    0.00990677      0.692399</code></pre></article><nav class="docs-footer"><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:24">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
diff --git a/dev/tutorials/3_hpc/index.html b/dev/tutorials/3_hpc/index.html
index 7941744bcfa7f16d633fd1ded263244f7d69d721..90429f66738f8cb50495d590b6141dd6b7858b2c 100644
--- a/dev/tutorials/3_hpc/index.html
+++ b/dev/tutorials/3_hpc/index.html
@@ -23,4 +23,4 @@ result = flux_variability_analysis(...; workers=workers())
 
 module load lang/Julia   # this is usually required to make Julia available to your job
 
-julia myJob.jl</code></pre><p>To run the computation, simply run <code>sbatch myJob.sbatch</code> on the access node. The job will be scheduled and eventually executed. You may watch <code>sacct</code> and <code>squeue</code> in the meantime, to see the progress.</p><p>Remember that you need to explicitly save the result of your Julia script computation to files, to be able to retrieve them later. Standard outputs of the jobs are often mangled and discarded. If you still want to collect the standard output, you may change the last line of the batch script to</p><pre><code class="language-none">julia myJob.jl &gt; myJob.log</code></pre><p>and collect the output from the log later. This is convenient especially if logging various computation details using the <code>@info</code> and similar macros.</p></article><nav class="docs-footer"><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:12">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
+julia myJob.jl</code></pre><p>To run the computation, simply run <code>sbatch myJob.sbatch</code> on the access node. The job will be scheduled and eventually executed. You may watch <code>sacct</code> and <code>squeue</code> in the meantime, to see the progress.</p><p>Remember that you need to explicitly save the result of your Julia script computation to files, to be able to retrieve them later. Standard outputs of the jobs are often mangled and discarded. If you still want to collect the standard output, you may change the last line of the batch script to</p><pre><code class="language-none">julia myJob.jl &gt; myJob.log</code></pre><p>and collect the output from the log later. This is convenient especially if logging various computation details using the <code>@info</code> and similar macros.</p></article><nav class="docs-footer"><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:24">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
diff --git a/dev/tutorials/4_modifying/index.html b/dev/tutorials/4_modifying/index.html
index 49f39b0674d54b0681de29c0728f712ce0dfe216..62ec12b24f74362934686d63278901ce14c3162a 100644
--- a/dev/tutorials/4_modifying/index.html
+++ b/dev/tutorials/4_modifying/index.html
@@ -19,4 +19,4 @@ flux_balance_analysis_dict(
     change_objective(&quot;R_TALA&quot;),
   ])</code></pre><h2 id="Exporting-the-modified-models-in-native-formats"><a class="docs-heading-anchor" href="#Exporting-the-modified-models-in-native-formats">Exporting the modified models in native formats</a><a id="Exporting-the-modified-models-in-native-formats-1"></a><a class="docs-heading-anchor-permalink" href="#Exporting-the-modified-models-in-native-formats" title="Permalink"></a></h2><p>Manually modified models can be exported in standard formats so that they can be examined in other environments, or just made accessible for publication.</p><p><code>COBREXA.jl</code> supports export of MATLAB-like and JSON models. Simply use <a href="../../functions/#COBREXA.save_model-Tuple{MetabolicModel, String}"><code>save_model</code></a>:</p><pre><code class="language-none">save_model(m, &quot;myModel.json&quot;)
 save_model(m, &quot;myModel.mat&quot;)</code></pre><p>The function automatically guesses the appropriate model format to write into the file from the file extension. If required, you can choose the model format manually by using <a href="../../functions/#COBREXA.save_json_model-Tuple{MetabolicModel, String}"><code>save_json_model</code></a> and <a href="../../functions/#COBREXA.save_mat_model-Tuple{MetabolicModel, String}"><code>save_mat_model</code></a>.</p><h2 id="Using-Serialization-for-quick-and-efficient-model-storage"><a class="docs-heading-anchor" href="#Using-Serialization-for-quick-and-efficient-model-storage">Using <code>Serialization</code> for quick &amp; efficient model storage</a><a id="Using-Serialization-for-quick-and-efficient-model-storage-1"></a><a class="docs-heading-anchor-permalink" href="#Using-Serialization-for-quick-and-efficient-model-storage" title="Permalink"></a></h2><p>If you save the model &quot;just for yourself&quot;, such as for the use in an immediately following analysis, it may be inconvenient (and unnecessarily inefficient) to encode and decode the models to and from the external format. Moreover, certain model types (such as <a href="../../functions/#COBREXA.CoreModelCoupled"><code>CoreModelCoupled</code></a>) cannot be fully represented in all model formats, thus increasing the chance for accidental data loss.</p><p>Instead of that, we recommend using the <code>Serialization</code> package. It provides a straightforward way to save <em>any</em> Julia data structure to the disk, using a very efficient data format that can be written to and read from the disk very quickly.</p><p>With any model in <code>m</code>, you can write it to disk as follows:</p><pre><code class="language-none">using Serialization
-open(f -&gt; serialize(f, m), &quot;myModel&quot;, &quot;w&quot;)</code></pre><p>...and read it back with:</p><pre><code class="language-none">m = deserialize(&quot;myModel&quot;)</code></pre><p>One great advantage of <code>Serialization</code> is speed – models with millions of reactions are usually loaded and saved with minimal overhead in less than a second.</p><div class="admonition is-warning"><header class="admonition-header">Limits of `Serialization`</header><div class="admonition-body"><p>Serialized models are great for quickly exchanging data objects between analysis steps. The avoided need for re-encoding can save you a great deal of analysis time that can be used for better purposes. Despite that, do not rely on the stability of the serialized format – it often changes between Julia versions, and the data stored in one version may not open easily after an upgrade. In short, use serialized data within one workflow, and use standard and stable external formats for publishing and storing the data beyond the scope of a single analysis workflow.</p></div></div></article><nav class="docs-footer"><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:12">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
+open(f -&gt; serialize(f, m), &quot;myModel&quot;, &quot;w&quot;)</code></pre><p>...and read it back with:</p><pre><code class="language-none">m = deserialize(&quot;myModel&quot;)</code></pre><p>One great advantage of <code>Serialization</code> is speed – models with millions of reactions are usually loaded and saved with minimal overhead in less than a second.</p><div class="admonition is-warning"><header class="admonition-header">Limits of `Serialization`</header><div class="admonition-body"><p>Serialized models are great for quickly exchanging data objects between analysis steps. The avoided need for re-encoding can save you a great deal of analysis time that can be used for better purposes. Despite that, do not rely on the stability of the serialized format – it often changes between Julia versions, and the data stored in one version may not open easily after an upgrade. In short, use serialized data within one workflow, and use standard and stable external formats for publishing and storing the data beyond the scope of a single analysis workflow.</p></div></div></article><nav class="docs-footer"><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:25">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
diff --git a/dev/tutorials/index.html b/dev/tutorials/index.html
index 16071efad25e088ed152c8425aa549a0f7963048..44fa94d3ba1b43c2ce8f39134c77825f1bc2b63c 100644
--- a/dev/tutorials/index.html
+++ b/dev/tutorials/index.html
@@ -1,2 +1,2 @@
 <!DOCTYPE html>
-<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Quickstart tutorials · COBREXA.jl</title><link href="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL=".."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../assets/documenter.js"></script><script src="../siteinfo.js"></script><script src="../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../assets/themeswap.js"></script><link href="../assets/favicon.ico" rel="icon" type="image/x-icon"/></head><body><div id="documenter"><nav class="docs-sidebar"><a class="docs-logo" href="../"><img class="docs-light-only" src="../assets/logo.svg" alt="COBREXA.jl logo"/><img class="docs-dark-only" src="../assets/logo-dark.svg" alt="COBREXA.jl logo"/></a><div class="docs-package-name"><span class="docs-autofit">COBREXA.jl</span></div><form class="docs-search" action="../search/"><input class="docs-search-query" id="documenter-search-query" name="q" type="text" placeholder="Search docs"/></form><ul class="docs-menu"><li><a class="tocitem" href="../">Home</a></li><li class="is-active"><a class="tocitem" href>Quickstart tutorials</a></li><li><a class="tocitem" href="../advanced/">Advanced tutorials</a></li><li><a class="tocitem" href="../notebooks/">Examples and notebooks</a></li><li><a class="tocitem" href="../functions/">Function reference</a></li><li><a class="tocitem" href="../howToContribute/">How to contribute</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><nav class="breadcrumb"><ul class="is-hidden-mobile"><li class="is-active"><a href>Quickstart tutorials</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Quickstart tutorials</a></li></ul></nav><div class="docs-right"><a class="docs-edit-link" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/master/docs/src/tutorials.md" title="Edit on GitHub"><span class="docs-icon fab"></span><span class="docs-label is-hidden-touch">Edit on GitHub</span></a><a class="docs-settings-button fas fa-cog" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-sidebar-button fa fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a></div></header><article class="content" id="documenter-page"><h1 id="COBREXA-Tutorials"><a class="docs-heading-anchor" href="#COBREXA-Tutorials">COBREXA Tutorials</a><a id="COBREXA-Tutorials-1"></a><a class="docs-heading-anchor-permalink" href="#COBREXA-Tutorials" title="Permalink"></a></h1><ul><li><a href="1_loading/#Loading-and-converting-model-data">Loading and converting model data</a></li><ul><li><a href="1_loading/#Loading-models-from-files">Loading models from files</a></li><li><a href="1_loading/#Converting-to-other-model-types">Converting to other model types</a></li></ul><li><a href="2_analysis/#Basic-analysis-of-constraint-based-models">Basic analysis of constraint-based models</a></li><ul><li><a href="2_analysis/#Optimization-problem-solvers">Optimization problem solvers</a></li><li><a href="2_analysis/#Flux-balance-analysis">Flux balance analysis</a></li><li><a href="2_analysis/#Flux-variability-analysis">Flux variability analysis</a></li><li><a href="2_analysis/#Parsimonious-flux-balance-analysis">Parsimonious flux balance analysis</a></li><li><a href="2_analysis/#Flux-sampling">Flux sampling</a></li></ul><li><a href="3_hpc/#Distributed-processing-and-HPC-environments">Distributed processing and HPC environments</a></li><ul><li><a href="3_hpc/#Starting-the-distributed-workers">Starting the distributed workers</a></li><li><a href="3_hpc/#Running-a-distributed-analysis">Running a distributed analysis</a></li><li><a href="3_hpc/#Interacting-with-HPC-schedulers">Interacting with HPC schedulers</a></li><li><a href="3_hpc/#Wrapping-your-script-in-a-Slurm-job">Wrapping your script in a Slurm job</a></li></ul><li><a href="4_modifying/#Modifying-and-saving-the-models">Modifying and saving the models</a></li><ul><li><a href="4_modifying/#Manual-modifications">Manual modifications</a></li><li><a href="4_modifying/#Analysis-modifiers">Analysis modifiers</a></li><li><a href="4_modifying/#Exporting-the-modified-models-in-native-formats">Exporting the modified models in native formats</a></li><li><a href="4_modifying/#Using-Serialization-for-quick-and-efficient-model-storage">Using <code>Serialization</code> for quick &amp; efficient model storage</a></li></ul></ul></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../">« Home</a><a class="docs-footer-nextpage" href="../advanced/">Advanced tutorials »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:12">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
+<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Quickstart tutorials · COBREXA.jl</title><link href="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL=".."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../assets/documenter.js"></script><script src="../siteinfo.js"></script><script src="../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../assets/themeswap.js"></script><link href="../assets/favicon.ico" rel="icon" type="image/x-icon"/></head><body><div id="documenter"><nav class="docs-sidebar"><a class="docs-logo" href="../"><img class="docs-light-only" src="../assets/logo.svg" alt="COBREXA.jl logo"/><img class="docs-dark-only" src="../assets/logo-dark.svg" alt="COBREXA.jl logo"/></a><div class="docs-package-name"><span class="docs-autofit">COBREXA.jl</span></div><form class="docs-search" action="../search/"><input class="docs-search-query" id="documenter-search-query" name="q" type="text" placeholder="Search docs"/></form><ul class="docs-menu"><li><a class="tocitem" href="../">Home</a></li><li class="is-active"><a class="tocitem" href>Quickstart tutorials</a></li><li><a class="tocitem" href="../advanced/">Advanced tutorials</a></li><li><a class="tocitem" href="../notebooks/">Examples and notebooks</a></li><li><a class="tocitem" href="../functions/">Function reference</a></li><li><a class="tocitem" href="../howToContribute/">How to contribute</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><nav class="breadcrumb"><ul class="is-hidden-mobile"><li class="is-active"><a href>Quickstart tutorials</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Quickstart tutorials</a></li></ul></nav><div class="docs-right"><a class="docs-edit-link" href="https://github.com/LCSB-BioCore/COBREXA.jl/blob/master/docs/src/tutorials.md" title="Edit on GitHub"><span class="docs-icon fab"></span><span class="docs-label is-hidden-touch">Edit on GitHub</span></a><a class="docs-settings-button fas fa-cog" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-sidebar-button fa fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a></div></header><article class="content" id="documenter-page"><h1 id="COBREXA-Tutorials"><a class="docs-heading-anchor" href="#COBREXA-Tutorials">COBREXA Tutorials</a><a id="COBREXA-Tutorials-1"></a><a class="docs-heading-anchor-permalink" href="#COBREXA-Tutorials" title="Permalink"></a></h1><ul><li><a href="1_loading/#Loading-and-converting-model-data">Loading and converting model data</a></li><ul><li><a href="1_loading/#Loading-models-from-files">Loading models from files</a></li><li><a href="1_loading/#Converting-to-other-model-types">Converting to other model types</a></li></ul><li><a href="2_analysis/#Basic-analysis-of-constraint-based-models">Basic analysis of constraint-based models</a></li><ul><li><a href="2_analysis/#Optimization-problem-solvers">Optimization problem solvers</a></li><li><a href="2_analysis/#Flux-balance-analysis">Flux balance analysis</a></li><li><a href="2_analysis/#Flux-variability-analysis">Flux variability analysis</a></li><li><a href="2_analysis/#Parsimonious-flux-balance-analysis">Parsimonious flux balance analysis</a></li><li><a href="2_analysis/#Flux-sampling">Flux sampling</a></li></ul><li><a href="3_hpc/#Distributed-processing-and-HPC-environments">Distributed processing and HPC environments</a></li><ul><li><a href="3_hpc/#Starting-the-distributed-workers">Starting the distributed workers</a></li><li><a href="3_hpc/#Running-a-distributed-analysis">Running a distributed analysis</a></li><li><a href="3_hpc/#Interacting-with-HPC-schedulers">Interacting with HPC schedulers</a></li><li><a href="3_hpc/#Wrapping-your-script-in-a-Slurm-job">Wrapping your script in a Slurm job</a></li></ul><li><a href="4_modifying/#Modifying-and-saving-the-models">Modifying and saving the models</a></li><ul><li><a href="4_modifying/#Manual-modifications">Manual modifications</a></li><li><a href="4_modifying/#Analysis-modifiers">Analysis modifiers</a></li><li><a href="4_modifying/#Exporting-the-modified-models-in-native-formats">Exporting the modified models in native formats</a></li><li><a href="4_modifying/#Using-Serialization-for-quick-and-efficient-model-storage">Using <code>Serialization</code> for quick &amp; efficient model storage</a></li></ul></ul></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../">« Home</a><a class="docs-footer-nextpage" href="../advanced/">Advanced tutorials »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Saturday 10 July 2021 10:24">Saturday 10 July 2021</span>. Using Julia version 1.6.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>