Skip to content

Latest commit

History

History
115 lines (72 loc) · 5.53 KB

File metadata and controls

115 lines (72 loc) · 5.53 KB

PyBioNetGen

A simple CLI for BioNetGen

BNG CLI build statusOpen in Remote - ContainersDocumentation StatusDownloadsDownloads

This is a simple CLI and a library for BioNetGen modeling language. PyBioNetGen also includes a heavily updated version of Atomizer which allows for conversion of models written in Systems Biology Markup Language (SBML) into BioNetGen language (BNGL) format.

Please see the documentation to learn how to use PyBioNetGen.

Installation

You will need both python (3.7 and above) and perl installed. Once both are available you can use the following pip command to install the package

$ pip install bionetgen

Optional: in-process simulation with BNGsim

PyBioNetGen can optionally use BNGsim as an in-process simulation engine (ODE/SSA/NFsim, multi-format input). This is fully opt-in: if BNGsim is not installed, every simulation uses the existing subprocess BNG2.pl path and behavior is unchanged. BNGsim is never a required dependency.

BNGsim is a compiled extension and is not on PyPI yet, so pip install bionetgen[bngsim] will not resolve until it is published. To try it now, install a prebuilt wheel from the release assets (macOS / Python 3.12; build from source on other platforms). PyBioNetGen requires BNGsim 0.9.10 or newer. Set BIONETGEN_NO_BNGSIM=1 to force the legacy subprocess path even when BNGsim is installed. See the BNGsim documentation page for details.

Features

PyBioNetGen comes with a command line interface (CLI), based on cement framework, as well as a functional library that can be imported. The CLI can be used to run BNGL models, generate Jupyter notebooks and do rudimentary plotting.

The library side provides a simple BNGL model runner as well as a model object that can be manipulated and used to get libRoadRunner simulators for the model.

PyBioNetGen also includes a heavily updated version of Atomizer which allows for conversion of SBML models into BNGL format. Atomizer can also be used to automatically try to infer the internal structure of SBML species during the conversion, see here for more information. Please note that this version of Atomizer is the main supported version and the version distributed with BioNetGen will eventually be deprecated.

The model object requires a system call to BioNetGen so the initialization can be relatively costly, in case you would like to use it for parallel applications, use the libRoadRunner simulator instead, unless you are doing NFSim simulations.

Usage

Sample CLI usage

$ bionetgen -h # help on every subcommand
$ bionetgen run -h # help on run subcommand
$ bionetgen run -i mymodel.bngl -o output_folder # this runs the model in output_folder

Sample library usage

import bionetgen ret = bionetgen.run("/path/to/mymodel.bngl", out="/path/to/output/folder")
# out keyword is optional, if not given, # generated files will be deleted after running
res = ret.results['mymodel']
# res will be a numpy record array of your gdat results
model = bionetgen.bngmodel("/path/to/mymodel.bngl")
# model will be a python object that contains all model information
print(model.parameters) # this will print only the parameter block in BNGL format
print(model) # this will print the entire BNGL
model.parameters.k = 1 # setting parameter k to 1
with open("new_model.bngl", "w") as f:
f.write(str(model)) # writes the changed model to new_model file
# this will give you a libRoadRunner instance of the model
librr_sim = model.setup_simulator()

You can find more tutorials here.

Environment Setup

The following demonstrates setting up and working with a development environment:

### create a virtualenv for development
$ make virtualenv
$ source env/bin/activate
### run bionetgen cli application
$ bionetgen --help
### run pytest / coverage
$ make test

Docker

Included is a basic Dockerfile for building and distributing BioNetGen CLI, and can be built with the included make helper:

$ make docker
$ docker run -it bionetgen --help

Publishing to PyPI

You can use make dist command to make the distribution and push to PyPI with

