notes_质谱蛋白组学数据分析基础知识
目录
- 1. 蛋白组学方法学
- 1.1 液相-质谱法
- 1) 基本原理
- 2) bottom-up策略的基本流程
- 1.2 PEA/Olink
- 2. 质谱数据分析
- 2.1 原始数据格式
- 2.2 分析过程
- 1)鉴定
- 搜索引擎
- (质谱组学)重难点/潜在的研究方向
- 2)定量
- 3)预处理
- 2.3 下游分析
- 参考
- 附录
1. 蛋白组学方法学
目前常见的蛋白组学方法学如下图。
1.1 液相-质谱法
2001年,基于鸟枪法蛋白质组学的想法,John Yates团队开发了MudPIT技术… …。实现将鸟枪法应用于蛋白质组学是一件里程碑式的发展成就,其不仅颠覆了传统的蛋白质分析方法,还推动实现大规模分析。
1) 基本原理
Smith, Rob, et al. “Proteomics, lipidomics, metabolomics: a mass spectrometry tutorial from a computer scientist’s point of view.” BMC bioinformatics 15.7 (2014): 1-14.
分离
直接进样(Direct injection
)是指将样品直接注入质量检测器。多数复杂样品的质谱实验都会预先分散分析物,使电离能力不会受到大量分析物或背景离子的严重影响。分离方法包括:
- LC-MS(液相色谱-质谱):①液体流动相由双液组成。梯度(液体成分的百分比)的变化会使分析物缓慢地从色谱柱中释放出来,进入质谱仪。②固定相:装有化学衍生珠子的色谱柱。不同的固定相可以根据疏水性、电荷、大小或亲和性分离分析物。最常见的生物大分子固定相是反相(疏水性)和强阳离子(电荷)。
- GC-MS(气相色谱-质谱):①流动相为惰性气体(如氦气)。②固定相为根据极性分离分子的色谱柱。梯度是温度的升高,与色谱柱亲和力强的分子在较高温度下洗脱。
- CE-MS(毛细管电泳-质谱):毛细管电泳使用施加在毛细管上的电场,根据分子的大小、电荷和通过毛细管的流动阻力来分离分子。
- 多维色谱法/串联色谱法:将两个色谱系统应用于同一系统。如MUDPIT方法,该方法采用两种正交分离策略,如强阳离子交换(基于电荷)和反相(基于疏水性)色谱法,以获得更高的分辨率。
电离
分析物必须电离(即处于带电状态)才能被质谱仪检测到。电喷雾离子化(ESI
)是质谱组学中最常用的方法,这主要是因为它能在不破坏化学键的情况下电离不稳定分子,而且该方法可电离的分析物种类繁多。其他方法包括APCI
、MALDI
和EI
。
质量检测
带电粒子通过质谱仪时,检测到的粒子的质量电荷比 (m/z) 会被记录下来。输出结果的单次扫描表示在特定保留时间(RT
)通过质谱仪的母离子(precursor ions
)的快照。在 MS/MS 中,小 m/z 窗口中的离子会被捕获进行第二次碎片化和 MS 检测,产生第二组离子称为子离子(product ions
),可通过将其 MS/MS 模式与数据库进行匹配来识别母离子。进行 MS/MS 的溶液比例很低,通常只能捕获MS1数据的10-20%。由于多数 MS/MS 系统会根据强度自动选择片段,大部分会在重复间重叠。在这 10-20% 的数据中,只有不到 60% 可以通过数据库查询进行鉴定,即使这样也会出现假阳性。
质谱仪输出原始数据是大量数据点的集合,每个数据点由质荷比(m/z)、强度(intensity)和保留时间(RT)组成,有profile或centroid两种格式。profile包含质谱仪记录的所有数据点,而centroid则缩减为代表单个谱图中局部最大值的数据点,即在给定 RT 的 m/z 范围内的数据分布。
一张谱图(spectrum
)包含所有具有单一 RT 值的点。所有谱图的信号总和称为总离子谱(TIS
)。包含扩展所有 RT 的、连续 m/z 范围的数据切片称为提取离子色谱图(XIC
)。总离子色谱图(TIC
)是所有 m/z 信号的总和,而基峰色谱图(BPC
)则是包含所有 m/z 信号中每个 RT 最强信号的集合。同位素示踪(isotope trace
)是指单一分析物(即肽或脂质)的单一离子在特定电荷状态下产生的信号。同位素包络示踪(isotopic envelope trace
)是单个分析物在特定电荷状态下产生的一组同位素示踪。
同一谱图的profile(a)和centroid(b)。profile包括检测到离子的每个点的 m/z 值的分布信号。centroid是经过算法处理的原始数据,只保留检测到离子的每个范围内的局部最大值。
数据处理
原始数据处理
现有的降噪、特征检测和对应算法可对原始数据进行处理。许多算法需要从仪器的专有数据格式转成开放数据类型(mzXML等)。此外,数据集大小会对内存访问方式、容量等提出一定要求。然后,对数据进行去噪、选峰、特征检测、去同位素和去卷积处理。
分析物鉴定
使用数据库,将实验特征(即同位素包络线、同位素痕迹等)与理论模式进行比较。
由于数据库不完整/增长以及噪声,最佳匹配容易出现假阳性和错配。在此(之前)步骤中几乎都要进行统计分析,以确定鉴定的显著性。
分析物定量
最后获得每个分析物的数量。
数据存储
分析物的鉴定、定量和原始数据必须存储在数据结构中,以便有效地访问和处理数据。
数据集
缺乏带标签数据:定性指标;加标;模拟。
开放数据集:… …
2) bottom-up策略的基本流程
- [1] 样本预处理:提取蛋白等。
- [2] 蛋白酶解:将蛋白酶切成肽段。
- [3] 同位素标记:使用不同试剂标记不同样本。标记试剂的化学结构由报告基团、平衡基团和反应基团三部分组成,通过不同位置的C13、N15同位素组合保证总分子量恒定。
- [4] 肽段分离:降低样品复杂度,从而鉴定出更多的肽段/蛋白。
- 肽段离线预分级:使用HPLC将亲疏水性不同的肽段的分成多个馏分(fraction),再分别上质谱。
- 肽段在线分离:肽段会因为在nano-HPLC的色谱柱填料上的保留时间不同而得到预分离。使肽段在一定时间范围内先后进入质谱。
- [5] 质谱解析:
- 软电离离子源:将中性肽段电离并形成带正电荷的肽段离子。
- 质量分析器:将不同质荷比的肽段离子(母粒子)分离并记录,得到一级谱图。
- 【串联质谱-DDA模式】每次扫描会自动选择信号强度较高前20-40个母离子继续碎裂,然后对碎片离子的质荷比和强度进行记录,从而得到二级谱图。
- 【串联质谱-DIA模式】按照质量窗口对全部肽段母离子做二级碎裂,因此能获得更多数据。而DDA会丢失掉绝大部分肽段信息。
- [6] 数据解析:样本经过质谱仪检测,会记录对应的肽段母离子(即肽段离子)和二级子离子(即肽段的碎片离子)的质荷比、信号强度和保留时间。
- 鉴定/定性:使用搜索软件分析质谱图,得到序列信息。
- 定量:使用信号强度来推断表达水平。
参考
John Yates | 质谱的狂热爱好者
迈维代谢.蛋白质组学专题 | 一文读懂蛋白质组学研究策略及研究内容
迈维代谢. 蛋白质组学技术主流方法原理介绍
1.2 PEA/Olink
不同于质谱方法,Olink产品基于PEA技术,用于靶向定量蛋白组。。。
2. 质谱数据分析
2.1 原始数据格式
目前并没有统一的原始数据格式,不同厂家质谱仪产出的原始数据格式汇总如下。
厂家 | 格式 |
---|---|
Thermo | .raw |
Waters | folder |
AB | WIFF |
Agilent | folder |
Bruker | yep/.fid |
2.2 分析过程
Smith, Rob, et al. “Proteomics, lipidomics, metabolomics: a mass spectrometry tutorial from a computer scientist’s point of view.” BMC bioinformatics 15.7 (2014): 1-14.
1)鉴定
搜索引擎
- 以数据库为中心的搜索
- 基本流程:DDA中一张二级谱图理论上仅为一种肽段母离子的碎片离子,可以使用理论蛋白序列库和二级谱图比对。
- 特点:①可评估结果可信度。②数据库中不存在的蛋白质将无法被鉴定。
- 用户设置参数
- 碎片通道: MS/MS 图谱数据库搜索使用一组预定义的碎片通道,这取决于所使用的 MS2 方法(CID/HCD/ECD/ETD)。用户应根据碎裂过程中使用的 MS2 方法配置所使用的 MS/MS 离子类型。
- 肽段和碎片的质量容差:①肽段质量容差决定搜索引擎提取多少肽段与理论 MS/MS 图谱进行匹配,并取决于仪器的 MS1 质量精度。如果仪器校准良好,则可设置较低的质量容差(<5 ppm),这将缩短搜索时间并增加可信度。不过,重要的是要将该值设置为高于仪器的 MS1 质量精度。系统误差与高质量值之间呈线性相关,质量准确度以ppm为单位,表示相对质量误差,而不是以Da为单位的绝对质量误差。②碎片质量容差取决于采集时仪器的 MS2 质量精度,并影响可与每个 MS2 峰匹配的碎片离子数量。
- 酶消化限制: 消化酶参数应与样品制备过程中使用的蛋白酶相对应,酶解蛋白质过程中的蛋白水解反应遵循特定和明确的裂解模式。然而,酶解过程可能经常不完全,尤其是在非常复杂的蛋白质混合物中,因此经常会出现漏切。因此,建议进行“半约束”搜索,包括一到两次内部漏切,即使预计蛋白酶解过程是完全的。
- PTMs 搜索: 应向搜索引擎提供样本中的所有预期修饰,以减少假阳性匹配的可能。①固定修饰不会导致搜索空间和时间的扩大,因为它总是应用于所有发生修饰的残基。②对于可变修饰,会生成并计算有修饰和无修饰的理论肽段,加上修饰间的组合,大大扩展了图谱的搜索空间。因此,在以数据库为中心的搜索中,可变修饰的数量是有限制的。搜索多种修饰(包括频率较低的修饰)的一种更有效的方法是,首先搜索少量可变修饰,可能是频率较高和含量较多的修饰,然后再进行第二次容错搜索,以鉴定更多带有组合 PTM 的肽段。
- FDR 阈值: 目标-诱饵搜索策略是一种估算 FDR 的方法。在该方法中,诱饵命中数被用来估算虚假目标命中数。要成功执行 TDS,用户应确认目标数据库和诱饵数据库的大小相同,并且错误命中在两个数据库中分布均匀。通过调整 PSM 分数阈值,可以在 FDR 和灵敏度之间找到一个平衡点。不同的搜索引擎具有不同的评分函数,其权衡效率也大相径庭。对于大多数使用高质量参考蛋白进行的常规数据库搜索而言,在 PSM、肽段和蛋白质水平上最大 1%的 FDR 是可以接受的。
- 常见方法:Masto,
- 基于谱图库的搜索:
- 基本流程:DIA中一张二级谱图理论上包含多种肽段母离子的碎片离子。常先使用DDA模式构建一个谱图库,通过比对谱图库完成肽段鉴定。再对碎片离子构建XIC,并计算峰面积。接着根据碎片离子峰面积依次推断肽段峰面积和蛋白峰面积。
- 从头测序:
- 机器学习方法:
- 混合搜索引擎:使用参考蛋白序列,通过容错搜索鉴定潜在突变。
质控/过滤:PSM/peptide/protein
周文婧等. 蛋白质组学肽段鉴定可信度评价方法
数据库不完整,单核苷酸突变,酶切位点、电荷、修饰类型、修饰位点的错误判断以及同位素峰的误匹配都可能造成错误鉴定,因而得到质谱数据的初步解析结果后,需要对谱图和肽段层次的解析结果进行质量控制,即控制解析结果的错误率。
- 基于阈值的评价方法
- 基于贝叶斯公式的方法
- 目标-诱饵库方法(target-decoy approach,TDA)
①人类蛋白质组计划(HPP)要求质谱分析中谱图、肽段和蛋白质3个层面的FDR均不能超过1%。
②从肽段推断到蛋白质后,蛋白质层面的错误率积累,造成蛋白质层面的FDR较高,是肽段层面的数倍或数十倍 。
③TDA存在两个局限。一是该方法估计的准确度有待考究。二是该方法不能对单个鉴定结果的可信度进行评价。 - 非TDA方法
(质谱组学)重难点/潜在的研究方向
校正质量偏移 分析物在 m/z 轴上的检测存在系统误差和随机误差。系统误差通常可通过常规的机器校准来缓解,即使用质谱处理已知质量的分析物,以创建一个模型,用于对偏移进行内插。然而,校准的效率随着时间的推移而降低。此外,有些仪器在正常实验中注入加标标准品进行内部校准,有助于克服空间电荷效应、电场、峰值强度和温度的时间效应。由于额外成本和抑制影响,内部标准是不可取的。为了提供内部校准的质量精度,同时具有更好的一致性和更低的成本,人们提出了计算质量校准技术。
对应(Correspondence) 对应,即对重复样本中同一分析物的重复信号的记录,是许多 MS 实验中的一个关键问题,在这些实验中,需要对相似样本的多个run进行相互比较。目前存在的问题是用户参数过多、未知的模型行为、运行时间过长以及缺乏方法间的性能比较。
去噪 MS组学会产生噪声数据,可能是虚假数据点,也可能是数据点在RT、m/z或强度方面失真。MS组学中去噪是指去除虚假数据点。基线减法(baseline subtraction)是一种常用的方法,其中强度低于自适应阈值的信号被视为噪声并被去除。
特征检测 特征检测泛指从质谱数据中提取各种信号元素(如色谱数据中的isotopic envelope trace)。
鉴定 质谱鉴定可能基于多种因素,但前体质量(分子质量)和前体质量的碎片模式(MS/MS)是最常见的鉴定方法。这些谱图信息为大多数生物分子提供了独一无二的指纹,然而,低质量的谱图会造成假阳性和假阴性。虽然改进质谱技术能提高谱图质量,但改进谱图搜索算法,以及采用新的鉴定输入也能使鉴定更有把握。
预测保留时间 保留时间是指分析物被色谱延迟的时间。保留时间与分析物的理化特征相关,因此可为鉴定提供另一个因素。由于实验参数的变化,仪器间的保留时间差异很大,因此需要保留时间归一化以及预测。
质量方差校正 质量方差,即分析物的理论质量与实验(观测)质量之间的差异,是一个尚未解决的问题。一种校正质量方差的方法是利用各分析物元素的权重来预测不可缺乏信号的 m/z 位置,从而识别样品中理论质量的系统偏差。类似的方法还有通过快速傅立叶变换拟合正弦曲线来模拟差距。
动态范围抑制效应建模 动态范围(dynamic range)描述了在共洗脱分析物强度较高的情况下,可检测信号的最小强度。所有质谱仪都有动态范围限制。目前的技术水平为 10^3 ~ 10^4 ,意味着在给定的 RT 条件下,如果一种分析物的强度为1.3 × 10^5,则强度小于 1.3 × 10^2 的任何分析物都不会被检测到。
碎片离子强度 由于 MS/MS 采集不仅能捕获目标分析物,还能捕获周围的母离子,而且由于碎裂并非完美的过程,因此碎片离子强度并不像期望的那样准确。已经提出了几种机器学习方法来进行更准确的片段鉴定,然而这仍是一个有待解决的问题。
肽从头测序 从头测序是数据库比对的替代方法,用于处理与数据库不匹配的多肽(由突变、多态性、氨基酸修饰或数据库条目缺失引起)。原始肽序列是根据 MS/MS 指纹和分析物的化学特性重建的。
去同位素(Deisotoping) 去同位素是将同一分析物在不同电荷状态下的多个实例还原成单一特征的过程,通常是一个单同位素峰。这是必要的步骤,因为数据库搜索的查询只包括单电荷特征 m/z 和(可选)RT。复杂样品中不同分析物的同位素envelope trace会重叠,这增加了记录同一分析物不同电荷版本的复杂性,需要进行解卷积。
解卷积 当两个同量异位的分析物洗脱时,它们之间没有间隙,就会出现 RT 重叠。当两个分析物在当前电荷状态下的 m/z 没有充分分开时,会发生同位素envelope重叠。当两个分析物的特定离子过于相似而无法在 m/z 值上分辨时,会发生离子重叠。在高分辨率仪器中,所有 m/z 重叠的可能性都较小,因为高分辨率仪器的 m/z 信号更窄,分辨能力更强。通过样品制备和实验protocal设计将相似分子分离到不同的 RT 区域,可以在一定程度上减少 RT 重叠。
减少参数 一般来说,大多数算法都需要用户通过手动调整来优化大量参数,这需要耗费大量时间。
2)定量
重难点
质谱信号强度与分析物的数量有关,但并不等同。影响这种差异的因素包括:
- 电离效率:并非样品中的所有分析物都能被离子化。
- 酶消化效率:当使用酶(如胰蛋白酶)将蛋白质消化成肽时,并非所有蛋白质都会被完全裂解。这会导致信号丰度低于预期,因为真实丰度会被完整的蛋白质(未被离子化,因此无法检测到)和未完全消化的蛋白质(检测到的 m/z 与预期的肽成分不同)所削弱。
- 离子抑制:当在给定时间内进入的分析物数量超过电离机器的电离能力时,只有部分分析物带电。
对这些效应的精确建模将提高对样品中分析物数量的估计。
目前,定量方法一般分为三种:无标谱图计数法、稳定同位素的定量法和基于母离子信号强度的无标定量法。
- 谱图计数法:一种利用肽信号建立蛋白质计数的方法。每当 MS/MS 鉴定出一种肽时,含有肽的每种蛋白质的计数就会增加。尽管该方法非常普遍,但其准确性依赖于 MS/MS 采集率(非常低),而且容易出现假阳性,因为含有每个检测到肽段的所有蛋白质都被认为是存在的,而实际上只有一个蛋白质是存在的。
- 稳定同位素标记方法(SILAC,ICAT,iTRAQ,TMT)也有很大的局限性。除了成本和样品制备的复杂性,几乎所有方法都会增加共结合分析物的数量,从而对处理样品的复杂性造成瓶颈。更重要的是,由于该方法先验地靶向一小部分特定的分析物,因此对于样品组成未知的数据驱动型发现而言,从时间和经济的角度考虑,这些方法并不实用。
3)预处理
鉴定后质控/过滤
以maxquant
软件输出的proteinGroups.txt
结果为例(参考LFQ-Analyst教程):
- 去除潜在的污染序列(contaminant)
- 去除反序列(Reverse)
- 去除仅由位点鉴定(identified by site)的蛋白
- 去除由一个Razor或unique肽定量的蛋白
- 去除缺失值比例较高的蛋白
缺失值填补
- 缺失值填补
数据转换
- 对数转换
2.3 下游分析
- 差异表达
- 富集分析
- 功能注释
- 蛋白互作
参考
附录
一些厂家质谱仪的性能参数
仪器名 | 检测通量 | 检测深度 |
---|---|---|
Orbitrap Astral (2023) | 24 PSD ~ 180 PSD | 12000 groups ~ 8000 groups |
PSD:日检测样本量。
相关文章:

