Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add OpenLAIR/OpenSkill --skill evo-protein-expression-analysisgit clone --depth 1 https://github.com/OpenLAIR/OpenSkillWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/openlair/openskill/evo-protein-expression-analysis)<a href="https://agentmods.dev/skills/openlair/openskill/evo-protein-expression-analysis"><img src="https://agentmods.dev/badge/skills/openlair/openskill/evo-protein-expression-analysis/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/openlair/openskill/evo-protein-expression-analysis"><img src="https://agentmods.dev/badge/skills/openlair/openskill/evo-protein-expression-analysis.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00069 | $0.01121 |
| Opus 5.5 | $0.00028 | $0.00448 |
| Sonnet 5.5 | $0.00014 | $0.00224 |
| Haiku 4.5 | $0.00007 | $0.00112 |
Grade A, and why
evo-protein-expression-analysis scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 105 lines — stays where its author put it; the contents beside it link to each section on GitHub.
evo-protein-expression-analysis
Utilities for populating Excel workbooks with proteomics expression values, group statistics, and fold-change calculations while preserving all cell formatting.
CRITICAL: Write computed numeric values, NOT formulas
openpyxl does NOT have a calculation engine. If you write Excel formulas (strings
starting with =), they will only be evaluated when the file is opened in Excel.
Tools that read the file with data_only=True will see None for all formula cells.
You MUST compute values in Python and write float/int results directly.
Key facts about the protein_expression.xlsx task
- File has two sheets:
Task(where work happens) andData(raw expression values). - Data sheet layout:
- Column A = Protein_ID, Column B = Gene_Symbol, Column C = Description
- Row 1 (D1:BA1) = 50 sample header names (e.g., "MDAMB468_BREAST_TenPx01")
- Rows 2–201 = 200 proteins with log2-transformed expression values in D2:BA201
- Task sheet layout:
- Row 9 (C9:L9): "Control" or "Treated" group labels
- Row 10 (C10:L10): 10 sample names (must match Data sheet headers exactly)
- Column A, rows 11–20: 10 target Protein_IDs; Column B = Gene_Symbol
- C11:L20 (yellow): expression values looked up from Data sheet
- B24:K27 (yellow): per-protein group statistics
- Row 24 = Control Mean, Row 25 = Control StdDev, Row 26 = Treated Mean, Row 27 = Treated StdDev
- Column B → protein in row 11; Column K → protein in row 20
- C32:D41 (yellow): fold change results
- Column C = Log2 Fold Change (Treated Mean − Control Mean)
- Column D = Fold Change (2^Log2FC)
- Row 32 → protein in row 11; Row 41 → protein in row 20
Critical rules
- Write computed numeric values, not formulas — openpyxl doesn't evaluate formulas.
- Load with
data_only=Falseto preserve existing formatting; only set.valueon target cells. - Data is already log2-transformed: use regular mean/stdev; Log2FC = Treated_Mean − Control_Mean; Fold Change = 2^Log2FC.
- Use Python's
statistics.mean()andstatistics.stdev()(sample stdev) for calculations. - Group classification comes from text values in row 9 ("Control" / "Treated").
- Sample names in the Data sheet may have prefixes like "MDAMB468_BREAST_TenPx01" — match exactly against Task row 10.
- Do not alter file format, colors, fonts, or add macros/VBA.
- Setting cell.value preserves existing cell formatting (fill, font, border).
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 105 lines · 69 tokens per session scan A b9cc36ff403e
evo-protein-expression-analysis is a skill published in the GitHub repository OpenLAIR/OpenSkill (97 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 69 tokens to every session and 1,121 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-11.
Other skills, from other repositories
publication-chart-skill
This skill should be used when the user asks for a publication-quality scientific figure or table, wants help choosing the right chart for results, needs a paper-ready pubfig or pubtab workflow, wants a figure + companion table for a results section, wants an Excel sheet turned into publication-ready LaTeX, or wants…
tooluniverse-lab-data-standardization
Convert lab instrument output files (CSV, TSV, Excel, PDF — plate readers, spectrophotometers like NanoDrop, qPCR instruments, cell counters, chromatography systems) into a standardized Allotrope-Simple-Model-inspired JSON document plus a flattened 2D CSV, for LIMS/ELN upload or downstream analysis. Use when someone…
translate-health-data
Turn raw health data into standardized data, and read a lab report without guessing. A lab report PDF, photo, spreadsheet or CSV becomes readings with LOINC codes and UCUM units; an Apple Health export becomes JSON lines; a symptom or diagnosis in any language becomes an ICPC-3 code; any reading becomes a FHIR…
csv-export
Export curing simulation results to CSV with node coordinates and displacements. Invoke when user needs CSV output, data export, or result comparison.
aeja-tables-figures
Use when building or revising the exhibits of an American Economic Journal: Applied Economics (AEJ: Applied) manuscript so the main causal result is legible in one table or figure and respects AEA house presentation norms. Formats exhibits; it does not establish the result (aeja-identification / aeja-robustness) or…
evo-proteomics-workbook
Fills a proteomics Task sheet with INDEX-MATCH expression lookups, group statistics (AVERAGE/STDEV for Control vs Treated), and fold change formulas (Log2FC and FC). Discovers layout at runtime from the workbook itself. Use when a proteinexpression.xlsx has Task and Data sheets requiring two-way lookups and…