机器学习在癌症分子亚型分类中的应用
学习笔记:机器学习在癌症分子亚型分类中的应用——Cancer Cell 研究解析
1. 文章基本信息
- 标题:Classification of non-TCGA cancer samples to TCGA molecular subtypes using machine learning
- 发表期刊:Cancer Cell
- 发表时间:2025 年,第 53 卷,第 2 期
- 研究目标:
- 开发机器学习分类器,用于将非 TCGA 样本映射到TCGA 定义的分子亚型。
- 支持多组学数据整合(mRNA、DNA 甲基化、CNV、突变、miRNA),提高分类准确度。
- 提供标准化工具(Docker 容器化),使研究和临床应用更便捷。
2. 文章的主要行文思路
(1) 引言(Introduction)
- 介绍癌症传统分类方法(基于组织学和解剖学分类)的局限性。
- 介绍 TCGA 数据集在癌症亚型研究中的重要性。
- 说明当前分子亚型分类方法在非 TCGA 样本上的应用挑战。
- 提出研究目标:使用机器学习方法开发分类器,将非 TCGA 样本归类到 TCGA 定义的亚型。
(2) 方法(Methods)
- 数据来源:使用 TCGA 的多组学数据,包括 mRNA、DNA 甲基化、CNV、miRNA、突变数据。
- 机器学习方法:
- 使用五种 ML 方法(AKLIMATE、CloudForest、SKGrid、JADBio、subSCOPE)。
- 训练 8,791 个 TCGA 样本,涵盖 26 种癌症队列和 106 个分子亚型。
- 使用交叉验证评估模型性能,最终选出 737 个最优分类器。
- 外部验证:
- 采用 METABRIC 和 AURORA 乳腺癌数据集,测试模型的泛化能力。
(3) 结果(Results)
-
分类模型构建与性能评估:
- 统计不同数据类型对分类的贡献。
- 发现 mRNA 在大多数癌症亚型分类中起主导作用。
-
外部数据集验证:
- 评估不同 ML 方法在不同测序平台(RNA-seq vs. 微阵列)上的稳健性。
-
模型泛化能力:
- 发现 70 个样本足以预测分类器的最终性能。
- 研究不同癌症亚型对单一数据类型的依赖程度。
(4) 讨论(Discussion)
- TCGA 亚型分类的临床应用潜力:
- 预测新样本时,可提供标准化的癌症分子亚型信息。
- 未来可用于开发简化的癌症检测面板。
- 研究局限性:
- TCGA 数据可能未涵盖所有癌症亚型。
- 不同测序平台可能影响模型泛化能力。
(5) 结论(Conclusion)
- 研究提供了一个通用的分类框架,可用于非 TCGA 样本的 TCGA 亚型分类。
- 公开 737 个高性能分类器,可用于癌症检测和精准医学研究。
3. 文章的主要贡献
(1) 机器学习驱动的癌症分型
- 使用 5 种机器学习方法 训练 TCGA 数据:
- AKLIMATE
- CloudForest
- SKGrid
- JADBio
- subSCOPE
- 训练 412,585 个分类模型,最终筛选出 737 个最优模型。
- 提供 Docker 版本,保证可复现性和易用性。
(2) 多组学数据整合
- 研究分析了不同数据类型的贡献:
- mRNA 对大多数癌症亚型分类最关键。
- DNA 甲基化 在 LGG、GBM 等脑肿瘤分类中尤为重要。
- 突变数据(Mutations) 适用于黑色素瘤(SKCM)。
- 整合多种组学数据可提高分类准确度。
(3) 临床应用价值
- 提供 TCGA 亚型分类,提高癌症精准医学能力:
- 不同 TCGA 亚型的患者具有不同的预后和治疗策略。
- 例如:CMS1 结直肠癌(高 MSI-H)对 PD-1 免疫治疗敏感,而 CMS4 免疫排斥明显。
- 帮助医生和研究人员在新数据集中分类样本,指导精准治疗。
(4) 公开可用的工具
- 提供 Docker 容器,简化安装和使用。
- GitHub 代码公开,提高可复现性。
https://github.com/NCICCGPO/gdan-tmp-models
3. 作者的主要单位
单位 | 机构类型 | 研究重点 | 是否与临床相关 |
---|---|---|---|
Oregon Health & Science University (OHSU) | 医学中心 | 癌症基因组学、精准医学 | ✅ 高度相关 |
University of California, San Francisco (UCSF) | 医学中心 | 肿瘤学、精准医学 | ✅ 高度相关 |
Dana-Farber Cancer Institute (DFCI) | 癌症中心 | 肿瘤学、临床研究 | ✅ 高度相关 |
MD Anderson Cancer Center (UTMDACC) | 癌症医院 | 癌症治疗、精准医学 | ✅ 高度相关 |
National Cancer Institute (NCI) | 政府研究机构 | 癌症基因组、精准医学 | ✅ 高度相关 |
The Broad Institute (MIT & Harvard) | 研究机构 | 癌症基因组、药物开发 | ✅ 高度相关 |
University of California, Santa Cruz (UCSC) | 大学 | 计算生物学、生物信息学 | ❌ 主要是计算研究 |
King Abdullah University of Science and Technology (KAUST) | 大学 | 计算机科学、机器学习 | ❌ 主要是算法,不直接涉及临床 |
📌 结论:
- 该研究团队涵盖了癌症精准医学、基因组学、计算生物学、机器学习等多个领域,保证了该研究的高临床相关性和计算分析的前沿性。
4. 如何使用 Docker 进行数据处理
(1) 安装 Docker
首先,确保服务器已安装 Docker:
docker --version # 确认安装
如果未安装,可以运行以下命令安装:
sudo apt update
sudo apt install docker.io -y
sudo systemctl start docker
sudo systemctl enable docker
(2) 克隆 GitHub 仓库
git clone https://github.com/NCICCGPO/gdan-tmp-models.git
cd gdan-tmp-models
(3) 拉取 Docker 镜像
docker pull nciccpo/gdan-tmp-aklimate:latest
docker pull nciccpo/gdan-tmp-cloudforest:latest
docker pull nciccpo/gdan-tmp-skgrid:latest
docker pull nciccpo/gdan-tmp-jadbio:latest
docker pull nciccpo/gdan-tmp-subscope:latest
(4) 准备输入数据
mkdir -p ~/gdan-input
mkdir -p ~/gdan-config
将**RNA-seq 表达数据(FPKM/TPM)**放入 ~/gdan-input/
目录,并创建 YAML 配置文件 ~/gdan-config/config.yml
:
model: aklimate
input_data:mRNA: /data/mRNA_expression.csv
output:results: /data/prediction_results.csv
(5) 运行 Docker 进行 TCGA 亚型预测
docker run --rm --cpus=64 \-v ~/gdan-input:/data \-v ~/gdan-config:/config \nciccpo/gdan-tmp-aklimate:latest /config/config.yml
📌 参数解释
--cpus=64
:使用 64 核 CPU(可根据服务器性能调整)。-v ~/gdan-input:/data
:映射输入数据目录到/data
。-v ~/gdan-config:/config
:映射 YAML 配置文件目录到/config
。
(6) 查看预测结果
ls ~/gdan-input
cat ~/gdan-input/prediction_results.txt
或者:
import pandas as pd
df = pd.read_csv("~/gdan-input/prediction_results.csv")
print(df.head())
5. 结果解读
示例结果:
Sample_ID Predicted_TCGA_Subtype Confidence_Score
Sample_001 BRCA_LuminalA 0.95
Sample_002 LGG_IDH_Mutant 0.87
Sample_003 SKCM_BRAF_Mutant 0.92
📌 解读
Predicted_TCGA_Subtype
:模型预测的 TCGA 亚型Confidence_Score
(0-1):置信度,越高表示分类越可靠- 如果置信度低(如 <0.7),说明该样本可能更偏向其他亚型或需要额外数据支持(如 DNA 甲基化)。
6. 结论
✅ 该研究基于 TCGA 数据,提供了精准的癌症亚型分类工具
✅ 支持 RNA-seq(mRNA)数据,适用于临床研究和精准医学
✅ 使用 Docker 容器化,保证可复现性,提供 737 个高性能分类器
✅ 有助于个性化治疗,如免疫治疗和靶向治疗策略的选择
📌 下一步
- 尝试用自己的 RNA-seq 数据跑一次分析
- 如果分类结果置信度较低,可考虑添加 DNA 甲基化或突变数据
- 如有问题,可以查看 Docker 日志:
docker logs <CONTAINER_ID>
相关文章:

