phlower.tl.diffusionGraphDM

phlower.tl.diffusionGraphDM(dm, roots, k=11, ndc=40, s=1, j=7, lmda=0.0001, sigma=None, verbose=False, lstsq_method='lstsq')

transition matrix is calculate by eigen decomposition outcome

# M’ = D^{1/2} P D^{-1/2} # S is the eigen vectors of M’ psi = D^{-1/2} S phi = S^T D^{1/2}

begin{aligned} M^s & = Q Lambda Q^{-1}Q Lambda Q^{-1}cdots Q Lambda Q^{-1}& = Q Lambda^s Q^{-1}& = D^{-1/2} S Lambda^s S^T D^{1/2} & = psi cdot Lambda^s cdot phiend{aligned}

Parameters

dm: numpy array

dimension reduction of diffusion map input

roots: list

list of bool values if they are root nodes

k: int

number of nearest neighbors for diffusion map

npc: int

number of principal components using

ndc: int

number of diffusion components using

s: int

number of stepes for diffusion map random walk(default 1)

lmda: float

regularization parameter for ddhodge(default 1e-4)

sigma: float

sigma for gaussian kernel(default None)

verbose: bool

print out progress(default False)

lstsq_method: str

method for least square solver, “lstsq” or “lsqr”, “lsmr”, cholesky (default “lstsq”)

Return

dic: dict

d[‘g’]: The diffusion graph

d[‘A’]: Graph full adjacency matrix

d[‘W’]: Diffusion Distances

d[‘psi’]: Diffusion Map right eigenvectors

d[‘phi’]: Diffusion Map left eigenvectors

d[‘eig’]: Diffusion Map eigenvalues

d[‘dm’]: dimension reduction input of diffusion map