AI源码
AI源码AI 精选 · 优质源码 · 助力学习

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

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

评分:4.8/5.0
销量:74
发布:2026/5/22
难度:L2 进阶级
💬 联系咨询观看视频介绍
永久使用权限
免费更新维护
技术支持服务

项目封面

截图 1

项目说明

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


一、项目概述

本系统是一个面向肿瘤微环境(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

技术分类

包含内容

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

适用人群

学习参考与二次开发

关于 AI源码

AI源码 专注优质项目源码分享,提供完整源码、详细文档与技术支持,助力源码设计与课程作业。

QQ: 861077046
邮箱: 861077046@qq.com
已服务 74+ 位用户
立即咨询

相关推荐

查看全部 →
城市交通流量预测与拥堵成因分析系统
Python
进阶

城市交通流量预测与拥堵成因分析系统

是一个面向城市交通拥堵分析的 monorepo,覆盖计算机设计课题中的主要能力链路:

PythonHTMLSQLite
4.820
电商用户行为漏斗与CRO转化率优化分析
Python
NEW
进阶

电商用户行为漏斗与CRO转化率优化分析

电商用户行为漏斗与CRO转化率优化分析(E-Commerce Funnel CRO)是一套面向电商运营的数据分析平台,覆盖从用户访问到最终购买的完整漏斗链路,提供多维诊断、统计检验、PIE 优先级矩阵与 XGBoost 购买预测等能力,帮助运营团队精准定位转化瓶颈并制定优化策略。

PythonHTMLSQLite
4.866
多组学癌症预后预测分析系统
Python
进阶

多组学癌症预后预测分析系统

基于 Flask 的 Web 应用,用于上传 TCGA 风格合并表、做特征与标签概览、Cox 预后风险评分与生存相关可视化。模型在本地训练后以 形式加载,不提供旧版演示数据或假模型兜底。

PythonHTMLSQLite
4.834
基于 Apriori 算法的中药配伍审查系统
Python
NEW
进阶

基于 Apriori 算法的中药配伍审查系统

本系统是一个基于经典 Apriori 关联规则挖掘算法的中药配伍审查平台,使用真实中医药处方数据集(PTM-TKDE2018),实现药材频繁项集挖掘、关联规则生成与配伍禁忌审查。

PythonHTMLSQLite
4.840
基于 Python 的城市共享单车骑行需求时空分析系统
Python
NEW
进阶

基于 Python 的城市共享单车骑行需求时空分析系统

本系统是一个基于 Python Flask 框架的城市共享单车骑行需求时空分析平台,使用 Oslo City Bike(奥斯陆城市自行车)开放数据,提供系统总览、时间维度分析、空间维度分析、站点运营分析、OD 起讫流动分析、骑行需求预测、综合分析报告等功能模块,适用于城市共享单车运营调度与骑行需求研究场景。

PythonHTMLSQLite
4.857
基于 Python 的短视频用户行为分析系统
Python
NEW
进阶

基于 Python 的短视频用户行为分析系统

基于快手 KuaiRec / KuaiRand 数据集的短视频推荐分析平台,提供用户行为分析、推荐偏差检测、内容运营洞察、图神经网络推荐等完整分析链路。

PythonHTMLSQLite
4.875