机器学习在癌症分子亚型分类中的应用
学习笔记:机器学习在癌症分子亚型分类中的应用——Cancer Cell 研究解析 1. 文章基本信息 标题:Classification of non-TCGA cancer samples to TCGA molecular subtypes using machine learning发表期刊:Cancer Cell发表时间:20…...

Ansible自动化部署K8s集群一 Ansible的基础使用实战
一、Ansible介绍 1.安装ansible: yum install ansible -y 2.ansible的架构图: 3.ansible四部分: inventory:ansible管理的主机信息,包括ip地址、ssh端口、账号和密码等 modules:任务均由模块完成 plugins:增加ansible的核心功能 pla…...
ZooKeeper Watcher 机制详解:从注册到回调的全过程
引言 在分布式系统中,数据的实时性和一致性是至关重要的。ZooKeeper 通过其 Watcher 机制提供了一种高效的方式来监听数据变化或事件,从而使客户端能够在数据发生变化时立即收到通知。本文将深入探讨 ZooKeeper 的 Watcher 机制,具体包括客户…...
flutter_tools/gradle Unsupported class file major version 65 问题解决
1.问题定位 使用 命令 flutter doctor --verbose 可以查看当前项目中,使用的java的版本。 [✓] Android Studio (version 2024.2)• Android Studio at /Applications/Android Studio.app/Contents• Flutter plugin can be installed from:🔨 https…...

