Release Notes

Version 1.0.7 February 15, 2566/2024

Fixed adjustedText version to avoid error, changed tests to python 3.11

Version 1.0.6 August 26, 2566/2023

Fixed exception in scFates.tl.slide_cells()

Version 1.0.5 August 25, 2566/2023

Fix int and bool check when ordering segments in scFates.pl.trends().

Version 1.0.4 August 13, 2566/2023

  • updated notebooks.

  • relaxed mutli-mapping rule when using elpigraph.

  • better handling of milestone renaming.

  • prevent grid on module_inclusion plot

  • correcting messages displayed by functions.

Version 1.0.3 July 23, 2566/2023

Updated elpigraph version to fix error with networkx, fixed typo.

Version 1.0.2 April 28, 2566/2023

Constrained pandas version requirement (<2.0) to avoid broken functions.

Version 1.0.1 March 10, 2566/2023

Minor fixes to make scFates compatible with the newer versions of matplotlib (3.5+). Constrained networkx requirement to avoid error happening in the last version 3.0.

Version 1.0.0 November 29, 2022

The tool is now published, it is considered stable enough to be released as v1.0.0

Version 0.9.1 August 28, 2022

  • Switched to ElPiGraph approach to calculate pseudotime when using that algorithm, leading to more accurate pseudotime measurement.

  • Added parameter epg_extend_leaves to call elpigraph.ExtendLeaves() during graph learning using ElPiGraph.

  • Working function for scFates.tl.test_association_monocle3() (R file was missing from package).

  • Fixed output from scFates.tl.test_association_covariate().

  • Allow no legend for scFates.pl.covariate().

Version 0.9.0 August 18, 2022

Major release:

This release has several improvements from 0.8

Major changes:

  • As discussed on issue #7, pseudotime calculation has been fixed when using elpigraph. The previous change introduced the issue of cells being assigned the pseudotime of their closest node only. Now the cells are assigned to their closest edge and have a pseudotime value according to their distance between the two nodes composing that edge.

  • Added scFates.tl.explore_sigma(), a tool for SimplePPT that explore ranges of sigma parameters to avoid the ones which collapse the tree (see the related notebook) for more info).

  • New approach to analyses circles, upon removal of edge linked to the root node, the graph is considered as two converging segments toward the furthest node. This allow to perform mulitple mapping without having cells being assigned either the lowest or the furthest pseudotime, leading to wrong assignement when taking the mean of all mappings. The circle can be further unrolled with scFates.tl.unroll_circle() to assign a unique pseudotime value to all cells (for more info see the related notebook).

  • added scFates.tl.test_association_monocle3(), to test whether features are significantly changing along the tree, using monocle3 approach (requires the package). This can be handy for large dataset where test_association is too slow (does not generate A parameter).

  • Reworked scFates.tl.cluster(), now uses scanpy and leiden as backend, leading to faster gene module calculations.

Version 0.8.1 July 18, 2022

Minor release: - pl.milestones_graph has been removed, simplifying the dependency requirements - scFates.tl.rename_milestones() now accepts dictionaries - minor plot fixes

Version 0.8.0 June 29, 2022

This release is stable and ready for journal submission, it is meant to be ready to use and in line with all methods described in the manuscript.

Major changes:

  • breaking change! pseudotime calculation is now deterministic, which differs from the previous implementation derived from crestree package. In the previous implementation, cells were assigned to a random position between a node and its closest neighbor. Now cells are assigned a pseudotime according to their soft assignment value between between the node and its closest neighbor.

  • When calculating pseudotime over several mappings, the mean of all pseudotimes is saved in .obs, instead of taking the first mapping. Cell are assigned to their most assigned segment among all mappings, with corrections for cases were the pseudotime is over or under the limit of the segment.

Other changes:

  • scFates.pl.milestones() has been converted into a embedding plot which colors the cells as a gradient following milestones. This plot will be called in any other plotting functions which as a coloring of cell paramter set to ‘milestones’.

  • Added scFates.tl.convert_to_soft() to convert ElPiGraph hard assignment R matrix output into a soft one, allowing for probabilistic mapping of cells.

  • For plot with embeddings, the basis parameter is now automatically guessed if none is mentionned.

  • Improved flexibility and consistency when plotting sub-trajectories

  • Default parameters for scFates.tl.module_inclusion() have been modified, to focus more on already identified early genes. Inclusion of single gene can now be plotted.

Version 0.4.2 May 16, 2022

Minor release:

  • Updated to latest elpigraph version available on pypi, induced slightly changes in principal graph results.

  • Added cmap parameter to scFates.pl.matrix(), more responsive plotting.

  • Fix presence of NAs as repulsion scores in scFates.pl.slide_cors().

Version 0.4.1 March 25, 2022

Minor release focused mainly in plotting improvements:

Version 0.4.0 February 25, 2022

Additions

Improvements

Version 0.3.2 February 12, 2022

