Use when evaluating diagnostic biomarker performance from case-control expression data with logistic regression and ROC curves, exporting coefficient and AUC tables together with a ROC PDF. NOT for: survival analysis, time-to-event outcomes, multiclass classification, calibration curves, decision-curve analysis, or nomogram construction.
74
91%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Use this skill when you need to:
Typical user requests:
Do not use this skill for:
| Situation | File to Read | Purpose |
|---|---|---|
| Need algorithm details | references/algorithm.md | Logistic regression, ROC, AUC, and modeling assumptions |
| Need to run analysis | scripts/main.R | Execute Rscript scripts/main.R --expression_file ... --group_file ... |
| Encounter errors | references/troubleshooting.md | Common SKILL_* errors and solutions |
| Need CLI examples | references/cli-guide.md | Detailed command-line examples |
| Need test data | tests/data/ | Example expression matrix and group file |
Rscript scripts/main.R \
--expression_file ./expression_matrix.csv \
--group_file ./group_info.csv \
--marker_genes FOXP3,CD45,CD3E \
--case_group Disease \
--output_dir ./output/ \
--seed 42| Short | Long | Type | Default | Description |
|---|---|---|---|---|
-e | --expression_file | character | required | Expression matrix file in CSV/TSV format |
-g | --group_file | character | required | Group file with sample IDs and labels |
-m | --marker_genes | character | required | Comma-separated marker genes |
-c | --case_group | character | required | Case group label in the group file |
--group_col | character | NULL | Optional group column name; auto-detected if omitted | |
-o | --output_dir | character | ./output/ | Output directory |
--overwrite | flag | FALSE | Allow writing into a non-empty output directory | |
-s | --seed | integer | 42 | Random seed for reproducibility |
-T | --timeout_seconds | integer | 0 | Elapsed time limit in seconds; 0 disables timeout |
--plot_width | double | 6 | ROC plot width in inches | |
--plot_height | double | 6 | ROC plot height in inches | |
--font_family | character | sans | PDF font family | |
--line_colors | character | #E64B35,#4DBBD5,#00A087,#3C5488,#F39B7F | Comma-separated ROC line colors | |
--line_width | double | 1.2 | ROC curve line width | |
--show_diagonal | character | true | Show diagonal reference line: true or false | |
--diagonal_color | character | #7F7F7F | Diagonal line color | |
--diagonal_lty | integer | 2 | Diagonal line type | |
--plot_title | character | ROC Diagnostic Performance | ROC plot title | |
--x_label | character | 1 - Specificity | X-axis label | |
--y_label | character | Sensitivity | Y-axis label | |
--base_cex | double | 0.9 | Base text-size multiplier | |
--legend_position | character | bottomright | Legend position | |
--legend_cex | double | 0.8 | Legend text size |
expression_file)CSV or TSV file with genes as rows and samples as columns. The first column must store unique gene identifiers.
gene,Sample1,Sample2,Sample3
FOXP3,8.4,7.1,3.8
CD45,2.1,1.9,5.4
CD3E,5.8,6.2,4.0Requirements
.csv, .tsv, or .txt.group_file)CSV or TSV file with sample IDs in the first column and at least one group-label column.
sample,group
Sample1,Disease
Sample2,Disease
Sample3,ControlRequirements
.csv, .tsv, or .txt.case_group value must appear in the selected group column.| File | Description |
|---|---|
data/analysis_data.rds | Matched sample-level analysis dataset used for model fitting |
data/roc_model.rds | Saved logistic regression model bundle with data and selected genes |
table/model_coefficients.csv | Logistic regression coefficients, z statistics, p-values, and odds ratios |
table/roc_auc_summary.csv | AUC values for the full model and each marker |
plot/roc_curve.pdf | ROC curves for the full model and individual markers |
session_info.txt | Session information and run parameters |
| Column | Description |
|---|---|
term | Model term name |
estimate | Logistic regression coefficient |
std_error | Standard error of the coefficient |
z_value | Wald z statistic |
p_value | Wald test p-value |
odds_ratio | Exponentiated coefficient |
odds_ratio_95_ci | Odds ratio with 95% confidence interval |
| Column | Description |
|---|---|
model | Full model or marker name |
auc | Area under the ROC curve |
.rds files..csv files.Rscript scripts/main.R \
-e expression_matrix.csv \
-g group_info.csv \
-m FOXP3,CD45,CD3E \
-c Disease \
-o ./output/Rscript scripts/main.R \
-e expression_matrix.csv \
-g group_info.csv \
-m FOXP3,CD45,CD3E \
-c Disease \
--group_col diagnosis \
--plot_width 8 \
--plot_height 6 \
--plot_title "Biomarker ROC Comparison" \
--legend_position topright \
-o ./output/Rscript scripts/main.R \
-e tests/data/sample_expression_matrix.csv \
-g tests/data/sample_group_info.csv \
-m FOXP3,CD45,CD3E \
-c Disease \
-o tests/expected_output/ \
--overwrite| Error | Cause | Solution |
|---|---|---|
SKILL_INVALID_PARAMETER | Missing required argument, invalid option value, invalid matrix/group structure, invalid case label, insufficient case-control counts, or logistic fitting failure | Check argument names, input content, class balance, and model stability |
SKILL_FILE_NOT_FOUND | Input file does not exist | Verify the file path |
SKILL_EMPTY_DATA | Input file contains no usable rows, or no requested markers remain after filtering | Check file content, delimiter, and marker names |
SKILL_MISSING_COLUMNS | Requested group column is absent | Verify --group_col and the group file header |
SKILL_SAMPLE_MISMATCH | Expression matrix and group file do not share sample IDs | Verify that sample IDs match exactly between files |
SKILL_PACKAGE_NOT_FOUND | Required R package is not installed | Install the missing CRAN package |
IF error persists, READ: references/troubleshooting.md
Rscript scripts/main.R --help
Rscript scripts/main.R \
-e tests/data/sample_expression_matrix.csv \
-g tests/data/sample_group_info.csv \
-m FOXP3,CD45,CD3E \
-c Disease \
-o tests/expected_output/ \
--overwriteRscript tests/run_smoke_test.ROptional shell wrapper:
bash tests/run_smoke_test.shtests/expected_output/
|-- data/analysis_data.rds
|-- data/roc_model.rds
|-- plot/roc_curve.pdf
|-- session_info.txt
|-- table/model_coefficients.csv
`-- table/roc_auc_summary.csvFor detailed algorithm, READ: references/algorithm.md
optparseset.seed() for reproducibilityrequireNamespace() dependency checksSKILL.mdscripts/tests/data/SKILL_* codesreferences/Last updated: 2026-04-17 | Version: 2.1.0
63c61d3
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.