肿瘤微环境可视化分析系统

Flask+SQLite+deck.gl 肿瘤微环境(TME)分析平台:单细胞与空间转录组导入、解卷积 Worker 队列、WebGL 空间渲染与验证基准,含 GEO 演示数据集,适合生物信息学可视化毕业设计。

评分:4.8/5.0
销量:74
发布:5/22/2026
难度:L3 高级

获取完整源码

演示视频仅作效果参考。完整源码、项目说明与运行答疑,请私聊沟通(适合毕业设计 / 课程设计 / 课设参考)。

获取完整源码观看演示视频
含项目说明文档,便于对照学习
可本地运行,适合课设演示
沟通获取后可咨询运行问题

项目封面

截图 1

项目概览

系统整合 datasets/tasks/visualization/reports/validation 蓝图,core/processing 执行解卷积,frontend workspace 页 ECharts+deck.gl 交互,支持多项目隔离、角色权限、GEO 自动转换导入与 PDF/JSON 报告。内置 lung/breast/PDAC 等 GEO 样例与 public_demo 演示数据,verify_graduation.py 可自动化验收,适合 Python 生物信息、空间组学与 WebGL 可视化类毕业设计。

项目说明

肿瘤微环境可视化分析系统


一、项目概述

本系统是一个面向肿瘤微环境(Tumor MicroEnvironment, TME)研究的可视化分析平台,整合单细胞转录组与空间转录组数据,提供从数据导入、解卷积计算到交互式空间可视化的全链路分析能力。系统采用 Flask + SQLite 后端、原生 JavaScript + deck.gl (WebGL) 前端架构,支持多项目隔离、角色权限管理与科研验证闭环。


二、目录结构说明

flask/
├── backend/                    # Flask 应用层
│   ├── app.py                  # 应用工厂,注册蓝图与路由
│   ├── http_util.py            # 请求/响应工具函数
│   ├── scripts_init_db.py      # 数据库初始化入口
│   └── blueprints/             # API 蓝图(按领域拆分)
│       ├── auth_bp.py          #   认证与项目管理
│       ├── datasets_bp.py      #   数据集管理
│       ├── tasks_bp.py         #   解卷积任务
│       ├── visualization_bp.py #   可视化数据
│       ├── reports_bp.py       #   报告生成
│       ├── validation_bp.py    #   验证基准
│       └── ops_bp.py           #   审计与导入日志
│
├── core/                       # 核心业务逻辑层
│   ├── config.py               # 全局配置(路径、开关、超时)
│   ├── constants.py            # 细胞类型色板、必填列、阈值常量
│   ├── db.py                   # SQLite 连接与初始化
│   ├── errors.py               # 统一错误类型
│   ├── schemas.py              # Pydantic 请求校验模型
│   ├── security.py             # 鉴权、角色判断、项目权限
│   ├── path_utils.py           # 存储路径安全解析
│   ├── processing.py           # 解卷积计算主流程
│   ├── geo_import.py           # GEO 原始数据自动转换
│   ├── public_import.py        # 公开/远程数据导入
│   ├── quality.py              # 数据质量评分
│   └── services/               # 各领域的服务函数
│       ├── datasets.py         #   数据集增删查与导入
│       ├── tasks.py            #   任务队列管理
│       ├── visualization.py    #   可视化查询与导出
│       ├── reports.py          #   报告生成(PDF/JSON)
│       ├── validation.py       #   验证基准评估
│       └── ops.py              #   审计/导入日志查询
│
├── frontend/                   # 前端页面与静态资源
│   ├── login.html              # 登录/注册页
│   ├── workspace.html          # 工作台主页(核心交互页)
│   ├── index.html              # 入口跳转页
│   └── static/
│       ├── css/
│       │   └── styles.css      # 全局样式(深色主题)
│       └── js/
│           ├── api.js          # 后端 API 封装
│           ├── auth.js         # 登录/注册/鉴权逻辑
│           ├── workspace.js    # 工作台主控逻辑
│           ├── workspace-helpers.js  # 辅助工具(颜色、区域计算)
│           ├── workspace-charts.js   # ECharts 图表构建
│           ├── echart-panel.js       # ECharts 面板封装
│           ├── echarts-setup.js      # ECharts 全局配置
│           ├── echarts.min.js        # ECharts 库
│           ├── spatial-deck.js       # deck.gl WebGL 空间渲染引擎
│           └── toast.js              # 消息通知组件
│
├── worker/                     # 后台任务 Worker
│   └── worker.py               # 轮询 SQLite 队列,执行解卷积
│
├── scripts/                    # 辅助脚本
│   ├── init_db.py              # 数据库建表与默认用户
│   ├── prepare_geo_input.py    # GEO 原始数据打包为可导入 ZIP
│   └── verify_graduation.py    # 计算机设计自动化验收脚本
│
├── sql/                        # 数据库 DDL
│   └── schema_sqlite.sql       # 全部表结构定义
│
├── GEO/                        # GEO 原始数据集(5 套)
│   ├── 01_lung_GSE268049_GSE131907/
│   ├── 02_breast_GSE240212_scRef_GSE131907/
│   ├── 03_hepatoblastoma_GSE249965_scRef_GSE131907/
│   ├── 04_PDAC_GSE274103_scRef_GSE131907/
│   ├── 05_CRC_GSE267401_scRef_GSE131907/
│   └── README.md               # GEO 数据集说明
│
├── data/                       # 运行时数据
│   ├── app.db                  # SQLite 数据库文件
│   ├── output/                 # 解卷积计算结果(按数据集 ID 分目录)
│   └── raw/                    # 导入的原始数据
│       ├── imported/           #   用户上传/GEO 自动导入的数据
│       ├── public_demo/        #   内置演示数据(基础样例)
│       ├── public_tumor_core/  #   内置演示数据(肿瘤核心)
│       ├── public_immune_ring/ #   内置演示数据(免疫环)
│       ├── public_myeloid_bands/ # 内置演示数据(髓系条带)
│       ├── public_balanced_mix/  # 内置演示数据(混合均衡)
│       └── public_quadrants/     # 内置演示数据(四象限)
│
├── input/                      # 待导入 ZIP 包(GEO 转换后的输出)
│
├── reports/                    # 生成的报告文件
│   └── validation/             #   验证基准报告
│
├── 运行步骤必看/                # 运行说明文档
├── mac_run.sh                  # macOS 日常启动脚本
├── mac_setup_run.sh            # macOS 首次安装脚本
├── window_run.bat              # Windows 启动脚本
├── requirements.txt            # Python 依赖清单
└── 项目说明.md                  # 本文件