notes_质谱蛋白组学数据分析基础知识
目录 1. 蛋白组学方法学1.1 液相-质谱法1) 基本原理2) bottom-up策略的基本流程 1.2 PEA/Olink 2. 质谱数据分析2.1 原始数据格式2.2 分析过程1)鉴定搜索引擎(质谱组学)重难点/潜在的研究方向 2)定量3)预处理 2.3 下游…...

【Python基础】一个简单的TCP通信程序
🌈欢迎来到Python专栏 🙋🏾♀️作者介绍:前PLA队员 目前是一名普通本科大三的软件工程专业学生 🌏IP坐标:湖北武汉 🍉 目前技术栈:C/C、Linux系统编程、计算机网络、数据结构、Mys…...

算法之双指针
双指针算法的作用 双指针算法是一种使用2个变量对线性结构(逻辑线性/物理线性),进行操作的算法,双指针可以对线性结构进行时间复杂度优化,可以对空间进行记忆或达到某种目的。 双指针算法的分类 1.快慢指针 2.滑动窗口 3.左右指针 4.前后指…...

Redis被攻击纪实
一、前言 声明:本文仅供技术交流使用,严禁采用本文的方法进行任何非法活动。 上周新来的同事分享Redis的原理和机制,想起2017年的时候测试环境Redis被攻击,最后只能重新安装服务器,今天试验一把利用Redis漏洞进行攻击…...

