synthetic-sciences/openscience is an AI workbench that carries out scientific research by reading papers, forming hypotheses, writing and running code, conducting experiments, analyzing results, and preparing reports. Researchers use it for work in machine learning, biology, physics, and chemistry with remote or local models. Catalogue add-ons extend its scientific workflows through skills and instructions.
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 synthetic-sciences/openscience --skill marker-panel-annotationgit clone --depth 1 https://github.com/synthetic-sciences/openscienceWrote 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/synthetic-sciences/openscience/marker-panel-annotation)<a href="https://agentmods.dev/skills/synthetic-sciences/openscience/marker-panel-annotation"><img src="https://agentmods.dev/badge/skills/synthetic-sciences/openscience/marker-panel-annotation/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/synthetic-sciences/openscience/marker-panel-annotation"><img src="https://agentmods.dev/badge/skills/synthetic-sciences/openscience/marker-panel-annotation.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.00156 | $0.02623 |
| Opus 5.5 | $0.00062 | $0.01049 |
| Sonnet 5.5 | $0.00031 | $0.00525 |
| Haiku 4.5 | $0.00016 | $0.00262 |
Grade A, and why
marker-panel-annotation 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 20d 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 — 173 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Marker-panel cluster annotation
An expert annotating clusters from a marker panel gets two things right that a first-pass reading gets wrong: the level at which each label is stated, and the clusters that carry almost nothing. Both directions cost equally under an expert-agreement grader: a subtype the panel cannot support scores like a wrong lineage, and a broad label where the panel determines the subtype scores like a miss. Everything below follows from that.
1. Summarise within the dataset, never across
- Work one dataset (panel, platform, run) at a time. Intensities are not comparable across platforms or panels; a threshold or z-score computed on the pooled data is wrong for every dataset in it.
- For each cluster and marker compute three summaries: the mean or median intensity, the z-score of that cluster's mean across the clusters of the same dataset (which marker is high for this dataset), and the fraction of the cluster's cells above a per-marker positivity cut taken from the marker's own distribution (a bimodal split, or a high percentile of the whole dataset when the marker is unimodal). Read all three: a marker with a modest mean but 80% of cells positive is a positive marker.
- Print the full cluster-by-marker table before labelling anything. Decide from the table, not from the first two markers that come to mind.
2. Lineage first, by positive defining markers
Assign the broad lineage from the markers that define it positively, in this order of precedence, each one excluding the ones below unless the panel says otherwise:
| Lineage | Defining positives | Typical negatives |
|---|---|---|
| Tumour / epithelial | the tumour's own markers in the panel: pan-cytokeratin, E-cadherin, EpCAM for carcinoma; SOX10, MelanA/MART-1, S100, HMB45 for melanoma; CD30 with CD15 and weak PAX5 for Hodgkin Reed-Sternberg cells; Ki-67 often high | CD45, CD3, CD20, CD68 |
| T cell | CD3 with CD4 or CD8; FoxP3 (and CD25) for regulatory; CD4 and CD8 together for double-positive | CD20, CD68 |
| B cell / plasma | CD20, CD19, PAX5; CD138 (and CD38, IRF4/MUM1) for plasma cells, which lose CD20 | CD3 |
| NK | CD56, CD57, granzyme B without CD3 | CD3 |
| Myeloid: macrophage / monocyte / DC | CD68, CD163, CD14, CD11b, CD11c, HLA-DR; CD11c with HLA-DR and without CD68 for dendritic cells; CD123 or CD303 for plasmacytoid DC | CD3, CD20, cytokeratin |
| Granulocyte / mast | CD15 or CD66b (neutrophil), CD117 or tryptase (mast), eosinophil peroxidase | CD3, CD68 |
| Endothelium | CD31, CD34, VWF; podoplanin or LYVE-1 for lymphatic | keratin |
| Fibroblast / stroma / smooth muscle | vimentin, collagen I, PDGFR-β, FAP; α-SMA (with desmin for muscle) | CD45, keratin |
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.
- 20d ago First seen · 173 lines · 156 tokens per session scan A c8d852b3bb1f
marker-panel-annotation is a skill published in the GitHub repository synthetic-sciences/openscience (4,025 stars, last pushed today), licensed Apache-2.0. It adds 156 tokens to every session and 2,623 once invoked, about $0.0006 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-27.
Other skills, from other repositories
tool-prompt-optimization
Optimize the description prompts an AI agent reads to learn its built-in tools (the .md files under prompts/tools/). Two halves: (1) measure how much of a prompt is already inferable from the tool's JSON parameter schema + name, to prune redundancy with evidence; (2) house authoring rules for what belongs in a tool…
x-cpu
Display CPU information and detect system endianness. Shows model, cores, frequency, vendor, cache size. Dependency: This is an x-cmd module. Install x-cmd first (see x-cmd skill for installation options). see x-cmd skill for installation.
prompt
Prompt engineering conventions for x-cmd — reuse via template variables, structure rules, safety enforcement patterns.
x-ohmyposh
Oh-My-Posh prompt theme engine with theme management. Cross-platform tool to render your prompt with consistent experience. Auto-downloads oh-my-posh binary if not available. Dependency: This is an x-cmd module. Install x-cmd first (see x-cmd skill for installation options). see x-cmd skill for installation.
cerna-analysis
Use when building a ceRNA regulatory network from a key gene list by combining bundled miRNA-mRNA and miRNA-lncRNA database files, with flat-file CSV exports and PDF visualization in a single output directory. NOT for: differential expression, single-cell analysis, enrichment analysis, or workflows without a key gene…
cibersort-immune-infiltration-analysis
Use when estimating relative immune cell infiltration from a bulk expression matrix with a CIBERSORT-style nu-SVR deconvolution workflow based on an LM22 signature matrix, comparing one case group against one control group, and generating structured tables plus immune-fraction plots. NOT for single-cell RNA-seq…