Package: bionetgen
A simple CLI for BioNetGenThis is a simple CLI and a library forBioNetGen modeling language. PyBioNetGen also includes a heavily updated version ofAtomizerwhich allows for conversion of models written inSystems Biology Markup Language (SBML)into BioNetGen language (BNGL) format.Please see thedocumentationto learn how to use PyBioNetGen.InstallationYou 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 bionetgenFeaturesPyBioNetGen comes with a command line interface (CLI), based oncement 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 ofAtomizerwhich 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, seeherefor 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 thelibRoadRunnersimulator instead, unless you are doing NFSim simulations.UsageSample 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_folderSample library usageimport 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 tutorialshere.Environment SetupThe 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 testDockerIncluded is a basicDockerfilefor building and distributingBioNetGen CLI,
and can be built with the includedmakehelper:$ make docker

$ docker run -it bionetgen --helpPublishing to PyPIYou can usemake distcommand to make the distribution and push to PyPI withpython -m twine upload dist/*You'll need to have a PyPI API token created, seeherefor more information.