Skip to content

Releases: tskit-dev/tskit

Python 0.3.7

09 Jul 11:49
f582dcc
Compare
Choose a tag to compare

Minor release

Features

Fixes

C API 0.99.13

09 Jul 11:48
f582dcc
Compare
Choose a tag to compare

Bugfix release

Fixes

Python 0.3.6

14 May 12:57
910e81d
Compare
Choose a tag to compare

Minor feature release

Notebook detailing the new features here: https://gist.github.com/benjeffery/aff619fd8da6799bccab81655c391965

Breaking changes

  • Mutation.position and Mutation.index which were deprecated in 0.2.2 (Sep '19) have
    been removed.

Features

  • Add direct, copy-free access to the arrays representing the quintuply-linked structure
    of Tree (e.g. left_child_array). Allows performant algorithms over the tree
    structure using, for example, numba
    (@jeromekelleher, #1299, #1320).

  • Add fancy indexing to tables. E.g. table[6:86] returns a new table with the
    specified rows. Supports slices, index arrays and boolean masks
    (@benjeffery, #1221, #1348, #1342).

  • Add Table.append method for adding rows from classes such as SiteTableRow and
    Site (@benjeffery, #1111, #1254).

  • SVG visualization of a tree sequence can be restricted to displaying between left
    and right genomic coordinates using the x_lim parameter. The default settings
    now mean that if the left or right flanks of a tree sequence are entirely empty,
    these regions will not be plotted in the SVG (@hyanwong, #1288).

  • SVG visualization of a single tree allows all mutations on an edge to be plotted
    via the all_edge_mutations param (@hyanwong,#1253, #1258).

  • Entity classes such as Mutation, Node are now python dataclasses
    (@benjeffery, #1261).

  • Metadata decoding for table row access is now lazy (@benjeffery, #1261).

  • Add html notebook representation for Tree and change Tree.__str__ from dict
    representation to info table. (@benjeffery, #1269, #1304).

  • Improve display of tables when printed, limiting lines set via
    tskit.set_print_options (@benjeffery,#1270, #1300).

  • Add Table.assert_equals and TableCollection.assert_equals which give an exact
    report of any differences. (@benjeffery,#1076, #1328)

Changes

  • In drawing methods max_tree_height and tree_height_scale have been deprecated
    in favour of max_time and time_scale
    (@benjeffery,#1262, #1331).

Fixes

C API 0.99.12

14 May 12:42
910e81d
Compare
Choose a tag to compare

Minor feature release

Breaking changes

  • Removed TSK_NO_BUILD_INDEXES.
    Not building indexes is now the default behaviour of tsk_table_collection_dump and related functions.
    (@molpopgen, #1327, #1337).

Features

Python 0.3.5

16 Mar 11:57
5db28ed
Compare
Choose a tag to compare

Breaking changes

Features

  • SVG visualization plots mutations at the correct time, if it exists, and a y-axis,
    with label can be drawn. Both x- and y-axes can be plotted on trees as well as
    tree sequences (@hyanwong,#840, #580, #1236)

  • SVG visualization now uses squares for sample nodes and red crosses for mutations,
    with the site/mutation positions marked on the x-axis. Additionally, an x-axis
    label can be set (@hyanwong,#1155, #1194, #1182, #1213)

  • Add parents column to the individual table to allow recording of pedigrees
    (@ivan-krukov, @benjeffery, #852, #1125, #866, #1153, #1177, #1192 #1199).

  • Added Tree.generate_random_binary static method to create random
    binary trees (@hyanwong, @jeromekelleher, #1037).

  • Change the default behaviour of Tree.split_polytomies to generate
    the shortest possible branch lengths instead of a fixed epsilon of
    1e-10. (@jeromekelleher, #1089, #1090)

  • Default value metadata in add_row functions is now schema-dependant, so that
    metadata={} is no longer needed as an argument when a schema is present
    (@benjeffery, #1084).

  • default in metadata schemas is used to fill in missing values when encoding for
    the struct codec. (@benjeffery, #1073, #1116).

  • Added canonical option to table collection sorting (@mufernando,
    @petrelharp, #705)

  • Added various arguments to TreeSequence.subset, to allow for stable
    population indexing and lossless node reordering with subset.
    (@petrelharp, #1097)

Changes

  • Allow mutations that have the same derived state as their parent mutation.
    (@benjeffery, #1180, #1233)

  • File minor version change to support individual parents

C API 0.99.11

16 Mar 11:54
5db28ed
Compare
Choose a tag to compare

Features

Breaking changes

  • Method tsk_individual_table_add_row has an extra arguments parents and parents_length.

  • Add an options argument to tsk_table_collection_subset (@petrelharp, #1108),
    to allow for retaining the order of populations.

  • Mutation error codes have changed

Changes

  • Allow mutations that have the same derived state as their parent mutation.
    (@benjeffery, #1180, #1233)

  • File minor version change to support individual parents

C API 0.99.10

25 Jan 11:49
44f3aea
Compare
Choose a tag to compare

Minor change to internal APIs

C API 0.99.9

22 Jan 22:35
776c464
Compare
Choose a tag to compare

Minor Feature Release

Features

  • Add TSK_KEEP_UNARY_IN_INDIVIDUALS flag to simplify, which allows the user to
    keep unary nodes only if they belong to a tabled individual. This is useful for
    simplification in forwards simulations (@hyanwong, #1113, #1119).

Python 0.3.4

02 Dec 10:03
bdb494e
Compare
Choose a tag to compare

Minor bugfix release.

Bugfixes

  • Reinstate the unused zlib_compression option to tskit.dump, as msprime < 1.0 still uses it (@jeromekelleher, #1067).

Python 0.3.3

27 Nov 13:11
63566d3
Compare
Choose a tag to compare

Minor feature release

Features

  • Add TreeSequence.genetic_relatedness for calculating genetic relatedness between
    pairs of sets of nodes (@brieuclehmann, #1021, #1023, #974, #973, #898).

  • Expose TreeSequence.coiterate() method to allow iteration over 2 sequences
    simultaneously, aiding comparison of trees from two sequences
    (@jeromekelleher, @hyanwong, #1021, #1022).

  • tskit is now supported on, and has wheels for, python3.9
    (@benjeffery, #982, #907).

  • Tree.newick() now has extra option include_branch_lengths to allow branch
    lengths to be omitted (@hyanwong, #931).

  • Added Tree.generate_star static method to create star-topologies (@hyanwong,
    #934).

  • Added Tree.generate_comb and Tree.generate_balanced methods to create
    example trees. (@jeromekelleher, #1026).

  • Added equals method to TreeSequence, TableCollection and each of the tables which
    provides more flexible equality comparisons, for example, allowing
    users to ignore metadata or provenance in the comparison
    (@mufernando, @jeromekelleher, #896, #897,
    #913, #917).

  • Added __eq__ to TreeSequence
    (@benjeffery, #1011, #1020).

  • ts.dump and tskit.load now support reading and writing file objects such as
    FIFOs and sockets (@benjeffery, #657, #909).

  • Added tskit.write_ms for writing to MS format
    (@saurabhbelsare, #727, #854).

  • Added TableCollection.indexes for access to the edge insertion/removal order indexes
    (@benjeffery, #4, #916).

  • The dictionary representation of a TableCollection now contains its index
    (@benjeffery, #870, #921).

  • Added TreeSequence._repr_html_ for use in jupyter notebooks
    (@benjeffery, #872, #923).

  • Added TreeSequence.__str__ to display a summary for terminal usage
    (@benjeffery, #938, #985).

  • Added TableCollection.dump and TableCollection.load. This allows table
    collections that are not valid tree sequences to be manipulated
    (@benjeffery, #14, #986).

  • Added nbytes method to tables, TableCollection and TreeSequence which
    reports the size in bytes of those objects
    (@jeromekelleher, @benjeffery, #54, #871).

  • Added TableCollection.clear to clear data table rows and optionally
    provenances, table schemas and tree-sequence level metadata and schema
    (@benjeffery, #929, #1001).

Bugfixes

  • LightWeightTableCollection.asdict and TableCollection.asdict now return copies
    of arrays (@benjeffery, #1025, #1029).

  • The map_mutations method previously used the Fitch parsimony method, but this
    does not produce parsimonious results on non-binary trees. We now now use the
    Hartigan parsimony algorithm, which does (@jeromekelleher,
    #987, #1030).

  • The flag argument to tables' add_row was treating the value as signed
    (@benjeffery, #1027, #1031).

Breaking changes

  • The argument to ts.dump and tskit.load has been renamed file from path.
  • All arguments to Tree.newick() except precision are now keyword-only.
  • Renamed ts.trait_regression to ts.trait_linear_model.