Analyze cell-cell communication in spatial transcriptomics data using ligand-receptor analysis with Squidpy. Infer intercellular signaling, identify communication pathways, and visualize interaction networks.
SkillScore91Maintained
Automatic
◆Research pack
Last verified 8/2/2026
What it changes
Passed 20 of 22 test cases with the skill, and 13 of 22 without it.
Without skill59%
With skill91%
Checks it passed that the model alone missed
sq.gr.ligrec is called with n_perms=100
sq.pl.ligrec is called with means_range=(0.5, 5)
sq.gr.spatial_neighbors is invoked with coord_type='generic'
and 7 more in the full report
7 fixed13 passed either way2 still failing0 broke
Pass-rate lift
+32 pp
Tokens
+76%
Agent turns
0%
Response time
-38%
Model gemini-3.6-flashMeasured 8/2/2026v120 of 22 cases passed with skill
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 7 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 7
Prompt
I have spatial ligand-receptor results stored in my AnnData object under cluster key cell_type. I want to plot a dot plot visualizing interactions exclusively where source cells are either Macrophage or T_cell and target cells are Epithelial or Fibroblast. Write the Squidpy plotting call with a p-value threshold of 0.05 and dropping empty interactions.
What was checked, without and with the skill
Checked
Without skill
With skill
sq.pl.ligrec is called with source_groups=['Macrophage', 'T_cell']
Missed
Passed
sq.pl.ligrec is called with target_groups=['Epithelial', 'Fibroblast']
Missed
Passed
case-07 · gemini-3.6-flash · 8/2/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md276 linessingle file
Spatial Cell-Cell Communication
Analyze ligand-receptor interactions and cell-cell communication in spatial data.
Required Imports
import squidpy as sq
import scanpy as sc
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
Ligand-Receptor Analysis with Squidpy
# Requires clustered data with cell type annotations
adata = sc.read_h5ad('clustered_spatial.h5ad')
# Build spatial neighbors if not already done
sq.gr.spatial_neighbors(adata, coord_type='generic', n_neighs=6)
# Run ligand-receptor analysis
sq.gr.ligrec(
adata,
cluster_key='cell_type', # Column with cell type annotations