Using¶
The artificial_random_signaling_network Github repo can help generate artificial random signaling networks by a Julia script Ground_truth_generation.jl with a set of parameters. Users can adjust some of the relative parameters for biological insights and applications.
Using Julia script to generate synthetic signaling networks¶
To use the Julia script, first install Julia by going to the Julia website (https://julialang.org/).
Once you have the Julia console open, make sure you have “RoadRunner” installed by typing:
julia> import Pkg
julia> Pkg.add(name = "RoadRunner", version = "0.1.2")
RoadRunner.jl is a Julia package for the library of libRoadRunner that is used to provide SBML simulation support. Note that the dependency RoadRunner.jl is currently only applicable on Windows and Linux, so users cannot run the provided Julia script on Mac until an update from RoadRunner.jl.
3. Follow the Julia warnings to install other necessary Julia packages if they have not been installed already.
4. Finally, download the Julia script from GitHub into one folder. At the Julia console type: include(“pathto/Ground_truth_generation.jl”) to run the main script. Note that “pathto” was the path to which you saved the network generation script to.
5. A random signaling network would be generated in SBML format called sampleNetwork0.xml before the steady state and sampleNetwork.xml after the steady state.
6. The Julia script was implemented in Julia 1.6 on Windows 10 with RoadRunner.jl version 0.1.2 for all the results available on the repo.
7. The SBML files under the folder “data/synthetic_networks.zip” were generated by the Julia script. The SBML files under the folder “data/Biomodels.zip” were signaling networks downloaded from the BioModels Database as a comparison.
Adjustable parameters for biological applications¶
There were some configuration settings in the Julia script file Ground_truth_generation.jl that can be adjusted for biological applications including:
The number of species “nSpeces”, which excludes the input and output species but includes gene species. Therefore, the total number of species should be (nSpecies+2).
The number of gene species “nSpecies_gene”;
The number of reactions “nRxns”;
The randomly assigned ranges for species concentrations by “rnd_species_initial” and “rnd_species_range”, for species concentrations in the range of [rnd_species_initial, rnd_species_initial + rnd_species_range);
The randomly assigned ranges for rate constants by “rnd_parameter_initial” and “rnd_parameter_range”, for rate constants in the range of [rnd_parameter_initial, rnd_parameter_initial + rnd_parameter_range);
“concentration_perturb” could be used to set the factor that perturbs the concentration at the input species;
“RXN_MECH_WEIGHT_VALUE” could be used to set the probability of the reaction motifs in the order of uni-uni, uni-bi, bi-uni, bi-bi, single phosphorylation dephosphorylation circle, and dual phosphorylation dephosphorylation cycle ([“UNICAT”, “UNIBI”, “BIUNI”, “BIBI”, “CIRCLE”, “DBCIRCLE”]) with the sum as 1.
The number of random networks to generate could be set by changing the variable “sampleSize”.
Default parameters setup¶
The Julia script on GitHub is a concrete example with specific parameter values shown below. Users can refer to it by assigning their values to their certain demands or based on future biological data in hand.
“nSpeces” = 15, assigning nSpecies as 15, which excludes the input and output species but includes gene species. Therefore, the total number of species should be 17.
“nRxns” = 22, assigning the number of reactions as 22;
“nSpecies_gene” = 9, assigning the number of gene species as 9;
“rxn_speices_initial” = 0, and “rnd_species_range” = 10, meaning random generation for species concentrations in the range of [0, 10);
“rxn_parameter_initial” = 0, and “rnd_parameter” = 1, meaning random generation for rate constants in the range of [0, 1);
“RXN_MECH_WEIGHT_VALUE” set as [0.2, 0.2, 0.2, 0.2, 0.1, 0.1] for the probabilities of reaction motifs in the order of [“UNICAT”, “UNIBI”, “BIUNI”, “BIBI”, “CIRCLE”, “DBCIRCLE”] with the sum as 1.
“concentration_perturb” = 2, meaning doubling the concentration at the input species.
“sampleSize” = 1, meaning generating one sample of the synthetic random signaling network.