dynamo.vf.Potential(adata, DiffMat=None, method='Ao', **kwargs)[source]

Function to map out the pseudo-potential landscape.

Although it is appealing to define “potential” for biological systems as it is intuitive and familiar from other fields, it is well-known that the definition of a potential function in open biological systems is controversial (Ping Ao 2009). In the conservative system, the negative gradient of potential function is relevant to the velocity vector by ma = −Δψ (where m, a, are the mass and acceleration of the object, respectively). However, a biological system is massless, open and nonconservative, thus methods that directly learn potential function assuming a gradient system are not directly applicable. In 2004, Ao first proposed a framework that decomposes stochastic differential equations into either the gradient or the dissipative part and uses the gradient part to define a physical equivalent of potential in biological systems (P. Ao 2004). Later, various theoretical studies have been conducted towards this very goal (Xing 2010; Wang et al. 2011; J. X. Zhou et al. 2012; Qian 2013; P. Zhou and Li 2016). Bhattacharya and others also recently provided a numeric algorithm to approximate the potential landscape.

This function implements the Ao, Bhattacharya method and Ying method and will also support other methods shortly.

  • adata (AnnData) – AnnData object that contains embedding and velocity data

  • method (str (default: Ao)) – Method to map the potential landscape.


adataAnnData object that is updated with the Pot dictionary in the uns attribute.

Return type