三、功能清单

3.1 用户与认证

功能说明
用户登录用户名 + 密码登录,返回 Bearer Token,有效期 24 小时
用户注册注册新账号,密码至少 6 位,角色可选 editor / viewer
修改密码验证原密码后修改,支持向后兼容历史哈希
Token 鉴权所有 API 请求携带 Bearer Token,自动校验有效期与撤销状态
角色权限editor 可执行写操作(导入、删除、运行任务);viewer 只读
项目隔离每个用户绑定项目,viewer 只能访问自己项目的数据

3.2 项目管理

功能说明
创建项目editor 角色可创建项目(名称 + 描述)
删除项目editor 角色可删除项目及其关联数据
项目列表按角色过滤:editor 查看全部,viewer 仅看所属项目

3.3 数据集管理

功能说明
ZIP 批量导入上传包含四份标准 CSV 的 ZIP,系统自动解压入库
多文件分项上传分别上传单细胞表达、单细胞元数据、空间表达、空间坐标、组织切片图
GEO 自动导入从本地 GEO 目录自动解析 Visium/10x 数据,转换为标准格式后入库
公开数据导入通过 URL 下载公开数据(支持 HTTP/本地 file://),自动解析归档
内置演示数据导入系统自带 6 套模拟数据(肿瘤核心、免疫环、髓系条带等),一键导入
数据集列表按项目过滤,显示名称、来源、版本、状态
数据集详情查看数据集元信息、输入资产清单、质量报告
删除数据集editor 角色可删除数据集及其输出文件
版本管理同一数据集支持多版本,可查看历史版本

3.4 数据质量检查

功能说明
空间数据校验检查坐标有效性、丰度值合法性、细胞类型数量
参考数据校验检查标记基因完整性、细胞类型标注完整性
质量评分百分制评分,按错误比例扣分(坐标 30 分、丰度 20 分、空细胞类型 20 分等)
通过/警告判定可用点位 ≥ 20、细胞类型 ≥ 2 且错误率 < 10% 为通过

3.5 解卷积任务

功能说明
提交任务对指定数据集提交解卷积任务(integration_deconvolution)
任务队列SQLite 生产者-消费者模型,Flask 入队,Worker 出队执行
任务轮询前端定时轮询任务状态,支持进度显示
30 分钟硬超时任务运行超过 30 分钟直接标记为 failed
任务删除editor 可删除失败或已完成的任务
任务指标汇总项目内任务成功率、平均耗时等指标

3.6 解卷积计算(Worker)

功能说明
签名投影模型基于单细胞参考构建细胞类型签名矩阵,投影到空间表达
NNLS 空间平滑非负最小二乘拟合 + 空间邻居平滑,优化丰度估计
UMAP 降维对空间点位表达谱进行 UMAP 嵌入,用于聚类可视化
桥接模式当仅有 spatial_spots + sc_reference 时,自动生成合成单细胞参考与空间表达
基因筛选按空间表达量与标记基因特异性排序,选择高区分度基因
置信度评估计算每个点位的解卷积置信度与不确定性比例
拟合质量报告 R²、ΔR²、告警等级(高/中/提示/无)
基准评估对比不同平滑参数组合,选择最优 alpha 和 k

3.7 可视化 — WebGL 空间图

功能说明
deck.gl 渲染基于 WebGL 的 ScatterplotLayer,高性能渲染数万空间点位
组织切片叠加在点位下方叠加组织切片图像(BitmapLayer)
深色主题深色背景 + 高饱和度色板,确保点位醒目
丰度映射点位大小与亮度随丰度值动态变化
细胞类型筛选按细胞类型显示/隐藏点位,未选中类型半透明
缩放平移支持 0.001x ~ 12x 缩放范围,首次加载自动适配全量区域
框选 ROI在空间图上框选感兴趣区域,自动计算区域统计
预设保存保存当前可视化参数(点大小、透明度、丰度阈值等)

3.8 可视化 — ECharts 图表

功能说明
ROI 细胞比例堆叠图展示左半区/右半区各细胞类型比例的堆叠柱状图
ROI 指标对比图对比两个区域的关键指标(平均丰度、主导细胞类型等)
UMAP 聚类图基于空间表达 UMAP 嵌入的散点图,按细胞类型着色
四象限热力矩阵将空间图分为四象限,展示各象限细胞组成
数据集对比跨数据集的统计对比

3.9 可视化 — 数据查询

功能说明
空间点位查询分页获取点位坐标、细胞类型、丰度(支持区域/类型/丰度过滤)
细胞类型图例获取数据集的细胞类型列表及对应颜色
统计概览点位总数、平均丰度、细胞类型分布
解卷积结果获取完整解卷积输出(模型名称、版本、各点位比例)
区域统计按空间范围聚合统计
空间点位导出导出点位数据为 JSON 或 CSV
组织切片图获取组织切片图像

3.10 报告生成

功能说明
数据集报告生成包含空间分析、模型评估、数据质量的解读报告(PDF/JSON)
空间形态解读自动计算四象限分布、主导细胞类型、空间拉伸方向
模型评估解读置信度、R²、告警等级、平滑参数等
建议动作根据结果质量给出后续分析建议

3.11 科研验证闭环

功能说明
准确性评估解卷积预测 vs 地面真值的 MAE 与主导类型一致率
稳定性评估平均置信度、不确定点位比例、变异系数稳定性
重复性评估两次独立运行的一致性(MAE、主导类型一致率)
综合评分准确性 45% + 稳定性 35% + 重复性 20% 加权综合分
按癌种汇总按癌种分组汇总各指标
按样本汇总按样本分组汇总各指标
验证报告生成验证基准报告(PDF/JSON)
告警机制根据综合分自动评定告警等级

3.12 运维与审计

功能说明
审计日志记录所有 API 请求的用户、方法、路径、状态码
导入日志记录每次数据导入的类型、来源、质量、错误信息
健康检查/health 端点快速检测服务可用性
内联 Worker可配置 BACKEND_INLINE_WORKER 使 Flask 同步执行任务(调试用)
演示数据禁用/api/demo-datasets/profiles 返回 410,防止虚假数据误用

3.13 数据准备脚本

功能说明
GEO 数据转换prepare_geo_input.py 将 GEO 原始归档(Visium RAW.tar + 单细胞矩阵)转换为标准四 CSV 打包 ZIP
Visium HDF5 支持自动检测并转换 10x HDF5 表达矩阵 + spatial.tar.gz
标记基因评分对单细胞矩阵进行细胞类型特异性评分,优先选择高区分度基因
细胞过滤排除 doublet/ambiguous/unknown 等低质量细胞类型
基因过滤排除管家基因、核糖体蛋白、血红蛋白、免疫球蛋白等
计算机设计验收verify_graduation.py 自动化测试全链路(登录→导入→解卷积→可视化→WebGL 检测)
数据库初始化init_db.py 建表并创建默认 admin 账号

四、细胞类型色板

细胞类型颜色说明
Tumor#ff3b4f红色,肿瘤细胞
T-cell#3b8bff蓝色,T 细胞
B-cell#22d3a7绿色,B 细胞
Myeloid#ffb020橙色,髓系细胞

系统同时支持 20+ 种扩展细胞类型(如 Fibroblasts、Endothelial cells、Macrophages 等),每种均有独立高饱和度配色,并在超出预设范围时自动使用 20 色回退色板。


五、技术栈

层级选型
后端框架Flask 3.0
数据库SQLite(本地单文件)
任务队列SQLite 轮询(生产者-消费者模型)
数据校验Pydantic 2.9
降维UMAP-learn 0.5
机器学习scikit-learn 1.5(NNLS 拟合)
HDF5 读取h5py 3.11
PDF 生成ReportLab 4.2
空间渲染deck.gl 9.2(WebGL 2)
图表ECharts 5
前端原生 HTML + CSS + JavaScript(ES Module)
默认端口8100

六、运行方式

脚本用途
mac_setup_run.shmacOS 首次安装:创建虚拟环境、安装依赖、初始化数据库、启动服务
mac_run.shmacOS 日常启动:Flask 后端 + Worker 后台运行
window_run.batWindows 启动脚本
python scripts/init_db.py单独初始化数据库
python scripts/prepare_geo_input.py从 GEO 数据生成可导入 ZIP
python scripts/verify_graduation.py计算机设计自动化验收
python worker/worker.py单独启动 Worker(支持 --once 单次执行)

默认账号:admin / admin123

获取完整源码

技术分类

包含内容

完整源码
项目说明文档
演示材料

适合方向

适合生物信息、计算机交叉毕业设计中 Flask 后端、SQLite 任务队列与 deck.gl 空间可视化方向;课题偏科研展示与数据分析闭环。

关于 AI源码

AI源码 整理计算机毕业设计、课程设计向的可运行项目参考,含说明文档与演示材料。完整源码请通过联系方式沟通获取。

QQ: 861077046
邮箱: 861077046@qq.com
已帮助 74+ 位同学完成选题参考
问能不能做我的题目

相关推荐

查看全部 →
社区医疗服务可视化系统
高级

社区医疗服务可视化系统

Spring Boot+Vue2 社区医疗服务可视化管理系统,面向社区医疗机构,含患者管理、预约挂号、病历药品管理与 ECharts 数据统计,集成 Shiro 权限与百度 AI 辅助,适合 Java 医疗信息化毕业设计。

SpringBootVue2MySQL
4.876
大学生在线焦虑测试系统
高级

大学生在线焦虑测试系统

专为大学生设计的在线心理健康评估平台,Spring Boot 3+Vue3 实现焦虑测评、在线咨询与个性化建议,支持学生、医生、管理员三角色,含 JWT 认证与 ECharts 结果分析,适合 Java 心理健康类毕业设计。

SpringBootVue2MySQL
4.833
社区医院儿童健康信息管理系统
高级

社区医院儿童健康信息管理系统

Spring Boot 3+Vue 3 社区医院儿童健康信息管理系统,支持儿童档案、健康测评、疫苗预约与在线咨询,JWT 认证含管理员、医生与普通用户三角色,适合 Java 医疗健康类毕业设计。

SpringBootVue2MySQL
4.827
AI在线问诊平台
高级

AI在线问诊平台

基于若依框架的 AI 在线问诊平台,管理端、医生端与患者端三端分离,支持 WebSocket 即时聊天、AI 辅助诊断与 ECharts 数据可视化,Spring Boot+Vue2 技术栈,适合 Java 医疗 AI 毕业设计。

SpringBootVue2MySQL
4.892
社区医院儿童健康信息管理系统(java)
高级

社区医院儿童健康信息管理系统(java)

Spring Boot 3+Vue3 社区医院儿童健康档案管理平台,含儿童档案录入、健康数据统计、就诊记录、疫苗接种与成长曲线追踪,JWT 认证与医生工作台,适合 Java 社区医疗类毕业设计。

SpringBootVue2MySQL
4.836
心理健康教育小程序
进阶

心理健康教育小程序

微信小程序原生开发的心理健康教育与自助服务系统,涵盖情绪管理、压力应对、正念冥想、心理测评与自助工具箱等模块,纯前端 Mock 数据实现,适合心理健康主题毕业设计。

小程序
4.854