-
Notifications
You must be signed in to change notification settings - Fork 4
General Workflow
Niema Moshiri edited this page Jan 13, 2017
·
38 revisions
- The Driver module calls the ContactNetworkGenerator module to create an edge list that represents the contact network (either read one from file or randomly generate one)
- The Driver module creates an instance of the ContactNetwork module, using the edge list returned by the ContactNetworkGenerator module
- The Driver module then orchestrates the simulation process:
- The Driver module initializes the Transmission Network:
- The Driver calls the SeedSelection module to choose which nodes in the ContactNetwork object to be initially infected
- Then, for each of these "seed" nodes, the Driver module calls the SeedSequence module to generate initial infection sequence(s) and infection time(s) for each seed node
- The Driver module then repeatedly creates transmission events until the ending criteria in the EndCriteria module are reached:
- The Driver module calls the TransmissionNodeSample module to choose two nodes to be involved in a transmission event
- The Driver module calls the TransmissionTimeSample module to choose the time of the transmission event
- The Driver module calls the NodeEvolution and the SequenceEvolution modules on the source node to ensure the source node is evolved until the transmission time
- The Driver module calls the SourceSample module on the source node, passing in the time of transmission, and the SourceSample module will choose which edge(s) of the source node's viral phylogenetic tree(s) (and thus which viral sequence(s)) to transmit
- Once the transmission iterations have completed, the Driver module outputs the full Transmission Network, the full phylogenetic tree(s), the full population size profile, and the full sequence data (i.e., the full simulation output)
- The Driver module initializes the Transmission Network:
- The PostValidation module then takes in the full simulation output provided by the Driver module and computes a validity score (i.e., how well the output matches what we would expect).
- The Driver module then takes in the full error-free simulation output and introduces real data artifacts:
- The Driver module first calls the NodeSample module, which subsamples the nodes in the Transmission Network (to simulate imperfect epidemiological efforts)
- The Driver module then calls the Sequencing module (passing in the output of the NodeSample module), which simulates sequencing imperfections (sequence subsampling per individual, sequencing error, post-processing, consensus, ambiguity, etc.)
Niema Moshiri & Siavash Mirarab 2016