python -m twine upload dist/*

You'll need to have a PyPI API token created, see here for more information.

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
PyBioNetGen/README.md at main · akutuva21/PyBioNetGen · GitHub
Skip to content

Latest commit

History

History
115 lines (72 loc) · 5.53 KB

File metadata and controls

115 lines (72 loc) · 5.53 KB

PyBioNetGen

A simple CLI for BioNetGen

BNG CLI build statusOpen in Remote - ContainersDocumentation StatusDownloadsDownloads

This is a simple CLI and a library for BioNetGen modeling language. PyBioNetGen also includes a heavily updated version of Atomizer which allows for conversion of models written in Systems Biology Markup Language (SBML) into BioNetGen language (BNGL) format.

Please see the documentation to learn how to use PyBioNetGen.

Installation

You will need both python (3.7 and above) and perl installed. Once both are available you can use the following pip command to install the package

$ pip install bionetgen

Optional: in-process simulation with BNGsim

PyBioNetGen can optionally use BNGsim as an in-process simulation engine (ODE/SSA/NFsim, multi-format input). This is fully opt-in: if BNGsim is not installed, every simulation uses the existing subprocess BNG2.pl path and behavior is unchanged. BNGsim is never a required dependency.

BNGsim is a compiled extension and is not on PyPI yet, so pip install bionetgen[bngsim] will not resolve until it is published. To try it now, install a prebuilt wheel from the release assets (macOS / Python 3.12; build from source on other platforms). PyBioNetGen requires BNGsim 0.9.10 or newer. Set BIONETGEN_NO_BNGSIM=1 to force the legacy subprocess path even when BNGsim is installed. See the BNGsim documentation page for details.

Features

PyBioNetGen comes with a command line interface (CLI), based on cement framework, as well as a functional library that can be imported. The CLI can be used to run BNGL models, generate Jupyter notebooks and do rudimentary plotting.

The library side provides a simple BNGL model runner as well as a model object that can be manipulated and used to get libRoadRunner simulators for the model.

PyBioNetGen also includes a heavily updated version of Atomizer which allows for conversion of SBML models into BNGL format. Atomizer can also be used to automatically try to infer the internal structure of SBML species during the conversion, see here for more information. Please note that this version of Atomizer is the main supported version and the version distributed with BioNetGen will eventually be deprecated.

The model object requires a system call to BioNetGen so the initialization can be relatively costly, in case you would like to use it for parallel applications, use the libRoadRunner simulator instead, unless you are doing NFSim simulations.

Usage

Sample CLI usage

$ bionetgen -h # help on every subcommand
$ bionetgen run -h # help on run subcommand
$ bionetgen run -i mymodel.bngl -o output_folder # this runs the model in output_folder

Sample library usage

import bionetgen ret = bionetgen.run("/path/to/mymodel.bngl", out="/path/to/output/folder")
# out keyword is optional, if not given, # generated files will be deleted after running
res = ret.results['mymodel']
# res will be a numpy record array of your gdat results
model = bionetgen.bngmodel("/path/to/mymodel.bngl")
# model will be a python object that contains all model information
print(model.parameters) # this will print only the parameter block in BNGL format
print(model) # this will print the entire BNGL
model.parameters.k = 1 # setting parameter k to 1
with open("new_model.bngl", "w") as f:
f.write(str(model)) # writes the changed model to new_model file
# this will give you a libRoadRunner instance of the model
librr_sim = model.setup_simulator()

You can find more tutorials here.

Environment Setup

The following demonstrates setting up and working with a development environment:

### create a virtualenv for development
$ make virtualenv
$ source env/bin/activate
### run bionetgen cli application
$ bionetgen --help
### run pytest / coverage
$ make test

Docker

Included is a basic Dockerfile for building and distributing BioNetGen CLI, and can be built with the included make helper:

$ make docker
$ docker run -it bionetgen --help

Publishing to PyPI

You can use make dist command to make the distribution and push to PyPI with

python -m twine upload dist/*

You'll need to have a PyPI API token created, see here for more information.

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' PyBioNetGen/README.md at main · akutuva21/PyBioNetGen · GitHub
Skip to content

Latest commit

History

History
115 lines (72 loc) · 5.53 KB

File metadata and controls

115 lines (72 loc) · 5.53 KB

PyBioNetGen

A simple CLI for BioNetGen

BNG CLI build statusOpen in Remote - ContainersDocumentation StatusDownloadsDownloads

This is a simple CLI and a library for BioNetGen modeling language. PyBioNetGen also includes a heavily updated version of Atomizer which allows for conversion of models written in Systems Biology Markup Language (SBML) into BioNetGen language (BNGL) format.

Please see the documentation to learn how to use PyBioNetGen.

Installation

You will need both python (3.7 and above) and perl installed. Once both are available you can use the following pip command to install the package

$ pip install bionetgen

Optional: in-process simulation with BNGsim

PyBioNetGen can optionally use BNGsim as an in-process simulation engine (ODE/SSA/NFsim, multi-format input). This is fully opt-in: if BNGsim is not installed, every simulation uses the existing subprocess BNG2.pl path and behavior is unchanged. BNGsim is never a required dependency.

BNGsim is a compiled extension and is not on PyPI yet, so pip install bionetgen[bngsim] will not resolve until it is published. To try it now, install a prebuilt wheel from the release assets (macOS / Python 3.12; build from source on other platforms). PyBioNetGen requires BNGsim 0.9.10 or newer. Set BIONETGEN_NO_BNGSIM=1 to force the legacy subprocess path even when BNGsim is installed. See the BNGsim documentation page for details.

Features

PyBioNetGen comes with a command line interface (CLI), based on cement framework, as well as a functional library that can be imported. The CLI can be used to run BNGL models, generate Jupyter notebooks and do rudimentary plotting.

The library side provides a simple BNGL model runner as well as a model object that can be manipulated and used to get libRoadRunner simulators for the model.

PyBioNetGen also includes a heavily updated version of Atomizer which allows for conversion of SBML models into BNGL format. Atomizer can also be used to automatically try to infer the internal structure of SBML species during the conversion, see here for more information. Please note that this version of Atomizer is the main supported version and the version distributed with BioNetGen will eventually be deprecated.

The model object requires a system call to BioNetGen so the initialization can be relatively costly, in case you would like to use it for parallel applications, use the libRoadRunner simulator instead, unless you are doing NFSim simulations.

Usage

Sample CLI usage

$ bionetgen -h # help on every subcommand
$ bionetgen run -h # help on run subcommand
$ bionetgen run -i mymodel.bngl -o output_folder # this runs the model in output_folder

Sample library usage

import bionetgen ret = bionetgen.run("/path/to/mymodel.bngl", out="/path/to/output/folder")
# out keyword is optional, if not given, # generated files will be deleted after running
res = ret.results['mymodel']
# res will be a numpy record array of your gdat results
model = bionetgen.bngmodel("/path/to/mymodel.bngl")
# model will be a python object that contains all model information
print(model.parameters) # this will print only the parameter block in BNGL format
print(model) # this will print the entire BNGL
model.parameters.k = 1 # setting parameter k to 1
with open("new_model.bngl", "w") as f:
f.write(str(model)) # writes the changed model to new_model file
# this will give you a libRoadRunner instance of the model
librr_sim = model.setup_simulator()

You can find more tutorials here.

Environment Setup

The following demonstrates setting up and working with a development environment:

### create a virtualenv for development
$ make virtualenv
$ source env/bin/activate
### run bionetgen cli application
$ bionetgen --help
### run pytest / coverage
$ make test

Docker

Included is a basic Dockerfile for building and distributing BioNetGen CLI, and can be built with the included make helper:

$ make docker
$ docker run -it bionetgen --help

Publishing to PyPI

You can use make dist command to make the distribution and push to PyPI with

python -m twine upload dist/*

You'll need to have a PyPI API token created, see here for more information.

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' PyBioNetGen/README.md at main · akutuva21/PyBioNetGen · GitHub
Skip to content

Latest commit

History

History
115 lines (72 loc) · 5.53 KB

File metadata and controls

115 lines (72 loc) · 5.53 KB

PyBioNetGen

A simple CLI for BioNetGen

BNG CLI build statusOpen in Remote - ContainersDocumentation StatusDownloadsDownloads

This is a simple CLI and a library for BioNetGen modeling language. PyBioNetGen also includes a heavily updated version of Atomizer which allows for conversion of models written in Systems Biology Markup Language (SBML) into BioNetGen language (BNGL) format.

Please see the documentation to learn how to use PyBioNetGen.

Installation

You will need both python (3.7 and above) and perl installed. Once both are available you can use the following pip command to install the package

$ pip install bionetgen

Optional: in-process simulation with BNGsim

PyBioNetGen can optionally use BNGsim as an in-process simulation engine (ODE/SSA/NFsim, multi-format input). This is fully opt-in: if BNGsim is not installed, every simulation uses the existing subprocess BNG2.pl path and behavior is unchanged. BNGsim is never a required dependency.

BNGsim is a compiled extension and is not on PyPI yet, so pip install bionetgen[bngsim] will not resolve until it is published. To try it now, install a prebuilt wheel from the release assets (macOS / Python 3.12; build from source on other platforms). PyBioNetGen requires BNGsim 0.9.10 or newer. Set BIONETGEN_NO_BNGSIM=1 to force the legacy subprocess path even when BNGsim is installed. See the BNGsim documentation page for details.

Features

PyBioNetGen comes with a command line interface (CLI), based on cement framework, as well as a functional library that can be imported. The CLI can be used to run BNGL models, generate Jupyter notebooks and do rudimentary plotting.

The library side provides a simple BNGL model runner as well as a model object that can be manipulated and used to get libRoadRunner simulators for the model.

PyBioNetGen also includes a heavily updated version of Atomizer which allows for conversion of SBML models into BNGL format. Atomizer can also be used to automatically try to infer the internal structure of SBML species during the conversion, see here for more information. Please note that this version of Atomizer is the main supported version and the version distributed with BioNetGen will eventually be deprecated.

The model object requires a system call to BioNetGen so the initialization can be relatively costly, in case you would like to use it for parallel applications, use the libRoadRunner simulator instead, unless you are doing NFSim simulations.

Usage

Sample CLI usage

$ bionetgen -h # help on every subcommand
$ bionetgen run -h # help on run subcommand
$ bionetgen run -i mymodel.bngl -o output_folder # this runs the model in output_folder

Sample library usage

import bionetgen ret = bionetgen.run("/path/to/mymodel.bngl", out="/path/to/output/folder")
# out keyword is optional, if not given, # generated files will be deleted after running
res = ret.results['mymodel']
# res will be a numpy record array of your gdat results
model = bionetgen.bngmodel("/path/to/mymodel.bngl")
# model will be a python object that contains all model information
print(model.parameters) # this will print only the parameter block in BNGL format
print(model) # this will print the entire BNGL
model.parameters.k = 1 # setting parameter k to 1
with open("new_model.bngl", "w") as f:
f.write(str(model)) # writes the changed model to new_model file
# this will give you a libRoadRunner instance of the model
librr_sim = model.setup_simulator()

You can find more tutorials here.

Environment Setup

The following demonstrates setting up and working with a development environment:

### create a virtualenv for development
$ make virtualenv
$ source env/bin/activate
### run bionetgen cli application
$ bionetgen --help
### run pytest / coverage
$ make test

Docker

Included is a basic Dockerfile for building and distributing BioNetGen CLI, and can be built with the included make helper:

$ make docker
$ docker run -it bionetgen --help

Publishing to PyPI

You can use make dist command to make the distribution and push to PyPI with

python -m twine upload dist/*

You'll need to have a PyPI API token created, see here for more information.

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' PyBioNetGen/README.md at main · akutuva21/PyBioNetGen · GitHub
Skip to content

Latest commit

History

History
115 lines (72 loc) · 5.53 KB

File metadata and controls

115 lines (72 loc) · 5.53 KB

PyBioNetGen

A simple CLI for BioNetGen

BNG CLI build statusOpen in Remote - ContainersDocumentation StatusDownloadsDownloads

This is a simple CLI and a library for BioNetGen modeling language. PyBioNetGen also includes a heavily updated version of Atomizer which allows for conversion of models written in Systems Biology Markup Language (SBML) into BioNetGen language (BNGL) format.

Please see the documentation to learn how to use PyBioNetGen.

Installation

You will need both python (3.7 and above) and perl installed. Once both are available you can use the following pip command to install the package

$ pip install bionetgen

Optional: in-process simulation with BNGsim

PyBioNetGen can optionally use BNGsim as an in-process simulation engine (ODE/SSA/NFsim, multi-format input). This is fully opt-in: if BNGsim is not installed, every simulation uses the existing subprocess BNG2.pl path and behavior is unchanged. BNGsim is never a required dependency.

BNGsim is a compiled extension and is not on PyPI yet, so pip install bionetgen[bngsim] will not resolve until it is published. To try it now, install a prebuilt wheel from the release assets (macOS / Python 3.12; build from source on other platforms). PyBioNetGen requires BNGsim 0.9.10 or newer. Set BIONETGEN_NO_BNGSIM=1 to force the legacy subprocess path even when BNGsim is installed. See the BNGsim documentation page for details.

Features

PyBioNetGen comes with a command line interface (CLI), based on cement framework, as well as a functional library that can be imported. The CLI can be used to run BNGL models, generate Jupyter notebooks and do rudimentary plotting.

The library side provides a simple BNGL model runner as well as a model object that can be manipulated and used to get libRoadRunner simulators for the model.

PyBioNetGen also includes a heavily updated version of Atomizer which allows for conversion of SBML models into BNGL format. Atomizer can also be used to automatically try to infer the internal structure of SBML species during the conversion, see here for more information. Please note that this version of Atomizer is the main supported version and the version distributed with BioNetGen will eventually be deprecated.

The model object requires a system call to BioNetGen so the initialization can be relatively costly, in case you would like to use it for parallel applications, use the libRoadRunner simulator instead, unless you are doing NFSim simulations.

Usage

Sample CLI usage

$ bionetgen -h # help on every subcommand
$ bionetgen run -h # help on run subcommand
$ bionetgen run -i mymodel.bngl -o output_folder # this runs the model in output_folder

Sample library usage

import bionetgen ret = bionetgen.run("/path/to/mymodel.bngl", out="/path/to/output/folder")
# out keyword is optional, if not given, # generated files will be deleted after running
res = ret.results['mymodel']
# res will be a numpy record array of your gdat results
model = bionetgen.bngmodel("/path/to/mymodel.bngl")
# model will be a python object that contains all model information
print(model.parameters) # this will print only the parameter block in BNGL format
print(model) # this will print the entire BNGL
model.parameters.k = 1 # setting parameter k to 1
with open("new_model.bngl", "w") as f:
f.write(str(model)) # writes the changed model to new_model file
# this will give you a libRoadRunner instance of the model
librr_sim = model.setup_simulator()

You can find more tutorials here.

Environment Setup

The following demonstrates setting up and working with a development environment:

### create a virtualenv for development
$ make virtualenv
$ source env/bin/activate
### run bionetgen cli application
$ bionetgen --help
### run pytest / coverage
$ make test

Docker

Included is a basic Dockerfile for building and distributing BioNetGen CLI, and can be built with the included make helper:

$ make docker
$ docker run -it bionetgen --help

Publishing to PyPI

You can use make dist command to make the distribution and push to PyPI with

python -m twine upload dist/*

You'll need to have a PyPI API token created, see here for more information.

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' PyBioNetGen/README.md at main · akutuva21/PyBioNetGen · GitHub
Skip to content

Latest commit

History

History
115 lines (72 loc) · 5.53 KB

File metadata and controls

115 lines (72 loc) · 5.53 KB

PyBioNetGen

A simple CLI for BioNetGen

BNG CLI build statusOpen in Remote - ContainersDocumentation StatusDownloadsDownloads

This is a simple CLI and a library for BioNetGen modeling language. PyBioNetGen also includes a heavily updated version of Atomizer which allows for conversion of models written in Systems Biology Markup Language (SBML) into BioNetGen language (BNGL) format.

Please see the documentation to learn how to use PyBioNetGen.

Installation

You will need both python (3.7 and above) and perl installed. Once both are available you can use the following pip command to install the package

$ pip install bionetgen

Optional: in-process simulation with BNGsim

PyBioNetGen can optionally use BNGsim as an in-process simulation engine (ODE/SSA/NFsim, multi-format input). This is fully opt-in: if BNGsim is not installed, every simulation uses the existing subprocess BNG2.pl path and behavior is unchanged. BNGsim is never a required dependency.

BNGsim is a compiled extension and is not on PyPI yet, so pip install bionetgen[bngsim] will not resolve until it is published. To try it now, install a prebuilt wheel from the release assets (macOS / Python 3.12; build from source on other platforms). PyBioNetGen requires BNGsim 0.9.10 or newer. Set BIONETGEN_NO_BNGSIM=1 to force the legacy subprocess path even when BNGsim is installed. See the BNGsim documentation page for details.

Features

PyBioNetGen comes with a command line interface (CLI), based on cement framework, as well as a functional library that can be imported. The CLI can be used to run BNGL models, generate Jupyter notebooks and do rudimentary plotting.

The library side provides a simple BNGL model runner as well as a model object that can be manipulated and used to get libRoadRunner simulators for the model.

PyBioNetGen also includes a heavily updated version of Atomizer which allows for conversion of SBML models into BNGL format. Atomizer can also be used to automatically try to infer the internal structure of SBML species during the conversion, see here for more information. Please note that this version of Atomizer is the main supported version and the version distributed with BioNetGen will eventually be deprecated.

The model object requires a system call to BioNetGen so the initialization can be relatively costly, in case you would like to use it for parallel applications, use the libRoadRunner simulator instead, unless you are doing NFSim simulations.

Usage

Sample CLI usage

$ bionetgen -h # help on every subcommand
$ bionetgen run -h # help on run subcommand
$ bionetgen run -i mymodel.bngl -o output_folder # this runs the model in output_folder

Sample library usage

import bionetgen ret = bionetgen.run("/path/to/mymodel.bngl", out="/path/to/output/folder")
# out keyword is optional, if not given, # generated files will be deleted after running
res = ret.results['mymodel']
# res will be a numpy record array of your gdat results
model = bionetgen.bngmodel("/path/to/mymodel.bngl")
# model will be a python object that contains all model information
print(model.parameters) # this will print only the parameter block in BNGL format
print(model) # this will print the entire BNGL
model.parameters.k = 1 # setting parameter k to 1
with open("new_model.bngl", "w") as f:
f.write(str(model)) # writes the changed model to new_model file
# this will give you a libRoadRunner instance of the model
librr_sim = model.setup_simulator()

You can find more tutorials here.

Environment Setup

The following demonstrates setting up and working with a development environment:

### create a virtualenv for development
$ make virtualenv
$ source env/bin/activate
### run bionetgen cli application
$ bionetgen --help
### run pytest / coverage
$ make test

Docker

Included is a basic Dockerfile for building and distributing BioNetGen CLI, and can be built with the included make helper:

$ make docker
$ docker run -it bionetgen --help

Publishing to PyPI

You can use make dist command to make the distribution and push to PyPI with

python -m twine upload dist/*

You'll need to have a PyPI API token created, see here for more information.

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' PyBioNetGen/README.md at main · akutuva21/PyBioNetGen · GitHub
Skip to content

Latest commit

History

History
115 lines (72 loc) · 5.53 KB

File metadata and controls

115 lines (72 loc) · 5.53 KB

PyBioNetGen

A simple CLI for BioNetGen

BNG CLI build statusOpen in Remote - ContainersDocumentation StatusDownloadsDownloads

This is a simple CLI and a library for BioNetGen modeling language. PyBioNetGen also includes a heavily updated version of Atomizer which allows for conversion of models written in Systems Biology Markup Language (SBML) into BioNetGen language (BNGL) format.

Please see the documentation to learn how to use PyBioNetGen.

Installation

You will need both python (3.7 and above) and perl installed. Once both are available you can use the following pip command to install the package

$ pip install bionetgen

Optional: in-process simulation with BNGsim

PyBioNetGen can optionally use BNGsim as an in-process simulation engine (ODE/SSA/NFsim, multi-format input). This is fully opt-in: if BNGsim is not installed, every simulation uses the existing subprocess BNG2.pl path and behavior is unchanged. BNGsim is never a required dependency.

BNGsim is a compiled extension and is not on PyPI yet, so pip install bionetgen[bngsim] will not resolve until it is published. To try it now, install a prebuilt wheel from the release assets (macOS / Python 3.12; build from source on other platforms). PyBioNetGen requires BNGsim 0.9.10 or newer. Set BIONETGEN_NO_BNGSIM=1 to force the legacy subprocess path even when BNGsim is installed. See the BNGsim documentation page for details.

Features

PyBioNetGen comes with a command line interface (CLI), based on cement framework, as well as a functional library that can be imported. The CLI can be used to run BNGL models, generate Jupyter notebooks and do rudimentary plotting.

The library side provides a simple BNGL model runner as well as a model object that can be manipulated and used to get libRoadRunner simulators for the model.

PyBioNetGen also includes a heavily updated version of Atomizer which allows for conversion of SBML models into BNGL format. Atomizer can also be used to automatically try to infer the internal structure of SBML species during the conversion, see here for more information. Please note that this version of Atomizer is the main supported version and the version distributed with BioNetGen will eventually be deprecated.

The model object requires a system call to BioNetGen so the initialization can be relatively costly, in case you would like to use it for parallel applications, use the libRoadRunner simulator instead, unless you are doing NFSim simulations.

Usage

Sample CLI usage

$ bionetgen -h # help on every subcommand
$ bionetgen run -h # help on run subcommand
$ bionetgen run -i mymodel.bngl -o output_folder # this runs the model in output_folder

Sample library usage

import bionetgen ret = bionetgen.run("/path/to/mymodel.bngl", out="/path/to/output/folder")
# out keyword is optional, if not given, # generated files will be deleted after running
res = ret.results['mymodel']
# res will be a numpy record array of your gdat results
model = bionetgen.bngmodel("/path/to/mymodel.bngl")
# model will be a python object that contains all model information
print(model.parameters) # this will print only the parameter block in BNGL format
print(model) # this will print the entire BNGL
model.parameters.k = 1 # setting parameter k to 1
with open("new_model.bngl", "w") as f:
f.write(str(model)) # writes the changed model to new_model file
# this will give you a libRoadRunner instance of the model
librr_sim = model.setup_simulator()

You can find more tutorials here.

Environment Setup

The following demonstrates setting up and working with a development environment:

### create a virtualenv for development
$ make virtualenv
$ source env/bin/activate
### run bionetgen cli application
$ bionetgen --help
### run pytest / coverage
$ make test

Docker

Included is a basic Dockerfile for building and distributing BioNetGen CLI, and can be built with the included make helper:

$ make docker
$ docker run -it bionetgen --help

Publishing to PyPI

You can use make dist command to make the distribution and push to PyPI with

python -m twine upload dist/*

You'll need to have a PyPI API token created, see here for more information.

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); PyBioNetGen/README.md at main · akutuva21/PyBioNetGen · GitHub
Skip to content

Latest commit

History

History
115 lines (72 loc) · 5.53 KB

File metadata and controls

115 lines (72 loc) · 5.53 KB

PyBioNetGen

A simple CLI for BioNetGen

BNG CLI build statusOpen in Remote - ContainersDocumentation StatusDownloadsDownloads

This is a simple CLI and a library for BioNetGen modeling language. PyBioNetGen also includes a heavily updated version of Atomizer which allows for conversion of models written in Systems Biology Markup Language (SBML) into BioNetGen language (BNGL) format.

Please see the documentation to learn how to use PyBioNetGen.

Installation

You will need both python (3.7 and above) and perl installed. Once both are available you can use the following pip command to install the package

$ pip install bionetgen

Optional: in-process simulation with BNGsim

PyBioNetGen can optionally use BNGsim as an in-process simulation engine (ODE/SSA/NFsim, multi-format input). This is fully opt-in: if BNGsim is not installed, every simulation uses the existing subprocess BNG2.pl path and behavior is unchanged. BNGsim is never a required dependency.

BNGsim is a compiled extension and is not on PyPI yet, so pip install bionetgen[bngsim] will not resolve until it is published. To try it now, install a prebuilt wheel from the release assets (macOS / Python 3.12; build from source on other platforms). PyBioNetGen requires BNGsim 0.9.10 or newer. Set BIONETGEN_NO_BNGSIM=1 to force the legacy subprocess path even when BNGsim is installed. See the BNGsim documentation page for details.

Features

PyBioNetGen comes with a command line interface (CLI), based on cement framework, as well as a functional library that can be imported. The CLI can be used to run BNGL models, generate Jupyter notebooks and do rudimentary plotting.

The library side provides a simple BNGL model runner as well as a model object that can be manipulated and used to get libRoadRunner simulators for the model.

PyBioNetGen also includes a heavily updated version of Atomizer which allows for conversion of SBML models into BNGL format. Atomizer can also be used to automatically try to infer the internal structure of SBML species during the conversion, see here for more information. Please note that this version of Atomizer is the main supported version and the version distributed with BioNetGen will eventually be deprecated.

The model object requires a system call to BioNetGen so the initialization can be relatively costly, in case you would like to use it for parallel applications, use the libRoadRunner simulator instead, unless you are doing NFSim simulations.

Usage

Sample CLI usage

$ bionetgen -h # help on every subcommand
$ bionetgen run -h # help on run subcommand
$ bionetgen run -i mymodel.bngl -o output_folder # this runs the model in output_folder

Sample library usage

import bionetgen ret = bionetgen.run("/path/to/mymodel.bngl", out="/path/to/output/folder")
# out keyword is optional, if not given, # generated files will be deleted after running
res = ret.results['mymodel']
# res will be a numpy record array of your gdat results
model = bionetgen.bngmodel("/path/to/mymodel.bngl")
# model will be a python object that contains all model information
print(model.parameters) # this will print only the parameter block in BNGL format
print(model) # this will print the entire BNGL
model.parameters.k = 1 # setting parameter k to 1
with open("new_model.bngl", "w") as f:
f.write(str(model)) # writes the changed model to new_model file
# this will give you a libRoadRunner instance of the model
librr_sim = model.setup_simulator()

You can find more tutorials here.

Environment Setup

The following demonstrates setting up and working with a development environment:

### create a virtualenv for development
$ make virtualenv
$ source env/bin/activate
### run bionetgen cli application
$ bionetgen --help
### run pytest / coverage
$ make test

Docker

Included is a basic Dockerfile for building and distributing BioNetGen CLI, and can be built with the included make helper:

$ make docker
$ docker run -it bionetgen --help

Publishing to PyPI

You can use make dist command to make the distribution and push to PyPI with

python -m twine upload dist/*

You'll need to have a PyPI API token created, see here for more information.