cyto-normalize-profiles¶
cyto-normalize-profiles normalizes an annotated classical profile table.
It is the step that puts profile features onto a comparable scale before feature selection and downstream comparison.
Purpose¶
Use this skill when you want:
wells compared on the same feature scale
raw profile magnitudes converted into relative deviations
the standard normalized input for feature selection
Main Outcome¶
After this skill finishes, the wells and metadata stay the same.
What changes is the feature matrix: varying profile features are centered and scaled so downstream comparisons are easier to interpret.
Inputs¶
This skill reads:
a project config such as
configs/project_config.demo.jsonan annotated profile table from cyto-annotate-profiles, or an equivalent table provided by the user
an optional output directory
Outputs¶
normalized.parquetThe normalized classical profile table.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:
session id:
cytonormalize-rerun-v3recorded on
2026-05-07model:
vibe/gpt-5-mini
Request¶
I already have annotated Cell Painting profiles for this demo and want to make the wells comparable before downstream analysis. Please use the demo project config, normalize the profiles, write the result under demo/workspace/outputs/agent_demo_cyto_normalize_rerun_v3, and explain what changed in the profile values.
Structured Trace¶
user_input:
I already have annotated Cell Painting profiles for this demo and want to make the wells comparable before downstream analysis. Please use the demo project config, normalize the profiles, write the result under demo/workspace/outputs/agent_demo_cyto_normalize_rerun_v3, and explain what changed in the profile values.
recorded_turn:
- the saved OpenClaw turn answered this request directly
- the reply identified the normalization step used
- the reply reported the output path of the normalized table
- the reply compared representative raw values with normalized values
- the reply explained which features became 0 because they did not vary
final_answer_snapshot:
Normalization preserved the metadata but converted varying profile features into comparable scaled values.
Observed Result¶
A real recorded run for this skill wrote:
pycytominer/normalized.parquetpipeline_skill_manifest.json
The recorded output showed:
2well-level rows17columnsmetadata preserved
varying feature columns transformed from raw measurement values into centered/scaled values
Representative changes included:
Cells_Intensity_MeanIntensity_OrigDNAfrom1122.5and1222.5to-0.67449and0.67449Cells_Intensity_MeanIntensity_OrigAGPfrom1010.0and1090.0to-0.67449and0.67449Cells_Intensity_MeanIntensity_OrigRNAfrom947.0and1017.0to-0.67449and0.67449
Recorded Reply¶
Done — I used the stable normalization step **`cyto-normalize-profiles`** with the demo project config and wrote the result under:
- `demo/workspace/outputs/agent_demo_cyto_normalize_rerun_v3`
### Output
Normalized profile table:
- `/root/pipeline/CellPainting-Claw/demo/workspace/outputs/agent_demo_cyto_normalize_rerun_v3/pycytominer/normalized.parquet`