Hi all:
I am trying to save run data every 500 generations for the script below. Currently, the data I want prints to the window. I want the same data to be printed to a txt or csv file.
I know about LogFile, but can't get that to work. Can someone help me with this?
Reproducible example below:
initialize()
{
initializeSLiMOptions(mutationRuns=1);
setSeed(737);
defineConstant("Ne", 10000);
defineConstant("Mu", 1e-8);
defineConstant("genomeSize", 1e6);
defineConstant("N_generations", 1000);
initializeMutationRate(Mu);
initializeMutationType("m1", 1.0, "f", 0.0); //neutral mutation
initializeMutationType("m2", 1.0, "f", 0.005); //beneficial mutation
initializeMutationType("m3", 1.0, "g", -0.03, 0.2); //deleterious mutation
m1.color = "yellow";
m2.color = "green";
m3.color = "red";
m1.colorSubstitution = "grey";
m2.colorSubstitution = "green";
m3.colorSubstitution = "red";
initializeGenomicElementType("g1", c(m1), c(1)); //neutral mutations
initializeGenomicElementType("g2", c(m1,m3), c(0.95,0.05)); // purifying selection
initializeGenomicElementType("g3", c(m1,m2), c(0.5,0.5)); // positive selection
initializeGenomicElementType("g4", c(m1,m3), c(0.5,0.5)); // non-essential genes
g1.color = "yellow";
g2.color = "blue";
g3.color = "green";
g4.color = "red";
for (index in 0:9)
initializeGenomicElement(g1, index*1000, index*1000 + 499);
for (index in 10:19)
initializeGenomicElement(g2, index*1000, index*1000 + 499);
for (index in 20:29)
initializeGenomicElement(g3, index*1000, index*1000 + 499);
for (index in 30:39)
initializeGenomicElement(g4, index*1000, index*1000 + 499);
initializeRecombinationRate(0); // In SLiM recombination is between sister chromatids
}
// At the first generation:
// - create a subpopulation (or many)
1 early ()
{
sim.chromosome.colorSubstitution = ""; //keeps the color I defined for mutation events above in the initialize callback.
sim.addSubpop("p1", asInteger(Ne));
p1.setCloningRate(1.0); // Essential for bacteria.
sim.rescheduleScriptBlock(s1, start=N_generations, end=N_generations);
}
fitness(m3)
{
// convert fecundity-based selection to survival-based selection
if (runif(1) < relFitness)
return 1.0;
else
return 0.0;
}
//Remove mutations from second chromosome
modifyChild()
{
if (size(childGenome2.mutations))
childGenome2.removeMutations();
return T;
}
// At each generation:
// - Remove fixed mutations
late()
{
// Remove fixed mutation
// (SLiM does it automatically for diploid,
// but for haploid, mutations are fixed at 0.5)
//This must be done for each mutation class (m1-m3 in this model).
muts_m1 = sim.mutationsOfType(m1);
freqs = sim.mutationFrequencies(NULL, muts_m1);
fixed_muts_m1 = muts_m1[freqs == 0.5];
if (size(fixed_muts_m1) > 0)
sim.subpopulations.genomes.removeMutations(fixed_muts_m1, T);
muts_m2 = sim.mutationsOfType(m2);
freqs = sim.mutationFrequencies(NULL, muts_m2);
fixed_muts_m2 = muts_m2[freqs == 0.5];
if (size(fixed_muts_m2) > 0)
sim.subpopulations.genomes.removeMutations(fixed_muts_m2, T);
muts_m3 = sim.mutationsOfType(m3);
freqs = sim.mutationFrequencies(NULL, muts_m3);
fixed_muts_m3 = muts_m3[freqs == 0.5];
if (size(fixed_muts_m3) > 0)
sim.subpopulations.genomes.removeMutations(fixed_muts_m3, F); //pg 254
}
// Create custom output of segregating sites and those being fixed in the population.
// I would also like to know what type of mutation it is.
// pg 463
//Create output showing mutations segregating and fixing in the population at 500 generation intervals. Code works, but prints to GUI.
//TODO: figure out how to print to a file.
1:2000 late ()
{
if (sim.generation % 500 == 0)
{
sim.outputMutations(sim.mutationsOfType(m1));
sim.outputMutations(sim.mutationsOfType(m2));
sim.outputMutations(sim.mutationsOfType(m3));
sim.outputFixedMutations();
}
}
// End simulation
s1 1000 late ()
{
}
--
SLiM forward genetic simulation: http://messerlab.org/slim/
---
You received this message because you are subscribed to the Google Groups "slim-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to slim-discuss...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/slim-discuss/9202c1d2-681b-4adc-9cb7-79f7ebc1049an%40googlegroups.com.