PyGhostID is a Python package for identifying generalized saddle-node ghosts in the vicinity of saddle-node bifurcations and their composite ghost structures such as ghost channels and ghost cycles in dynamical systems. PyGhostID's main function is the implementation of GhostID, a trajectory-based algorithm to identify saddle-node ghosts in dynamical systems.
a: GhostID algorithm. b: data recorded about identified ghosts. c: Features of PyGhostID.
Call ghostIDas follows:
import pyghostid as gid
# Minimal working example
result = ghostID(model, params, dt, trajectory)where modelis the Python function describing the system dynamics, parametersare the model parameters to be given as argument to model, dtis the stepsize and trajectoryis a trajectory of the system. It returns ghostSeq, a Python list of identified ghost states (Python dictionary) and, if return_ctrl_figs = True, the figures for the control plots requested by the user.
Please refer to our readthedocs page for information about PyGhostID's functions, tutorials and more.
The folder "paper" of this repository contains the code and data to reproduce the results and figures from the study:
If you use PyGhostID or its repository in your research, please cite our paper.
To recreate the figures and simulations from the study, you’ll need:
- Python 3.x
- PyGhostID (available at https://pypi.org/project/PyGhostID/)
- Other required Python packages (installable via the environment
PyGhostID.yaml)
- Main Figures:
Run any of the
FigureX.ipynbscripts to generate the main figures from the paper.
Supplementary Figures & Videos:
- Use
Supp Figure X.ipynbto reproduce additional analyses and visuals.
For questions or additional information, please contact Daniel Koch: daniel.koch@umanitoba.ca
