论文阅读(五):乳腺癌中的高斯图模型和扩展网络推理
1.论文链接:Network Inference in Breast Cancer with Gaussian Graphical Models and Extensions
摘要:
具有高相关性的聚类基因将具有接近表达谱的基因分组,确定共表达基因的聚类。然而,这种相关性并没有提供任何关于基因间信息链的线索。偏相关是指在排除其他基因的影响后,量化两个基因之间的相关性。因此,部分相关使得有可能区分两个基因之间的相关性,由于直接的因果关系,通过中间基因起源的相关性。在本章中,高斯图模型(GGM)学习被建立为协变量选择问题。两个最小绝对收缩和选择算子(LASSO)型技术,图形LASSO方法和邻域选择。然后给出了经典GGM的两个推广。GGMs在结构化GGMs中扩展,以解释模块性,以及更普遍的基因连接特征的异质性。在真实的数据上说明了在网络结构上使用生物先验的扩展。
关键词:基因网络,高斯图模型,LASSO
具有高相关性的聚类基因将具有接近表达谱的基因分组,确定共表达基因的聚类。然而,这种相关性并没有提供任何关于基因间信息链的线索。偏相关是指在排除其他基因的影响后,量化两个基因之间的相关性。因此,部分相关性使我们能够区分两个基因之间的相关性,因为直接的因果关系,通过中间基因起源的相关性。高斯图形模型(GGM)是一个经过充分研究的框架,可以发现直接的关系。在本章中,为了对基因网络建模,高斯图模型学习被设置为协变量选择问题。两个LASSO型技术,图形LASSO方法和邻域选择。然后给出了经典GGM的两个推广。关于潜在结构的先验知识有望以更稳健的方式帮助正确的图。为此,GGM在结构化GGM中扩展,以解释模块性,以及更普遍的基因连接特征的异质性。考虑了结构自适应罚参数。第二个扩展是合并不同的实验条件,从而扩大了可用于推断相互作用的观测数量。为了解决微阵列实验中的异质性问题,同时估计多个GGM,而不是像通常那样合并各种条件。结构化惩罚器鼓励网络在不同条件下共享类似的上调或下调规则。最后,一个类似的方法来处理随时间变化的数据。在真实的数据上说明了在网络结构上使用生物先验的扩展。
5.1介绍
基因表达水平之间的相关性提供了基因是否同时表达或抑制的信息。因此,具有高相关性的聚类基因将具有接近表达谱的基因分组,确定共表达基因的簇。然而,如果相关性突出了在相似条件或时间点表达的基因,从而可能一起相互作用,那么它们并没有提供任何关于信息链如何从基因到基因的线索。因此,我们需要评估基因对其他基因的调节作用之间的相关性。这个概念被称为偏相关,它包括在排除其他基因的影响后量化两个基因之间的相关性。偏相关系数使我们能够区分两个基因之间的相关性,因为直接的因果关系,通过中间基因起源的相关性。
通过部分相关性的概念,高斯图形模型(GGM)提供了一个经过充分研究的框架来发现这些直接关系。当适应生物网络(或图)建模时,GGM将基因视为顶点,将其表达水平视为高斯随机变量。在高斯世界中,变量之间的独立性等同于不存在相关性。因此,如果图中的两个基因具有非零的偏相关系数,则它们之间将绘制边缘,这意味着它们的表达依赖于数据集中的所有其他基因表达。
在我们的框架中,GGMs被用来模拟基因调控网络。然而,我们鼓励读者记住,我们所估计的唯一准确的定义是统计,也就是说,RNA测量之间的条件依赖结构的图形表示。基因调控是一个非常复杂的现象,这是由于涉及的因素很多,但无法解释(蛋白质,microRNA,染色质修饰,.)以及RNA水平动力学的复杂性(生产,储存和降解)。因此,这种网络的唯一合理目的在于突出潜在的规章或规章链。然后,生物学家的作用是验证它们或阐明调控链遵循的确切路径。
本章概述如下:首先,通过GGM的经典建模将被布里介绍;学习问题,在这里被理解为与变量之间的部分相关结构相关联的网络的恢复,将被讨论并设置为协变量选择问题。然后,我们将强调这些技术的两个自然扩展,作者参与了这些技术的发展。这些关系总是出于生物学上的考虑。这些技术的使用将在本章的第二部分进行说明,专门研究一个新的乳腺癌数据集与一个大的患者队列:这个应用程序涉及到最近的GGM技术描述这里,并说明了什么样的见解可以合理地预期从这些方法。
5.2基因网络的高斯图网络建模
5.2.1简单高斯图形网络
条件依赖图
最大似然推断
高斯图模型的高维推理背景
GGM中模型选择/估计的不同方法大致分为三类。第一个包含基于约束的方法,执行统计测试。我们提到,[17,18]中的程序依赖于渐近考虑,这是一种在真实的情况下从未达到的制度。[28]中提出的结合排列检验的前向选择方法就属于这一类。在[7,64]中也考虑了有限阶偏相关。第二类由贝叶斯方法组成(例如[14,26,48])。然而,构建先验的浓度矩阵的集合上是不是一个微不足道的任务,和马尔可夫链蒙特卡罗(MCMC)程序的使用限制了应用范围,以中等规模的网络。第三类包含正则化估计量,它向似然函数添加惩罚项,以降低复杂性或从估计量中移除自由度。[53]提出了第一个收缩估计量。这种方法包括使用两个不同估计量的加权平均值,第一个是无约束的(因此偏差小但方差大),第二个是低维的(因此方差小但方差大)。
在[40]中,第一次尝试将LASSO技术应用于GGM框架中浓度矩阵的推断,称为邻域选择。这种方法解决了p个不同的LASSO回归问题,其中p是网络中基因的数量。随后,另外两篇文章[5]和[66]独立地对[40]的初始工作进行了改进。在这两个作品中,这个问题被看作是一个惩罚的最大似然问题,并解决了作为一个递归的“类LASSO”的问题。在这方面的下一个改进是[20]的图形LASSO或gLASSO,这使得这种惩罚似然方法在计算成本方面非常有吸引力,最近在[38]中开发了针对高维的改进。尽管如此,从计算角度来看,邻域选择方法仍然便宜得多。
高斯图模型的L1-正则化子研究
在续集中,为了清楚起见,我们提出了我们建议的扩展惩罚最大似然。然而,在实践中,所有的扩展都独立于所使用的公式(可能性或伪可能性),并且这两种策略之间的最终选择留给用户。
5.2.2受监管网络建模激励的扩展
虽然稀疏性是解决这个问题所必需的,但当观测值很少时,将网络的估计偏向给定的拓扑结构(我们在这里称之为“结构”)可以帮助我们以更稳健的方式找到正确的图,防止算法在我们知道正确的图不太可能存在的区域中寻找解决方案。下一节将讨论在网络推理中引入关于结构的知识,作为经典GGM框架的第一个扩展。作为第二个扩展,我们建议通过估计多个GGM来解决微阵列实验中的异质性问题,每个GGM都匹配同一组变量的不同模态,这些变量对应于不同的实验条件。最后,我们总结了这一部分的适应时间过程数据,它可以与前面的两个扩展相结合。
结构化高斯图模型
具有潜在网络结构的高维推理
事实上,我们希望根据基因所属的未观察到的簇来惩罚浓度矩阵的元素。例如,让我们想象一个图,它被赋予了图5.1A所示的社区或社区结构:与属于不同社区的基因相比,属于同一社区的基因彼此高度连接。这种典型的结构通常出现在集群被生物功能定义的时候。如果两个基因属于相同的未观察到的社区,我们希望降低作用于浓度矩阵中相应条目的惩罚参数。相反,我们希望增加对应于属于具有低连通概率的不同社区的基因的条目上的惩罚参数,以便我们可以将估计的部分相关性缩小到零。
下面,我们采用图5.2所示的简单的两步方法:第一步,定义潜在结构Z和相应的惩罚矩阵P ;第二步,网络的结构自适应推理。我们参考了两篇文章,详细描述了可能的包罗万象的框架,从数学上证明了引入这种结构自适应惩罚的合理性。在[1]中,开发了一个优雅的完全似然框架,通过期望最大化(EM)算法求解。另一项工作,[37],提供了一种改进的贝叶斯算法来实现这种方法。
我们现在关注实现步骤1的两个选项。第一个是在初始图估计上使用图的混合模型来推断潜在结构。第二种是基于各种生物信息学或书目工具的生物学基础结构元素。
潜结构的推理
当然,将这种基因的划分解释为生物功能模块的模型是诱人的,即如果基因与相同的主要生物功能相关联,它们更有可能相互连接,这符合社区结构的精神。SBM框架包含了更广泛的网络拓扑结构。在这方面,图5.1仅展示了所有可能结构的一小部分。在这样的结构中,簇聚集了与其它簇中基因具有相似连接模式的基因。因此,该模型不仅能够捕捉到符合社区结构精神的功能模块,还能够捕捉到生物网络的其他主要拓扑性质,例如隔离转录因子的星形模型。这种潜在拓扑结构的广泛范围代表了通过基于专家定义的潜在结构引入生物信息的同等机会。
在哪里可以找到有关潜在结构的生物信息
许多来源可以被用作先验生物学结构,只要它们提供关于调控模式的信息。我们在这里只提供一些可以使用的提示。然而,这些基于专家的拓扑高度依赖于研究中的生物模型和研究时可用的专家知识的程度。
第一个信息来源是代谢途径,可从KEGG或BioCarta数据库获得。属于同一途径的基因更有可能相互作用,并在调控网络中连接起来。在可能的情况下,关于数据集中哪些基因编码转录因子的信息是高度相关的。当它们存在时,对数据集中每个已知转录因子的潜在结合位点的数量的计算预测对于指示在哪里寻找潜在边缘具有更大的用途。这种信息例如可在YEASTRACT数据库中获得酿酒酵母。
多高斯图模型
如[53,60]中所述,从湿实验室数据中合并不同的实验条件是基于GGM的推理方法中的常见做法。这一过程扩大了可用于推断相互作用的观测值的数量。然而,GGM假设观察到的数据形成独立且同分布的样本。在上述范例中,假设合并的数据来自单个高斯分量显然是错误的,并且可能对估计过程产生不利影响。在本节中,我们建议通过估计多个GGM来解决这个问题。
这种设置在统计和机器学习社区中受到了广泛关注,主要是在[65]中提出的LASSO组的变体和应用上,它已经启发了一些多任务学习策略,如[3,4,34,39]。我们简短地描述了如何组LASSO可能被用来推断多个图形模型,然后引入一个稍微复杂的惩罚,直接受到基因调控网络的应用程序的启发。
虽然这种形式化表达了我们对子种群网络之间的公共核心的一些期望,但它在这里并不是真正令人满意的,因为群范数的性质强制所有图共享完全相同的边集。然而,我们可以通过考虑更适合我们需要的正则化项来解决这个问题。具体地说,监管包括上调和下调监管,监管类型不太可能在不同的评估中颠倒:就部分相关性而言,符号互换是非常不可能的。这一附加约束在下面的合作套索学习问题(5.10)中被形式化,其在线性回归上下文中的性质已在[10]中研究:
图5.4说明了这两种分组罚分的结构。在所有条件下,LASSO组打开或关闭基因g和h之间的所有边缘,而LASSO组断开了上调和下调的激活。以这种方式,协同LASSO允许,例如,在一个条件子集中激活上调,而在其余条件中该调节消失。
适应时间进程数据
最后,[30,45,55]强调转录组数据集不是独立同分布的。当考虑时间过程表达数据时。大多数学习策略依赖于一阶向量自回归(VAR(1))模型,我们将在下一段中定义。在这个VAR(1)框架中,已经提出了许多推理方法来处理高维设置:[45]描述了收缩估计,而在[30]中,对有限阶偏相关进行统计测试以选择显著边缘。在[55]中,VAR(1)设置是通过结合LASSO的两个主要发展的思想来处理的,从而定义了递归弹性网络。作为弹性网络惩罚[68],该方法向原始L1正则化添加了L2项,从而鼓励在自动选择过程之上同时选择高度相关的协变量。与自适应LASSO [67]一样,权重是在先前估计的基础上进行校正的,以便使正则化参数适应系数的相对重要性。
VAR(1)建模中的条件相关性图
惩罚的可能性
时间过程数据VAR(1)建模的探讨
在将VAR(1)模型应用于时间过程数据时必须谨慎。实际上,VAR(1)模型适用于动态测量,但不提供动态网络。假设法规随时间保持不变。因此,该模型更适合于根据在接近的时间点和短时间内进行的测量来描绘短期监管动态。例如,在[31]中开发了考虑到网络随时间的可能演变并更适合生命周期数据集的模型。
5.3雌激素受体状态在乳腺癌中的应用
在本节中,我们将在真实的数据上说明GGM协方差选择在多任务框架中的实际应用。我们在[22]中提供的基因表达数据集上测试了我们的方法,其中包括466名乳腺癌患者:
5.3.1背景
乳腺癌是一种异质性疾病,由表皮生长因子受体2基因ERBB2的扩增状态和激素受体的存在所定义的各种亚型组成。在这项工作中,我们特别感兴趣的雌激素受体(ER)的状态,这是一个重要的参数的病理分析乳腺癌。雌激素是一种女性性激素,可能通过触发受损细胞中的特定蛋白质(受体)来刺激癌症的生长。如果乳腺癌细胞具有雌激素受体,则癌症被称为ER阳性(ER)。相应的ER肿瘤通常使用抗激素疗法(如他莫昔芬)进行治疗,可以阻止雌激素刺激细胞分裂和生长。ER肿瘤通常比具有雌激素阴性(ER)状态的肿瘤具有更有利的预后,所述雌激素阴性(ER)状态的肿瘤通常在临床上更具侵袭性。了解ER状态的分子机制有助于更好地表征肿瘤,并为患者提供适当的治疗和预后信息。因此,在这项研究中,我们的目的是确定在ER和ER条件下推断的基因网络结构的变化。基于前面章节中描述的GGM框架,我们开发了一种方法来推断基因调控网络在每种条件下使用其结构的生物先验。生物学先验信息来自对ER和ER患者之间差异表达的基因进行的途径富集分析。因此,一般的想法是,网络的两个基因之间的边缘的存在取决于基因是否属于相同的途径而被促进或惩罚。
在第5.3.2小节中,我们详细介绍了生物先验信息的生成。这一部分分为两个步骤:(1)我们将通过选择信息量最大的基因来进行数据分析以降低数据维度,(2)我们进行途径富集分析以确定潜在结构。在5.3.3小节中,该结构被用作先验知识来驱动多任务框架中的网络推理,其中实验条件是ER或ER状态。这种三步分析管道已在[25]中提出。
5.3.2生物学先验定义
寻找差异表达的基因是微阵列数据分析中广泛使用的方法,以识别与感兴趣的表型相关的基因并降低数据维数。
途径分析
研究人员面临的一个共同挑战是用生物学上有意义的术语解释基因签名。如[16]所述,通路分析的组测试在基因表达数据分析领域特别流行。它包括确定该特征是否富含途径关键参与者。通过进行如[35]中所做的过度代表性分析,我们搜索在签名的基因组中偶然代表超过预期的途径。
这种方法首先需要一组预先定义的路径来分析。使用KEGG [27]和BioCarta数据库进行富集试验。相应的途径集可在MSigDB网站上获得,该网站包含注释基因集的集合。KEGG和BioCarta途径中的特征富集已被测量,并导致在5%水平上鉴定出28个显著途径(见图5.5)。
核心通路。从层次聚类中,我们确定了与几种分子和细胞功能相关的三个核心通路。与细胞凋亡和细胞生长及增殖相关的核心途径以浅灰色显示。与细胞死亡相关的一个用黑色表示。最后,最后一条核心途径(深灰色)靶向蛋白质转运和小分子生化.CDK 5:细胞周期蛋白依赖性激酶5,HER-2:人表皮生长因子受体2。
图5.5中展示了通过层次聚类方法识别出的三个核心通路。第一个核心通路与细胞生长和增殖有关。它还通过基因BLC2与凋亡相关,该基因在某些细胞中参与阻止凋亡。凋亡是程序性细胞死亡的主要类型之一,基本上导致细胞自杀。第二个核心通路与细胞死亡相关,特别通过IGFiR基因增强细胞存活来参与抗凋亡功能。最后一个核心通路更为异质化。我们识别出两类主要功能:蛋白质运输(例如蛋白质的运输或信号传递)和小分子的生物化学(主要是脂肪酸和脂质代谢)。这些核心通路中的每一个将在下一步中用作生物先验信息来驱动网络推断。
5.3.3生物先验的网络推理:应用和解释
基于第2.2节中详细描述的合作策略,并在[11]的R包SIMoNe中实现,我们从基因签名进行网络推理。因此,我们考虑两个包含200个节点的网络(每个条件一个),每个节点代表签名中的一个基因。ER网络有649条边,ER网络有647条边。图5.6概括了这两个网络,它显示了整个网络的一个子部分,我们将在下面举一个例子。这两个网络都有很强的联系,这意味着它们有大量的公共边,在图5.6中用灰色表示。
为了说明推断网络的相关性,我们关注一组参与抗凋亡机制的边缘(图5.6中以粗体显示)。细胞凋亡的失活在癌症的发生和发展中起到关键作用。其中,已知BCL2基因介导各种人类细胞系统中的抗凋亡信号。在我们的研究中,我们观察到BCL2和ESR1之间的一个边缘,这表明在抗凋亡基因和ESR1雌激素受体之间存在调节。这一点得到了[46]的证实,其中观察到ESR1靶向MCF7乳腺癌细胞系中的BCL2。ESR1受体在文献中一直是关注的焦点,因为它调节癌症发展中的几个关键基因。例如,在我们的研究中,我们确定了ESR1与受体EGFR和IGF1R之间的潜在调节。这两种规则在文献中是已知的。事实上[52]显示ESR1增加EGFR的转录,[44]证明IGF1R的表达受ESR1调节。最后,从我们的研究中推断出的和从文献中证实的边缘,使我们能够重建图5.7所示的图。
除了这样的结果,我们的方法提供了有关基因调控的额外信息。事实上,它使我们能够具体说明在什么条件下发生调节。例如,[32]强调ERBB3调节ERBB4蛋白。我们的分析表明,它只在ER肿瘤中起作用。相反,在ER条件下,我们注意到CDK6和IGF1R之间存在一个边缘,该边缘在ER网络中不出现。
乳腺肿瘤ER状态的应用突出了癌症进展的关键机制(细胞生长和增殖,细胞死亡......)。为了说明我们的方法,我们专注于抗凋亡过程。我们展示了通过比较ER和ER网络与文献中已知的边缘的相关性。此外,我们提供的框架还允许我们指定特定条件的法规。因此,我们能够靶向ER或ER肿瘤中特异性发生的分子机制。这样的结果可以作为临床应用的起点,以根据患者的ER状态定制治疗。
5.4结论与讨论
调控网络的推理是系统生物学中一个非常具有挑战性的问题,GGMs构成了一个有前途的框架。在这一章中,我们讨论了几个模型和它们的生物应用的动机扩展。首先,我们描述了一种考虑浓度矩阵上的潜在结构的方法,该方法使我们能够对基因连接特征的异质性进行建模。它特别适用于推断基因网络,因为有组织的模块性在生物系统中无处不在。然后,我们介绍了在不同实验条件下推断网络的各种方法。这些方法指的是本章中的多种GGM推断,其动机是需要分析多种条件下的转录组数据,其中可以使用许多测量相同分子表达的样本。我们提出通过同时学习估计问题来估计网络,而不是像通常那样合并各种条件。它包括在整个条件下对变量之间的偏相关进行分组,以支持具有公共边缘的图形。最后,我们提出了一种处理时变数据的类似方法。由于所有以前的方法都对似然函数的不同部分产生影响,因此它们可以以许多不同的方式进行组合:例如,基于时间过程测量的多个GGM或与潜在拓扑结构相结合的多个GGM。因此,我们提供了一个完整的网络推理工具箱。在乳腺癌数据上的应用是多重推理与基于专家的潜在结构相结合的一个很好的例子。
从实践的角度来看,GGMs及其扩展可以为基因之间存在的相互影响提供有用的见解。关于乳腺肿瘤中ER状态的研究很好地说明了我们的方法从微阵列数据中突出相关生物学现象的潜力。然而,由于边缘是以数据集中存在的所有其他基因为条件定义的,因此推断网络的相关性在很大程度上取决于分析中是否包含所有潜在的协变量。因此,应谨慎对待结果,因为当中间基因实际上负责这种调节时,一些缺失的协变量可能会导致突出两个基因之间的直接因果关系。因此,作为未来的研究,我们的目标是整合来自各种技术的异构“组学”数据,因为基因表达数据使我们能够理解整个系统的有限部分。事实上,基因表达的调节是由转录因子、microRNA、剪接因子和在转录组学、蛋白质组学或代谢组学水平上发生的其他复杂过程的复杂组合控制的。尽管缺乏测量蛋白质或代谢水平的大规模数据集,但其他信息来源,如蛋白质-蛋白质相互作用,转录因子及其DNA结合位置或microRNA之间的相互作用,可以整合到此类研究中。读者应该知道,在生物学应用中使用偏相关意味着两个基因之间的线性关联。因此,这种策略不适合例如饱和效应建模。
从方法论的角度来看,如何调整刑罚总量的关键问题仍然是一个讨论的问题。交叉验证是一种流行的解决方案。然而,它自身的构造使它更适合于预测问题,而不是选择问题。最重要的是,它在小样本上非常不稳定,比如我们在微阵列实验中必须科普的样本。BIC自适应[15,69]在“大p,小n”设置中失去了其渐近公正性[47,54],但在模拟实验中的模型选择方面往往表现出非常好的行为。一些方法被开发来满足这种需要的惩罚,保证鲁棒性和稳定的高维模型选择。在这方面,我们至少应该提到三种有趣的做法。GGMselect过程[21],沿着其相应的R包GGMselect,专门设计用于处理样本量小于变量数量的情况。一方面[41]和另一方面[33]中设计了两个基于引导程序的过程,后者在R包中可用。
作为未来的工作,许多问题引起了我们的注意。首先,由于高维设置和高噪声水平,学习过程的稳定性仍然相当不稳定,因此迫切需要提高其鲁棒性。理论见解如[2, 49]可能有助于理解获得完全可信估计所需的观测数量的实际限制。基于自举方法的发展也可以提高网络的鲁棒性。显然,这也强调了需要高维测试框架,以便对估计网络得出置信区间并统计验证推断网络之间观察到的差异。像[42, 61]这样的高维测试方案为解决方案铺平了道路,但尚未回答如何基于两个不同群体的高维估计进行比较的确切问题。
参考文献
略
相关文章:
论文阅读(五):乳腺癌中的高斯图模型和扩展网络推理
1.论文链接:Network Inference in Breast Cancer with Gaussian Graphical Models and Extensions 摘要: 具有高相关性的聚类基因将具有接近表达谱的基因分组,确定共表达基因的聚类。然而,这种相关性并没有提供任何关于基因间信息…...
定时器按键tim_key模版
低优先级放在高优先级内势必是程序卡死 把高优先级放到低优先级内,会使程序卡死 可修改 Debuger调试方法 Pwm rcc #include "my_main.h" uint8_t led_sta0x10; char text[30]; void LED_Disp(uint8_t dsLED) {HAL_GPIO_WritePin(GPIOC,GPIO_PIN_All,GPI…...
Effective Objective-C 2.0 读书笔记—— objc_msgSend
Effective Objective-C 2.0 读书笔记—— objc_msgSend 文章目录 Effective Objective-C 2.0 读书笔记—— objc_msgSend引入——静态绑定和动态绑定OC之中动态绑定的实现方法签名方法列表 其他方法objc_msgSend_stretobjc_msgSend_fpretobjc_msgSendSuper 尾调用优化总结参考文…...
机器学习 vs 深度学习
目录 一、机器学习 1、实现原理 2、实施方法 二、深度学习 1、与机器学习的联系与区别 2、神经网络的历史发展 3、神经网络的基本概念 一、机器学习 1、实现原理 训练(归纳)和预测(演绎) 归纳: 从具体案例中抽象一般规律…...
Vue中的动态组件是什么?如何动态切换组件?
什么是动态组件? 动态组件是 Vue.js 中的一项强大功能,它允许开发者根据程序的状态或用户的操作,动态地切换组件。动态组件的优势在于,开发者可以根据具体需求灵活地渲染不同的组件,从而提高应用的通用性和可维护性。…...
Spring IoC DI
目录 一. IoC & DI 入门 1. 重谈Spring 2. 容器 3. IoC ① 传统程序开发 ② IoC 程序开发 ③ IoC 的优势 4. DI 3. IoC & DI 使用 二. IoC & DI 详解 1. Bean的存储 2. Bean的重命名 3. 扫描路径 三. DI 详解 1. 属性注入 2. 构造方法注入 3. Se…...
【Linux】线程、线程控制、地址空间布局
⭐️个人主页:小羊 ⭐️所属专栏:Linux 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~ 目录 1、Linux线程1.1 线程的优缺点1.2 线程异常和用途1.3 线程等待1.3 线程终止1.4 线程分离1.5 线程ID和地址空间布局1.6 线程栈 1、…...
【记录】日常|从零散记录到博客之星Top300的成长之路
文章目录 shandianchengzi 2024 年度盘点概述写作风格简介2024年的创作内容总结 shandianchengzi 2024 年度盘点 概述 2024年及2025年至今我创作了786即84篇文章,加上这篇就是85篇。 很荣幸这次居然能够入选博客之星Top300,这个排名在我之前的所有年份…...
网盘资源查找工具---AI功能
01 软件介绍 这是一款融入了ai技术的网盘搜索神器,可以让你更快,更精准的找到自己需要的文件,不管你是找影视,音乐,还是找软件或者学习资料都可以,欢迎前来使用。 02 功能展示 该软件非常简洁ÿ…...
LWJGL轻量级Java游戏库
LWJGL - Lightweight Java Game Library 基本介绍 LWJGL是一个Java库,它支持跨平台访问流行的本地api,这些api在图形(OpenGL, Vulkan)、音频(OpenAL)和并行计算(OpenCL)应用程序的…...
AI智能日志分析系统
文章目录 1.combinations-intelligent-analysis-starter1.目录结构2.pom.xml3.自动配置1.IntelligentAnalysisAutoConfiguration.java2.spring.factories 2.combinations-intelligent-analysis-starter-demo1.目录结构2.pom.xml3.application.yml4.IntelligentAnalysisApplicat…...
详解三种常用标准化:Batch Norm、Layer Norm和RMSNorm
在深度学习中,标准化技术是提升模型训练速度、稳定性和性能的重要手段。本文将详细介绍三种常用的标准化方法:Batch Normalization(批量标准化)、Layer Normalization(层标准化)和 RMS Normalization&#…...
数据压缩算法-差分编码(Delta Encoding)
Delta Encoding(差分编码)是一种数据压缩技术,其核心思想是存储数据之间的差异(delta),而不是原始数据本身。这种方法特别适用于数据序列中相邻元素之间变化较小的情况,可以显著减少存储空间或传…...
Nginx中部署多个前端项目
1,准备前端项目 tlias系统的前端资源 外卖项目的前端资源 2,nginx里面的html文件夹中新建,tlias和sky两个文件夹。 切记这是在nginx/html下创建的 mkdir sky mkdir tlias 把tlias和sky的资源都放到对应的文件夹中 3,编辑配置ngi…...
Level DB --- TableBuilder
TableBuilder是Level DB里面重要的类和模块,它描述了数据如何序列化到文件中,以及数据里面的格式逻辑。它里面包含了之前介绍的多个模块和类。 data block、filter block和index block block格式,之前已经介绍过Level DB --- BlockBuilder-…...
JVM堆空间
一、堆空间的核心概述 一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心区域。Java堆区在JVM启动的时候即被创建,其空间大小也就确定了。是JVM管理的最大一块内存空间。 堆内存的大小是可以调节的。堆可以处于物理上不连续的内存空间中ÿ…...
【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】1.13 降维打击:扁平化操作的六种武器
1.13 降维打击:扁平化操作的六种武器 目录 #mermaid-svg-bbLxDryjxBbXe3tu {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-bbLxDryjxBbXe3tu .error-icon{fill:#552222;}#mermaid-svg-bbLxDryjxBbXe3tu…...
Doris Schema Change 常见问题分析
1. 什么是 Schema Change Schema Change 是在数据库中修改表结构的一种操作,例如添加列、删除列、更改列类型等。 ⚠️Schema Change 限制⚠️ 一张表在同一时间只能有一个 Schema Change 作业在运行。分区列和分桶列不能修改。如果聚合表中有 REPLACE 方式聚合的…...
数据结构之堆排序
文章目录 堆排序版本一图文理解 版本二向下调整建堆向上调整建堆 排升/降序升序 堆排序 版本一 基于已有数组建堆取堆顶元素并删除堆顶元素重新建大根堆,完成排序版本。 图文理解 版本二 前提:必须提供有现成的数据结构堆 数组建堆,首尾…...
实现桌面动态壁纸(三)—— 视频播放的策略
关于动态壁纸这边,其实已经不需要再谈什么东西了,现有的各种文章都在介绍相关的技术。可以说现如今要去制作一个桌面动态壁纸应该不是什么难事。我考虑了很久,决定还是开一篇单独谈谈。可能我说的也不全部正确,您有什么建议随时可…...
C语言程序设计十大排序—希尔排序
文章目录 1.概念✅2.希尔排序🎈3.代码实现✅3.1 直接写✨3.2 函数✨ 4.总结✅ 1.概念✅ 排序是数据处理的基本操作之一,每次算法竞赛都很多题目用到排序。排序算法是计算机科学中基础且常用的算法,排序后的数据更易于处理和查找。在计算机发展…...
2023年版本IDEA复制项目并修改端口号和运行内存
2023年版本IDEA复制项目并修改端口号和运行内存 1 在idea中打开server面板,在server面板中选择需要复制的项目右键,点击弹出来的”复制配置…(Edit Configuration…)“。如果idea上没有server面板或者有server面板但没有springbo…...
Ubuntu 安装 QGIS LTR 3.34
QGIS官方提供了安装指南:https://qgis.org/resources/installation-guide/#linux。大多数linux发行版将QGIS拆分为几个包:qgis、qgis-python、qgis-grass、qgis-plugin-grass、qgis-server,有的包最初安装时被跳过,可以在需要使用…...
win32汇编环境,对话框程序中使用进度条控件
;运行效果 ;win32汇编环境,对话框程序中使用进度条控件 ;进度条控件主要涉及的是长度单位,每步步长,推进的时间。 ;比如你的长度是1000,步长是100,每秒走1次,则10秒走完全程 ;比如你的长度是1000,步长是10,每秒走1次,则100秒走完全程,但每格格子的长度与上面一样 ;以下…...
从ChatGPT热潮看智算崛起
2025年1月7日,科智咨询发布《2025年IDC产业七大发展趋势》,其中提到“ChatGPT开启生成式AI热潮,智能算力需求暴涨,算力供给结构发生转变”。 【图片来源于网络,侵删】 为何会以ChatGPT发布为节点呢?咱们一起…...
APISIX-API服务网关
一、简介 apisix是一款云原生微服务API网关,可以为API提供终极性能、安全性、开源和可扩展的平台。apisix基于Nginx和etcd实现,与传统API网关相比,apisix具有动态路由和插件热加载,特别适合微服务系统下的API管理。 Apisix 的诞生…...
NR_shell运行流程简析
nr_shell 是一套开源 shell 框架,基于框架可创建终端交互功能。 为了记录终端输入指令,以及进行解析处理,nr_shell 提供了一套 cmd 结构体,具体如下:typedef struct static_cmd_function_struct {char cmd[NR_SHELL_CM…...
leetcode_链表 876.链表的中间节点
876.链表的中间节点 给你单链表的头结点 head ,请你找出并返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。思路:快慢指针,创建两个指针fast和slow,fast指针每次移动两步,slow指针每次移动…...
idea实用设置
一.View 1.配置工具包方便按 二.File->Settings 点开设置然后进行后面的配置 1.这个看个人习惯 2.更新 3.更改菜单字体大小 4.鼠标控制字体大小 5.文件默认字体大小 6. 代码的智能提示功能 7.自动导包 8.编码 9.取消双击shift搜索...
ui-automator定位官网文档下载及使用
一、ui-automator定位官网文档简介及下载 AndroidUiAutomator:移动端特有的定位方式,uiautomator是java实现的,定位类型必须写成java类型 官方地址:https://developer.android.com/training/testing/ui-automator.html#ui-autom…...
Java数据结构方面的面试试题以及答案解析
Java数据结构是在计算机中存储和组织数据的方式,用于高效地处理和管理数据。 以下是一些常见的Java数据结构: 数组(Array):一种线性数据结构,允许通过索引快速访问元素。它存储固定大小的相同类型的元素集…...
微信小程序-点餐(美食屋)02开发实践
目录 概要 整体架构流程 (一)用户注册与登录 (二)菜品浏览与点餐 (三)订单管理 (四)后台管理 部分代码展示 1.index.wxml 2.list.wxml 3.checkout.wxml 4.detail.wxml 小结优点 概要…...
Redis实战(黑马点评)——关于缓存(缓存更新策略、缓存穿透、缓存雪崩、缓存击穿、Redis工具)
redis实现查询缓存的业务逻辑 service层实现 Overridepublic Result queryById(Long id) {String key CACHE_SHOP_KEY id;// 现查询redis内有没有数据String shopJson (String) redisTemplate.opsForValue().get(key);if(StrUtil.isNotBlank(shopJson)){ // 如果redis的数…...
DroneXtract:一款针对无人机的网络安全数字取证工具
关于DroneXtract DroneXtract是一款使用 Golang 开发的适用于DJI无人机的综合数字取证套件,该工具可用于分析无人机传感器值和遥测数据、可视化无人机飞行地图、审计威胁活动以及提取多种文件格式中的相关数据。 功能介绍 DroneXtract 具有四个用于无人机取证和审…...
uniapp使用uni.navigateBack返回页面时携带参数到上个页面
我们平时开发中也经常遇到这种场景,跳转一个页面会进行一些操作,操作完成后再返回上个页面同时要携带着一些参数 其实也很简单,也来记录一下吧 假设从A页面 跳转到 B页面 A页面 直接上完整代码了哈,很简单: <t…...
2025美赛MCM数学建模A题:《石头台阶的“记忆”:如何用数学揭开历史的足迹》(全网最全思路+模型)
✨个人主页欢迎您的访问 ✨期待您的三连 ✨ 《石头台阶的“记忆”:如何用数学揭开历史的足迹》 目录 《石头台阶的“记忆”:如何用数学揭开历史的足迹》 ✨摘要✨ ✨引言✨ 1. 引言的结构 2. 撰写步骤 (1)研究背景 &#…...
python远程获取数据库中的相关数据并存储至json文件
1. conn中的5个变量的含义: ① Driver:数据库驱动程序,我使用的是SQL Server数据库。 ② Server:数据库所在的服务器地址。 ③ Database:要连接的数据库的名称。 ④ UID:登录 SQL Server 数据库的用户名…...
DeepSeek-R1解读:纯强化学习,模型推理能力提升的新范式?
DeepSeek-R1解读:纯强化学习,模型推理能力提升的新范式? 1. Impressive Points2. 纯强化学习,LLM推理能力提升新范式?2.1 DeepSeek-R1-Zero2.2 DeepSeek-R1 3. 端侧模型能力提升:蒸馏>强化学习 1. Impre…...
系统安全及应用
一:账号安全控制 1.1 系统账号清理 1.1.1 将非登陆用户的Shell 设置为 /sbin/nologin (设置为这个解释器,禁止用户登陆) [rootlocalhost ~]# usermod -s /sbin/nologin zhangsan #将用户zhangsan 的登录解释器 设置为 /sbin/n…...
ubuntu解决普通用户无法进入root
项目场景: 在RK3566上移植Ubuntu20.04之后普通用户无法进入管理员模式 问题描述 在普通用户使用sudo su试图进入管理员模式的时候报错 解决方案: 1.使用 cat /etc/passwd 查看所有用户.最后一行是 若无用户,则使用 sudo useradd -r -m -s /…...
Mac m1,m2,m3芯片使用nvm安装node14报错
使用nvm安装了node 12/16/18都没有问题,到14就报错了。第一次看到这个报错有点懵,查询资料发现是Mac芯片的问题。 Issue上提供了两个方案: 1、为了在arm64的Mac上安装node 14,需要使用Rosseta,可以通过以下命令安装 …...
IDEA工具下载、配置和Tomcat配置
1. IDEA工具下载、配置 1.1. IDEA工具下载 1.1.1. 下载方式一 官方地址下载 1.1.2. 下载方式二 官方地址下载:https://www.jetbrains.com/idea/ 1.1.3. 注册账户 官网地址:https://account.jetbrains.com/login 1.1.4. JetBrains官方账号注册…...
实战网络安全:渗透测试与防御指南
📝个人主页🌹:一ge科研小菜鸡-CSDN博客 🌹🌹期待您的关注 🌹🌹 引言 在数字化时代,网络安全已成为企业和个人不可忽视的重要课题。网络攻击的复杂性与日俱增,从数据泄露…...
Vue 3 中的 toRef 与 toRefs:使用与案例解析
在 Vue 3 的响应式系统中,toRef 和 toRefs 是两个非常实用的工具函数。它们主要用于将响应式对象的属性转换为单独的 ref,以便在模板或逻辑中更方便地使用。本文将详细介绍 toRef 和 toRefs 的用法,并通过一个老师信息的案例来演示它们的实际…...
如何让Dev-C++支持C++11及以上标准
目录 问题描述解决方案步骤1:打开编译选项 问题描述 在Dev-C中使用C11/17/20新特性(如pop_back()等)时,可能出现编译错误: #include <iostream> #include<string> using namespace std; int main() {str…...
java8-日期时间Api
目录 LocalDate更新时间LocalTimeLocalDateTimeInstantPeriod Duration格式化、解析日期-时间对象时区 java.util.Date java.util.Calendar 不支持时区 线程不安全 月份从0起线程不安全,只有包裹在ThreadLocal中才安全 java.text.DateFormat java.text.SimpleDateFo…...
电脑无法开机,重装系统后没有驱动且驱动安装失败
电脑无法开机,重装系统后没有驱动且驱动安装失败 前几天电脑突然坏了,电脑卡住后,强制关机,再开机后开机马上就关机。尝试无数次开机后失败,进入BIOS界面,发现已经没有Windows系统了。重新安装系统后&…...
Vue.js 传递路由参数和查询参数
Vue.js 传递路由参数和查询参数 在 Vue.js 开发中,Vue Router 提供了灵活的方式来处理路由参数和查询参数,使得组件能够根据不同的路径或查询条件渲染相应的内容。 路由参数 路由参数(也称为路径参数)是 URL 路径的一部分&…...
Java 反射机制介绍
Java学习资料 Java学习资料 Java学习资料 一、引言 在 Java 编程里,反射机制是一项强大且独特的特性。它赋予程序在运行时动态地获取类的信息,并且可以操作类或对象的属性、方法和构造函数等。借助反射机制,程序的灵活性和可扩展性得到显著…...
Final2x--开源AI图片放大工具
Final2x--开源AI图片放大工具 链接:https://pan.xunlei.com/s/VOHSklukQAquUn3GE7eHJXfOA1?pwdr3r3#...