# ============================================================
# 10_summary.R —— 汇总输出与可复现报告（对应教程第 15 章）
# 用法：Rscript code/10_summary.R
# 目标：把整个课题的关键结果汇总成一份清单，供论文写作引用；
#       记录完整环境信息，保证可复现。
# ============================================================

## 1. 汇总关键结果文件
results_files <- list.files(c("data/processed", "results", "figures/results"),
                            recursive = TRUE, full.names = TRUE)
cat("== 课题关键产出文件 ==\n")
print(results_files)

## 2. 汇总表：生态位 × 通讯（如果有结果则读取）
if (file.exists("results/niche_communication_summary.csv")) {
  niche_summary <- read.csv("results/niche_communication_summary.csv")
  cat("\n== 各生态位通讯数量与强度 ==\n")
  print(niche_summary)
}

## 3. 汇总表：差异通路（重编程候选）
if (file.exists("results/differential_pathways.csv")) {
  path_df <- read.csv("results/differential_pathways.csv")
  cat("\n== 差异通路（重编程候选）==\n")
  print(head(path_df, 10))
}

## 4. 环境与版本（论文方法部分直接引用）
cat("\n== 分析环境 ==\n")
sessionInfo()

## 5. 写入文本报告（论文写作素材）
sink("results/analysis_summary.txt")
cat("肿瘤微环境空间生态位细胞通讯重编程分析——结果汇总\n")
cat("生成时间：", format(Sys.time(), "%Y-%m-%d %H:%M:%S"), "\n\n")
cat("== 关键产出文件 ==\n"); print(results_files)
if (exists("niche_summary")) { cat("\n== 生态位通讯汇总 ==\n"); print(niche_summary) }
if (exists("path_df")) { cat("\n== 差异通路 ==\n"); print(head(path_df, 10)) }
cat("\n== 环境信息 ==\n"); print(sessionInfo())
sink()
cat("汇总报告已写入 results/analysis_summary.txt\n")
