当前位置: 首页 > news >正文

scIDST:弱监督学习推断单细胞转录组数据中的疾病进展阶段

背景:患者来源组织中的单个细胞,每个都处于不同的病理阶段,因此这种细胞变异性阻碍了随后的差异基因表达分析。
结果:为了克服这种异质性问题,作者提出了一种新的深度学习方法,scIDST,该方法可以在弱监督框架下推断单个细胞的疾病进展水平。推断出的疾病细胞显示出疾病相关基因的显著差异表达,这在患者和健康受试者之间的比较分析中无法检测到。此外,作者证明了scIDST预训练模型适用于多个独立的数据资源,有利于推断与某些疾病相关的细胞。

  • scIDST是弱监督学习,但不是多实例学习

来自:Inferring Disease Progressive Stages in Single-Cell Transcriptomics Using Weakly-Supervised Deep Learning Approach

目录

  • 背景概述
  • scIDST用法

背景概述

在过去的几年中,单细胞技术迅速发展,并被应用在测量患者来源的组织,以更好地了解和对抗各种疾病。与健康供体数据的比较分析被广泛用于识别潜在的疾病相关细胞(比如NG分析报告)。患者来源的生物标本由不同病理阶段的细胞混合物组成,同样含有健康细胞。这种异质性模糊了患者和健康受试者之间的差异表达,进一步阻碍真正疾病相关基因表达模式的识别。

传统上,患者来源的单细胞数据的细胞异质性可以被基于聚类的方法解析。为了确定疾病特异性细胞状态,作者对来自帕金森病(PD)患者和健康的年轻和老年供者的中脑单细胞RNA-seq进行了聚类分析(例如Seurat的基于图的聚类),降维后难以识别出PD患者独有或主要的簇:
figs1

因此,为了准确从单细胞数据中发现与疾病相关的分子元素,基于疾病进展水平对细胞进行分类是至关重要的。目前,深度学习在推断单个细胞的疾病进展方面的应用有限。其中一个主要挑战可能是难以训练模型并从二元诊断信息(例如患者=1或健康供体=0)回归连续疾病进展水平。为了克服这些问题,作者提出了一种新的方法,scIDST,通过弱监督深度学习推断单细胞转录组谱中单个细胞的疾病进展水平。弱监督模型利用从一小部分标记数据集,并对大型不清晰数据集给出弱标签。作者证明,弱监督深度学习模型成功地分离出疾病相关基因表达异常的细胞,推断出不同数据源中的病变细胞。

scIDST用法

fig2

弱监督深度学习模型由三个主要步骤组成:i)自编码器引导的降维,ii)概率标签的生成,以及iii)使用多层人工神经网络对患病细胞进行分类。采用Tensorflow python库(v2.9.0)和Keras Tuner API (v1.1.2)实现。以下是scIDST的技术说明:

准备单细胞数据和二进制标签
作为输入,scIDST需要counts矩阵和二进制数据标签。二进制数据标签由用户根据患者/供体信息手动创建(例如PD患者为1,健康受试者为0),并保存为csv格式。标签是细胞水平的,PD患者的细胞标签全部为1。

预训练自编码器用于降维
该算法首先由一个自编码器组成,该编码器是一个人工神经网络,用于将scRNA-seq数据压缩到较低的维度。自编码器能够捕获数据之间的非线性关系,并且比其他降维方法(例如PCA)更适合大型复杂数据集。除解码器的输出层使用sigmoid函数外,在自编码器的每一层上采用双曲正切激活函数。该模型在10个epoch的归一化特征条形码矩阵上进行训练,使用优化器函数(例如Adam)最小化预测输出与输入之间的平方差和的平均值(即均方误差损失函数)。

分配标签概率
采用Reef/Snuba算法实现二元标签到概率标签的转换。简而言之,Reef/Snuba系统首先从一小部分降维单细胞数据集和二元标签中生成多个启发式算法,例如决策树。然后计算每个启发式模型的置信水平,以修剪低质量的启发式。Reef/Snuba迭代执行这些步骤(约50次),最终提供具有高质量启发式的概率标签。在scIDST管道中,10%的单细胞数据集被随机选择并用于开发启发式算法,然后将概率标签分配给其他90%数据集中的单个细胞。此过程重复多次(例如10次),并将概率标签的平均值用于后续分类器模型的训练。

Reef/Snuba算法生成的标签是概率标签,soft形式可以抗噪声,像知识蒸馏一样,从而削弱伪标签中的噪声影响。所以得到概率标签再训练分类器。因此,体现弱监督学习的主要是Reef/Snuba算法生成的标签这一步

相关文章:

