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 agentmods add skills/mannlabs/proteomics-agent-skills/analyzing_proteomics_datanpx skills add MannLabs/proteomics-agent-skills --skill analyzing_proteomics_datagit clone --depth 1 https://github.com/MannLabs/proteomics-agent-skillsWrote 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/mannlabs/proteomics-agent-skills/analyzing_proteomics_data)<a href="https://agentmods.dev/skills/mannlabs/proteomics-agent-skills/analyzing_proteomics_data"><img src="https://agentmods.dev/badge/skills/mannlabs/proteomics-agent-skills/analyzing_proteomics_data.svg" alt="Measured on agentmods" 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.00106 | $0.01488 |
| Opus 5 | $0.00053 | $0.00744 |
| Sonnet 5 | $0.00021 | $0.00298 |
| Haiku 4.5 | $0.00011 | $0.00149 |
Grade A, and why
analyzing-proteomics-data 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 6d 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 — 176 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Analyzing Proteomics Data with alphapepttools
alphapepttools is a Python package that provides search engine-agnostic proteomics analysis compatible with the scverse ecosystem.
Structure
alphapepttools contains multiple subpackages:
.io: Read search engine outputs into standardized anndata format (see ./references/io-patterns.md)
.pp: Quality control and preprocess proteomics data
.tl: Statistical analysis of proteomics data (principal component analysis, differential expression)
.pl: Plotting and visualization functionalities
.metrics: Assess quality of analysis steps
Philosophy
alphapepttools formalizes best practices efforts. Function docstrings, contain recommended best practices, and code examples.
When considering using a method, ALWAYS check its docstring first. Carefully inspect the provided code snippets in the Examples section.
help(alphapepttools.tl.<function>)
Core Pattern: Layer Checkpointing
Every transformation should be checkpointed to a new layer for debugging, reproducibility, and rollback:
import alphapepttools as at
# Checkpoint raw data
adata.layers["raw"] = adata.X.copy()
# Transform and checkpoint each step
at.pp.nanlog(adata, base=2) # Modifies X inplace
adata.layers["log2"] = adata.X.copy()
at.pp.normalize(adata, strategy="total_mean")
adata.layers["normalized"] = adata.X.copy()
Workflow
Iterative Workflow with Decision Checkpoints
1. Load Data
adata = at.io.read_pg_table(path, search_engine="diann")
adata = at.pp.add_metadata(adata, metadata_df, axis=0)
2. Subsetting AnnData objects
Sample-level
adata = at.pp.filter_by_metadata(adata, filter_dict={"continuous_column1_in_obs": (0, 0.5), "continuous_column2_in_obs": (0, None), "categorical_column_in_obs": "A"}, action="keep", logic="and", axis=0)
# Keep all samples whose
# Values in continuous_column1_in_obs are in the range (0, 0.5)
# Values in continuous_column2_in_obs are in the range (0, infinity)
# Values in categorical_column_in_obs are category A
What ships with it
3 files 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.
- 6d ago First seen · 176 lines · 106 tokens per session scan A 3ced8ef389f5
analyzing-proteomics-data is a skill published in the GitHub repository MannLabs/proteomics-agent-skills (14 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 106 tokens to every session and 1,488 once invoked, about $0.0005 per session on Opus 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-08-30.
Other skills, from other repositories
proteomics-de
Load when computing two-group differential protein abundance (group2 vs group1, log2FC + p-value + BH-adjusted FDR) via Welch t-test, equal-variance t-test, or Mann-Whitney on a wide protein × sample CSV. Skip when you need multi-condition DE (run pairwise contrasts manually); label-based TMT linear-mixed models.
proteomics-enrichment
Load when running over-representation analysis (ORA) on a list of proteins via Fisher's exact test against a built-in 8-pathway DEMO dictionary, with BH-FDR correction. Skip when needing a real pathway database (this skill is demo-only) (use bulkrna-enrichment); rank-based GSEA.
proteomics-ptm
Load when summarising PTM sites (phosphorylation, acetylation, ubiquitination, etc.) from a per-site CSV — site-class assignment (Olsen et al. Class I/II/III by localizationprobability), per-PTM-type counts, amino-acid distribution, sites-per-protein. Skip when raw spectra are the input; you only need protein-level…
proteomics-quantification
Load when computing per-protein abundance from a peptide / PSM table via LFQ (intensity summation), iBAQ (intensity / tryptic peptide count), or spectral counting (PSMs per protein). Skip when the input is already protein-level (use proteomics-ms-qc); label-based TMT / iTRAQ workflows (search upstream first).
proteomics-structural
Load when summarising cross-linking MS (XL-MS) results — intra/inter-protein link split, optional FDR filtering, distance-constraint validation against a per-crosslinker (DSS / BS3 / EDC / DSSO / DSBU) max distance. Skip when raw spectra are the input (run XlinkX / pLink / xiSEARCH first); no XL-MS experiment was…
proteomics-data-import
Load when ingesting a MaxQuant proteinGroups.txt, FragPipe combinedprotein.tsv, DIA-NN report, or generic CSV / TSV protein-quantification table — normalises columns to a standard schema, emits tables/proteins.csv. Skip when raw spectra are the input (run the search engine first); the file is already OmicsClaw schema.