C++设计模式 - 模板模式
一:概述 模板方法(Template Method)是一种行为型设计模式。它定义了一个算法的基本框架,并且可能是《设计模式:可复用面向对象软件的基础》一书中最常用的设计模式之一。 模板方法的核心思想很容易理解。我们需要定义一…...

mysql查缺补漏
好文推荐: 【数据库】快速理解脏读、不可重复读、幻读-CSDN博客 再探幻读!什么是幻读?为什么会产生幻读,MySQL中是怎么解决幻读的?-CSDN博客 引擎 mysql默认引擎:innodb 1.支持行锁 2.支持事务 3.支持外键 索引…...

跨越边界,大模型如何助推科技与社会的完美结合?
点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 概述 2024年,大模型技术已成为人工智能领域的焦点。这不仅仅是一项技术进步,更是一次可能深刻影响社会发展方方面面的变革。大模型的交叉能否推动技术与社会的真正融合?2025年…...

哪吒闹海!SCI算法+分解组合+四模型原创对比首发!SGMD-FATA-Transformer-LSTM多变量时序预测
哪吒闹海!SCI算法分解组合四模型原创对比首发!SGMD-FATA-Transformer-LSTM多变量时序预测 目录 哪吒闹海!SCI算法分解组合四模型原创对比首发!SGMD-FATA-Transformer-LSTM多变量时序预测效果一览基本介绍程序设计参考资料 效果一览…...
前端【技术方案】浏览器兼容问题(含解决方案、CSS Hacks、条件注释、特性检测、Polyfill 等)
浏览器兼容性测试工具 https://www.browserstack.com/ HTML 兼容处理 问题1 - 不支持 HTML5 新标签 旧版浏览器(主要是 IE8 及以下)不支持 HTML5 新标签(如 <header>、<nav>、<article> 等) 解决方案 引入 H…...