scIDST:弱监督学习推断单细胞转录组数据中的疾病进展阶段

背景:患者来源组织中的单个细胞,每个都处于不同的病理阶段,因此这种细胞变异性阻碍了随后的差异基因表达分析。 结果:为了克服这种异质性问题,作者提出了一种新的深度学习方法,scIDST,该方法可以…...

Linux 下执行定时任务之 Systemd Timers

不知道 ECS 因为什么缘故,上面安装的 MySQL 服务老是不定期挂掉,本来想通过 Linux 得 Cron 配置个半小时的定时检测任务,结果一直没有执行,因此又尝试使用了 Systemd Timers 进行了重新配置,简要做个记录。 Systemd Ti…...

flutter 专题二 Flutter状态管理之Riverpod 0.8.4

一 、flutter 有哪些状态管理方式 Flutter的状态管理方式有很多,Redux、 Bloc、 MobX、Provider等等。单单一个Provider,我也见到了各种组合,例如ChangeNotifier Provider / StateNotifier Provider( freezed)。各…...

【Linux】从零开始使用多路转接IO --- poll

碌碌无为,则余生太长; 欲有所为,则人生苦短。 --- 中岛敦 《山月记》--- 从零开始使用多路转接IO 1 前言1 poll接口介绍3 代码编写4 总结 1 前言 上一篇文章我们学习了多路转接中的Select,其操作很简单,但有一些缺…...

Docker配置宿主机目录和网络映射

容器挂载宿主机目录 在Docker中,你可以通过-v或--volume选项将宿主机的目录挂载到容器中。这可以让你在容器和宿主机之间共享文件。 例如,如果你想将宿主机的/home/user/data目录挂载到容器的/data目录,你可以使用以下命令: do…...

第十七课 component组件解析

component组件解析 component组件的写法在众多组件写法中算是比较简单的&#xff0c;component组件结构组成如下&#xff1a; 1&#xff09;组件名 2&#xff09;组件模板 3&#xff09;利用Vue对象进行生成 基础示例&#xff1a; <div id"app"><test>…...

求余和求模是不是一样的,就要看看计算机中的 fix 和 floor 区别

在计算机中&#xff0c;fix和floor是两个不同的取整函数&#xff0c;它们各自有不同的取整规则。以下是fix和floor的详细区别&#xff1a; 一、定义与功能 fix函数 定义&#xff1a;fix函数是朝零方向取整的函数&#xff0c;即它会返回小于或等于&#xff08;对于正数&#xf…...

00 递推和递归的核心讲解

递归的步骤 说 f(n)含义返回/xx f(n)等价式子在第二步中观察趋势&#xff0c;发现边界值&#xff08;分类递归&#xff09;和终止值&#xff08;return&#xff09; 递归优化思路 记忆化 递推/动态规划的步骤 说f(n)含义循环 关系式列 初值 综上&#xff0c;题目分为两类&a…...

深度学习常用开源数据集介绍【持续更新】

DIV2K 介绍&#xff1a;DIV2K是一个专为 图像超分辨率&#xff08;SR&#xff09; 任务设计的高质量数据集&#xff0c;广泛应用于计算机视觉领域的研究和开发。它包含800张高分辨率&#xff08;HR&#xff09;训练图像和100张高分辨率验证图像&#xff0c;每张图像都具有极高…...

rust编写的系统监测器

系统监测器 技术栈 rusttaurivue3vue-echartsrsbuild 软件介绍 用于查看电脑的硬件信息&#xff0c;实时监测cpu&#xff0c;内存&#xff0c;硬盘&#xff0c;网络&#xff0c;进程等系统资源 图形化&#xff0c;动态化展示&#xff0c;美观实用 软件截图 下载 https:/…...

【MyBatis源码】CacheKey缓存键的原理分析

文章目录 Mybatis缓存设计缓存KEY的设计CacheKey类主体CacheKey组成CacheKey如何保证缓存key的唯一性 Mybatis缓存设计 MyBatis 每秒过滤众多数据库查询操作&#xff0c;这对 MyBatis 缓存键的设计提出了很高的要求。MyBatis缓存键要满足以下几点。 无碰撞&#xff1a;必须保证…...

034_Structural_Transient_In_Matlab结构动力学问题求解

结构动态问题 问题描述 我们试着给前面已经做过的问题上加一点有趣的东西。 结构静力学求解 当时求解这个问题&#xff0c;在最外面的竖直切面加载了一个静态的固定的力。下面我们试试看在上方的表面增加一个脉冲压力载荷。 采用统一的有限元框架&#xff0c;定义问题&…...

项目模块十五:HttpResponse模块

