中山六院团队发表可解释多模态融合模型Brim,可以在缺少分子数据时借助病理图像模拟生成伪基因组特征|顶刊解读·25-02-14
小罗碎碎念
在癌症诊疗领域,精准预测患者预后对临床决策意义重大。传统的癌症分期系统,如TNM分期,因无法充分考量肿瘤异质性,难以准确预测患者的临床结局。而基于人工智能的多模态融合模型虽有潜力,但在实际临床应用中,患者多模态数据不完整的问题限制了其发挥。
针对上述困境,本文提出了一种可解释的桥接多模态融合模型(Brim)。该模型整合了组织病理学、基因组学和转录组学数据,通过Transformer - based MIL方法学习病理图像中斑块的空间分布和相互作用,利用桥接网络挖掘图像与分子特征间的关联,还能在缺少分子数据时借助病理图像模拟生成伪基因组特征。
作者类型 | 姓名 | 单位 |
---|---|---|
第一作者 | Feng Gao | 中山大学附属第六医院普通外科(结直肠外科);中山大学附属第六医院生物医学创新中心;上海人工智能实验室;广东省结直肠盆底疾病重点实验室 |
通讯作者 | Junwei Liu | 广州实验室 |
通讯作者 | Yixue Li | 广州实验室;中国科学院大学杭州高等研究院生命科学学院系统健康科学重点实验室;广州医科大学GZMU - GIBH联合生命科学学院粤港澳细胞命运调控与疾病联合实验室;上海交通大学生命科学与生物技术学院;中国科学院上海营养与健康研究所;复旦大学遗传与发育协同创新中心;上海生物医药与制药技术研究所 |
通讯作者 | Xiao - Jian Wu | 中山大学附属第六医院普通外科(结直肠外科);中山大学附属第六医院生物医学创新中心;广东省结直肠盆底疾病重点实验室 |
经多组学数据分析和模型性能评估,Brim在多模态数据下预测癌症患者预后的平均C指数达0.682,优于单模态模型和已有的多模态融合模型;在仅使用病理图像时,平均C指数也有0.63,同样表现出色。此外,通过模型可解释性分析,还能确定与癌症预后相关的关键图像和分子特征。
Brim模型为癌症预后预测提供了更有效的工具,不过深度学习方法的黑箱性,以及伪基因组特征背后生物学机制的不明确,仍是后续研究需要突破的方向。
交流群
欢迎大家加入【医学AI】交流群,本群设立的初衷是提供交流平台,方便大家后续课题合作。
目前小罗全平台关注量52,000+
,交流群总成员1100+
,大部分来自国内外顶尖院校/医院,期待您的加入!!
由于近期入群推销人员较多,已开启入群验证,扫码添加我的联系方式,备注姓名-单位-科室/专业
,即可邀您入群。
知识星球
如需获取推文中提及的各种资料,欢迎加入我的知识星球!
已订阅星球用户无需二次付费,可以直接获取本篇推送的pdf版本,并且可以在星球中向我提问!
一、文献概述
这篇文章介绍了一种名为Brim的可解释多模态融合模型,用于在泛癌种中结合组织学和基因组学数据进行生存预测。
-
背景与动机:癌症的复杂性和异质性导致临床结果难以预测,传统TNM分期系统无法充分考虑肿瘤异质性。人工智能(AI)在癌症研究中取得了显著进展,但多模态数据的缺失限制了其临床应用。
-
模型开发:Brim模型通过结合病理全切片图像(WSIs)和多组学特征(突变状态、拷贝数变异、RNA-seq基因表达)来预测癌症患者的生存风险。模型包括四个主要部分:WSI预处理、病理图像特征模块、分子特征模块和桥接网络。桥接网络用于学习配对的WSI和基因组分子特征之间的关联,特别是在仅使用WSI预测缺失的分子信息时。
-
模型优势:Brim模型不仅整合了基因组分子特征和WSI进行预后预测,还能仅使用WSI进行预后预测,降低了临床应用成本,使临床决策更加个性化。
-
实验验证:模型在TCGA数据库的12种癌症类型和5271名泛癌患者中进行了训练和测试,还使用了中国结直肠癌临床基因组学研究(COCC)队列进行独立验证。结果表明,Brim模型在完整和缺失模态下均表现出色,平均C-index达到0.682,显著优于其他单模态和多模态模型。
-
模型解释性分析:通过注意力机制和积分梯度归因分析,揭示了与癌症预后相关的WSI和基因组分子特征。Brim模型在病理图像中更关注肿瘤细胞区域,并识别出与患者预后显著相关的基因。
-
结论与展望:Brim模型为泛癌患者预后预测提供了新的方法,不仅在多模态数据完整时表现出色,还能在仅使用WSI时进行有效预测,降低了临床应用成本,为临床医生提供了更精准的诊断和治疗决策工具。
二、重点关注
2-1:癌症预后预测模型
- 图A:介绍了桥接多模态融合模型(Brim)的架构。包含全切片图像(WSI)预处理、病理图像模块(利用Transformer处理图像斑块获取组织学特征)、分子图谱模块(使用Self - Normalizing Networks (SNN)处理基因组数据获取组学特征),最后通过桥接网络将两种特征融合以生成预后分数。
- 图B:是模型可解释性分析。左侧分子可解释性部分展示了不同类型基因变异(CNV、MUT、RNA - Seq)的集成梯度(IG)值,列出了相关基因;右侧病理可解释性部分展示了病理图像示例。
- 图C:说明了数据来源,样本来自多种癌症类型(如LUSC、LUAD等),数据分别来自美国国家癌症研究所癌症基因组学中心(NIH)的5271例样本和国际癌症基因组联盟加速癌症基因组研究(ARGO)的445例样本 。
2-2:模型性能对比
这张图片展示了Brim模型与其他基线方法(SNN、AMIL、TransMIL、MMF)在12种癌症类型中预后预测性能的比较,主要通过C-index指标来衡量。
总体表现
- Brim模型性能最优:在12种癌症类型中,Brim模型的C-index值普遍高于其他模型,表明其在预后预测方面具有更高的准确性。
- 多模态融合的优势:Brim模型作为多模态融合模型,能够整合病理图像和多组学数据,从而在预测性能上优于仅使用单一模态数据的模型(如SNN、AMIL、TransMIL)。
统计显著性
- Kaplan-Meier分析:图中标注的星号(*)表示Brim模型在相应癌症类型中的风险分层具有统计学意义(p < 0.05),进一步验证了其预测结果的可靠性。
模型对比
- 单模态模型的局限性:SNN、AMIL和TransMIL等单模态模型在某些癌症类型中的表现不如Brim模型,这凸显了多模态数据融合在提高预测准确性方面的重要性。
- MMF模型的比较:MMF作为另一种多模态融合模型,其性能在多数癌症类型中低于Brim模型,这表明Brim模型在多模态数据整合和特征学习方面具有独特的优势。
2-3:数据+代码
- 公开数据 :本研究的公开数据可通过加州大学圣克鲁兹分校的 UCSC Xena 平台(https://xena.ucsc.edu/)获取。
- 内部数据 :本研究的内部数据可通过向通讯作者提出请求并签署数据访问协议来获取。
- 源代码 :深度学习模型的源代码可在以下网址在线获取:https://github.com/dingjunxiang/Brim。
三、实验细节
3-1:研究参与者
本研究从TCGA数据库中收集了泛癌患者的H&E诊断全切片图像(WSIs)、基因组分子特征和临床信息。纳入标准包括:
- 1)具有完整的5年生存随访信息的患者;
- 2)具有完整的基因表达、拷贝数变异(CNV)和突变数据的患者;
- 3)所选癌症类型应至少有250例未删失生存数据病例。
共有12种癌症类型和5271例患者样本被纳入用于泛癌预后模型的训练和测试,单个癌症类型的患者数量范围为287至918例。TCGA项目中的COAD和READ被合并为一个队列,即TCGA-COADREAD。
所有预处理数据均通过加州大学圣克鲁兹分校的UCSC Xena平台(https://xena.ucsc.edu/)获取。
同时,纳入了来自ICGC-ARGO项目的中国结直肠癌临床基因组学研究(COCC)的内部队列。所有患者样本均来自中山大学附属第六医院,选取了445例符合TCGA泛癌队列相同纳入标准的患者样本。
已从所有预期患者处获得书面知情同意,并经中山大学附属第六医院伦理委员会批准。每个队列的患者临床和人口统计学特征的详细总结见表3。
3-2:程序
所有通过扫描病理组织切片获得的WSIs均以SVS格式存储。
对于有多张WSIs的患者,随机选取一张作为输入。每张WSI通过公共CLAM[11]仓库使用默认参数进行全自动分割,分割后提取的所有256×256图像块被下采样至40倍放大,对应0.25微米/像素。
随后,应用预训练的ResNet50模型从每个图像块中提取1024维特征嵌入。对于使用大型基础模型进行WSI嵌入推理,采用了UNI模型的补丁编码器和预训练权重(https://github.com/mahmoodlab/UNI),然后按照之前概述的方法进行补丁嵌入。
为了尽可能保留基因组分子信息,仅筛选出具有缺失值的遗传特征。使用Python(版本3.7.7)中的sci-kit-learn(版本1.3)包对筛选后的遗传数据集进行标准化处理。
3-3:预后预测模型性能评估
使用Scikit-learn包(https://scikit-learn.org)进行五折交叉验证评估,以表征每个队列中模型的性能,并应用C-index作为评估模型预测性能的指标,以及交叉验证评估中C-index的均值和置信区间。
在对单个癌症的评估迭代中,80%的患者样本被用作训练集,而剩余的20%被设为测试数据集,用于模型评估。
3-4:统计分析
条形图表示通过五折交叉验证获得的均值。对于分类变量,使用卡方检验评估组间差异。当期望频率小于5时,应用Fisher精确检验评估组间差异。
对于连续变量,使用Student t检验分析具有正态分布的两组之间的差异。对于具有非正态分布的组,采用Mann-Whitney U检验确定差异。使用Kaplan–Meier分析和log-rank检验评估不同临床风险患者分层的统计显著性,并选择连续风险评分的中位数截断值。
使用Cox比例风险回归模型进行单变量分析。所有分析均视为统计显著,如果双侧P值小于0.05。所有统计分析均使用R(版本4.1.2)进行。
结束语
本期推文的内容就到这里啦,如果需要获取医学AI领域的最新发展动态,请关注小罗的推送!如需进一步深入研究,获取相关资料,欢迎加入我的知识星球!
相关文章:
中山六院团队发表可解释多模态融合模型Brim,可以在缺少分子数据时借助病理图像模拟生成伪基因组特征|顶刊解读·25-02-14
小罗碎碎念 在癌症诊疗领域,精准预测患者预后对临床决策意义重大。传统的癌症分期系统,如TNM分期,因无法充分考量肿瘤异质性,难以准确预测患者的临床结局。而基于人工智能的多模态融合模型虽有潜力,但在实际临床应用中…...
《基於Python的网络爬虫抓包技术研究与应用》
## 摘要 本文探讨了基于Python的网络爬虫抓包技术及其应用。随着互联网数据的快速增长,网络爬虫技术在数据采集和分析中扮演着越来越重要的角色。本研究首先介绍了网络爬虫的基本概念和Python在爬虫开发中的优势,然后深入分析了抓包技术的原理和常用工具…...
从零开始探索C++游戏开发:性能、控制与无限可能
一、为何选择C开发游戏? 在虚幻引擎5渲染的次世代画面背后,在《巫师3》的庞大开放世界中,在《毁灭战士》的丝滑60帧战斗里,C始终扮演着核心技术角色。这门诞生于1983年的语言,至今仍占据着游戏引擎开发语言使用率榜首…...
TypeScript 高级类型 vs JavaScript:用“杂交水稻”理解类型编程
如果把 JavaScript 比作乐高积木,TypeScript 就是一套智能积木系统。本文将用最生活化的比喻,带你理解 TypeScript 那些看似复杂的高级类型。 一、先看痛点:JavaScript 的“薛定谔类型” // 场景:用户信息处理 function getUserI…...
几款可用于绘制工艺原理图的开源框架
一、LogicFlow 由滴滴团队开发的开源流程图框架,支持高度定制的工艺原理图绘制。 • 核心特性: • 提供拖拽式界面和丰富的节点类型(矩形、圆形、多边形等),支持自定义节点形状、样式和交互逻辑。 • 支持插件扩展&am…...
STM32如何精准控制步进电机?
在工业自动化、机器人控制等场合,步进电机以其高精度、开环控制的特性得到了广泛应用。而在嵌入式系统中,使用STM32进行步进电机的精确控制,已成为开发者的首选方案之一。 本文将从嵌入式开发者的角度,深入探讨如何基于STM32 MCU…...
Go语言入门基础详解
一、语言历史背景 Go语言由Google工程师Robert Griesemer、Rob Pike和Ken Thompson于2007年设计,2009年正式开源。设计目标: 兼具Python的开发效率与C的执行性能内置并发支持(goroutine/channel)简洁的类型系统现代化的包管理跨…...
WPF窗口读取、显示、修改、另存excel文件——CAD c#二次开发
效果如下: using System.Data; using System.IO; using System.Windows; using Microsoft.Win32; using ExcelDataReader; using System.Text; using ClosedXML.Excel;namespace IfoxDemo {public partial class SimpleWindow : Window{public SimpleWindow(){Initi…...
Ubuntu 服务器安装 Python 环境 的详细指南
以下是 在 Ubuntu 上安装 Python 3.10 的详细步骤(兼容 Ubuntu 20.04/22.04): 方法一:通过 PPA 仓库安装(推荐) 1. 添加 deadsnakes PPA sudo apt update sudo apt install software-properties-common s…...
鸿蒙next 多行文字加图片后缀实现方案
需求 实现类似iOS的YYLabel之类的在文字后面加上图片作为后缀的样式,多行时文字使用…省略超出部分,但必须保证图片的展现。 系统方案 在当前鸿蒙next系统提供的文字排版方法基本没有合适使用的接口,包括imagespan和RichEditor,根据AI的回…...
STM32---FreeRTS队列集
一、简介 一个队列只允许任务间传递的消息为同一种数据类型,如果需要在任务间传递不同数据类型的消息时,那么就可以使用队列集 ! 作用:用于对多个队列或信号量进行“监听”,其中不管哪一个消息到来,都可让…...
oracle11.2.0.4 RAC 保姆级静默安装(二) DB数据库软件
1.响应文件配置 [rootdb11g1 software]# su - oracle [oracledb11g1 ~]$ cd /software/database/ [oracledb11g1 database]$ cd response/ [oracledb11g1 response]$ vi db_install.rsp oracle.install.optionINSTALL_DB_SWONLY ORACLE_HOSTNAMEdb11g1 UNIX_GROUP_NAME…...
用python代码将excel中的数据批量写入Json中的某个字段,生成新的Json文件
需求 需求: 1.将execl文件中的A列赋值给json中的TrackId,B列赋值给json中的OId 要求 execl的每一行,对应json中的每一个OId json 如下: {"List": [{"BatchNumber": "181-{{var}}",// "Bat…...
【每日学点HarmonyOS Next知识】状态变量、动画UI残留、Tab控件显示、ob前缀问题、文字背景拉伸
1、HarmonyOS 怎么用一个变量观察其他很多个变量的变化? 有一个提交按钮的颜色,需要很多个值非空才变为红色,否则变为灰色,可不可以用一个变量统一观察这很多个值,去判断按钮该显示什么颜色,比如Button().…...
【第五节】windows sdk编程:windows 控件基础
目录 一、控件概述 二、标准控件 三、通用控件 四、控件的创建 五、控件风格 六、控件相关的消息 6.1 控件控制消息 6.2 控件通知消息 一、控件概述 控件是 Windows 系统内置的窗口类,它们只能是某个窗口的子窗口。因此,创建控件时必须使用 WS_C…...
架构师论文《论云原生架构及其应用》
【摘要】 2022年3月,我作为系统架构师参与了某大型零售企业“智能化供应链管理平台”项目的设计与实施工作。该平台旨在整合企业分散在不同区域的仓储、物流、库存及订单系统,构建统一管理的云原生架构,以应对业务季节性峰值带来的弹性伸缩需…...
Centos 7 安装达梦数据库
一、环境准备 1. 确认操作系统的版本和数据库的版本是否一致 cat /etc/redhat-release 2. 关闭防火墙 查看防火墙状态 firewall-cmd --state 停止firewall systemctl stop firewalld.service 禁止firewall开机启动 systemctl disable firewalld.service 3. 修改文件l…...
46.全排列
46.全排列 力扣题目链接 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1: 输入:nums [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2:…...
RabbitMQ (Java)学习笔记
目录 一、概述 ①核心组件 ②工作原理 ③优势 ④应用场景 二、入门 1、docker 安装 MQ 2、Spring AMQP 3、代码实现 pom 依赖 配置RabbitMQ服务端信息 发送消息 接收消息 三、基础 work Queue 案例 消费者消息推送限制(解决消息堆积方案之一&#…...
2-002:MySQL 索引的最左前缀匹配原则是什么?
MySQL 索引的最左前缀匹配原则 最左前缀匹配原则(Leftmost Prefix Matching) 是指: 当 查询使用了复合索引(联合索引) 时,MySQL 会优先匹配索引的 最左列,然后逐步向右匹配,直到遇到…...
【Python 数据结构 15.哈希表】
目录 一、哈希表的基本概念 1.哈希表的概念 2.键值对的概念 3.哈希函数的概念 4.哈希冲突的概念 5.常用的哈希函数 Ⅰ、直接定址法 Ⅱ、平方取中法 Ⅲ、折叠法 Ⅳ、除留余数法 Ⅴ、位与法 6.哈希冲突的解决方案 Ⅰ、开放定址法 Ⅱ、链地址法 7.哈希表的初始化 8.哈希表的元素插…...
校园安全用电怎么保障?防触电装置来帮您
引言 随着教育设施的不断升级和校园用电需求的日益增长,校园电力系统的安全性和可靠性成为了学校管理的重要课题。三相智能安全配电装置作为一种电力管理设备,其在校园中的应用不仅能够提高电力系统的安全性,还能有效保障师生的用电安全&am…...
疗养院管理系统设计与实现(代码+数据库+LW)
摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装疗养院管理系统软件来发挥其高效地信息处理的作用…...
基于 Redis Stream 实现消息队列功能
好长时间没更新了。。。。。。 背景:举个例子在某个接口执行完成后只需要前半段返回结果,后半段可能是日志记录、下游系统调用等功能的情况下,将耗时的消息进行异步发送就显得很有必要,这时就有很多种选择,单体项目甚至…...
单元测试、系统测试、集成测试、回归测试的步骤、优点、缺点、注意点梳理说明
单元测试、系统测试、集成测试、回归测试的梳理说明 单元测试 步骤: 编写测试用例,覆盖代码的各个分支和边界条件。使用测试框架(如JUnit、NUnit)执行测试。检查测试结果,确保代码按预期运行。修复发现的缺陷并重新测…...
深入理解 HTML 中的<div>和元素:构建网页结构与样式的基石
一、引言 在 HTML 的世界里,<div>和元素虽看似普通,却扮演着极为关键的角色。它们就像网页搭建过程中的万能积木,能够将各种 HTML 元素巧妙地组合起来,无论是构建页面布局,还是对局部内容进行样式调整ÿ…...
网络安全信息收集[web子目录]:dirsearch子目录爆破全攻略以及爆破字典结合
目录 一、dirsearch 工具详细使用攻略 1. 安装 前提条件 安装步骤 可选:直接下载预编译版本 2. 基本用法 命令格式 参数说明 示例 3. 核心功能与高级用法 3.1 多线程加速 3.2 自定义字典 3.3 递归扫描 3.4 过滤响应 3.5 添加请求头 3.6 代理支持 3…...
Mybaties批量操作
1、批量插入 <!--批量操作-插入--><!-- 相当于INSERT INTO t_goods (c1,c2,c3) VALUES (a1,a2,a3),(b1,b2,b3),(d1,d2,d3),...--><insert id"batchInsert" parameterType"java.util.List">INSERT INTO t_goods (title,sub_title,origina…...
27.卷2的答案
CSP-J离我们不远了,加加油啦! 1.堆排序最坏时间复杂度是? 解析:平时多多练习可知,最坏时间复杂度是O(n log n)。 2.哪条能将s中的数值保留一位,并将第二位四舍五入? 解析:经过试…...
【 Manus平替开源项目】
文章目录 Manus平替开源项目1 OpenManus1.1 简介1.2 安装教程1.3 运行 2 OWL2.1 简介2.2 安装教程2.3 运行 3 OpenHands(原OpenDevin)3.1 简介3.2 安装教程和运行 Manus平替开源项目 1 OpenManus 1.1 简介 开发团队: MetaGPT 核心贡献者(5…...
【WEB APIs】DOM-事件基础
目录 1. 事件监听(绑定) 案例—关闭广告 案例-随机点名 2. 事件类型 2.1 鼠标事件 2.2 焦点事件 2.3 文本事件 3. 事件对象 案例—评论回车发布 4. 环境对象 5. 回调函数 6. 综合案例—tab栏切换 1. 事件监听(绑定) …...
66.Harmonyos NEXT 图片预览组件使用指南
温馨提示:本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦! Harmonyos NEXT 图片预览组件使用指南 文章目录 Harmonyos NEXT 图片预览组件使用指南效果预览一、组件使用概述1. 组件功能特点2. 组件依赖关系 二…...
linux系统安装和激活conda
安装 wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.shbash ./Miniconda3-latest-Linux-x86_64.sh回车到最后按照输入yes,之后按提示操作。 激活 conda activate如果没有反应或者返回: bash: conda: command not found则…...
Java 集合框架大师课:集合框架的暗黑料理(六)
🔮Java 集合框架大师课:集合框架的暗黑料理(六)——弱引用与幽灵队列 第一章 弱引用:Java世界的塑料兄弟情 💔 四大引用类型生死簿 // 四类引用生死实验 Object strongObj new Object(); …...
LVI-SAM、VINS-Mono、LIO-SAM算法的阅读参考和m2dgr数据集上的复现(留作学习使用)
ROS一键安装参考: ROS的最简单安装——鱼香一键安装_鱼香ros一键安装-CSDN博客 opencv官网下载4.2.0参考:https://opencv.org/releases/page/3/ nvidia驱动安装:ubuntu18.04 安装显卡驱动 - 开始战斗 - 博客园 cuda搭配使用12 cuda安装1:Ub…...
京鲁医疗健康专家委员会聊城专家团成立
3月13日由京鲁医疗健康专家委员会指导,聊城市委人才工作领导小组办公室、聊城市卫生健康委员会、聊城市人才引进服务中心主办的"智链医脉.新启未来"聊城卫生健康产才共融发展交流会在北京人卫酒店召开。会上,京鲁医疗健康专家委员会…...
MySQL的事务机制
事务 事务概念:事务是一个完整的操作单元,不可分割,事务中的操作要么全部成功,要么全部失败。 1. 事务特性 ACID 1.1 原子性(A) 一个事务中所有操作是不能被分割的,要么所有的操作都成功&am…...
30、Vuex 为啥可以进行缓存处理
Vuex 状态管理基础与缓存的关联 Vuex 的核心概念: Vuex 主要由五个部分组成:state、mutations、actions、getters和modules。其中,state是存储数据的地方,类似于一个全局的数据仓库。在这个菜谱 APP 的例子中,缓存的数…...
OpenAI Agents SDK 中文文档 中文教程 (5)
英文文档原文详见 OpenAI Agents SDKhttps://openai.github.io/openai-agents-python/ 本文是OpenAI-agents-sdk-python使用翻译软件翻译后的中文文档/教程。分多个帖子发布,帖子的目录如下: (1) OpenAI 代理 SDK, 介绍及快速入门 (2)Open…...
如何处理PHP中的文件上传错误
如何处理PHP中的文件上传错误 在Web开发中,文件上传是一个常见的功能需求。然而,文件上传过程中可能会遇到各种错误,如文件大小超出限制、文件类型不被允许、上传过程中断等。为了确保用户能够顺利上传文件,并且开发者能够有效地…...
mac安装python没有环境变量怎么办?zsh: command not found: python
在mac电脑上,下载Python安装包进行安装之后,在终端中,输入python提示: zsh: command not found: python 一、原因分析 首先,这个问题不是因为python没有安装成功的原因,是因为python安装的时候,没有为我们添加环境变量导致的,所以我们只需要,在.zshrc配置文件中加上环…...
湿大气校正效应
目的 修正由于大气中的水汽对雷达波传播速度的影响,以提高海面高度测量的准确性,有时候也叫做对流层校正。水汽的时空变化复杂,难以直接通过气象模型准确预测。水汽的折射作用使雷达信号的传播速度减慢,从而导致测量的海面高度虚增…...
算法系列之回溯算法求解数独及所有可能解
有没有对数独感兴趣的朋友呢?数独作为一款经典的逻辑游戏,其目标是在一个9x9的方格中填入数字1至9,确保每一行、每一列以及每一个3x3的子网格中都包含这些数字且不重复。尽管数独的规则看似简单,但编写一个能够自动求解数独的程序…...
动态路径规划——01背包问题讲解和通过滚动数组优化
如果没有动态路径规划基础的兄弟可以出去了,这个题目有两个问题 第一问讲解: 1.定义状态表示 刚开始我做的时候根据我的经验定义了一个状态表示dp[i]表示从1到i个物品中选择的最大价值,但是这个状态表示有一个明显的问题,我怎么知…...
蓝队基本技能 web入侵指南 日志分析 后门查杀 流量分析
前言 为了赶工我是没学过红队的,首先我们要做的是 1、拿到用户给的web的时候 要先知道 web的源码 服务器 中间件 数据库这些信息 2、知道web日志放在哪里 会一些基本的分析 3、webshell查杀的基本技能 4、会分析基本的工具链 会写报告 .NET IIS 配置…...
docker基本应用和相关指令
文章目录 概要镜像管理容器操作网络管理数据卷管理其他常用指令典型场景示例小结 概要 Docker的命令通常分为几个大类,比如镜像管理(images)、容器管理(containers)、网络(network)、数据卷&…...
Django REST Framework中的序列化器类和视图类
序列化器类 一、Serializer序列化类 Serializer是DRF的序列化器基类,提供基本功能,使用Serializer类需要自己定义字段名称和类型。 BookSerializer(Serializer):name serializers.CharField()price serlializers.IntegerField()date serlializers.…...
模拟人生4大型MOD整合包3000+
存档介绍 (懒人萌新必备) 游戏内全面的人物美化、房屋改造、地图美化 美化人物250个(颜值在线,均搭配八套服饰) 全地图房屋改造(住宅、公寓、公用/商业地段等) 游戏内22张地图均已美化替换 存档…...
算法基础 -- Brian Kernighan 算法初识
Brian Kernighan 算法:利用 x & (x - 1) 逐步清除最低位的 1 1. 算法原理 x & (x - 1) 这个操作的作用是每次清除 x 的最低位的 1。由于 二进制的减法 会影响最低的 1,我们可以利用这一特性不断去除 1,直到 x 变为 0,从…...
基于Uniapp开发tab选项卡/标签栏前端组件
在开发一些业务场景时候,可能需要切换标签栏来展示不同的信息列表。 为此开发了一个Uniapp组件(myTab),下面为组件的展示效果: 案例代码: <template><view class"content"><myt…...