Cómo solucionar pysb Exception: The program BioNetGen was not found in the default search path(s) for your operating system

Problema

Mientras ejecutas un modelo PySB, ves un mensaje de error como

error-output.txt
Exception: The program BioNetGen was not found in the default search path(s) for your operating system:

/usr/local/share/BioNetGen
/usr/bin
/home/user/.local/bin
/home/user/.pyenv/shims
/home/user/.pyenv/bin
/usr/local/sbin
/usr/local/bin
/usr/sbin
/sbin
/bin
/usr/games
/usr/local/games
/snap/bin

Instálalo en una de esas rutas, o establece una ruta personalizada usando la variable de entorno BNGPATH o llamando a la función pysb.pathfinder.set_path()

Los usuarios de Conda pueden instalar BioNetGen usando el siguiente comando:

conda install -c alubbock bionetgen

Solución

Primero, clona BioNetGen del repositorio oficial a una carpeta de tu elección. En este ejemplo, usaremos ~/bionetgen:

clone-bionetgen.sh
git clone --depth 1 -b BioNetGen-2.9.2 https://github.com/RuleWorld/bionetgen.git

Luego, antes de ejecutar cualquier código pysb, establece la variable de entorno BNGPATH a la ruta donde clonaste BioNetGen insertando el siguiente código Python:

set-bngpath.py
import os
import os.path
os.environ['BNGPATH'] = os.path.expanduser('~/bionetgen/bng2')

¡Ten en cuenta que BNGPATH debe estar establecido a la subcarpeta bng2 del repositorio BioNetGen clonado!

Vuelve a ejecutar todo tu programa - ahora, el error debería haber desaparecido.


Echa un vistazo a artículos similares por categoría: Python