Skip to content
Back to skills

Ssgsea Immune Infiltration Analysis

ASecurity

Use when estimating immune infiltration from bulk RNA-seq expression matrices with ssGSEA/GSVA, comparing case versus control groups, and generating downstream immune-score visualizations. NOT for single-cell RNA-seq, absolute cell proportion estimation, or clinical decision making.

  • 1,793 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added June 6, 2026
datagobashexpresstestinggit

Works with

  • cli

Security analysis

A100/100

Pro scans all 16 files and shows the line behind each finding

Scanned June 6, 2026

npx -y skills add aipoch/medical-research-skills --skill ssgsea-immune-infiltration-analysis --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ssgsea Immune Infiltration Analysis?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Ssgsea Immune Infiltration Analysis
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/aipoch-ssgsea-immune-infiltration-analysis/badge)](https://www.skillsdirectory.com/skills/aipoch-ssgsea-immune-infiltration-analysis)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: ssgsea-immune-infiltration-analysis
description: Use when estimating immune infiltration from bulk RNA-seq expression matrices with ssGSEA/GSVA, comparing case versus control groups, and generating downstream immune-score visualizations. NOT for single-cell RNA-seq, absolute cell proportion estimation, or clinical decision making.
license: MIT
author: AIPOCH
---
> **Source**: [https://github.com/aipoch/medical-research-skills](https://github.com/aipoch/medical-research-skills)

# ssGSEA Immune Infiltration Analysis

## When to Use

- Estimate relative immune infiltration from a bulk RNA-seq expression matrix.
- Compare immune enrichment scores between one case group and one control group.
- Generate structured result tables plus optional PDF visualizations for downstream review.

## When Not to Use

- Single-cell RNA-seq or spatial transcriptomics.
- Absolute immune cell proportion estimation or deconvolution.
- Clinical diagnosis, treatment recommendation, or any other medical decision making.

## Workflow

1. Confirm that the expression matrix, group file, and gene-set file match the documented schemas.
2. Run `scripts/main.R` with the target case and control groups.
3. Review `run_record.txt`, `output_manifest.txt`, and the generated tables or plots.
4. If execution fails, read `references/troubleshooting.md` before retrying.

## 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` | Method assumptions and interpretation |
| Encounter an error | `references/troubleshooting.md` | Error codes and fixes |
| Need CLI examples or baseline execution details | `references/cli-guide.md` | Examples and recorded run details |
| Need dependency declarations | `DESCRIPTION` | Package list and Bioconductor source note |
| Need test commands | `tests/run_tests.R` | End-to-end test entry |

## Usage

```bash
Rscript scripts/main.R \
  --input_file ./expression_matrix.csv \
  --group_file ./group_info.csv \
  --gene_set ./immune_gene_sets.csv \
  --case_group treatment \
  --control_group control \
  --output_dir ./output \
  --method ssgsea \
  --seed 42
```

Validated path note:

- `ssgsea` is the default validated path.
- `gsva` is supported, but only with kernels validated in the local GSVA environment.
- In the current audited environment, `gsva` with `Gaussian` completed successfully and is the documented baseline.

## 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 |
| `-e` | `--gene_set` | file | `tests/data/immune_gene_sets.csv` | Immune gene-set CSV |
| `-a` | `--case_group` | string | required | Case group label |
| `-b` | `--control_group` | string | required | Control group label |
| `-o` | `--output_dir` | dir | `./output` | Output directory |
| `-m` | `--method` | string | `ssgsea` | GSVA method: `ssgsea`, `gsva` |
| `-k` | `--kcdf` | string | `Gaussian` | Kernel mode: `Gaussian`, `Poisson`; `Gaussian` is the validated GSVA baseline |
| `-n` | `--min_sz` | integer | `2` | Minimum overlap genes per gene set |
| `-x` | `--max_sz` | integer | `10000` | Maximum genes per gene set |
| `-p` | `--parallel_sz` | integer | `2` | Requested parallel CPU count |
| `-u` | `--tau` | numeric | `0.25` | Tau parameter for ssGSEA |
| `-d` | `--mx_diff` | boolean | `true` | GSVA `mx.diff` switch |
| `-c` | `--gene_id_case` | string | `upper` | Gene ID normalization: `asis`, `upper`, `lower` |
| `-s` | `--seed` | integer | `42` | Random seed |
| `-t` | `--timeout_seconds` | integer | `0` | Optional timeout; `0` disables it |
|  | `--sample_col` | string/int | none | Sample column name or 1-based index |
|  | `--group_col` | string/int | none | Group column name or 1-based index |
|  | `--make_plots` | boolean | `true` | Generate PDF plots |
|  | `--verbose` | boolean | `true` | Print progress logs |

## Input Format

### Expression Matrix

CSV or TSV. The first column must contain gene identifiers. Remaining columns are sample-level numeric expression values.

```csv
gene,Sample1,Sample2,Sample3
TP53,10.2,8.5,9.1
CXCL9,4.3,6.1,5.7
```

### Group File

CSV or TSV with at least one sample column and one group column.

```csv
sample,group
Sample1,control
Sample2,treatment
Sample3,treatment
```

### Gene Set File

CSV with `gene` and `cell_type`; `immunity_class` is optional.

```csv
gene,cell_type,immunity_class
CXCL9,Activated CD8 T cell,Adaptive
CD3D,Activated CD8 T cell,Adaptive
```

## Output Files

| File | Description |
|------|-------------|
| `data/ssgsea_list.rds` | Serialized analysis result object |
| `table/ssgsea_scores_long.csv` | Long-format immune infiltration scores |
| `table/ssgsea_scores_wide.csv` | Wide-format immune infiltration score matrix |
| `table/ssgsea_group_compare.csv` | Case-vs-control comparison summary |
| `table/immune_cell_correlation_matrix.csv` | Immune-cell Spearman correlation matrix |
| `table/immune_cell_correlation_pvalue.csv` | Correlation p-value matrix |
| `plot/immune_cell_composition_sample.pdf` | Sample-level composition plot; generated only when `--make_plots=true` |
| `plot/immune_group_boxplot.pdf` | Group comparison boxplot; generated only when `--make_plots=true` |
| `plot/immune_correlation_heatmap.pdf` | Immune-cell correlation heatmap; generated only when `--make_plots=true` |
| `plot/gene_immune_correlation_scatter_*.pdf` | Auto-selected gene-vs-cell scatter plot; generated only when `--make_plots=true` |
| `run_record.txt` | Structured execution record |
| `output_manifest.txt` | Output file manifest with descriptions |
| `session_info.txt` | R session information |

## Error Handling

| Error | Cause | Solution |
|-------|-------|----------|
| `SKILL_FILE_NOT_FOUND` | Input file path is invalid | Check file paths |
| `SKILL_MISSING_COLUMNS` | Required columns are absent | Fix the input schema |
| `SKILL_EMPTY_DATA` | No usable rows, gene sets, or aligned samples remain | Check IDs and filters |
| `SKILL_INVALID_PARAMETER` | CLI value is invalid or data is malformed | Review arguments and file content |
| `SKILL_SAMPLE_MISMATCH` | Expression and group samples do not align | Harmonize sample identifiers |
| `SKILL_PACKAGE_NOT_FOUND` | Required R package is missing | Install the missing package |
| `SKILL_TIMEOUT` | The configured time limit was exceeded | Increase `--timeout_seconds` or disable it with `0` |

## Testing

```bash
Rscript scripts/main.R --help

Rscript tests/run_tests.R

Rscript tests/test_skill.R
```

`tests/test_skill.R` is self-contained: if expected outputs are absent, it first runs `tests/run_tests.R` and then validates both file presence and core result structure.

Files in this skill

  • SKILL.md6.8 KB
  • eval_report_ssgsea-immune-infiltration-analysis_result.json13.3 KB
  • references/algorithm.md1.4 KB
  • references/cli-guide.md7.3 KB
  • references/troubleshooting.md2.2 KB
  • scripts/cli_options.R3.7 KB
  • scripts/functions.R3.6 KB
  • scripts/io.R5.2 KB
  • scripts/main.R1.5 KB
  • scripts/recording.R1023 B
  • scripts/run_analysis.R7.5 KB
  • scripts/utils.R2.8 KB
  • scripts/visualization.R4.1 KB
  • tests/data/group_info.csv2.7 KB
  • tests/data/immune_gene_sets.csv27.6 KB
  • tests/run_tests.R3.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.