视觉画布设计
canvas-design
基于设计原则创作静态视觉作品,用于海报与品牌图形。
km-survival-curve【文档与办公】Use when generating Kaplan-Meier survival curves from tabular survival data containing time, event status, and a precomputed risk group. Supports command-line parameter input, parameter validation, automatic time-unit handling, single-file PDF figure export, and session metadata capture.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Use this skill to run Kaplan-Meier survival analysis on a tabular dataset and export a single PDF survival figure.
Rscript scripts/main.R \
--input_file <input_file> \
--output_dir <output_dir> \
--time_col <time_column> \
--status_col <status_column> \
--risk_col <group_column>
Rscript is available in the shell.optparse, data.table, survival, survminer, ggplot2.Rscript -e 'install.packages(c("optparse", "data.table", "survival", "survminer", "ggplot2"), repos="https://cloud.r-project.org")'.| Argument | Required | Description |
|---|---|---|
--input_file | Yes | Input data file in CSV or tab-delimited TXT/TSV format |
--output_dir | No | Output directory, default ./KM_Results |
--time_col | No | Survival time column, default futime |
--status_col | No | Event status column, default fustat |
--risk_col | No | Risk group column, default risk_group |
--time_unit | No | Time unit label: year, month, or day, default year |
--auto_convert_days | No | Heuristically convert large time values from days when time_unit is year or month, default true |
--statistics_method | No | logrank or wald, default logrank |
| Argument | Default | Description |
|---|---|---|
--figure_width | 10 | Figure width in inches |
--figure_height | 7 | Figure height in inches |
--figure_family | sans | Font family |
--title_x | Time | X-axis title. If left as default, the script renders Time (<time_unit>) |
--title_y | Survival probability | Y-axis title |
--title_main | empty | Plot title |
--legend_position | top | top, bottom, left, right, none |
--legend_show | true | Whether to show legend |
--legend_title | empty | Legend title |
--line_type | solid | Survival line type: solid, dashed, dotted, dotdash, longdash, twodash |
--line_size | 1 | Survival line width |
--line_colors | #4DBBD5,#E64B35,#00A087,#3C5488,#F39B7F,#8491B4,#91D1C2,#DC0000 | Comma-separated group colors |
--censor_show | true | Whether to show censor markers |
--censor_size | 7 | Censor marker size |
--confidence_show | true | Whether to show confidence interval |
--confidence_alpha | 0.2 | Confidence band transparency |
--risk_table_show | true | Whether to show the risk table |
--risk_table_border | true | Whether to show the risk table border |
--risk_table_panel | false | Whether to show the risk table panel background |
--risk_table_size | 6 | Risk table font size |
--axis_title_size | 12 | Axis title font size |
--axis_text_size | 10 | Axis tick-label font size |
--legend_text_size | 11 | Legend text font size |
.txt inputs must be tab-delimited.time must contain finite non-negative numeric values.status must be coded as 0 for censored and 1 for event.--line_colors must provide at least one color per retained group when you override the default palette.--auto_convert_days true and max(time) > 365, the script assumes the retained time values are in days and converts them to the requested --time_unit when time_unit is year or month.--auto_convert_days true when the source time column is known to be in days.--auto_convert_days to avoid incorrect conversion.--statistics_method wald only supports exactly 2 retained groups; use logrank for multi-group comparisons.--line_type values are rejected before plotting.Example input:
id fustat futime risk_score risk_group GPR161 RIBC2
TCGA-C5-A1M5 1 5.62191780821918 -1.10702407761445 low 2.82521576230566 5.35318564979635
TCGA-VS-A94W 0 3.40547945205479 -0.671246677921865 high 4.26241812321536 4.00802068790173
Bundled test datasets:
tests/data/km_sample1.txt: baseline KM example with risk_grouptests/data/km_sample2.txt: alternate cohort for plotting and statistics examplestests/data/km_sample3.txt: additional cohort for validation and repeated testingscripts/main.R with the requested output directory and any optional plot parameters.km-plot.pdf.If you omit --input_file, the script exits with SKILL_MISSING_INPUT.
Expected output:
<output_dir>/
├── km-plot.pdf
└── session_info.txt
max(time) > 365; it does not infer the true source unit from metadata.--auto_convert_days false.time_unit is year or month.km-plot.pdf may not be byte-identical across repeated runs because PDF metadata and graphics-device output can vary.| Need | File |
|---|---|
| Kaplan-Meier method details and interpretation | references/algorithm.md |
| More CLI examples | references/cli-guide.md |
| Error diagnosis | references/troubleshooting.md |
| Main execution entry point | scripts/main.R |
| Sample test data | tests/data/km_sample1.txt, tests/data/km_sample2.txt, tests/data/km_sample3.txt |
Basic Kaplan-Meier analysis:
Rscript scripts/main.R \
--input_file tests/data/km_sample1.txt \
--output_dir tests/output_basic
Custom column names:
Rscript scripts/main.R \
--input_file tests/data/km_sample1.txt \
--time_col futime \
--status_col fustat \
--risk_col risk_group \
--output_dir tests/output_custom_columns
Custom plot title:
Rscript scripts/main.R \
--input_file tests/data/km_sample2.txt \
--title_main "Study KM Curve" \
--output_dir tests/output_title
Hide confidence interval and risk table:
Rscript scripts/main.R \
--input_file tests/data/km_sample3.txt \
--confidence_show false \
--risk_table_show false \
--output_dir tests/output_simple
Rscript scripts/main.R --help
Rscript scripts/main.R \
--input_file tests/data/km_sample1.txt \
--output_dir tests/validation_output
After running analysis, verify that tests/validation_output/km-plot.pdf exists.
SKILL_FILE_NOT_FOUND: Input file path is wrong or inaccessible.SKILL_MISSING_COLUMNS: A requested time, status, or risk group column is missing.SKILL_INVALID_DATA: Input data is malformed or unsuitable for survival analysis.SKILL_INVALID_DATA: A continuous or near-unique risk column was supplied where a categorical group column is required.SKILL_INVALID_PARAMETER: An argument value is invalid.SKILL_INVALID_PARAMETER: Plotting options such as --line_type or --line_colors are incompatible with the retained groups.SKILL_INSUFFICIENT_DATA: Too few complete observations remain after filtering.SKILL_DEPENDENCY_MISSING: A required R package such as optparse or survival is unavailable.If the issue is not obvious, read references/troubleshooting.md.