cyto-summarize-classical-profiles¶
cyto-summarize-classical-profiles turns classical profile tables into a readable result bundle.
It is the step that makes the final classical profiles easier to inspect by highlighting the strongest separating features and a simple PCA view.
Purpose¶
Use this skill when you want:
a compact human-readable summary instead of only parquet tables
a quick view of which features separate wells
a simple low-dimensional view of the final profile differences
Main Outcome¶
After this skill finishes, the classical profile table is accompanied by summary files that tell you which wells differ and which features drive that difference.
Inputs¶
This skill reads:
a project config such as
configs/project_config.demo.jsona classical profile table to summarize
an optional output directory
In the recorded demo run below, the summarized input table was the aggregated classical profile table from cyto-aggregate-profiles.
Outputs¶
profile_summary.jsonA compact machine-readable summary of the classical profiling result.well_metadata_summary.csvA per-well summary of the retained metadata.top_variable_features.csvThe features that varied the most across wells.pca_coordinates.csvPCA coordinates for each well.pca_plot.pngA quick PCA figure.pipeline_skill_manifest.jsonThe run record for this skill invocation.
Agent Demo¶
This page is based on a real local OpenClaw turn against the repository demo config:
record id:
cytosummary-local-v3recorded on
2026-05-06 13:55 UTCmodel:
vibe/gpt-5-mini
Request¶
I want a quick biological summary of the final classical profiles in this demo and which features separate the wells most clearly.
Structured Trace¶
user_input:
I want a quick biological summary of the final classical profiles in this demo and which features separate the wells most clearly.
planner_step_1:
intent:
Run the classical-profile summary step on the demo aggregated profile table.
tool_calls:
- exec("cd /root/pipeline/CellPainting-Claw && /root/autodl-tmp/miniconda3_envs/lyx_env/bin/cellpainting-skills run --config /root/pipeline/CellPainting-Claw/configs/project_config.demo.json --skill cyto-summarize-classical-profiles --feature-selected-path /root/pipeline/CellPainting-Claw/demo/workspace/outputs/agent_demo_classical_profiles/pycytominer/aggregated.parquet --manifest-path /root/pipeline/CellPainting-Claw/demo/workspace/outputs/agent_demo_classical_profiles/pipeline_skill_manifest.json --output-dir /root/pipeline/CellPainting-Claw/demo/workspace/outputs/agent_demo_classical_profile_summary")
- process.poll("salty-wharf")
observed_result:
- skill_key = cyto-summarize-classical-profiles
- row_count = 2
- feature_count = 11
- top_feature_count = 11
- PC1 explained essentially all variance
planner_step_2:
intent:
Inspect the summary files to report the standout features and the PCA interpretation.
tool_calls:
- read("profile_summary.json")
- read("top_variable_features.csv")
- read("well_metadata_summary.csv")
- read("pca_coordinates.csv")
observed_result:
- the summary covered 2 wells and 11 measured features
- the strongest feature differences were DNA, AGP, and RNA intensity
- PCA separated `A01` and `A02` almost entirely along PC1
final_answer_snapshot:
The final classical summary showed that the two demo wells separate along one dominant profile axis driven mainly by intensity features, with smaller Y-position differences.
Observed Result¶
A real recorded run for this skill wrote:
profile_summary.jsonwell_metadata_summary.csvtop_variable_features.csvpca_coordinates.csvpca_plot.pngpipeline_skill_manifest.json
The recorded output summary showed:
2wells11measured featurestop variable features:
Cells_Intensity_MeanIntensity_OrigDNACells_Intensity_MeanIntensity_OrigAGPCells_Intensity_MeanIntensity_OrigRNACells_AreaShape_BoundingBoxMaximum_YCells_AreaShape_Center_YCells_AreaShape_BoundingBoxMinimum_Y
PC1explained essentially all variance
Recorded Reply¶
Here’s a quick biological summary of the final classical well-level profiles in this demo.
What the final profiles represent
- 2 wells: `BR00000001 / A01` and `BR00000001 / A02`
- each row is a well-level phenotype built from 2 measured cells
- there are 11 measured features plus metadata
Quick biological interpretation
- the two wells separate mainly by cell intensity features, not by strong size/shape changes
- the clearest differences are DNA, AGP, and RNA intensity
- small Y-position differences are also present, but those are more likely field-layout effects in this toy demo
Which features separate the wells most clearly
- `Cells_Intensity_MeanIntensity_OrigDNA` — variance 5000.0
- `Cells_Intensity_MeanIntensity_OrigAGP` — variance 3200.0
- `Cells_Intensity_MeanIntensity_OrigRNA` — variance 2450.0
- `Cells_AreaShape_BoundingBoxMaximum_Y` — variance 2.0
- `Cells_AreaShape_Center_Y` — variance 2.0
- `Cells_AreaShape_BoundingBoxMinimum_Y` — variance 2.0
PCA summary
- `A01`: PC1 ≈ -72.99
- `A02`: PC1 ≈ 72.99
- PC1 explains 100% of the variance in this tiny demo
- PC2 is effectively negligible
Bottom line
- the two wells have similar gross size/shape
- they differ mainly in average staining intensity across DNA, AGP, and RNA channels
- the dominant separating phenotype here is signal-state difference, not a dramatic morphology shift