tiangzlab/omicsclaw/bulkrna-coexpression
Claude Code and agent skill by tiangzlab/omicsclaw
- community
Checking that the SKILL.md file is still in the repository.
Load when discovering bulk gene co-expression modules and hub genes with R WGCNA. Skip direct expression contrasts (use bulkrna-de), existing-gene-list PPI lookup (use bulkrna-ppi-network), or single-cell networks (use sc-grn).
Install
npx vskill@latest install tiangzlab/omicsclaw/bulkrna-coexpressionSKILL.md
bulkrna-coexpression
When to use
Load when discovering bulk gene co-expression modules and hub genes with R WGCNA. Skip direct expression contrasts (use bulkrna-de), existing-gene-list PPI lookup (use bulkrna-ppi-network), or single-cell networks (use sc-grn).
Use from a step
Read expression and metadata with read_input before calling the library. examples/example_step.py constructs a small synthetic dataset and checks its results through the step runner and fresh-kernel replay.
API
<!-- api:begin generated from _api.py; regenerate with run.py api <skill dir> --write -->
analyze(data: pd.DataFrame, *, power: int | None=None, min_module_size: int=10, random_state: int=54321) -> pd.DataFrame
Return R WGCNA gene-module assignments, leaving expression unchanged.
:param data: Nonnegative feature-by-sample expression; provide normalized data on the intended correlation scale. :param power: CLI default None selects the soft threshold; set a positive integer to override it. :param min_module_size: CLI default 10 genes per module. :param random_state: WGCNA blockwiseModules default seed 54321; fixes its preclustering. :returns: Gene/module DataFrame with diagnostics, hub genes and threshold fit in attrs. :raises ValueError: Input, sample count, power or module size is invalid. :raises ImportError: R WGCNA or Matrix is unavailable. :raises RuntimeError: R analysis fails.
run_info(data: pd.DataFrame, *, keep: bool=True) -> dict
Return WGCNA method diagnostics and summary.
:param data: Result from analyze. :param keep: Keep diagnostics by default; the CLI passes False. :returns: Independent diagnostics dictionary. :raises ValueError: No WGCNA diagnostics are present.
threshold_fit(data: pd.DataFrame) -> pd.DataFrame
Return the signed scale-free fit for each tested soft threshold.
:param data: Result from analyze. :returns: Table containing power, r_squared and mean_connectivity. :raises ValueError: No fit table is stored.
hub_genes(data: pd.DataFrame) -> pd.DataFrame
Return the highest absolute module-membership genes per non-grey module.
:param data: Result from analyze. :returns: Table with gene, module and kME columns. :raises ValueError: No hub table is stored.
module_sizes_figure(data: pd.DataFrame)
Plot assignment counts, including grey unassigned genes.
:param data: Gene/module table from analyze. :returns: Matplotlib Figure. :raises ValueError: The module column is missing.
<!-- api:end -->
Methods and parameters
The function library returns DataFrames and Figures. The CLI loads the same library and owns reports and file writes. R runs in a temporary directory using Matrix Market, feature/sample identifiers and metadata. No R intermediate is a permanent CLI output.
Gotchas
analyzerequires R WGCNA and Matrix, at least eight samples, and finite nonnegative expression. Cohorts with fewer than 15 samples emit a warning.analyze(power=None)selects a soft threshold; an explicit power is honored. Integer matrices are converted to double for WGCNA.run_info()["filtered_genes"]lists genes removed by WGCNA quality checks. Grey is unassigned; module IDs are color strings.hub_genesranks absolute module membership within each non-grey module. This is correlation evidence, not proof of regulation.threshold_fitreports signed scale-free R-squared and connectivity. The correlation analysis uses the supplied expression scale; normalize upstream as needed.analyze(random_state=54321)preserves the WGCNA default seed and uses one R thread. No Python module-detection fallback is used.
Inputs and outputs
Expression CSV with genes in the first column and samples in the remaining columns. The API takes that gene column as the DataFrame index.
CLI outputs:
tables/module_assignments.csvtables/hub_genes.csvtables/threshold_fit.csvfigures/scale_free_fit.pngfigures/module_sizes.pngfigures/module_dendrogram.png(assignment overview, not a dendrogram)report.md,result.jsonreproducibility/commands.sh
CLI
Run the script with --help for real-input arguments.
See also
references/parameters.mdreferences/methodology.mdreferences/output_contract.md
Dependencies
matplotlib, numpy, pandas, scipy, WGCNA, Matrix
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/bulkrna/bulkrna-coexpression/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/tiangzlab/omicsclaw/bulkrna-coexpression)