C API 0.99.15
Breaking changes
-
The
tablesargument totsk_treeseq_initis no longerconst, to allow for future no-copy tree sequence creation.
(@benjeffery, #1718, #1719) -
Additional consistency checks for mutation tables are now run by
tsk_table_collection_check_integrity
even whenTSK_CHECK_MUTATION_ORDERINGis not passed in. (@petrelharp, #1713, #1722) -
num_tracked_samplesandnum_samplesintsk_tree_tare now typed astsk_size_t
(@benjeffery, #1723, #1727) -
The previously deprecated option
TSK_SAMPLE_COUNTShas been removed. (@benjeffery, #1744, #1761). -
Individuals are no longer guaranteed or required to be topologically sorted in a tree sequence.
tsk_table_collection_sortno longer sorts individuals.
(@benjeffery, #1774, #1789) -
The
tsk_tree_t.left_rootmember has been removed. Client code can be updated
most easily by using the equivalenttsk_tree_get_left_rootfunction. However,
it may be worth considering updating code to use either the standard traversal
functions (which automatically iterate over roots) or to use thevirtual_root
member (which may lead to more concise code). (@jeromekelleher, #1796,
#1862) -
Rename
tsk_tree_t.leftandtsk_tree_t.rightmembers to
tsk_tree_t.interval.leftandtsk_tree_t.interval.rightrespectively.
(@jeromekelleher, #1686, #1913) -
kastoreis now vendored into this repo instead of being a git submodule. Developers need to run
git submodule update. (@jeromekelleher, #1687, #1973) -
Treearrays such asleft_sib,right_childetc. now have an additional
"virtual root" node at the end. (@jeromekelleher, #1691, #1704) -
num_samples,num_tracked_samples,markedandmarkhave been removed from
tsk_tree_t. (@jeromekelleher, #1936)
Features
-
Add
tsk_table_collection_individual_topological_sortto sort the individuals as this is no longer done by the
default sort. (@benjeffery, #1774, #1789) -
The default behaviour for table size growth is now to double the current size of the table,
up to a threshold. To keep the previous behaviour, use (e.g.)
tsk_edge_table_set_max_rows_increment(tables->edges, 1024), which results in adding
space for 1024 additional rows each time we run out of space in the edge table.
(@benjeffery, #5, #1683) -
tsk_table_collection_check_integritynow has aTSK_CHECK_MIGRATION_ORDERINGflag. (@petrelharp, #1722) -
The default behaviour for ragged column growth is now to double the current size of the column,
up to a threshold. To keep the previous behaviour, use (e.g.)
tsk_node_table_set_max_metadata_length_increment(tables->nodes, 1024), which results in adding
space for 1024 additional entries each time we run out of space in the ragged column.
(@benjeffery, #1703, #1709) -
Support for compiling the C library on Windows using msys2 (@jeromekelleher,
#1742). -
Add
time_unitstotsk_table_collection_tto describe the units of the time dimension of the
tree sequence. This is then used to geerate an error iftime_unitsisuncalibratedwhen
using the branch lengths in statistics. (@benjeffery, #1644, #1760) -
Add the
TSK_LOAD_SKIP_TABLESoption to load just the top-level information from a
file. Also add theTSK_CMP_IGNORE_TABLESoption to compare only the top-level
information in two table collections. (@clwgg, #1882, #1854). -
Add reference sequence.
(@jeromekelleher, @benjeffery, #146, #1911, #1944, #1911) -
Add the
TSK_LOAD_SKIP_REFERENCE_SEQUENCEoption to load a table collection
without the reference sequence. Also add the TSK_CMP_IGNORE_REFERENCE_SEQUENCE
option to compare two table collections without comparing their reference
sequence. (@clwgg, #2019, #1971). -
Add a "virtual root" to
Treearrays such asleft_sib,right_childetc.
The virtual root is appended to each array, has all real roots as its children,
but is not the parent of any node. Simplifies traversal algorithms.
(@jeromekelleher, #1691, #1704) -
Add
num_edgestotsk_tree_tto count the edges that define the topology of
the tree. (@jeromekelleher, #1704) -
Add the
tsk_tree_get_size_boundfunction which returns an upper bound on the number of nodes reachable from
the roots of a tree. Useful for tree stack allocations (@jeromekelleher, #1704).