Yuanclaw / archive /tests /test_pathway_module.R
huashu's picture
Export YuanSeq to Hugging Face without binary assets
7e6a9d1
Raw
History Blame Contribute Delete
3.41 kB
# 测试通路活性分析模块是否正确加载
# 运行此脚本来验证模块集成
cat("===================================================\n")
cat("通路活性分析模块测试\n")
cat("===================================================\n\n")
# 1. 检查模块文件是否存在
cat("1. 检查模块文件...\n")
if (file.exists("modules/pathway_activity.R")) {
cat(" ✅ modules/pathway_activity.R 存在\n")
} else {
cat(" ❌ modules/pathway_activity.R 不存在!\n")
quit(status = 1)
}
# 2. 检查 app.R 是否正确引用模块
cat("\n2. 检查 app.R 引用...\n")
app_content <- readLines("app.R", warn = FALSE)
if (any(grepl('source\\("modules/pathway_activity.R"\\)', app_content))) {
cat(" ✅ app.R 正确加载模块\n")
} else {
cat(" ❌ app.R 未加载模块!\n")
}
# 3. 检查模块调用
cat("\n3. 检查模块调用...\n")
if (any(grepl('pathway_activity_server\\(input, output, session, user_session, deg_results, kegg_results\\)', app_content))) {
cat(" ✅ 模块调用正确(包含 kegg_results 参数)\n")
} else if (any(grepl('pathway_activity_server', app_content))) {
cat(" ⚠️ 模块已调用但参数可能不正确\n")
for (i in seq_along(app_content)) {
if (grepl('pathway_activity_server', app_content[i])) {
cat(" 行", i, ":", app_content[i], "\n")
}
}
} else {
cat(" ❌ app.R 中未找到模块调用!\n")
}
# 4. 检查 UI 中的 tabPanel
cat("\n4. 检查 UI 定义...\n")
ui_content <- readLines("modules/ui_theme.R", warn = FALSE)
pathway_tab_lines <- grep('tabPanel.*通路活性', ui_content, value = TRUE)
if (length(pathway_tab_lines) > 0) {
cat(" ✅ UI 中找到通路活性标签\n")
for (line in pathway_tab_lines) {
cat(" ", line, "\n")
}
} else {
cat(" ❌ UI 中未找到通路活性标签!\n")
}
# 5. 检查模块函数签名
cat("\n5. 检查模块函数签名...\n")
module_content <- readLines("modules/pathway_activity.R", warn = FALSE)
func_def <- module_content[grepl('pathway_activity_server.*function', module_content)]
if (length(func_def) > 0) {
cat(" 找到函数定义:\n")
cat(" ", func_def, "\n")
if (grepl('kegg_results', func_def)) {
cat(" ✅ 函数签名包含 kegg_results 参数\n")
} else {
cat(" ❌ 函数签名缺少 kegg_results 参数!\n")
}
} else {
cat(" ❌ 未找到函数定义!\n")
}
# 6. 检查数据访问模式
cat("\n6. 检查数据访问模式...\n")
data_access <- module_content[grepl('kegg_results\\(\\)', module_content)]
if (length(data_access) > 0) {
cat(" ✅ 使用正确的数据访问模式: kegg_results()\n")
} else {
cat(" ⚠️ 未找到 kegg_results() 调用\n")
}
wrong_access <- module_content[grepl('input\\$kegg_results_for_pathway', module_content)]
if (length(wrong_access) > 0) {
cat(" ❌ 仍在使用错误的访问模式: input$kegg_results_for_pathway\n")
} else {
cat(" ✅ 没有使用错误的访问模式\n")
}
cat("\n===================================================\n")
cat("测试完成!\n")
cat("===================================================\n\n")
cat("建议:\n")
cat("1. 如果所有测试都通过,请重启 R 会话和应用\n")
cat("2. 清除浏览器缓存或使用无痕模式\n")
cat("3. 检查 RStudio 控制台是否有错误信息\n")
cat("4. 确认在 KEGG 分析完成后再运行通路活性分析\n")