AI工具-PPT-SlidesAI
SlidesAI 使用手册 https://tella.video/get-started-with-slidesai-tutorial-18yq 简介 SlidesAI 是一款快速创建演示文稿的AI工具,适用于无设计经验的用户。 开始使用 1. **安装与设置** - 访问 [SlidesAI官网](https://www.slidesai.io/zh)。 - 完成简单的设置…...

原型链污染攻击
想要很清楚了理解原型链污染我们首先必须要弄清楚原型链这个概念 可以看这篇文章:对象的继承和原型链 目录 prototype和__proto__分别是什么? 原型链继承 原型链污染是什么 哪些情况下原型链会被污染? 例题1:Code-Breaking 2…...
Android Glide transform圆形图CircleCrop动态代码描边绘制外框线并rotateImage旋转,Kotlin
Android Glide transform圆形图CircleCrop动态代码描边绘制外框线并rotateImage旋转,Kotlin <?xml version"1.0" encoding"utf-8"?> <FrameLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app&q…...

【ruoyi】微服务关闭登录验证码
登录本地的nacos服务,修改:配置管理-配置列表-ruoyi-gateway-dev.yml 将验证码的enabled设置成false,即可...

AI:78-基于深度学习的食物识别与营养分析
🚀 本文选自专栏:人工智能领域200例教程专栏 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的代码,详细讲解供大家学习,希望可以帮到大家。欢迎订阅支持,正在不断更新中,…...

