Medical Research Agent Skills is a library of agent instructions for medical and biomedical research, covering evidence analysis, study protocol design, data analysis, and academic writing. Researchers use it to guide compatible coding agents through common scientific workflows. The catalogue contains many of the library's skills and commands.
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 aipoch/medical-research-skills --skill cibersort-immune-infiltration-analysisgit clone --depth 1 https://github.com/aipoch/medical-research-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/aipoch/medical-research-skills/cibersort-immune-infiltration-analysis)<a href="https://agentmods.dev/skills/aipoch/medical-research-skills/cibersort-immune-infiltration-analysis"><img src="https://agentmods.dev/badge/skills/aipoch/medical-research-skills/cibersort-immune-infiltration-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/aipoch/medical-research-skills/cibersort-immune-infiltration-analysis"><img src="https://agentmods.dev/badge/skills/aipoch/medical-research-skills/cibersort-immune-infiltration-analysis.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00092 | $0.02443 |
| Opus 5 | $0.00046 | $0.01222 |
| Sonnet 5 | $0.00018 | $0.00489 |
| Haiku 4.5 | $0.00009 | $0.00244 |
Grade A, and why
cibersort-immune-infiltration-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 13d 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 — 205 lines — stays where its author put it; the contents beside it link to each section on GitHub.
CIBERSORT Immune Infiltration Analysis
When to Use
- Estimate relative immune cell fractions from a bulk expression matrix.
- Compare one case group against one control group after deconvolution.
- Generate structured tables, a serialized result object, and optional PDF plots.
When Not to Use
- Single-cell RNA-seq, spatial transcriptomics, or clustering tasks.
- Absolute clinical interpretation or treatment recommendation.
- Workflows that require the original online CIBERSORT service instead of a local R implementation.
Workflow
- Confirm that the expression matrix, group file, and signature matrix are available.
- Run
scripts/main.Rwith the case and control groups. - Review the full result table, derived summary tables, and optional plots.
- Inspect
run_record.txtandoutput_manifest.txtafter each run, including failed validation attempts.
When to Read External Files
| Situation | File to Read | Purpose |
|---|---|---|
| Need to run the analysis | scripts/main.R |
CLI entry point |
| Need algorithm details | references/algorithm.md |
HQ reference workflow and result interpretation |
| Encounter an error | references/troubleshooting.md |
Error codes and environment fixes |
| Need CLI examples or the baseline record | references/cli-guide.md |
Example commands and validation notes |
| Need packaged test inputs | tests/data/ |
Demo expression matrix, group file, and LM22 file |
Usage
Rscript scripts/main.R \
--input_file ./expression_matrix.csv \
--group_file ./group_info.csv \
--signature_file ./LM22.txt \
--case_group treatment \
--control_group control \
--output_dir ./output \
--qn false \
--seed 42
Arguments
| Short | Long | Type | Default | Description |
|---|---|---|---|---|
-i |
--input_file |
file | required | Expression matrix with genes as rows and samples as columns |
-g |
--group_file |
file | required | Group annotation table |
-a |
--case_group |
string | required | Case group label |
-b |
--control_group |
string | required | Control group label |
-o |
--output_dir |
dir | ./output |
Output directory |
--signature_file |
file | tests/data/LM22.txt when present |
Signature matrix file | |
--sample_col |
string/int | none | Optional sample column name or 1-based index | |
--group_col |
string/int | none | Optional group column name or 1-based index | |
--gene_id_case |
string | upper |
Gene ID normalization: asis, upper, or lower |
|
--auto_unlog |
boolean | true |
Apply 2^x only if the expression matrix passes a conservative log-scale heuristic |
|
--min_mean_expression |
numeric | 1 |
Minimum mean expression before deconvolution | |
--perm |
integer | 1000 |
Permutation count for empirical p-value estimation; 0 keeps the run lightweight but records P-value as NA |
|
--qn |
boolean | true |
Apply quantile normalization to the mixture matrix | |
--svm_cores |
integer | 1 |
Worker count for the nu-SVR model selection step | |
--make_plots |
boolean | true |
Generate PDF plots | |
--plot_width |
numeric | 16 |
Default plot width in inches | |
--plot_height |
numeric | 10 |
Default plot height in inches | |
-s |
--seed |
integer | 42 |
Random seed |
-t |
--timeout_seconds |
integer | 0 |
Optional timeout in seconds; 0 disables it |
--verbose |
boolean | true |
Print progress logs |
What ships with it
19 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.
- eval_report_cibersort-immune-infiltration-analysis_result.json 19 KB
- references/algorithm.md 3.7 KB
- references/cli-guide.md 7.8 KB
- references/troubleshooting.md 5.0 KB
- scripts/cli_options.R 3.9 KB
- scripts/deconvolution.R 2.7 KB
- scripts/functions.R 4.6 KB
- scripts/io.R 5.9 KB
- scripts/main.R 2.6 KB
- scripts/recording_helpers.R 2.2 KB
- scripts/recording_reports.R 5.5 KB
- scripts/recording.R 106 B
- scripts/run_analysis.R 9.1 KB
- scripts/utils.R 3.1 KB
- scripts/visualization.R 2.6 KB
- tests/data/expression_matrix.csv 39 KB
- tests/data/group_info.csv 202 B
- tests/data/LM22.txt 143 KB
- tests/run_tests.R 4.1 KB
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.
- 13d ago First seen · 205 lines · 92 tokens per session scan A 60ddb05f5401
cibersort-immune-infiltration-analysis is a skill published in the GitHub repository aipoch/medical-research-skills (1,860 stars, last pushed 1mo ago), licensed MIT. It adds 92 tokens to every session and 2,443 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
fragment-based-count-matrix-generation
Use when you have a backed AnnData object containing processed fragment data (stored in .obsm['fragmentpaired'] or .
methylbase-object-handling
Use when after reading in per-sample methylation call files with methRead() and obtaining methylRawList objects, but before calculating differential methylation or performing annotation.
motif-annotation-correlation-analysis
Use when you have a chromVARDeviations object with multiple annotation sets (such as JASPAR motifs and kmers) and need to determine which annotation pairs are redundant (high correlation) versus synergistic (high synergy z-scores).
motif-database-query-and-matching
Use when you have a set of differentially accessible peaks (output from differential accessibility testing, e.g., tl.
motif-enrichment-statistical-testing
Use when after identifying a set of differentially accessible peaks (via tl.difftest or equivalent), when you need to infer which transcription factors may regulate the observed chromatin state changes.
motif-peak-overlap-matching
Use when you have a filtered set of non-overlapping peaks from ATAC-seq data and a collection of motifs (typically from JASPAR or similar databases), and you need to identify which peaks contain matches to which motifs as a prerequisite for computing motif-based deviation scores across samples.