jorussell-idm / emod-parasite-genetics Goto Github PK
View Code? Open in Web Editor NEWA collection of development and example sims for commissioning DTK sims with explicit parasite genetics
A collection of development and example sims for commissioning DTK sims with explicit parasite genetics
Follow up with Svetlana about plausible parameter ranges an defaults to use in the Regression test
Starting with knowledge that sporozoite burden in salivary glands is well measure (10^4 sporozoites).
We want to know how long these sporozoites remain viable in the vector.
An alternative to note for possible future behavior if it turns out that negative binomial is too restrictive on diversity bottleneck is:
{ genome A: 0.25 sporozoites,
genome B: 0.03 sporozoites,
genome C: 0.02 sporozoites }
Where floats denote infection probabilities
Aim for comparable Garki scenario using Co-transmission model and FPG model with comparable analysis of genetic feature
Use as template:
https://github.com/InstituteforDiseaseModeling/DtkTrunk/blob/Malaria-Ongoing/Regression/Malaria/98_Malaria_FPG_AlleleFrequencies/dtk_post_process.py
with additional query statements from:
https://github.com/InstituteforDiseaseModeling/DtkTrunk/blob/Malaria-Ongoing/Regression/Malaria/95_Malaria_FPG_TwoMarkers_Multicore_MalariaSqlReport/dtk_post_process.py
Current Version: 1.1a-DanB here:
C:\Users\jorussell\Dropbox (IDM)\Malaria Team Folder\projects\parasite_genetics\DTK\Design
Enabling InitialPrevalence by constructing genomes from distributions of allele frequencies as specified in the config
Sweep PfEMP1_Neighborhood_Size to show sensitivity of prevalence to antigen space
Refer to Karen Day's work on varcodes for how similar two varcodes should be with similar genotypes
Testing with 100 random seeds for various configurations of immune model as in #12:
Test (all_random): c4c4ee27-1555-eb11-a2dd-c4346bcb7271
Test (fixed_msp): 2b6f2fdb-1455-eb11-a2dd-c4346bcb7271
Test (fixed_neighborhood): 72b43bc9-1455-eb11-a2dd-c4346bcb7271
Base (): a7a96339-1755-eb11-a2dd-c4346bcb7271
Sweep EIR (10 step, scaling LHM e-2 to e0).
Try two population sizes (x_Base: 0.5 and 1.0)
Save the db files from comps onto Dropbox
Refer to SQL analyzer for plots
Intuition, expectations given subsequent calibration
A test of the epi impact of changes to DTK to allow for 1-to-1 biting within transmission model.
Goal: run a Garki scenario using new Eradication_1on1.exe using Malaria Model: "MALARIA_MECHANISTIC_MODEL_WITH_PARASITE_GENETICS"
Return: Plot of inset chart channels
Fix reciprocal mortality rate in Garki_single_demographics.json
https://wiki.idmod.org/display/MAL/Drawing+recombination+points+in+GenEpi+and+FPG
FPG:
Obligate Chiasma meiosis model (as developed in Wong et al 2018 https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1005923#sec011)
for each chromosome of length L in the genome, choose the obligate chiasma necessary for physical alignment during meiosis from a uniform random draw across the interval L [chromosome start]___x[chromosome end, L]
from position x, moving left towards chromosome start, draw the next crossover point from a gamma distribution with shape and scale parameters of k = 2, and theta = 0.38 respectively, Wes calibrated these parameters to match the observed distribution of intercrossover distances seen in laboratory crosses from Miles et al https://www.biorxiv.org/content/10.1101/024182v2.full.pdf). This draw returns a value with units of centimorgans. In order to convert this to base pair distances (which are used to define chromosome start and end in FPG) we use the following:
Pf has an average of ~15 kB / cM (kilo base-pairs per centimorgan). This can be interpreted as the genomic tract length across which you would expect 1 crossover every 100 generations, or 0.01 crossovers every generation. Note: cM can take on values of greater than 100 as you might start to expect more than 1 crossover in that interval per generation!
The mean of the gamma distribution is defined as ktheta so with this parameterization, we will draw from a distribution with mean 0.76.
Say we draw the mean value 0.76, which has units of cM
(0.76 cM) 15 kB/cM = 11.4 kB which represents the distance we expect to see a crossover every 100 generations. So in order to ensure the crossover, we multiply by 100.
11.4100 kB is intercrossover distance, the step size to the next chiasma/crossover event.
Importantly since chromatid interference is represented in the shape of the gamma distribution, chiasma resolution resolves in crossover (the exchange of genetic information) 100% of the time, for both obligate and drawn chiasma locations.
We draw until we reach chromosome start, then start again at position x and move right towards chromosome end drawing again from the gamma distribution until we have reached step sizes in excess of length L.
For each crossover point location that results in crossover, we draw the participating chromatids randomly from the pairs of inter-homologous chromatid pairs (i.e. 1 each from the bivalant male and female sister chromatids).
GenEpi:
Beginning at the start of each chromosome (represented as an interval in meiosis.py) draw step sizes for the subsequent crossover points using the expression math.ceil(np.random.exponential(self.bp_per_morgan / 2.0))) where the divisor of 2 represents the increase in expected rate of crossover given the interaction with two sister chromatids, and where the argument self.bp_per_morgan is defined currently as the size of the smallest chromosome represented by GenEpi (1000 bp) so that the expectation is that there will be one crossover per chromosome.
Importantly for any future comparison/integration activity these two models differ in:
the assertion of an obligate chiasma event
the choice in interarrival distance distribution (gamma vs. exponential)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.