Skip to content

genomicSimulationC v0.2.4

Choose a tag to compare

@vllrs vllrs released this 06 Feb 01:26
· 55 commits to main since this release

New Features

  • Add ability to load multiple effect files. Multiple sets of marker effects can now be available at one time. Loading an effect file will return an EffectID that represents that particular set of marker effects. Sets of marker effects can be removed from memory using delete_eff_set.

Improvements

  • BREAKING CHANGE: The four different types of identifiers have been tidied into four struct types (GroupNum, PedigreeID, LabelID and EffectID), and all functions have been updated to use these struct types. Each of these types also has a named invalid value that may be returned if a function fails: NO_GROUP, NO_PEDIGREE, NOT_A_LABEL, and NOT_AN_EFFECT_SET.
  • BREAKING CHANGE: Because sets of marker effects now have identifiers, load_all_simdata now returns a struct GroupAndEffectSet (which is a wrapper around a GroupNum and EffectID pair), instead of just a group number.
  • Added test cases for functions that cover saving data to output files.
  • The save-as-you-go setting for saving breeding values in GenOptions now takes the value of the id from an EffectID, if you wish to save the breeding values from that set of marker effects, or 0/NOT_AN_EFFECT_SET, to not use the save-as-you-go functionality.

Bug Fixes

  • Standardised file-output functions so that genotype names are consistently substituted with their PedigreeIDs, if the genotype does not have a name.
  • Stopped save-as-you-go genotype saving repeating the header row (of genetic marker names) every 1000 rows. The header row now only appears in the first row.
  • Semicolon separators appear correctly in the output of save_marker_blocks
  • Pedigrees are printed consistently between whole-simulation and group-specific variants of the same function. Parents are no longer skipped in favour of starting with grandparents in group-specific functions.