日本it培训班,如何选择靠谱的赴日IT培训班?
随着科技的发展,信息技术行业在全球范围内迅速发展,并呈现出蓬勃的发展态势,在日本,IT行业也成为一种极为热门的职业选择。日本专门学校在这个领域内培养了许多IT从业者,成为了众多IT公司的培养基地。如果你对IT产业感…...

51单片机PCF8591数字电压表LCD1602液晶显示设计( proteus仿真+程序+设计报告+讲解视频)
51单片机PCF8591数字电压表LCD1602液晶设计 ( proteus仿真程序设计报告讲解视频) 仿真图proteus7.8及以上 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0060 51单片机PCF8591数字电压表LCD1602液晶设计 1.主要功能&a…...

缅因州政府通知130万人MOVEit数据泄露事件
大家好,今天我要向大家通报一个令人震惊的消息:缅因州政府的系统遭到了入侵,黑客利用MOVEit文件传输工具的漏洞,获取了约130万人的个人信息,这几乎相当于该州的整个人口数量。 MOVEit攻击是Clop勒索软件团伙进行的一次…...
4.2 onnx简化模型结构
前言 对已有的onnx结构,进行简化操作,onnx提供两种常规操作 方式一 假设为 model.onnx, 比较简单粗暴 # 简化 onnxsim model.onnx model_sim.onnx方式二 稍微复杂点,代码有点多 import onnx import argparse from onnxsim import simpl…...

