Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

multichromosome revisions #470

Open
wants to merge 45 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
8a31c4c
terminology shift from genome to haplosome, pass 1
bhaller Sep 10, 2024
bd4038a
add terminology autofixes, revise recipes and cal...() functions
bhaller Sep 12, 2024
fdf6f04
shift to a vector of chromosomes, of length 1
bhaller Sep 14, 2024
38c04d6
fix build errors
bhaller Sep 14, 2024
8aefeff
fix Windows build error due to GNU stuff
bhaller Sep 14, 2024
5360aed
fix QtSLiM build error
bhaller Sep 14, 2024
eaab36f
add chromosome lookup methods on Species
bhaller Sep 14, 2024
dc5db82
add a chromosome property to Mutation
bhaller Sep 14, 2024
306f034
multichromosome fix 1
bhaller Sep 14, 2024
e3db9cc
multichromosome fix 2
bhaller Sep 15, 2024
4bbaf4e
move mutation run experiments to Chromosome
bhaller Sep 15, 2024
915ad57
mutrun experiment cleanup
bhaller Sep 15, 2024
cb151bb
move CollectMutationProfileInfo() back to Species
bhaller Sep 15, 2024
2c1be0d
reorder Xcode project files
bhaller Sep 15, 2024
bd373a3
implement initializeChromosome()
bhaller Sep 20, 2024
b33a104
fix CI build problems
bhaller Sep 20, 2024
bd1d9e0
remove support for text (ASCII) tskit I/O
bhaller Sep 20, 2024
981d4e8
enforce a declared chromosome length
bhaller Sep 20, 2024
666955b
multichromosome display in SLiMgui
bhaller Sep 23, 2024
100a301
add QtSLiMClearLayout
bhaller Sep 27, 2024
d87c82c
add chromosome display button art
bhaller Sep 27, 2024
79217ef
multiple chromosome display in QtSLiM
bhaller Sep 27, 2024
ada8d07
improve error messages
bhaller Oct 3, 2024
2077328
clean up child_generation_valid_ usage
bhaller Oct 6, 2024
eb4dfd0
remove cached_parent_haplosomes_value_
bhaller Oct 6, 2024
720ea99
get rid of subpop haplosome vectors
bhaller Oct 6, 2024
249ab04
shift to a vector of haplosomes
bhaller Oct 7, 2024
b517415
architectural shift for nonWF
bhaller Oct 11, 2024
361e2db
step one, no chromosome for no genetics
bhaller Oct 11, 2024
724bfdc
architectural shift for WF
bhaller Oct 16, 2024
68a0166
more generation templating
bhaller Oct 17, 2024
e409225
template HaplosomeCrossed()/Cloned()
bhaller Oct 18, 2024
d79bf73
shift to per-chromosome haplosome management
bhaller Oct 19, 2024
36a595f
architectural shift for frequency tallying
bhaller Oct 22, 2024
1c6584e
fix last-minute typo, whoops
bhaller Oct 22, 2024
9dc1268
add chromosome property to Substitution
bhaller Oct 22, 2024
9c99b38
minor fixen
bhaller Oct 22, 2024
2eace67
fix up properties haplosomesFromParent1/2
bhaller Oct 23, 2024
4923766
fix up property uniqueMutations
bhaller Oct 24, 2024
7654ea0
fix up drawBreakpoints()
bhaller Oct 24, 2024
d68cb60
fix up addSubpopSplit()
bhaller Oct 24, 2024
fe6bcd0
architectural shift for fitness evaluation
bhaller Oct 25, 2024
2097485
add haplosomesFromParent[1/2]NonNull
bhaller Oct 26, 2024
979bd05
add chromosomesOfType method
bhaller Oct 26, 2024
eda668b
add method haplosomesForChromosomes
bhaller Oct 26, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ if(WIN32)
set(CMAKE_CXX_STANDARD_LIBRARIES "-static-libgcc -static-libstdc++ -lwsock32 -lws2_32 ${CMAKE_CXX_STANDARD_LIBRARIES}")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-Bstatic,--whole-archive -lwinpthread -Wl,--no-whole-archive")
set(GNULIB_NAMESPACE_SOURCES "${PROJECT_SOURCE_DIR}/core/chromosome.cpp"
"${PROJECT_SOURCE_DIR}/core/genome.cpp"
"${PROJECT_SOURCE_DIR}/core/haplosome.cpp"
"${PROJECT_SOURCE_DIR}/core/population.cpp"
"${PROJECT_SOURCE_DIR}/core/slim_globals.cpp"
"${PROJECT_SOURCE_DIR}/core/slim_sim_eidos.cpp"
Expand Down
7 changes: 2 additions & 5 deletions EidosScribe/EidosHelpFunctions.rtf
Original file line number Diff line number Diff line change
Expand Up @@ -5255,7 +5255,6 @@ If
\f3\b0 In SLiM 3.5 and later, use
\f1\fs18 colors(n, "cm")
\f3\fs20 instead.\
\pard\pardeftab397\li547\ri720\sb60\sa60\partightenfactor0
\cf5 Generate colors in a \'93cyan-magenta\'94 color palette.\
\pard\pardeftab397\li720\fi-446\ri720\sb180\sa60\partightenfactor0

Expand Down Expand Up @@ -5369,7 +5368,6 @@ This function can also be called with a non-singleton vector of color strings in
\f3\b0 In SLiM 3.5 and later, use
\f1\fs18 colors(n, "heat")
\f3\fs20 instead.\
\pard\pardeftab397\li547\ri720\sb60\sa60\partightenfactor0
\cf5 Generate colors in a \'93heat map\'94 color palette.\
\pard\pardeftab397\li720\fi-446\ri720\sb180\sa60\partightenfactor0

Expand Down Expand Up @@ -5492,7 +5490,6 @@ This function can also be called with a matrix of RGB values, with three columns
\f3\b0 In SLiM 3.5 and later, use
\f1\fs18 colors(n, "terrain")
\f3\fs20 instead.\
\pard\pardeftab397\li547\ri720\sb60\sa60\partightenfactor0
\cf5 Generate colors in a \'93terrain\'94 color palette.\
\pard\pardeftab397\ri720\sb360\sa60\partightenfactor0

Expand Down Expand Up @@ -6146,7 +6143,7 @@ The task keys recognized, and the tasks they govern, are:\
\f7\i N
\f3\i0 points, 3D case
\f1\fs18 \uc0\u8232 "SPATIAL_MAP_VALUE" spatialMapValue()\
"CONTAINS_MARKER_MUT" containsMarkerMutation(returnMutation = F)\uc0\u8232 "I_COUNT_OF_MUTS_OF_TYPE" countOfMutationsOfType() (Individual)\u8232 "G_COUNT_OF_MUTS_OF_TYPE" countOfMutationsOfType() (Genome)\u8232 "INDS_W_PEDIGREE_IDS" individualsWithPedigreeIDs()\u8232 "RELATEDNESS" relatedness()\u8232 "SAMPLE_INDIVIDUALS_1" sampleIndividuals()
"CONTAINS_MARKER_MUT" containsMarkerMutation(returnMutation = F)\uc0\u8232 "I_COUNT_OF_MUTS_OF_TYPE" countOfMutationsOfType() (Individual)\u8232 "H_COUNT_OF_MUTS_OF_TYPE" countOfMutationsOfType() (Haplosome)\u8232 "INDS_W_PEDIGREE_IDS" individualsWithPedigreeIDs()\u8232 "RELATEDNESS" relatedness()\u8232 "SAMPLE_INDIVIDUALS_1" sampleIndividuals()
\f3\fs20 simple case with replace=T
\f1\fs18 \uc0\u8232 "SAMPLE_INDIVIDUALS_2" sampleIndividuals()
\f3\fs20 base case with replace=T
Expand Down Expand Up @@ -6195,7 +6192,7 @@ The task keys recognized, and the tasks they govern, are:\
\f1\fs18 \uc0\u8232 "SIMPLIFY_SORT_POST"
\f3\fs20 cleanup after simplification sorting (internal)
\f1\fs18 \uc0\u8232 "PARENTS_CLEAR"
\f3\fs20 clearing parental genomes at tick end in WF models
\f3\fs20 clearing parental haplosomes at tick end in WF models
\f1\fs18 \uc0\u8232 "UNIQUE_MUTRUNS"
\f3\fs20 uniquing mutation runs (internal bookkeeping)
\f1\fs18 \uc0\u8232 "SURVIVAL"
Expand Down
8 changes: 4 additions & 4 deletions PARALLEL
Original file line number Diff line number Diff line change
Expand Up @@ -57,19 +57,19 @@ PARALLEL changes (now in the master branch, but disabled):
parallelize match(), tabulate(), sample (int/float/object, replace=T, weights=NULL), mean(l/i/f)
parallelize Individual -relatedness(), -countOfMutationsOfType(), -setSpatialPosition(); Species -individualsWithPedigreeIDs()
parallelize Subpopulation -pointInBounds(), -pointReflected(), -pointStopped(), pointPeriodic(), pointUniform()
parallelize Genome -containsMarkerMutation()
parallelize Haplosome -containsMarkerMutation()
change how RNG seeding works, for single-threaded and multi-threaded runs: use /dev/random to generate initial seeds, and for multi-threaded runs, use /dev/random for seeds for all threads beyond thread 0
parallelize Genome -countOfMutationsOfType(), Subpopulation -spatialMapValue() and -sampleIndividuals()
parallelize Haplosome -countOfMutationsOfType(), Subpopulation -spatialMapValue() and -sampleIndividuals()
add unit tests for various SLiM methods that have been parallelized
parallelize InteractionType nearestNeighbors(), nearestInteractingNeighbors(), drawByStrength() by adding a returnDict parameter that lets the user get a Dictionary as a result, with one entry per receiver
their "receiver" parameter is no longer required to be singleton (when returnDict == T), and their return value is now just "object" since it can be Individual or Dictionary
overhaul the internal MutationRun design to allow it to be used multithreaded - get rid of refcounting, switch to usage tallying
parallelize offspring generation in WF models, when no callbacks (mateChoice(), modifyChild(), recombination(), mutation()) are active; no tree-seq, no cloning
parallelize offspring generation in WF model: add support for cloning
parallelize tallying of mutation runs, clearing of parental genomes at the end of WF model ticks, and mutation run uniquing
parallelize tallying of mutation runs, clearing of parental haplosomes at the end of WF model ticks, and mutation run uniquing
add support for parallel reproduction when a non-default stacking policy is in use
add support for parallel reproduction with tree-sequence recording
add parallel reproduction in nonWF models, with no callbacks (recombination(), mutation()) active - modifyChild() callbacks are legal but cannot access child genomes since they are deferred
add parallel reproduction in nonWF models, with no callbacks (recombination(), mutation()) active - modifyChild() callbacks are legal but cannot access child haplosomes since they are deferred
this is achieved by passing defer=T to addCrossed(), addCloned(), addSelfed(), or addRecombinant()
thread-safety work - break in backward reproducibility for scripts that use a type 's' DFE, because the code path for that shifted
algorithm change for nearestNeighbors() and nearestNeighborsOfPoint(), when count is >1 and <N; the old algorithm was not thread-safe, and was inefficient; breaks backward reproducibility for the relevant case
Expand Down
Loading
Loading