You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
BREAKING CHANGE: load_genotypefile and load_data_files now take an extra final parameter of type FileFormatSpec. This parameters allows users to specify some or all of the layout and formatting details of an input genotype file. During the loading process, the sections tasked with detecting the already-specified features of the layout are then skipped.
BREAKING CHANGE: Introduced new type aliases: GSC_ID_T, GSC_GLOBALX_T, GSC_LOCALX_T, GSC_GENOLEN_T. Some function type signatures may have changed, as they are now using these type aliases, and the type aliases have consistent definitions across all functions in the library.
make_targeted_crosses will now skip invalid pairings, where one or more parents does not exist, instead of halting execution at the first invalid pairing. If any pairings were skipped, it will print a debug message listing the number of invalid pairings detected.
Improved Makefile. It now supports both debug and release builds.
Bug Fixes
Log messages printed during genotype file loading now accurately reflect the number of markers per genotype that were successfully loaded. Previously, it incorrectly printed out the total number of markers in the stored genetic map, while claiming it was the number of markers in the genotype file that had been accurately matched to the map.
Input genotype files now have fclose called on them after being parsed.
Fixed memory leaks in load_genotypefile and delete_simdata introduced in v0.2.5.
Fixed segmentation fault when calling make_clones with inherit_names = GSC_TRUE on genotypes with no names.
More edge cases covered in condense_allele_matrix, to patch a rare memory leak.
Fixed memory access error in make_random_crosses_between when the function was called with breeding caps on both groups.
get_index_of_name no longer tries to compare its target name to the names of nameless genotypes. Also, it now prints a warning and returns an invalid value when it cannot find the target name, instead of calling exit().
Group RandomAccessIterators no longer request memory for their cache structures before checking if there are actually that many members in the group. This fixes a bug where passing a large invalid n to next_get_nth would cause the iterator to hang, trying to request incredibly large blocks of memory.
Improvements
Polish and improve the Templates page of the documentation.
Improvements to the genotype matrix layout detection processes, to cover more edge cases and use a more comprehensible decision tree.
Improvements to input file loading tests and allele count matrix calculation tests.
Helper function shuffle_up_to is now size-agnostic and can shuffle arrays of any type, instead of only integer arrays.
BREAKING CHANGE: The file output interface (functions with prefix save_) has undergone a simplification and rewrite. There is now one function per data type, which offers whole-simulation vs single-group output and output file format choices as parameters, much like the R version of genomicSimulation (as opposed to separate function whether the output was for a single group or all genotypes, and also different functions per ouput formats). All user-facing functions now take a file name instead of a file pointer. See below for details.
BREAKING CHANGE: save_markerblocks now offers two file output formats, but neither exactly matches the old file format. To create a marker blocks file with the old format, call save_markerblocks without a map, then run sed 's/^/0\t0\tb0\tb\t/' f.txt | sed '1i\Chrom\tPos\tName\tClass\tMarkers'.
BREAKING CHANGE: save_names_header, save_allele_matrix, save_transposed_allele_matrix, save_group_genotypes, and save_transposed_group_genotypes have been replaced with the single function save_genotypes.
BREAKING CHANGE: save_group_count_matrix and save_count_matrix have been replaced with the single function save_allele_counts. This new combined function also allows for printing a "transposed" count matrix (where genetic markers are rows, rather than columns), as was possible for a genotype matrix prior to this update.
BREAKING CHANGE: save_one_step_pedigree, save_group_one_step_pedigree, save_full_pedigree, and save_group_full_pedigree have been replaced with the single function save_pedigrees.
BREAKING CHANGE: save_bvs, save_group_bvs, and save_manual_bvs have been combined into the single function (with updated function signature) save_bvs.
BREAKING CHANGE: Several features among the calculation functions interface (functions with prefix calculate_) have undergone a restructure and rewrite.
BREAKING CHANGE: calculate_group_count_matrix, calculate_count_matrix, and calculate_full_count_matrix have been combined into the single function (with updated function signature) calculate_allele_counts.
BREAKING CHANGE: calculate_bvs and calculate_group_bvs have been combined into the single function (with updated function signature) calculate_bvs.
BREAKING CHANGE: Now using _Bool type for true/false values. The GSC_LOGICVAL type is used only for variables that need three values: true/false/invalid. GSC_UNINIT has been renamed to GSC_NA.
BREAKING CHANGE: Removed function make_n_crosses_from_top_m_percent for disobeying standard genomicSimulation rules of division of functionality. A section has been added to the Templates section of the documentation with a drop-in replacement of this function.
More informative error message when calling split_by_bv on a nonexistent group.