Additions

Improvements/Fix

Version 0.3.1 January 4, 2022

Additions

  • scFates.pl.matrix() a new and compact way for plotting features over a subset or the whole tree.

  • scFates.tl.limit_pseudotime(), subset a tree by cutting of any nodes and cells having a higher pseudotime value than a threshold.

  • scf.settings.set_figure_pubready() to set publication ready figures (PDF/Arial output, needs Arial installed on the system)

Improvements/Fix

Version 0.3 November 11, 2021

Changes

  • _!Breaking change!_ R soft assignment matrix now is moved to .obsm for better flexibility (notably when subsetting). If using an older dataset: refit the tree (with the same parameters) to update to the new data organisation.

  • Removal of LOESS for scFates.tl.synchro_path() (too slow). Using GAM instead, and only when calling scFates.pl.synchro_path().

  • Removal of critical transition related functions.

Improvements

Version 0.2.7 September 23, 2021

Additions

  • scFates.tl.circle(), to fit a principal circle on high dimensions!

  • scFates.tl.dendrogram() and pl.dendrogram, for generating and plotting a dendrogram URD style single-cell embedding for better interpretability

  • scFates.tl.extend_tips() (replaces tl.refine_pseudotime ) to avoid the compression of cells at the tips.

  • scFates.pl.binned_pseudotime_meta(), a dotplot showing the proportion of cells for a given category, along binned pseudotime intervals.

New walkthroughs

Improvements

Changes

  • any graph fitting functions relying in elpigraph now removes automatically non-assigned nodes, and reattach the separated tree at the level of removals in case the tree is broken into pieces.

  • scFates.pl.milestones() default layout to dendrogram view (similar to tl.dendrogram layout).

  • scFates.tl.subset_tree() default mode is “extract”.

  • scFates.pl.linearity_deviation() has a font parameter, with a default value.

Version 0.2.6 August 29, 2021

Additions

Improvements

Version 0.2.5 July 09, 2021

Addition/Changes

  • code for SimplePPT algorithm has been moved to a standalone python package simpelppt.

  • scFates.tl.activation_lm(), a more robust version of tl.activation, as it uses linear model to identify activation of feature prior to bifurcation.

  • scFates.tl.root() can now automatically select root from any feature expression.

Version 0.2.4 May 31, 2021

As mentioned in the following issue, this release removes the need to install the following dependencies: Palantir, cellrank and rpy2. This allows for a faster installation of a base scFates package and avoid any possible issues caused by rpy2 and R conflicts.

Modifications/Improvements

  • scFates.pl.modules(): added smooth parameter for knn smoothing of the plotted values.

  • scFates.pl.trajectory(): better segment and fork coloring, now uses averaging weigthed by the soft assignment matrix R to generate values.

Version 0.2.3 May 17, 2021

Additions

Modifications/Improvements

  • More precise cell projection of critical transition index values via loess fit.

Version 0.2.2 Apr 27, 2021

Additions for conversion and downstream analysis

  • scFates.tl.critical_transition(), with its plotting counterpart, calculate the critical transition index along the trajectory.

  • scFates.tl.criticality_drivers(), identifies genes correlated with the projected critical transition index value on the cells.

  • scFates.pl.test_fork(), plotting counterpart of scFates.tl.test_fork(), for better selection of threshold A.

  • scFates.tl.cellrank_to_tree(), wrapper that convert results from CellRank analysis into a principal tree that can be subsequently analysed.

Additions for preprocessing

Version 0.2.0 Feb 25, 2021

Additons

  • scFates.tl.curve() function, a wrapper of computeElasticPrincipalCurve from ElPiGraph, is now added to fit simple curved trajectories.

  • Following this addition and for clarity, plotting functions scFates.pl.tree() and scFates.pl.tree_3d() have been respectively renamed scFates.pl.graph() and scFates.pl.trajectory_3d().

Modifications on scFates.tl.tree() when simplePPT is used

scFates.tl.test_fork() modifications

  • includes now a parameter that rescale the pseudotime length of the two post-bifurcation branches to 1. This allows for comparison between all cells, instead of only keeping cells with a pseudotime up to the maximum pseudotime of the shortest branch. This is useful especially when the two branches present highly different pseudotime length.

  • can now perform DE on more than two branches (such in case of trifurcation).

Other modifications on crestree related downstream analysis functions

  • tl.activation now uses a distance based (pseudotime) sliding window instead of cells, leading to a more robust identification of activation pseudotime.

  • include a fully working scFates.tl.refine_pseudotime() function, which applies Palantir separately on each segment of the fitted tree in order to mitigate the compressed pseudotime of cells at the tips.

  • scFates.tl.slide_cors() can be performed using user defined group of genes, as well as on a single segment of the trajectory.

Version 0.1 Nov 16, 2020

Version with downstream analysis functions closely related to the initial R package crestree. Includes ElPiGraph as an option to infer a principal graph.