荣耀手机Magic3系列、Magic4系列、Magic5系列、Magic6系列、Magic7系列详情对比以及最新二手价格预测
目录 荣耀Magic系列手机详细对比 最新二手价格预测 性价比分析 总结 以下是荣耀Magic系列手机的详细对比以及最新二手价格预测: 荣耀Magic系列手机详细对比 特性荣耀Magic3系列荣耀Magic4系列荣耀Magic5系列荣耀Magic6系列荣耀Magic7系列处理器骁龙888&#x…...

后盾人JS -- 模块化开发
开发模块管理引擎 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </he…...

CNN卷积神经网络多变量多步预测,光伏功率预测(Matlab完整源码和数据)
代码地址:CNN卷积神经网络多变量多步预测,光伏功率预测(Matlab完整源码和数据) 标题:CNN卷积神经网络多变量多步预测,光伏功率预测 一、引言 1.1 研究背景及意义 随着全球能源危机的加剧和环保意识的提升ÿ…...
深入 JVM 虚拟机:字符串常量池演变与 intern() 方法工作原理解析
🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall ︱vue3-element-admin︱youlai-boot︱vue-uniapp-template 🌺 仓库主页: GitCode︱ Gitee ︱ Github 💖 欢迎点赞 👍 收藏 ⭐评论 📝 如有错误敬请纠正! 前言 在 Java 开发中,字符串常量池(String Constant…...

单向/双向,单层/多层RNN输入输出维度问题
单向/双向,单层/多层RNN输入输出维度问题 RNN单层单向RNNRnn CellRnn 双层单向RNN单层双向RNN双层双向RNN RNN 单层单向RNN Rnn Cell 循环神经网络最原始的Simple RNN实现如下图所示: 下面写出单个时间步对应的Rnn Cell计算公式: 如果用矩阵运算视角来看待的话&…...
chromium-mojo
https://chromium.googlesource.com/chromium/src//refs/heads/main/mojo/README.md 相关类:https://zhuanlan.zhihu.com/p/426069459 Core:https://source.chromium.org/chromium/chromium/src//main:mojo/core/README.md;bpv1;bpt0 embedder:https://source.chr…...
ZooKeeper 的典型应用场景:从概念到实践
引言 在分布式系统的生态中,ZooKeeper 作为一个协调服务框架,扮演着至关重要的角色。它的设计目的是提供一个简单高效的解决方案来处理分布式系统中常见的协调问题。本文将详细探讨 ZooKeeper 的典型应用场景,包括但不限于配置管理、命名服务…...
缓存组件<keep-alive>
缓存组件<keep-alive> 1.组件作用 组件, 默认会缓存内部的所有组件实例,当组件需要缓存时首先考虑使用此组件。 2.使用场景 场景1:tab切换时,对应的组件保持原状态,使用keep-alive组件 使用:KeepAlive | Vu…...
YouBIP 项目
技术方案 难点 成效 项目背景 库存管理涉及大量数据,如何在前端实现高效的数据展示和交互是一个挑战。库存管理系统需要处理大量的入库、出库、盘点等操作,尤其是在大企业或多仓库场景下,高并发操作可能导致数据库锁争用、响应延迟等问题。…...

react概览webpack基础
react概览 课程介绍 webpack 构建依赖图->bundle 首屏渲染: 减少白屏等待时间 数据、结构、样式都返回。需要服务器的支持 性能优化 ***webpack干的事情 模块化开发 优势: 多人团队协作开发 可复用 单例:全局冲突 闭包 模块导入的顺序 req…...

DeepSeek 助力 Vue 开发:打造丝滑的步骤条
前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...

C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...

听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...