Analyze data with `pseudotime-trajectory-viz` using a reproducible workflow, explicit validation, and structured outputs for review-ready interpretation.
Visualize single-cell developmental trajectories showing cellular differentiation processes using pseudotime analysis.
pseudotime-trajectory-viz using a reproducible workflow, explicit validation, and structured outputs for review-ready interpretation.scripts/main.py.references/ for task-specific guidance.scanpy>=1.9.0 - Single-cell analysis frameworkscvelo>=0.2.5 - RNA velocity analysispalantir - Trajectory inference and pseudotimescikit-learn - Dimensionality reduction and clusteringmatplotlib>=3.5.0 - Plottingseaborn - Statistical visualizationpandas, numpy - Data manipulationanndata - Single-cell data structureOptional:
slingshot (R) via rpy2 - Alternative trajectory methodSee ## Usage above for related details.
cd "20260318/scientific-skills/Data Analytics/pseudotime-trajectory-viz"
python -m py_compile scripts/main.py
python scripts/main.py --help
Example run plan:
CONFIG block or documented parameters if the script uses fixed settings.python scripts/main.py with the validated inputs.See ## Workflow above for related details.
scripts/main.py.references/ contains supporting rules, prompts, or checklists.Use this command to verify that the packaged script entry point can be parsed before deeper execution.
python -m py_compile scripts/main.py
Use these concrete commands for validation. They are intentionally self-contained and avoid placeholder paths.
python -m py_compile scripts/main.py
python scripts/main.py --help
python scripts/main.py --input "Audit validation sample with explicit symptoms, history, assessment, and next-step plan." --format json
High - Requires understanding of single-cell analysis, dimensionality reduction, trajectory inference algorithms, and Python visualization libraries.
# Basic trajectory analysis from AnnData file
python scripts/main.py --input data.h5ad --output ./results
# Specify starting cells and lineage inference method
python scripts/main.py --input data.h5ad --start-cell stem_cell_cluster --method diffusion --output ./results
# Visualize specific gene expression along trajectories
python scripts/main.py --input data.h5ad --genes SOX2,OCT4,NANOG --plot-genes --output ./results
# Full analysis with custom parameters
python scripts/main.py --input data.h5ad \
--embedding umap \
--method slingshot \
--start-cell-type progenitor \
--n-lineages 3 \
--genes MARKER1,MARKER2,MARKER3 \
--output ./results \
--format pdf
| Parameter | Type | Default | Description |
|---|---|---|---|
--input | path | required | Input AnnData (.h5ad) file path |
--output | path | ./trajectory_output | Output directory for results |
--embedding | enum | umap | Embedding for visualization: umap, tsne, pca, diffmap |
--method | enum | diffusion | Trajectory inference: diffusion, slingshot, paga, palantir |
--start-cell | string | auto | Root cell ID or cluster name for trajectory origin |
--start-cell-type | string | - | Cell type annotation to use as starting point |
--n-lineages | int | auto | Number of expected lineage branches |
--cluster-key | string | leiden | AnnData obs key for cell clusters |
--cell-type-key | string | cell_type | AnnData obs key for cell type annotations |
--genes | string | - | Comma-separated gene names to plot along pseudotime |
--plot-genes | flag | false | Generate gene expression heatmaps along trajectories |
--plot-branch | flag | true | Show lineage branch probabilities |
--format | enum | png | Output format: png, pdf, svg |
--dpi | int | 300 | Figure resolution |
--n-pcs | int | 30 | Number of principal components for analysis |
--n-neighbors | int | 15 | Number of neighbors for graph construction |
--diffmap-components | int | 5 | Number of diffusion components to compute |
Required AnnData (.h5ad) structure:
AnnData object with n_obs × n_vars = n_cells × n_genes
obs: 'leiden', 'cell_type' # Cluster and cell type annotations
var: 'highly_variable' # Highly variable gene marker
obsm: 'X_umap', 'X_pca' # Pre-computed embeddings (optional)
layers: 'spliced', 'unspliced' # For RNA velocity (optional)
output_directory/
├── trajectory_plot.{format} # Main trajectory visualization
├── pseudotime_distribution.{format} # Pseudotime value distribution
├── lineage_tree.{format} # Branching lineage structure
├── gene_expression_heatmap.{format} # Gene dynamics heatmap (if --plot-genes)
├── gene_trends/
│ ├── {gene_name}_trend.{format} # Individual gene expression trends
│ └── ...
├── pseudotime_values.csv # Cell-level pseudotime values
├── lineage_assignments.csv # Cell lineage assignments
└── analysis_report.json # Analysis parameters and statistics
{
"analysis_date": "2026-02-06T06:00:00",
"method": "diffusion",
"n_cells": 5000,
"n_lineages": 3,
"root_cell": "cell_1234",
"pseudotime_range": [0.0, 1.0],
"lineages": {
"lineage_1": {
"cell_count": 1500,
"terminal_state": "mature_type_A",
"mean_pseudotime": 0.75
},
"lineage_2": {
"cell_count": 1200,
"terminal_state": "mature_type_B",
"mean_pseudotime": 0.68
}
}
}
cell_id,cluster,cell_type,pseudotime,lineage,branch_probability
cell_001,0,progenitor,0.05,lineage_1,0.95
cell_002,1,intermediate,0.42,lineage_1,0.88
...
# Preprocess data with scanpy (before using this tool)
import scanpy as sc
adata = sc.read_h5ad('raw_data.h5ad')
sc.pp.normalize_total(adata)
sc.pp.log1p(adata)
sc.pp.highly_variable_genes(adata, n_top_genes=2000)
sc.pp.scale(adata)
sc.tl.pca(adata)
sc.pp.neighbors(adata)
sc.tl.umap(adata)
sc.tl.leiden(adata)
adata.write('data.h5ad')
# Then run this skill
# python scripts/main.py --input data.h5ad --start-cell-type progenitor
| Risk Indicator | Assessment | Level |
|---|---|---|
| Code Execution | Python/R scripts executed locally | Medium |
| Network Access | No external API calls | Low |
| File System Access | Read input files, write output files | Medium |
| Instruction Tampering | Standard prompt guidelines | Low |
| Data Exposure | Output files saved to workspace | Low |
# Python dependencies
pip install -r requirements.txt
Every final response should make these items explicit when they are relevant:
scripts/main.py fails, report the failure point, summarize what still can be completed safely, and provide a manual fallback.This skill accepts requests that match the documented purpose of pseudotime-trajectory-viz and include enough context to complete the workflow safely.
Do not continue the workflow when the request is out of scope, missing a critical input, or would require unsupported assumptions. Instead respond:
pseudotime-trajectory-vizonly handles its documented workflow. Please provide the missing required inputs or switch to a more suitable skill.
Use the following fixed structure for non-trivial requests:
If the request is simple, you may compress the structure, but still keep assumptions and limits explicit when they affect correctness.