drvi.utils.tools.get_split_effects#
- drvi.utils.tools.get_split_effects(model, embed, n_steps=20, n_samples=100, traverse_kwargs=None, de_kwargs=None)[source]#
Get split effects by performing latent traversal and differential analysis.
This is a high-level function that combines latent space traversal with differential variable analysis. It performs the complete pipeline from generating traversal data to calculating differential effects.
- Parameters:
model (
DRVI) – Trained DRVI model for decoding latent representations.embed (
AnnData) – AnnData object containing latent dimension statistics in.var. Must have columns:original_dim_id,min,max,std,title,vanished,order.n_steps (
int(default:20)) – Number of steps in the traversal. Must be even (half negative, half positive).n_samples (
int(default:100)) – Number of samples to generate for each step.traverse_kwargs (
dict|None(default:None)) – Additional arguments passed totraverse_latent. Common options include: -copy_adata_var_info: Whether to copy variable information -noise_formula: Custom noise generation function -max_noise_std: Maximum noise standard deviation.de_kwargs (
dict|None(default:None)) – Additional arguments passed tocalculate_differential_vars. Common options include: -add_to_counts: Pseudo-count for log calculations -relax_max_by: Relaxation factor for min_possible method.
- Return type:
- Returns:
AnnData AnnData object containing both traversal data and differential analysis results. Includes all outputs from
traverse_latentandcalculate_differential_vars:Traversal Data: -
.X: Difference between effect and control conditions -.layers['control']: Control condition gene expression -.layers['effect']: Effect condition gene expression -.obs: Metadata including dim_id, sample_id, step_id, span_value, title, vanished, orderDifferential Analysis Results: -
.uns["max_possible_traverse_effect_stepwise"]: Max possible stepwise effects -.uns["min_possible_traverse_effect_stepwise"]: Min possible stepwise effects -.uns["combined_score_traverse_effect_stepwise"]: Combined stepwise effects -.varm["*_traverse_effect_pos/neg"]: Direction-specific effects for all methods- Raises:
ValueError – If required columns are missing from
embed.var.KeyError – If required data is missing from the model or embed objects.
Notes
This function is a convenience wrapper that performs the complete analysis pipeline in one call. It’s equivalent to:
`python traverse_adata = traverse_latent(model, embed, n_steps, n_samples, **traverse_kwargs) calculate_differential_vars(traverse_adata, **de_kwargs) return traverse_adata `Functionality:
Traversal Generation: Creates systematic traversals through latent space
Decoding: Converts latent traversals to gene expression predictions
Differential Analysis: Calculates effects using max_possible and min_possible methods
Combination: Creates unified scores for robust gene identification
Use Cases:
Gene Discovery: Identify genes associated with specific latent dimensions
Pathway Analysis: Understand biological processes captured by latent factors
Model Validation: Verify that latent dimensions have interpretable biological meaning
Comparative Analysis: Compare effects across different models or conditions
Examples
>>> # Basic split effects analysis >>> split_effects = get_split_effects(model, embed) >>> # With custom parameters >>> split_effects = get_split_effects(model, embed, n_steps=30, n_samples=50) >>> # Access results >>> combined_effects = split_effects.varm["combined_score_traverse_effect_pos"] >>> stepwise_effects = split_effects.uns["combined_score_traverse_effect_stepwise"]