Skip to content

Commit

Permalink
fix #333: record tag/tagF values in .trees (fixed as doc bug)
Browse files Browse the repository at this point in the history
  • Loading branch information
bhaller committed Jul 26, 2023
1 parent 16d4334 commit 7e9194d
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ initialize() {
1000 late() {
target = sample(p1.genomes, 1);
target.addNewDrawnMutation(m3, 10000);
sim.outputFull(tempdir() + "slim_" + simID + ".txt");
defineConstant("PATH", tempdir() + "slim_" + simID + ".trees");
sim.outputFull(PATH);
}
1000:100000 late() {
if (sim.countOfMutationsOfType(m3) == 0) {
Expand All @@ -25,9 +26,7 @@ initialize() {
sim.simulationFinished();
} else {
cat(simID + ": LOST - RESTARTING\n");

sim.readFromPopulationFile(tempdir() + "slim_" + simID + ".txt");
setSeed(rdunif(1, 0, asInteger(2^62) - 1));
sim.readFromPopulationFile(PATH);
}
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
// Keywords: tree-sequence recording, tree sequence recording, conditional sweep

initialize() {
initializeSLiMOptions(keepPedigrees=T);
initializeTreeSeq();
initializeMutationRate(1e-8);
initializeMutationType("m2", 0.5, "g", -0.01, 1.0); // deleterious
Expand All @@ -14,9 +15,16 @@ initialize() {
sim.addSubpop("p1", 500);
}
1000 late() {
// assign tag values to be preserved
inds = sortBy(sim.subpopulations.individuals, "pedigreeID");
tags = rdunif(size(inds), 0, 100000);
inds.tag = tags;
metadataDict = Dictionary("tags", tags);

target = sample(p1.genomes, 1);
target.addNewDrawnMutation(m3, 10000);
sim.treeSeqOutput(tempdir() + "slim_" + simID + ".trees");
defineConstant("PATH", tempdir() + "slim_" + simID + ".trees");
sim.treeSeqOutput(PATH, metadata=metadataDict);
}
1000:100000 late() {
if (sim.countOfMutationsOfType(m3) == 0) {
Expand All @@ -26,9 +34,11 @@ initialize() {
sim.simulationFinished();
} else {
cat(simID + ": LOST - RESTARTING\n");

sim.readFromPopulationFile(tempdir() + "slim_" + simID + ".trees");
setSeed(rdunif(1, 0, asInteger(2^62) - 1));
sim.readFromPopulationFile(PATH);
metadataDict = treeSeqMetadata(PATH);
tags = metadataDict.getValue("tags");
inds = sortBy(sim.subpopulations.individuals, "pedigreeID");
inds.tag = tags;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ initialize() {
1000 late() {
target = sample(p1.genomes, 1);
target.addNewDrawnMutation(m3, 10000);
sim.outputFull(tempdir() + "slim_" + simID + ".txt");
defineConstant("PATH", tempdir() + "slim_" + simID + ".trees");
sim.outputFull(PATH);
}
1000:100000 late() {
if (sim.countOfMutationsOfType(m3) == 0) {
Expand All @@ -25,9 +26,7 @@ initialize() {
sim.simulationFinished();
} else {
cat(simID + ": LOST - RESTARTING\n");

sim.readFromPopulationFile(tempdir() + "slim_" + simID + ".txt");
setSeed(rdunif(1, 0, asInteger(2^62) - 1));
sim.readFromPopulationFile(PATH);
}
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
// Keywords: tree-sequence recording, tree sequence recording, conditional sweep

initialize() {
initializeSLiMOptions(keepPedigrees=T);
initializeTreeSeq();
initializeMutationRate(1e-8);
initializeMutationType("m2", 0.5, "g", -0.01, 1.0); // deleterious
Expand All @@ -14,9 +15,16 @@ initialize() {
sim.addSubpop("p1", 500);
}
1000 late() {
// assign tag values to be preserved
inds = sortBy(sim.subpopulations.individuals, "pedigreeID");
tags = rdunif(size(inds), 0, 100000);
inds.tag = tags;
metadataDict = Dictionary("tags", tags);

target = sample(p1.genomes, 1);
target.addNewDrawnMutation(m3, 10000);
sim.treeSeqOutput(tempdir() + "slim_" + simID + ".trees");
defineConstant("PATH", tempdir() + "slim_" + simID + ".trees");
sim.treeSeqOutput(PATH, metadata=metadataDict);
}
1000:100000 late() {
if (sim.countOfMutationsOfType(m3) == 0) {
Expand All @@ -26,9 +34,11 @@ initialize() {
sim.simulationFinished();
} else {
cat(simID + ": LOST - RESTARTING\n");

sim.readFromPopulationFile(tempdir() + "slim_" + simID + ".trees");
setSeed(rdunif(1, 0, asInteger(2^62) - 1));
sim.readFromPopulationFile(PATH);
metadataDict = treeSeqMetadata(PATH);
tags = metadataDict.getValue("tags");
inds = sortBy(sim.subpopulations.individuals, "pedigreeID");
inds.tag = tags;
}
}
}
1 change: 1 addition & 0 deletions VERSIONS
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,7 @@ development head (in the master branch):
bug fix in pyslim to announce: https://github.com/tskit-dev/pyslim/issues/307
feature request: #378, add font bigger (command +) and font smaller (command -) menu items and shortcuts, so the user doesn't have to open the prefs window; note that with command = the shift key is needed
this meant removal of the shortcuts for prettyprint script and reformat script, since they conflicted (well, prettyprint conflicted); probably nobody cares
revised recipe 17.3 to show how to persist tag values from a simulation in the tree-sequence metadata


version 4.0.1 (Eidos version 3.0.1):
Expand Down

0 comments on commit 7e9194d

Please sign in to comment.