-
Notifications
You must be signed in to change notification settings - Fork 4
Module: ContactNetworkGenerator
Niema Moshiri edited this page Oct 14, 2018
·
45 revisions
The ContactNetworkGenerator module creates an edge list representing the input contact network (either by reading it from file or generating it). See the source code to see what is defined by the abstract class.
- Implements the ContactNetworkGenerator using the Barabási-Albert (BA) model
- Under the BA model, a graph of n nodes is grown by attaching new nodes each with m edges that are preferentially attached to existing nodes with high degree
- The resulting graphs are undirected
- The contact network that was generated is written to a file named
contact_network.txt.gz
in the user-specified output directory - Requirements:
- Config Parameters:
-
num_cn_nodes
: Desired number of nodes in the contact network (n) -
num_edges_from_new
: The number of edges that are attached from new nodes to existing nodes (m)- This number is roughly half the average node degree
-
- Implements the ContactNetworkGenerator using the Barbell Graph
- Two identical complete graphs K{m1} form the left and right bells and are connected by a path P{m2}.
- The resulting graphs are undirected
- The contact network that was generated is written to a file named
contact_network.txt.gz
in the user-specified output directory - Requirements:
- Config Parameters:
-
barbell_m1
: The m1 parameter of the Barbell Graph -
barbell_m2
: The m2 parameter of the Barbell Graph
-
- Implements the ContactNetworkGenerator using the Caveman Graph
- The resulting graphs are undirected
- The contact network that was generated is written to a file named
contact_network.txt.gz
in the user-specified output directory - Requirements:
- Config Parameters:
-
cave_num_cliques
: Number of cliques -
cave_clique_size
: Number of nodes in each clique
-
- Implements the ContactNetworkGenerator using the Connected Caveman Graph
- The resulting graphs are undirected
- The contact network that was generated is written to a file named
contact_network.txt.gz
in the user-specified output directory - Requirements:
- Config Parameters:
-
cave_num_cliques
: Number of cliques -
cave_clique_size
: Number of nodes in each clique
-
- Implements the ContactNetworkGenerator using the Relaxed Caveman Graph
- The resulting graphs are undirected
- The contact network that was generated is written to a file named
contact_network.txt.gz
in the user-specified output directory - Requirements:
- Config Parameters:
-
cave_num_cliques
: Number of cliques -
cave_clique_size
: Number of nodes in each clique -
cave_prob
: Probability of rewiring each edge
-
- Implements the ContactNetworkGenerator such that each community in the graph is generated from a user-specified existing ContactNetworkGenerator implementation, and random edges are placed between the communities with some probability
- The edges that connect individuals across communities are undirected
- The contact network that was generated is written to a file named
contact_network.txt.gz
in the user-specified output directory - Requirements:
- NumPy
- Any requirements for any of the chosen ContactNetworkGenerator module implementations
- Config Parameters:
-
cn_generators
: A list of dictionaries such that eachi
-th dictionary corresponds to thei
-th community- One key in the
i
-th dictionary must be"ContactNetworkGenerator"
, and its value must be one of the existing ContactNetworkGenerator implementations (including this one) - The remaining keys must be the config parameters and values for the chosen ContactNetworkGenerator implementation for the
i
-th community - For example,
[{"ContactNetworkGenerator":"Complete","num_cn_nodes":10},{"ContactNetworkGenerator":"Complete","num_cn_nodes":20}]
will create two communities (one with 10 individuals and the other with 20), each using ContactNetworkGenerator_Complete
- One key in the
-
cn_p_across
: The probability that a given possible inter-community edge will be created
-
- Implements the ContactNetworkGenerator using the Complete Graph
- The resulting graphs are undirected
- The contact network that was generated is written to a file named
contact_network.txt.gz
in the user-specified output directory - Requirements:
- Config Parameters:
-
num_cn_nodes
: Desired number of nodes in the contact network
-
- Implements the ContactNetworkGenerator by generating a random graph with a user-given degree distribution
- The resulting graphs are undirected
- The contact network that was generated is written to a file named
contact_network.txt.gz
in the user-specified output directory - Requirements:
- Config Parameters:
-
cn_degree_distribution
: Desired degree distribution as a dictionary in which keys are degrees (positive integers) and values are counts (positive integers) denoting the number of individuals with a given degree -
cn_tries
: The number of tries to generate the graph- This function is not guaranteed to succeed. See the NetworkX documentation for more information
-
- Implements the ContactNetworkGenerator using the Erdős–Rényi (ER) model
- Under the ER model, each of the possible n(n-1)/2 undirected or n(n-1) directed edges is chosen with a probability p
- The contact network that was generated is written to a file named
contact_network.txt.gz
in the user-specified output directory - Requirements:
- Config Parameters:
-
num_cn_nodes
: Desired number of nodes in the contact network -
er_prob
: The ER model probability p -
d_or_u
: "d" if you want directed edges, or "u" if you want undirected edges
-
- Implements the ContactNetworkGenerator module such that the contact network edge list is read from file
- Requirements:
- None
- Config Parameters:
-
contact_network_file
: Full path to the file storing the contact network, represented in the FAVITES Contact Network File Format.
-
- Implements the ContactNetworkGenerator using the Newman-Watts-Strogatz model
- The algorithm behind the WS model is as follows:
- Create a ring over n nodes
- Each node in the ring is connected with its k nearest neighbors (k-1 neighbors if k is odd)
- Shortcuts are created by replacing some edges as follows:
- For each edge (u,v) in the underlying "n-ring with k nearest neighbors":
- With probability p, add a new edge (u,w) with a uniformly random choice of existing node w
- For each edge (u,v) in the underlying "n-ring with k nearest neighbors":
- The resulting graphs are undirected
- The algorithm behind the WS model is as follows:
- The contact network that was generated is written to a file named
contact_network.txt.gz
in the user-specified output directory - Requirements:
- Config Parameters:
-
num_cn_nodes
: Desired number of nodes in the contact network (n) -
nws_k
: Each node is connected to k nearest neighbors in ring topology -
nws_prob
: The probability of rewiring each edge (p)
-
- Wrapper for PANGEA.HIV.sim
- This is not supported in the Docker/Singularity images from FAVITES 1.1.11 onward
- Requirements:
- R
- PANGEA.HIV.sim
- Must use ContactNetwork_PANGEA module
- Must use ContactNetworkGenerator_PANGEA module
- Must use EndCriteria_Instant module
- Must use NodeEvolution_PANGEA module
- Must use NodeSample_PANGEA module
- Must use NumBranchSample_All module
- Must use NumTimeSample_PANGEA module
- Must use PostValidation_Dummy module
- Must use SeedSelection_PANGEA module
- Must use SeedSequence_PANGEA module
- Must use SequenceEvolution_PANGEA module
- Must use SourceSample_PANGEA module
- Must use TimeSample_PANGEA module
- Must use TransmissionNodeSample_PANGEA module
- Must use TransmissionTimeSample_PANGEA module
- Must use TreeUnit_Same module
- Config Parameters
-
Rscript_path
: The path to yourRscript
executable (or simply"Rscript"
if it is in yourPATH
variable) - All
pangea_
parameters, which correspond to PANGEA.HIV.sim parameters (see entry in FAVITES_ModuleList.json for complete list, and see PANGEA.HIV.sim help for details)- Use
""
for default
- Use
-
- Implements the ContactNetworkGenerator using the Random Partition Graph
- The contact network that was generated is written to a file named
contact_network.txt.gz
in the user-specified output directory - Requirements:
- Config Parameters:
-
rpg_sizes
: Sizes of groups (list
ofint
) -
rpg_p_in
: Probability of edges within groups -
rpg_p_out
: Probability of edges between groups -
d_or_u
: "d" if you want directed edges, or "u" if you want undirected edges
-
- Implements the ContactNetworkGenerator using the k-Regular Graph model
- The resulting graphs are undirected
- The contact network that was generated is written to a file named
contact_network.txt.gz
in the user-specified output directory - Requirements:
- Config Parameters:
-
num_cn_nodes
: Desired number of nodes in the contact network (n) -
cn_degree
: The desired degree of each node in the contact network (k)
-
- Implements the ContactNetworkGenerator using the Watts-Strogatz (WS) model
- The algorithm behind the WS model is as follows: a. Create a ring over n nodes b. Each node in the ring is connected with its k nearest neighbors (k-1 neighbors if k is odd) c. Shortcuts are created by replacing some edges as follows: * For each edge (u,v) in the underlying "n-ring with k nearest neighbors": * With probability p, replace it with a new edge (u,w) with a uniformly random choice of existing node w
- The resulting graphs are undirected
- The contact network that was generated is written to a file named
contact_network.txt.gz
in the user-specified output directory - Requirements:
- Config Parameters:
-
num_cn_nodes
: Desired number of nodes in the contact network (n) -
ws_k
: Each node is connected to k nearest neighbors in ring topology -
ws_prob
: The probability of rewiring each edge (p)
-
- Implements the ContactNetworkGenerator using the Watts-Strogatz model, but guaranteed that the resulting graph is connected
- The algorithm behind the WS model is as follows:
- Create a ring over n nodes
- Each node in the ring is connected with its k nearest neighbors (k-1 neighbors if k is odd)
- Shortcuts are created by replacing some edges as follows:
- For each edge (u,v) in the underlying "n-ring with k nearest neighbors":
- With probability p, add a new edge (u,w) with a uniformly random choice of existing node w
- For each edge (u,v) in the underlying "n-ring with k nearest neighbors":
- The entire process is repeated until a connected graph results
- The resulting graphs are undirected
- The algorithm behind the WS model is as follows:
- The contact network that was generated is written to a file named
contact_network.txt.gz
in the user-specified output directory - Requirements:
- Config Parameters:
-
num_cn_nodes
: Desired number of nodes in the contact network (n) -
wsc_k
: Each node is connected to k nearest neighbors in ring topology -
wsc_prob
: The probability of rewiring each edge (p) -
wsc_tries
: The number of tries to generate the graph
-
Niema Moshiri & Siavash Mirarab 2016