spateo.tdr.morphometrics.morphofield.sparsevfc¶
Functions¶
|
Obtain the optimal mapping relationship and developmental direction between cells for samples between continuous developmental stages. |
|
Calculating and predicting the vector field during development by the Kernel method (sparseVFC). |
|
Calculating and predicting the vector field during development by the Kernel method (sparseVFC). |
Module Contents¶
- spateo.tdr.morphometrics.morphofield.sparsevfc.cell_directions(adataA: anndata.AnnData, adataB: anndata.AnnData, layer: str = 'X', genes: list | numpy.ndarray | None = None, spatial_key: str = 'align_spatial', key_added: str = 'mapping', alpha: float = 0.001, numItermax: int = 200, numItermaxEmd: int = 100000, dtype: str = 'float32', device: str = 'cpu', keep_all: bool = False, inplace: bool = True, **kwargs) Tuple[anndata.AnnData | None, numpy.ndarray] [source]¶
Obtain the optimal mapping relationship and developmental direction between cells for samples between continuous developmental stages.
- Parameters:
- adataA
AnnData object of sample A from continuous developmental stages.
- adataB
AnnData object of sample B from continuous developmental stages.
- layer
If
'X'
, uses.X
to calculate dissimilarity between spots, otherwise uses the representation given by.layers[layer]
.- genes
Genes used for calculation. If None, use all common genes for calculation.
- spatial_key
The key in
.obsm
that corresponds to the spatial coordinate of each cell.- .uns. The key that will be used for the vector field key in
- key_added
The key that will be used in
.obsm
.X_{key_added}
-TheX_{key_added}
that will be used for the coordinates of the cell that maps optimally in the next stage.V_{key_added}
-TheV_{key_added}
that will be used for the cell developmental directions.
- alpha
Alignment tuning parameter. Note: 0 <= alpha <= 1.
When
alpha = 0
only the gene expression data is taken into account, while whenalpha =1
only the spatial coordinates are taken into account.- numItermax
Max number of iterations for cg during FGW-OT.
- numItermaxEmd
Max number of iterations for emd during FGW-OT.
- dtype
The floating-point number type. Only
float32
andfloat64
.- device
Equipment used to run the program. You can also set the specified GPU for running.
E.g.: '0'
- keep_all
Whether to retain all the optimal relationships obtained only based on the pi matrix, If
keep_all
is False, the optimal relationships obtained based on the pi matrix and the nearest coordinates.- inplace
Whether to copy adata or modify it inplace.
- **kwargs
Additional parameters that will be passed to
pairwise_align
function.
- Returns:
An
AnnData
object of sample A is updated/copied with theX_{key_added}
andV_{key_added}
in the.obsm
attribute. A pi metrix.
- spateo.tdr.morphometrics.morphofield.sparsevfc._morphofield_sparsevfc(X: numpy.ndarray, V: numpy.ndarray, NX: numpy.ndarray | None = None, grid_num: List[int] | None = None, M: int = 100, lambda_: float = 0.02, lstsq_method: str = 'scipy', min_vel_corr: float = 0.8, restart_num: int = 10, restart_seed: List[int] | Tuple[int] | numpy.ndarray = (0, 100, 200, 300, 400), **kwargs) dict [source]¶
Calculating and predicting the vector field during development by the Kernel method (sparseVFC).
- Parameters:
- X
The spatial coordinates of each cell.
- V
The developmental direction of each cell.
- NX
The spatial coordinates of new data point (grid). If
NX
is None, generate grid based ongrid_num
.- grid_num
The number of grids in each dimension for generating the grid velocity. Default is
[50, 50, 50]
.- M
The number of basis functions to approximate the vector field.
- lambda
Represents the trade-off between the goodness of data fit and regularization. Larger Lambda_ put more weights on regularization.
- lstsq_method
The name of the linear least square solver, can be either
'scipy'
or'douin'
.- min_vel_corr
The minimal threshold for the cosine correlation between input velocities and learned velocities to consider as a successful vector field reconstruction procedure. If the cosine correlation is less than this threshold and
restart_num
> 1,restart_num
trials will be attempted with different seeds to reconstruct the vector field function. This can avoid some reconstructions to be trapped in some local optimal.- restart_num
The number of retrials for vector field reconstructions.
- restart_seed
A list of seeds for each retrial. Must be the same length as
restart_num
or None.- **kwargs
Additional parameters that will be passed to
SparseVFC
function.
- Returns:
- X: Current state.
valid_ind: The indices of cells that have finite velocity values. X_ctrl: Sample control points of current state. ctrl_idx: Indices for the sampled control points. Y: Velocity estimates in delta t. beta: Parameter of the Gaussian Kernel for the kernel matrix (Gram matrix). V: Prediction of velocity of X. C: Finite set of the coefficients for the P: Posterior probability Matrix of inliers. VFCIndex: Indexes of inliers found by sparseVFC. sigma2: Energy change rate. grid: Grid of current state. grid_V: Prediction of velocity of the grid. iteration: Number of the last iteration. tecr_vec: Vector of relative energy changes rate comparing to previous step. E_traj: Vector of energy at each iteration. method: The method of learning vector field. Here method == ‘sparsevfc’.
Here the most important results are X, V, grid and grid_V.
X: Cell coordinates of the current state. V: Developmental direction of the X. grid: Grid coordinates of current state. grid_V: Prediction of developmental direction of the grid.
- Return type:
A dictionary which contains
- spateo.tdr.morphometrics.morphofield.sparsevfc.morphofield_sparsevfc(adata: anndata.AnnData, spatial_key: str = 'align_spatial', V_key: str = 'V_mapping', key_added: str = 'VecFld_morpho', NX: numpy.ndarray | None = None, grid_num: List[int] | None = None, M: int = 100, lambda_: float = 0.02, lstsq_method: str = 'scipy', min_vel_corr: float = 0.8, restart_num: int = 10, restart_seed: List[int] | Tuple[int] | numpy.ndarray = (0, 100, 200, 300, 400), inplace: bool = True, **kwargs) anndata.AnnData | None [source]¶
Calculating and predicting the vector field during development by the Kernel method (sparseVFC).
- Parameters:
- adata
AnnData object that contains the cell coordinates of the two states after alignment.
- spatial_key
The key from the
.obsm
that corresponds to the spatial coordinates of each cell.- V_key
The key from the
.obsm
that corresponds to the developmental direction of each cell.- key_added
The key that will be used for the vector field key in
.uns
.- NX
The spatial coordinates of new data point. If NX is None, generate new points based on grid_num.
- grid_num
The number of grids in each dimension for generating the grid velocity. Default is
[50, 50, 50]
.- M
The number of basis functions to approximate the vector field.
- lambda
Represents the trade-off between the goodness of data fit and regularization. Larger Lambda_ put more weights on regularization.
- lstsq_method
The name of the linear least square solver, can be either
'scipy'
or'douin'
.- min_vel_corr
The minimal threshold for the cosine correlation between input velocities and learned velocities to consider as a successful vector field reconstruction procedure. If the cosine correlation is less than this threshold and
restart_num
> 1,restart_num
trials will be attempted with different seeds to reconstruct the vector field function. This can avoid some reconstructions to be trapped in some local optimal.- restart_num
The number of retrials for vector field reconstructions.
- restart_seed
A list of seeds for each retrial. Must be the same length as
restart_num
or None.- inplace
Whether to copy adata or modify it inplace.
- **kwargs
Additional parameters that will be passed to
SparseVFC
function.
- Returns:
An
AnnData
object is updated/copied with thekey_added
dictionary in the.uns
attribute.The
key_added
dictionary which contains:X: Current state. valid_ind: The indices of cells that have finite velocity values. X_ctrl: Sample control points of current state. ctrl_idx: Indices for the sampled control points. Y: Velocity estimates in delta t. beta: Parameter of the Gaussian Kernel for the kernel matrix (Gram matrix). V: Prediction of velocity of X. C: Finite set of the coefficients for the P: Posterior probability Matrix of inliers. VFCIndex: Indexes of inliers found by sparseVFC. sigma2: Energy change rate. grid: Grid of current state. grid_V: Prediction of velocity of the grid. iteration: Number of the last iteration. tecr_vec: Vector of relative energy changes rate comparing to previous step. E_traj: Vector of energy at each iteration. method: The method of learning vector field. Here method == ‘sparsevfc’.
Here the most important results are X, V, grid and grid_V.
X: Cell coordinates of the current state. V: Developmental direction of the X. grid: Grid coordinates of current state. grid_V: Prediction of developmental direction of the grid.