-
Notifications
You must be signed in to change notification settings - Fork 4
Module: ContactNetworkGenerator
Niema Moshiri edited this page Jun 7, 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.
-
ContactNetworkGenerator_BarabasiAlbert
- 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
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 Barabási-Albert (BA) model
-
ContactNetworkGenerator_Barbell
- 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
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 Barbell Graph
-
ContactNetworkGenerator_Caveman
- 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
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 Caveman Graph
-
ContactNetworkGenerator_CavemanConnected
- 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
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
-
ContactNetworkGenerator_CavemanRelaxed
- 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
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 using the Relaxed Caveman Graph
-
ContactNetworkGenerator_Communities
- 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
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 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
-
ContactNetworkGenerator_Complete
- 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
in the user-specified output directory - Requirements:
- Config Parameters:
-
num_cn_nodes
: Desired number of nodes in the contact network
-
- Implements the ContactNetworkGenerator using the Complete Graph
-
ContactNetworkGenerator_ErdosRenyi
- 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
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 using the Erdős–Rényi (ER) model
-
ContactNetworkGenerator_File
- 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.
-
-
ContactNetworkGenerator_PANGEA
- 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
-
-
ContactNetworkGenerator_RandomPartitionGraph
- Implements the ContactNetworkGenerator using the Random Partition Graph
- The contact network that was generated is written to a file named
contact_network.txt
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
-
-
ContactNetworkGenerator_WattsStrogatz
- Implements the ContactNetworkGenerator using the Watts-Strogatz (WS) 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, replace it with 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
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 (WS) model
Niema Moshiri & Siavash Mirarab 2016