Implementation for the Pade PSD method developed in the paper Frequency Spectra and the Color of Cellular Noise by Ankit Gupta and Mustafa Khammash. It contains the following files:
-
main.py: This is the main python script which requires a configuration JSON file as input (see below). Based on this configuration file, a reaction network example is selected (from ReactionNetworkExamples.py), its PSD is estimated with DFT and the Padé PSD method developed in the manuscript. Then the desired plots are generated.
-
PadePSD.py: The file contains subroutines that construct the PSD estimate by estimating all the required expectations with appropriate Monte Carlo estimators. This relies on simulating the augmented CTMC described in the manuscript. The order of the Padé approximant and other simulation-specific parameters are defined in the configuration JSON file.
-
ReactionNetworkClass.py: This file contains a Python class called "ReactionNetworkDefinition" to describe a generic reaction network.
-
ReactionNetworkExamples.py: This file contains classes that encode reaction network examples by inheriting the "ReactionNetworkDefinition" class from (ReactionNetworkClass.py). Note that for each example, the output species must be specified. Currently the file includes the examples from the manuscript. More examples can be easily added based on these examples.
-
PSD_Estimator.py: This file contains the method for estimating the PSD with DFT using discrete-sampled trajectories.
-
plotting.py: This file contains subroutines for plotting the PSD generated by our method, and comparing it with the DFT-based estimate, and also the exact PSD (if available).
-
ConfigFileDescription.txt: This text file describes the configuration JSON file for an example. These configuration files are stored in the Configs subfolder.
python main.py cons_gene_expression.json
NumPy, Sympy