通用的链栈实现(C++)
template<class T> class MyStack//链栈 { private:struct StackNode{T data;StackNode* next;StackNode(const T& val T(), StackNode* p nullptr) :data(val), next(p) {}//};StackNode* top;int cursize;void clone(const MyStack& s){Clear();cursize s.c…...

物联网AI MicroPython学习之语法 bluetooth蓝牙
学物联网,来万物简单IoT物联网!! bluetooth 介绍 该模块为板上的蓝牙控制器提供了相关接口。目前支持低功耗蓝牙 (BLE)的Central(中央), Peripheral(外设), Broadcaster(广播者&…...

React中的key有什么作用?
一、是什么 首先,先给出react组件中进行列表渲染的一个示例: const data = [ { id: 0, name: abc }, { id: 1, name: def }, { id: 2, name: ghi }, { id: 3, name: jkl } ]; const ListItem = (props) => { return <li>{props.name}</li>; }; con…...

初认识vue,v-for,v-if,v-bind,v-model,v-html等指令
vue 一.vue3介绍 1.为什么data是函数而不是对象? 因为vue是组件开发,组件会多次复用,data如果是对象,多次复用是共享,必须函数返回一个新的对象 1. 官网初识 Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS …...

Java 算法篇-深入了解单链表的反转(实现:用 5 种方式来具体实现)
🔥博客主页: 小扳_-CSDN博客 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 单链表的反转说明 2.0 单链表的创建 3.0 实现单链表反转的五种方法 3.1 实现单链表反转 - 循环复制(迭代法) 3.2 实现单链表反转 - 头插法 3…...
Android 10.0 系统内存优化之修改dalvik虚拟机的内存参数
1.前言 在10.0的系统开发定制中,app应用也是运行在dalvik虚拟机上的,所以对于一些内存低的系统中,在某些大应用会出现耗内存 卡顿情况,这是系统分配的内存不够大,在进行耗内存的操作,就会出现频繁gc等等原因造成不流畅的现象,接下来就分析下 虚拟机分配内存的相关原理 …...

Docker+K8s基础(重要知识点总结)
目录 一、Docker的核心1,Docker引擎2,Docker基础命令3,单个容器运行多个服务进程4,多个容器运行多个服务进程5,备份在容器中运行的数据库6,在宿主机和容器之间共享数据7,在容器之间共享数据8&am…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...

.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...
五年级数学知识边界总结思考-下册
目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化
缓存架构 代码结构 代码详情 功能点: 多级缓存,先查本地缓存,再查Redis,最后才查数据库热点数据重建逻辑使用分布式锁,二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...
HTML中各种标签的作用
一、HTML文件主要标签结构及说明 1. <!DOCTYPE html> 作用:声明文档类型,告知浏览器这是 HTML5 文档。 必须:是。 2. <html lang“zh”>. </html> 作用:包裹整个网页内容,lang"z…...
window 显示驱动开发-如何查询视频处理功能(三)
D3DDDICAPS_GETPROCAMPRANGE请求类型 UMD 返回指向 DXVADDI_VALUERANGE 结构的指针,该结构包含特定视频流上特定 ProcAmp 控件属性允许的值范围。 Direct3D 运行时在D3DDDIARG_GETCAPS的 pInfo 成员指向的变量中为特定视频流的 ProcAmp 控件属性指定DXVADDI_QUER…...

实现p2p的webrtc-srs版本
1. 基本知识 1.1 webrtc 一、WebRTC的本质:实时通信的“网络协议栈”类比 将WebRTC类比为Linux网络协议栈极具洞察力,二者在架构设计和功能定位上高度相似: 分层协议栈架构 Linux网络协议栈:从底层物理层到应用层(如…...