对比机器学习揭示了跨物种共享与特异性的脑功能结构|文献速递-医学影像人工智能进展
Title
题目
Contrastive machine learning reveals species -shared and -specific brainfunctional architecture
对比机器学习揭示了跨物种共享与特异性的脑功能结构
01
文献速递介绍
猕猴作为人类的动物模型,广泛用于研究大脑和行为的关键方面(Goulas等,2014a)。这可能归因于这两个物种至少在某种程度上共享共同的大脑结构(Orban等,2004;Rilling等,2008),例如功能连接组(Margulies等,2009),这些连接组反映了大脑区域的协作(Sporns,2011),并被认为与大脑功能和行为的出现有关(Shen等,2017)。然而,猕猴和人类大约在2500万年前就从它们的共同祖先中分化开来(Kumar和Hedges,1998)。随着物种在系统发育树上分支,共性在许多方面发生了变化,例如皮层的不成比例扩展和轴突的重新连接(Semendeferi等,2002;Krubitzer和Kaas,2005;Van Essen和Dierker,2007a),因此将猕猴的大脑翻译成人类的大脑可能不仅仅是大脑缩放的问题。因此,定量研究跨物种的大脑结构共性和差异,包括功能连接组,可能为大脑功能和行为的保留与演化提供见解,并且对于更好地利用动物模型将知识转化为人类的科学和临床应用至关重要(Kelly等,2012)。
当前的研究通常将一个物种视为“背景”,如猕猴,并与另一物种进行对比(Deacon,1990)。这种比较范式在某些背景下有效,例如应用对比变分自编码器(CVAE)(Abid和Zou,2019)捕捉自闭症患者的大脑特征,相对于正常人群,后者作为“背景”进行对比(Aglinskas等,2022)。但对于跨物种比较,物种是独立演化并从它们的共同祖先中分化出来,发展出各自独特的特征。现有范式难以诱导出差异的来源,即这些差异是否归因于猕猴分支的演化,还是归因于人类分支的演化。从这个角度来看,更合理的做法是假设两物种共享一个“大脑”作为“背景”,以此为基础对比这两个物种,从而能够并行地分离出物种特有的特征。此外,将一个物种与“背景”进行匹配的假设理论上基于我们已经知道需要匹配的因素(Deacon,1990)。然而,不同个体之间存在内在的个体变异,甚至可能有方法学上的伪影。这些无关的变异可能会模糊特定物种的共性或特有变异的识别(Buckner和Krienen,2013)。
为了解决这些问题,我们最近开发了一种基于变分自编码器(Kingma和Welling,2013)的新算法,称为共享-特有变异自编码器(SU-VAE),用于比较猕猴和人类大脑的静息态功能MRI导出的连接组。SU-VAE以两个物种的未配对大脑功能连接组为输入,将每个物种的“特有”变异从“共享”变异中解耦开来,而后者最初是未知的,需要估计。通过这种方式,这些变异以三组不同的潜在特征表示,如图1所示。
我们在两个大型神经成像数据集上开发了该方法:人类连接组计划(HCP)数据集(Van Essen等,2012)和威斯康星大学麦迪逊分校的猕猴MRI(MUWM)数据集(UW-Madison,2018)。通过验证,解耦后的潜在特征在人类数据集上的验证表明,人类特有的特征与认知评分(如语言相关评分)有差异性关联,而与猕猴共享的特征则表现出与感觉运动评分的更强关联。接着,我们识别了物种共享的连接组及各自物种特有的连接组,这些结果得到了以往研究的支持。我们进一步将这些解耦后的连接组投射到大脑皮层,通过这种方式展示了一个反映物种之间连接组分化的梯度。为了进一步解释这些结果,我们计算了共享和特有连接组的图度量,以辨别它们在功能连接组演化中的潜在作用。结果发现,引入人类特有的连接,而非猕猴特有的连接,能增强网络效率。最后,我们在Allen Institute提供的全脑基因表达数据集上探索了可能的基因调控机制,这些机制可能与演化压力及人类特有功能连接组的形成相关(Shen等,2012)。我们识别了一组富集在“轴突引导”中的基因。我们通过在一个独立的大规模人类数据集——中国人类连接组计划(CHCP)数据集(Ge等,2023)上复制结果,验证了我们方法的稳健性和广泛性。
Abatract
摘要
A deep comparative analysis of brain functional connectome across species in primates has the potential toyield valuable insights for both scientific and clinical applications. However, the interspecies commonalityand differences are inherently entangled with each other and with other irrelevant factors. Here we developa novel contrastive machine learning method, called shared-unique variation autoencoder (SU-VAE), to allowdisentanglement of the species-shared and species-specific functional connectome variation between macaqueand human brains on large-scale resting-state fMRI datasets. The method was validated by confirming thathuman-specific features are differentially related to cognitive scores, while features shared with macaquebetter capture sensorimotor ones. The projection of disentangled connectomes to the cortex revealed a gradientthat reflected species divergence. In contrast to macaque, the introduction of human-specific connectomes tothe shared ones enhanced network efficiency. We identified genes enriched on ‘axon guidance’ that couldbe related to the human-specific connectomes.
在灵长类动物中,对大脑功能连接组的深度比较分析具有潜力为科学研究和临床应用提供宝贵的见解。然而,不同物种之间的共性和差异本质上是交织在一起的,并与其他不相关因素相互影响。在这项研究中,我们开发了一种新型的对比机器学习方法,称为共享-特有变异自动编码器(SU-VAE),用于揭示猕猴和人类大脑在大规模静息态fMRI数据集中的物种共享与物种特有的功能连接组变异。通过验证,人类特有的特征与认知评分存在差异性关联,而与猕猴共享的特征则更好地捕捉了感觉运动功能。将解耦后的连接组投射到大脑皮层后,揭示了一种反映物种分化的梯度。与猕猴相比,引入人类特有的连接组后,共享连接组的网络效率得到了提升。我们还识别出富集在“轴突引导”中的基因,可能与人类特有的连接组相关。
Method
方法
2.1. Previous work
2.1.1. Disentangled representation learning
Finding representations for the task is fundamental in machinelearning. Characterizing a factor as ‘disentangled’ when any intervention on this factor results in a specific change in the generateddata (Bengio et al., 2013). Recently, much work focused on learningdisentangled representations with VAEs (Higgins et al., 2016; Locatelloet al., 2019b; Tschannen et al., 2018), in which each latent featurelearns one semantically meaningful factor of variation, while being invariant to other factors. Disentangled representation learning has beenproposed as an approach to learning general representations even inthe absence of, or with limited, supervision (Liu et al., 2022). Althoughthere is no widely accepted definition of disentangled representationsyet, the main intention is to separate the main factors of variationthat are present in provided data distribution (Higgins et al., 2018;Locatello et al., 2019a). However, these methods mainly focus ondisentangling the ‘factors’ of objects, unable to cope with the separationof exclusive and shared content. There are also some works focusing ondisentangling the latent features between two domains, which mainlyseek to transfer a classifier or to map an image to a different distribution (Liu et al., 2018; Lin et al., 2019; Ding et al., 2020). Thesestudies demonstrate the potential of using unpaired data for domainspecific feature extraction and inter domain feature transformation,which are also some of the abilities of the model required for theproblem we are studying. Apart from natural images, disentangledrepresentation learning has a wide range of applications in medicalimaging, such as spatial decomposition network (SDNet) (Chartsiaset al., 2019), which factorizes 2D medical images into spatial anatomical factors and non-spatial modality factors. Thermos et al. (2021)proposed a generative model that learns to combine anatomical factorsfrom different input images, re-entangling them with the desired imaging modality (e.g., MRI), to create plausible new cardiac images withspecific characteristics. These methods of feature disentanglement byfocusing on specific fields and utilizing synthesis and other means alsoprovide us with inspiration that there is great potential for learninglatent embeddings by combining and reconstructing different features.However, These methods require additional supervised learning (Linet al., 2019) or additional human guidance (Ding et al., 2020; Chartsiaset al., 2019). At the same time, they need to clearly know in advancethe features that need to be learned in each type of image dataset, suchas smile and non-smile features in sketches and real images dataset (Liuet al., 2018). These methods can be applied to conditional cross-domainimage synthesis (Thermos et al., 2021) and translation. However, theyare not very suitable for our problem which needs to be completelyunsupervised and disentangle the shared and specific features of thetwo datasets without knowing any visible features of the two datasets.
2.1. 先前的工作
2.1.1. 解耦表示学习
在机器学习中,找到任务所需的表示是基础。当对某一因子进行干预时,若能够引起生成数据的特定变化,则称该因子为“解耦”的 (Bengio et al., 2013)。近年来,许多研究集中在使用变分自编码器(VAE)学习解耦表示 (Higgins et al., 2016; Locatello et al., 2019b; Tschannen et al., 2018),其中每个潜在特征学习数据变化的一个语义上有意义的因子,同时对其他因子保持不变。解耦表示学习被提出作为一种在缺乏或有限监督的情况下学习通用表示的方法 (Liu et al., 2022)。尽管目前没有广泛接受的解耦表示定义,但其主要目的是分离数据分布中存在的主要变化因子 (Higgins et al., 2018; Locatello et al., 2019a)。然而,这些方法主要专注于解耦物体的“因子”,无法处理专属内容和共享内容的分离。有些研究也聚焦于解耦两个领域之间的潜在特征,这些研究主要试图传递分类器或将图像映射到不同的分布 (Liu et al., 2018; Lin et al., 2019; Ding et al., 2020)。这些研究展示了使用未配对数据进行领域特征提取和跨领域特征转换的潜力,这也是我们所研究问题所需要模型的一些能力。除了自然图像外,解耦表示学习在医学成像中也有广泛的应用,例如空间分解网络(SDNet)(Chartsias et al., 2019),该方法将二维医学图像分解为空间解剖因子和非空间模态因子。Thermos等人 (2021) 提出了一个生成模型,能够将来自不同输入图像的解剖因子结合在一起,再与期望的成像模态(例如MRI)重新交织,从而创建具有特定特征的可信心脏图像。这些通过专注于特定领域并利用合成等手段进行特征解耦的方法为我们提供了灵感,表明通过结合和重构不同特征来学习潜在嵌入具有巨大潜力。
然而,这些方法需要额外的监督学习 (Lin et al., 2019) 或额外的人类指导 (Ding et al., 2020; Chartsias et al., 2019)。同时,它们需要预先明确知道在每种图像数据集中需要学习的特征,例如在草图和真实图像数据集中微笑和非微笑特征 (Liu et al., 2018)。这些方法可以应用于条件跨域图像合成 (Thermos et al., 2021) 和翻译任务。然而,它们不太适合我们的研究问题,因为该问题需要完全无监督的学习,并且要求在不知道两种数据集的任何显性特征的情况下解耦共享特征和特定特征。
Results
结果
3.1. Overview of experiments
To vividly demonstrate the effectiveness of the proposed model, weinitially conducted validation on a synthetic dataset (SupplementarySection 1.2). Synthetic data consists of two types of data, which aresuperimposed by a shared ‘background’ (sunflower) and their ownunique ‘foregrounds’ (digits ‘0’ and ‘1’, respectively). The experimentalresults show that the SU-VAE successfully disentangled the sharedfeatures and specific features of the two types of data (SupplementaryFig.S1 & Fig.S3).Subsequently, large-scale human and macaque brain functional connectome data was used to train SU-VAE. Since interhemisphericaldissimilarity is not of our interest, we have 970 human connectomesamples and 880 macaque ones, where 800 human brain and macaquebrain data were used as the training set, while the remaining datawere used as the testing set. As shown in Fig. 2, the unpaired data isfirst passed through step 1 to obtain the reconstruction of the speciesshared brain functional connectome. Then, the three encoders in step2 respectively learn the latent representation of the macaque-specific,human-specific, and species-shared brain functional connectome. Finally, the validation results on the test set and the out-of-domain dataset show the superior performance of SU-VAE.
3.1. 实验概述
为了生动地展示所提出模型的有效性,我们首先在一个合成数据集上进行了验证(补充部分1.2)。合成数据包含两种类型的数据,它们由一个共享的“背景”(向日葵)和各自独特的“前景”(分别为数字‘0’和‘1’)叠加而成。实验结果表明,SU-VAE成功地将两种数据的共享特征和特定特征进行了分离(补充图S1和图S3)。随后,我们使用大规模的人类和猕猴大脑功能连接组数据来训练SU-VAE。由于我们不关注大脑半球间的差异,我们使用了970个人类连接组样本和880个猕猴连接组样本,其中800个人类大脑和猕猴大脑数据被用作训练集,其余数据用作测试集。如图2所示,未经配对的数据首先通过步骤1进行处理,以获得物种共享的大脑功能连接组的重建。然后,步骤2中的三个编码器分别学习猕猴特定、大脑人类特定和物种共享的大脑功能连接组的潜在表示。最后,测试集和域外数据集的验证结果显示,SU-VAE的性能优越。
Figure
图
Fig. 1. Data flow and the framework of SU-VAE aiming at disentangling ‘species-shared’ and ‘species-specific’ functional connectomes. On the left is the construction of functionalconnectomes of the macaque brain and the human brain on a specific atlas (Brodmann areas). On the right is a schematic diagram of the SU-VAE model
图1. SU-VAE框架的数据流,旨在解耦“物种共享”和“物种特有”的功能连接组。左侧展示了基于特定图谱(Brodmann区)构建猕猴大脑和人类大脑的功能连接组。右侧是SU-VAE模型的示意图。
Fig. 2. The detailed architecture of SU-VAE. Step 1 and step 2 are marked by blue and red panels, respectively. Only class 𝑦 is shown in step 2. The ‘∼’ in step 2 means theprocesses for 𝑥 are similar to those for ?
Fig. 2. SU-VAE的详细架构。第1步和第2步分别用蓝色和红色面板标记。在第2步中,仅显示了类 𝑦。第2步中的‘∼’表示𝑥的处理过程与?的处理过程相似。
Fig. 3. (a) Box plots of the RSA results. The horizontal white line represents the mean and the vertical red line represents a 95% confidence interval. The upper and lowerbounds of boxes represent the third and first quantile. Stars(**𝑝 < 0.05,𝑝 < 0.01,*𝑝 < 0.001) on the 𝑥-axis indicates the 𝑝-value of the paired t-test on the sampling results ofsimilarity analysis for each corresponding ‘shared’ and ‘specific’ representation of the indicators. (b) Average summary of RSA results for the three major categories of behavioralindicators in (a). Abbreviations: EMPE: Episodic Memory, EF: Executive FunctionInhibition, FI: Fluid Intelligence, LRD: Language/Reading Decoding, PS: Processing Speed, SO:Spatial Orientation, SA: Sustained Attention, VEM: Verbal Episodic Memory, WM: Working Memory, CFC: Cognition Fluid Composite, CECC: Cognition Early Childhood Composite,CTCS: Cognition Total Composite Score, CCC: Cognition Crystallized Composite, ER_CRT: Emotion Recognition ER40_CRT, ER_ANG: Emotion Recognition ER40ANG, ER_FEAR:ER40FEAR, ER_HAP: ER40HAP, ER_SAD: ER40SAD, ENDU: Endurance, LOCO: Locomotion, DEX: Dexterity, STR: Strength, ODOR: Olfaction, TAST: Taste
图 3. (a) RSA 结果的箱型图。水平白线表示均值,垂直红线表示95%的置信区间。箱体的上界和下界分别表示第三和第一四分位数。𝑥 轴上方的星号(𝑝 < 0.05,𝑝 < 0.01,𝑝 < 0.001)表示配对t检验的𝑝值,针对每个对应的“共享”和“特定”表示指标的相似性分析的采样结果。(b)(a)中三个主要类别的行为指标的RSA结果的平均总结。缩写:EMPE:情景记忆,EF:执行功能抑制,FI:流体智力,LRD:语言/阅读解码,PS:处理速度,SO:空间定向,SA:持续注意力,VEM:口头情景记忆,WM:工作记忆,CFC:认知流动性综合指数,CECC:早期儿童认知综合指数,CTCS:总认知综合得分,CCC:晶体化认知综合得分,ER_CRT:情绪识别ER40_CRT,ER_ANG:情绪识别ER40ANG,ER_FEAR:ER40FEAR,ER_HAP:ER40HAP,ER_SAD:ER40SAD,ENDU:耐力,LOCO:运动,DEX:灵巧,STR:力量,ODOR:嗅觉,TAST:味觉。
Fig. 4. (a) Average matrix form of inputs and significant shared and specific connections as outputs. (b) Display of specific and shared connections against the surface of the brainas the background
图 4. (a) 输入的平均矩阵形式,以及显著的共享和特定连接作为输出。 (b) 将特定和共享连接显示在大脑表面上作为背景。
Fig. 5. T-SNE results of latent features comparison among methods on BA data. (a) T-SNE result of SU-VAE. (b) T-SNE result of CVAE. (c) T-SNE result of DIG. (d) T-SNE result of DID
图 5. BA 数据上方法间潜在特征比较的 T-SNE 结果。 (a) SU-VAE 的 T-SNE 结果。 (b) CVAE 的 T-SNE 结果。 (c) DIG 的 T-SNE 结果。 (d) DID 的 T-SNE 结果。
Fig. 6. Comparison of latent embeddings of different models with representation similarity analysis. (a) (b) (c) (d) (e) are the results on BA data that trained by SU-VAE, CVAE,DMR, DID, and DIG, respectively. Due to the fact that SU-VAE and CVAE are probability models based on VAE, we sampled the latent embeddings of each subject in these twomodels 6 times, while DID and DIG are GAN based models, DMR is a linear model, and each subject in these three models corresponds to only one latent embeddings.
图 6. 不同模型潜在嵌入的比较,采用表示相似性分析。 (a) (b) (c) (d) (e) 是基于 SU-VAE、CVAE、DMR、DID 和 DIG 训练的 BA 数据上的结果。由于 SU-VAE 和 CVAE 是基于 VAE 的概率模型,我们对这两种模型中的每个主题的潜在嵌入进行了 6 次采样,而 DID 和 DIG 是基于 GAN 的模型,DMR 是线性模型,在这三种模型中,每个主题对应一个潜在嵌入。
Fig. 7. The differences in functional connectomes between species are transferred onto the cortical surface space. Individual matching between species was conducted by leveragingthe shared features of the trained SU-VAE. Functional connectome differences (human minus macaque) between species were then calculated based on these matched pairs. Principalcomponent analysis and spectral clustering was adopted to highlight the patterns of the species difference connectomes. The left panel shows the mean species difference connectomereordered by the clustering ranks (grayscale bars) on the first two PCs. In the middle panel, BAs were placed in the space of the reordered PCs. Crossing highlights the locationof origin, where species difference is close to zero. The 2D color map as the background was used to color-code the human cortical surface, shown in the right panel. H: human,M: macaque, Vis: visual, Aud: auditory, Sen/Mo: sensory/motor, VAN: ventral attention network, DAN: dorsal attention network, LS: limbic system, FPN: frontoparietal network,DMN: default mode network.
图 7. 物种之间的功能连接组差异被转移到皮层表面空间。通过利用训练后的 SU-VAE 的共享特征进行物种之间的个体配对。然后,基于这些匹配对计算物种之间的功能连接组差异(人类减去猕猴)。主成分分析(PCA)和谱聚类被用来突出物种差异连接组的模式。左侧面板显示了根据聚类排名(灰度条)重新排序的物种差异连接组的平均值,基于前两个主成分。在中间面板中,BAs(Brodmann 区)被放置在重新排序后的主成分空间中,交叉处突出显示了物种差异接近零的位置。右侧面板展示了用 2D 色彩图作为背景的人的皮层表面,并通过颜色编码。H: 人类,M: 猕猴,Vis: 视觉,Aud: 听觉,Sen/Mo: 感觉/运动,VAN: 腹侧注意网络,DAN: 背侧注意网络,LS: 边缘系统,FPN: 前额顶网络,DMN: 默认模式网络。
Fig. 8. Six graph metrics on random, macaque, human and species-shared connectome graph displayed through box plot, paired t-test is used to compare the significance ofperformance between pairwise networks, represents 𝑝 < 0.001, and the 𝑝-value of one-way ANOVA tests on all metrics less than 0.001
图 8. 随机、猕猴、人类和物种共享连接组图的六个图谱度量通过箱形图展示,配对 t 检验用于比较各对网络之间的性能显著性,表示 𝑝 < 0.001,单因素 ANOVA 检验所有度量的 𝑝 值小于 0.001。
Fig. 9. The six genes that were simultaneously enriched on axon guidance of three databases, and their whole brain gene expression region correlation matrices were used forPearson correlation with species shared and human unique functional connectivity matrices, and compared using paired t-tests, and represents 𝑝 < 0.001.
图 9. 同时在三个数据库上富集于轴突引导的六个基因及其全脑基因表达区域相关矩阵,使用皮尔逊相关分析与物种共享和人类特有功能连接矩阵进行比较,配对 t 检验,表示 𝑝 < 0.001。
T
相关文章:
对比机器学习揭示了跨物种共享与特异性的脑功能结构|文献速递-医学影像人工智能进展
Title 题目 Contrastive machine learning reveals species -shared and -specific brainfunctional architecture 对比机器学习揭示了跨物种共享与特异性的脑功能结构 01 文献速递介绍 猕猴作为人类的动物模型,广泛用于研究大脑和行为的关键方面(G…...
Vue 和 React 响应式的区别
React 和 Vue 在响应式机制上的核心区别主要体现在数据变化侦测方式、更新触发逻辑和设计理念上,具体如下: 一、数据变化侦测方式 Vue 的响应式 原理:通过 Proxy(Vue3)或 Object.defineProperty(Vue2&#…...
MySQL主从架构
MySQL主从架构 MySQL REPLICATION 在实际生产环境中,如果对数据库的读和写都在一个数据库服务器中操作。无论是在安全性、高可用性,还是高并发等各个方面都是完全不能满足实际需求的,因此,一般来说都是通过主从复制(…...
基于ros2与gazebo的导航仿真案例
文章目录 前言操作1、创建docker容器2、安装ROS23、Gazebo安装4、Nav2安装5、测试 前言 导航的入门小案例 参考: Ubuntu24.04 ROS2 Jazzy Gazebo Harmonic安装教程Docs / Gazebo Harmonic 注意选择版本 ROS 2 documentation 操作 1、创建docker容器 sudo docke…...
《Python实战进阶》专栏 No.3:Django 项目结构解析与入门DEMO
《Python实战进阶》专栏 第3集:Django 项目结构解析与入门DEMO 在本集中,我们将深入探讨 Django 的项目结构,并实际配置并运行一个入门DEMO博客网站,帮助你在 Web 开发中更高效地使用 Django。Django 是一个功能强大的 Python Web…...
基于WebGIS技术的校园地图导航系统架构与核心功能设计
本文专为IT技术人员、地理信息系统(GIS)开发者、智慧校园解决方案架构师及相关领域的专业人士撰写。本文提出了一套基于WebGIS技术的校园地图导航系统构建与优化方案,旨在为用户提供高效、智能、个性化的导航体验。如需获取校园地图导航系统技…...
开源且免费的CMS系统有哪几个可以放心用?
既开源又免费的两全其美的CMS不多见,不过总会存在一些个例,给用户们带来更具有建设性的选择,以下是一些开源免费且值得信赖的CMS系统,可以根据你的需求选择合适的平台: 1、WordPress ▷ 特点:全球最流行的…...
逻辑架构与软件架构在PREEvision中的设计关系
1 Introduction 在如今汽车电子系统的开发过程中,系统架构设计是至关重要的环节。无论是汽车控制系统、信息娱乐系统,还是电动驱动系统,架构设计都决定了整个系统的功能、性能以及后期的可维护性和可扩展性。 在往期文章中,我们…...
DeepSeek vs ChatGPT:AI 领域的华山论剑,谁主沉浮?
一、引言 在当今科技飞速发展的时代,人工智能(AI)已然成为推动各领域变革的核心力量。而在人工智能的众多分支中,自然语言处理(NLP)因其与人类日常交流和信息处理的紧密联系,成为了最受瞩目的领…...
现场可以通过手机或者pad实时拍照上传到大屏幕的照片墙现场大屏电子照片墙功能
现场可以通过手机或者pad实时拍照上传到大屏幕的照片墙现场大屏电子照片墙功能,每个人都可以通过手机实时拍照上传到大屏幕上,同时还可以发布留言内容,屏幕上会同步滚动播放展示所有人的照片和留言。相比校传统的照片直播功能更加灵活方便,而…...
AF3 _process_single_hit 函数解读
AlphaFold3 中templates模块的_process_single_hit函数处理单个 HHsearch 比对的模板 TemplateHit,并从相应的 mmCIF 文件中提取模板特征,返回包含模板位置信息、比对质量等特征的 SingleHitResult 对象。它是 AlphaFold3 在模板模块中生成模板特征结构输入的重要步骤。 源代…...
go 模块管理
go version 查看版本 go version go1.21.12 windows/amd64 需要保证:go的版本升级为1.11以上,go mod依赖的最底版本 go env 查看go的环境变量 go env 开启go mod # 标识开启go的模块管理 set GO111MODULE=on GO111MODULE有三个值:off, on和auto(默认值)。 GO111M…...
23种设计模式 - 命令模式
模式定义 命令模式(Command Pattern)是一种行为型设计模式,它将请求封装为独立对象,使请求的发送者与接收者解耦。通过将操作抽象为命令对象,支持命令的存储、传递、撤销和重做,增强系统的灵活性和可扩展性…...
php-fpm
摘要 php-fpm(fastcgi process manager)是PHP 的FastCGI管理器,管理PHP的FastCGI进程,提升PHP应用的性能和稳定性 php-fpm是一个高性能的php FastCGI管理器,提供了更好的php进程管理方式,可以有效的控制内存和进程,支…...
Visual Studio 2022配置网址参考
代码格式化和清理冗余代码选项的配置: 代码样式选项和代码清理 - Visual Studio (Windows) | Microsoft Learn 调试时传递参数: 调试时传递命令行参数(C) - Visual Studio (Windows) | Microsoft Learn...
【含文档+PPT+源码】基于Django的新闻推荐系统的设计与实现
项目介绍 本课程演示的是一款基于Django的新闻推荐系统的设计与实现,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Python学习者。 1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本套系统 3.…...
2025年02月21日Github流行趋势
项目名称:source-sdk-2013 项目地址url:https://github.com/ValveSoftware/source-sdk-2013项目语言:C历史star数:7343今日star数:929项目维护者:JoeLudwig, jorgenpt, narendraumate, sortie, alanedwarde…...
后端开发:开启技术世界的新大门
在互联网的广阔天地中,后端开发宛如一座大厦的基石,虽不直接与用户 “面对面” 交流,却默默地支撑着整个互联网产品的稳定运行。它是服务器端编程的核心领域,负责处理数据、执行业务逻辑以及与数据库和其他后端服务进行交互。在当…...
Apache Doris 实现毫秒级查询响应
1. 引言 1.1 数据分析的重要性 随着大数据时代的到来,企业对实时数据分析的需求日益增长。快速、准确地获取数据洞察成为企业在竞争中脱颖而出的关键。传统的数据库系统在处理大规模数据时往往面临性能瓶颈,难以满足实时分析的需求。例如,一个电商公司需要实时监控销售数据…...
【Python项目】基于Python的语音数据及标注核对审核系统
【Python项目】基于Python的语音数据及标注核对审核系统 技术简介: 采用Python技术、MySQL数据库、Django框架等实现。 系统简介: 语音数据及标注核对审核系统是一个基于B/S架构的语音数据处理平台,旨在通过自动化的方式对语音数据进行标…...
路由基本配置
学习目标 • 根据拓扑图进行网络布线。 • 清除启动配置并将路由器重新加载为默认状态。 • 在路由器上执行基本配置任务。 • 配置并激活以太网接口。 • 测试并检验配置。 • 思考网络实施方案并整理成文档。 任务 1:网络布线 使用适当的电缆类型连接网络设备。…...
从WebRTC到EasyRTC:嵌入式适配的视频通话SDK实现低延迟、高稳定性音视频通信
WebRTC最初是为浏览器之间的实时通信设计的,其资源需求和复杂性可能对嵌入式设备的性能提出较高要求,因此在嵌入式系统中应用时面临一些挑战: 1)资源消耗较高 CPU和内存占用:WebRTC是一个功能强大的实时通信框架&…...
【Blender】二、建模篇--05,阵列修改器与晶格形变
阵列修改器是bender里面一个比较常用的修改器,所以我们单独开口来讲,我们会先从几片树叶出发,然后我们用阵列修改器把这几片树叶变成这样的造型和这样的造型。这两个造型分别就代表着阵列修改器最常用的两种偏移方法,我们现在就开始我们先来做几个树叶。 1.树叶建模 首先…...
Python爬虫实战:获取12306特定日期、城市车票信息,并做数据分析以供出行参考
注意:以下内容仅供技术研究,请遵守目标网站的robots.txt规定,控制请求频率避免对目标服务器造成过大压力! 1. 核心思路 需求:获取明天(2025 年 2 月 21 日)从北京到上海的车次、票价、出发时间、硬卧二等卧信息,并保存到 CSV 文件,然后分析出价格最低的 10 趟车次。目…...
C++ 设计模式-策略模式
支付策略 #include <iostream> #include <memory> #include <unordered_map> #include <vector> #include <ctime>// 基础策略接口 class PaymentStrategy { public:virtual ~PaymentStrategy() default;virtual std::string name() const 0;…...
数据结构:哈希表(unordered_map)
unordered_map 是 C 标准库中的一种哈希表实现,它提供了基于键值对(key-value)的存储,提供了常数时间复杂度的查找、插入和删除键值对的操作。 初始化代码示例: #include <unordered_map> using namespace std…...
鸿蒙-自定义布局-实现一个可限制行数的-Flex
文章目录 前提onMeasureSizeselfLayoutInfoconstraintchildren onPlaceChildren 实现思路属性准备测量组件布局小结 刷新 千呼万唤始出来的自定义布局功能终于可以用了,这就给了我们更多自由发挥创造的空间,不再局限于使用已有组件做组合。当然ÿ…...
安装可视化jar包部署平台JarManage
一、下载 下载地址:JarManage 发行版 - Gitee.com 🚒 下载 最新发行版 下载zip的里面linux和windows版本都有 二、运行 上传到服务器,解压进入目录 🚚 执行java -jar jarmanage-depoly.jar 命令运行 java -jar jarmanage-dep…...
1、Window Android 13模拟器 将编译的映像文件导入Android Studio
1、环境准备 编译环境:Ubuntu-18.04.5编译版本:android13-release下载地址:清华大学开源软件镜像站AOSP # 下载repo # 同步代码:repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android13-r…...
力扣27. 移除元素(快慢指针)
Problem: 27. 移除元素 文章目录 题目描述思路Code 题目描述 思路 定义快慢指针均指向数组起始位置,当fast指针指向的元素不等于val时将fast指针指向的元素赋值给slow并让slow指针向前移动,fast指针一直向前移动 时间复杂度: O ( n ) O(n) O(n); 空间复杂…...
Unity学习part4
1、ui界面的基础使用 ui可以在2d和矩形工具界面下操作,更方便,画布与游戏窗口的比例一般默认相同 如图所示,图片在画布上显示的位置和在游戏窗口上显示的位置是相同的 渲染模式:屏幕空间--覆盖,指画布覆盖在游戏物体渲…...
前端面试之Flex布局:核心机制与高频考点全解析
目录 引言:弹性布局的降维打击 一、Flex布局的本质认知 1. 两大核心维度 2. 容器与项目的权力边界 二、容器属性深度剖析 1. 主轴控制三剑客 2. 交叉轴对齐黑科技 三、项目属性关键要点 1. flex复合属性解密 2. 项目排序魔法 四、六大高频面试场景 1. 经…...
关系数据理论
一、函数依赖 若t1(X)t2(X),必有t1(Y)t2(Y),那么我们称属性组X函数确定属性组Y,或者说Y函数依赖于X。记为X->Y,其中X叫决定因素,Y叫依赖因素。 平凡函数依赖与非平凡函数依赖: 二、1-BCNF 评价关系模式“好坏”的理论标准就…...
低代码与开发框架的一些整合[2]
1.分析的项目资源说明 经过近期的的不断分析与运行对比,最终把注意力集中在了以下几个框架: 01.dibootdiboot.diboot: 写的更少, 性能更好 -> 为开发人员打造的低代码开发平台。Mybatis-plus关联查询,关联无SQL,性能高10倍&a…...
网络空间安全(1)web应用程序的发展历程
前言 Web应用程序的发展历程是一部技术创新与社会变革交织的长卷,从简单的文档共享系统到如今复杂、交互式、数据驱动的平台,经历了多个重要阶段。 一、起源与初期发展(1989-1995年) Web的诞生: 1989年,欧洲…...
Android 之 AIDL for HAL
Android AIDL for HAL 的作用与实现 作用: Android AIDL for HAL(Android Interface Definition Language for Hardware Abstraction Layer)旨在统一 HAL 开发接口,替代 HIDL(Hardware Interface Definition Language…...
Python爬虫基础文件操作
文件操作 引言 爬虫爬取的一切内容都是在内存进行的,这样会有什么问题吗?如果一旦短电或着发生意外电脑关机了那么你的工作成果将瞬间消失。所以,我们还缺少数据在本地文件系统进行持久化的能力,简单的来说就是文件读写操作。文…...
OpenGauss MySQL兼容库迁移
OpenGauss 提供了从MySQL到OG的迁移工具,虽然安装在起来及其繁琐,也不怎么好用,不过我现在需要的是,从MySQL到OG的MySQL兼容库,可以理解成从MySQL到MySQL的迁移。 但是很不幸的是,OG的MySQL的兼容模式&…...
SOME/IP--协议英文原文讲解10
前言 SOME/IP协议越来越多的用于汽车电子行业中,关于协议详细完全的中文资料却没有,所以我将结合工作经验并对照英文原版协议做一系列的文章。基本分三大块: 1. SOME/IP协议讲解 2. SOME/IP-SD协议讲解 3. python/C举例调试讲解 4.2.2 Req…...
linux shell 当命令执行出现错误立即退出的方法
在 Linux 脚本中,如果你想在整个脚本执行完毕后检查是否有错误发生,可以通过以下几种方式实现: 1. 使用 $? 检查上一条命令的退出状态 每个命令执行后,Shell 会将其退出状态存储在特殊变量 $? 中。$? 的值为 0 表示成功&#…...
Moonshot AI 新突破:MoBA 为大语言模型长文本处理提效论文速读
前言 在自然语言处理领域,随着大语言模型(LLMs)不断拓展其阅读、理解和生成文本的能力,如何高效处理长文本成为一项关键挑战。近日,Moonshot AI Research 联合清华大学、浙江大学的研究人员提出了一种创新方法 —— 混…...
vue2 和 vue3 中 computer 计算属性的用法
Vue 2 中的 computed 在 Vue 2 中,计算属性是响应式的,并且基于 getter 进行缓存,只有依赖的响应式数据发生变化时才会重新计算。 基本用法 <template><div><p>原始消息:{{ message }}</p><p>反…...
Python爬虫入门到精通:从零开始的数据采集之旅
一、网络世界的"小蜘蛛":什么是爬虫? 想象一下,你是一只勤劳的小蜘蛛,每天在互联网这张巨大的网上爬来爬去。你不需要自己织网,只需要顺着别人织好的网络路径,把有价值的信息收集到自己的小篮子里。这就是爬虫最形象的比喻——一个自动化的信息采集程序。 Py…...
Python+Selenium+Pytest+POM自动化测试框架封装
🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 1、测试框架简介 1)测试框架的优点 代码复用率高,如果不使用框架的话,代码会显得很冗余。可以组装日志、报告、邮件等一些高…...
【JMeter使用-2】JMeter中Java Request采样器的使用指南
Apache JMeter 是一款功能强大的性能测试工具,支持多种协议和测试场景。除了内置的采样器(如HTTP请求、FTP请求等),JMeter还允许通过 Java Request采样器 调用自定义的Java代码,从而实现更复杂的测试逻辑。本文将详细介…...
IntelliJ IDEA中Maven配置全指南
一、环境准备与基础配置 1.1 Windows 环境下载并配置 Maven 见此篇博文:环境配置 1.2 IDEA配置步骤 打开设置面板:File → Settings → Build → Build Tools → Maven 关键配置项: Maven home path E:\apache-maven-3.9.9 (…...
自学Java-AI结合GUI开发一个石头迷阵的游戏
自学Java-AI结合GUI开发一个石头迷阵的游戏 准备环节1、创建石头迷阵的界面2、打乱顺序3、控制上下左右移动4、判断是否通关5、统计移动步骤,重启游戏6、拓展问题 准备环节 技术: 1、GUI界面编程 2、二维数组 3、程序流程控制 4、面向对象编程 ∙ \bulle…...
NetLogon 权限提升漏洞
参考文章:CVE-2020-1472NetLogon权限提升漏洞_cve-2020-1472复现 谢公子-CSDN博客 域控机器账户:WIN-0V0GAORDC17 域控 ip:192.168.72.163 域内攻击者机器 ip:192.168.72.158,host:WIN10-01 攻击者 kali…...
UDP和TCP
UDP协议 报文中应该包含 源IP,源端口号目的IP,目的端口号UDP/TCP 一个进程是否可以绑定多个端口号? 可以。多个进程是否可以绑定一个端口号? 不可以,因为端口号的主要作用是唯一标识一台计算机上的一个特定服务或应…...
2025 年 1 月公链行业研报:比特币主导地位强化
2025 年 1 月公链行业研报 作者:Stella L (stellafootprint.network) 数据来源:Footprint Analytics 公链研究页面 2025 年 1 月,加密市场总市值增长 7.2% 至 2.8 万亿美元,主要区块链平台表现分化。在新的监管政策与人工智能基…...