一、模块设计思路 存储HTTP应答要素&#xff0c;提供简单接口 二、成员变量 int _status; // 应答状态码 unordered_map<string, string> _headers; // 报头字段 string _body; // 应答正文 bool _redirect_flag; // 是否重定向信息 stri…...

推荐一款优秀的pdf编辑器:Ashampoo PDF Pro

Ashampoo PDF Pro是管理和编辑 PDF 文档的完整解决方案。程序拥有您创建、转换、编辑和保护文档所需的一切功能。根据需要可以创建特定大小的文档&#xff0c;跨设备可读&#xff0c;还可以保护文件。现在您还能像编辑Word文档一样编辑PDF! 软件特点 轻松处理文字 如 Microso…...

【系统架构设计师】2024年上半年真题论文: 论模型驱动架构设计方法及其应用(包括解题思路和素材)

更多内容请见: 备考系统架构设计师-专栏介绍和目录 文章目录 真题题目(2024年上半年 试题3)解题思路1、模型驱动架构能够为软件开发带来的好处2、模型驱动架构的开发过程论文素材参考真题题目(2024年上半年 试题3) 模型驱动架构设计是一种用于应用系统开发的软件设计方法…...

国内短剧源码短剧系统搭建小程序部署H5、APP打造短剧平台

​在当今的互联网时代&#xff0c;短剧作为一种新兴的娱乐形式&#xff0c;受到了越来越多用户的喜爱。为了提供更好的用户体验和满足用户需求&#xff0c;一个好的短剧系统需要具备多元化的功能和优质的界面设计。 本文将介绍国内短剧源码短剧系统搭建小程序部署H5、APP所需的…...

Java集合框架面试指南

Java集合框架面试指南 文章目录 Java集合框架面试指南ArrayList特点&#xff1a;LinkedList特点&#xff1a;ArrayDeque特点&#xff1a;PriorityQueue特点&#xff1a;HashMap特点&#xff1a;HashSet特点&#xff1a;LinkedHashMap特点LinkedHashMap经典用法 TreeMap特点Conc…...

八、MapReduce 大规模数据处理深度剖析与实战指南

MapReduce 大规模数据处理深度剖析与实战指南 一、绪论 在当今的大数据时代背景下&#xff0c;海量数据的处理已然成为企业及科研机构所面临的重大挑战。MapReduce 作为一种高效的分布式计算模型&#xff0c;在大规模数据处理领域中发挥着至关重要的作用。本文将深入阐释 MapR…...

开源免费的API网关介绍与选型

api网关的主要作用 API网关在现代微服务架构中扮演着至关重要的角色&#xff0c;它作为内外部系统通信的桥梁&#xff0c;不仅简化了服务调用过程&#xff0c;还增强了系统的安全性与可管理性。例如&#xff0c;当企业希望将内部的服务开放给外部合作伙伴使用时&#xff0c;直…...

OpenCV视觉分析之目标跟踪(5)目标跟踪类TrackerMIL的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 MIL 算法以在线方式训练分类器&#xff0c;以将目标从背景中分离出来。多重实例学习&#xff08;Multiple Instance Learning&#xff09;通过在…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…...

day52 ResNet18 CBAM

在深度学习的旅程中&#xff0c;我们不断探索如何提升模型的性能。今天&#xff0c;我将分享我在 ResNet18 模型中插入 CBAM&#xff08;Convolutional Block Attention Module&#xff09;模块&#xff0c;并采用分阶段微调策略的实践过程。通过这个过程&#xff0c;我不仅提升…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面&#xff0c;开源代码 作为一个电子罗盘模块&#xff0c;我们可以通过I2C从中获取偏航角yaw&#xff0c;相对于六轴陀螺仪的yaw&#xff0c;qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU&#xff1a;如何让RNN变得更聪明&#xff1f; 在深度学习的世界里&#xff0c;循环神经网络&#xff08;RNN&#xff09;以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而&#xff0c;传统RNN存在的一个严重问题——梯度消失&#…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中&#xff0c;将 long long 类型转换为 QString 可以通过以下两种常用方法实现&#xff1a; 方法 1&#xff1a;使用 QString::number() 直接调用 QString 的静态方法 number()&#xff0c;将数值转换为字符串&#xff1a; long long value 1234567890123456789LL; …...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

云原生玩法三问:构建自定义开发环境

云原生玩法三问&#xff1a;构建自定义开发环境 引言 临时运维一个古董项目&#xff0c;无文档&#xff0c;无环境&#xff0c;无交接人&#xff0c;俗称三无。 运行设备的环境老&#xff0c;本地环境版本高&#xff0c;ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)

本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...