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

【R包】pathlinkR转录组数据分析和可视化利器

在这里插入图片描述

介绍

通常情况下,基因表达研究如微阵列和RNA-Seq会产生数百到数千个差异表达基因(deg)。理解如此庞大的数据集的生物学意义变得非常困难,尤其是在分析多个条件和比较的情况下。该软件包利用途径富集和蛋白-蛋白相互作用网络,促进了差异基因表达结果的可视化和下游分析,帮助研究人员从基因表达研究中发现潜在的生物学和病理生理学。

我们在这个包中包含了一个基因表达结果的示例数据集,作为对象“exampleDESeqResults”。这是一个由2个数据帧组成的列表,使用包中的‘ results() ’函数生成BiocStyle::Biocpkg(“DESeq2”)’ (Love et al. 2014)。数据来自一项RNA-Seq研究,该研究调查了入院时(T1)的COVID-19和非COVID-19败血症患者与大约1周后(T2)在ICU的情况,并随时间索引(即T2 vs T1) (an et al. 2023)。

安装

安装该R包

# We'll also be using some functions from dplyr
# BiocManager::install("pathlinkR", version="devel")
library(dplyr)
library(pathlinkR)

基因表达火山图

在基因表达研究中,通常首先进行的可视化分析之一是识别差异表达基因(DEGs)的数量。这些基因通常是通过设定特定的倍数变化和统计显著性阈值来定义的。调整后的p值小于0.05和绝对倍数变化大于1.5被用作默认阈值,尽管可以指定任何值。pathlinkR 包含了一个名为 eruption() 的函数,用于创建火山图。

data("exampleDESeqResults")eruption(rnaseqResult=exampleDESeqResults[[1]],title=names(exampleDESeqResults[1])
)

在这里插入图片描述

对于定制火山图,有多种选项可供选择,包括:

  • 调整阈值
  • 切换显著基因和非显著基因的颜色
  • 改变标记基因的数量
  • 调整x轴和y轴的范围
  • 绘制对数2(log2)或非对数2的倍数变化(以更好地感知变化幅度)
  • 突出显示特定感兴趣的基因集
data("sigoraDatabase")
interferonGenes <- sigoraDatabase %>% filter(pathwayName == "Interferon Signaling") %>% pull(ensemblGeneId)eruption(rnaseqResult=exampleDESeqResults[[1]],title=names(exampleDESeqResults[1]),highlightGenes=interferonGenes,highlightName="Interferon genes (red)",label="highlight",nonlog2=TRUE,n=10
)

在这里插入图片描述

可视化比较中的倍数变化

除了创建火山图外,我们还可以通过热图来可视化特定通路(例如通过pathwayEnrichment()识别为显著的通路)中涉及的差异表达基因(DEGs)。plotFoldChange()函数通过接收DESeq2::results()数据框的输入列表(与pathwayEnrichment()类似),并为组成基因的倍数变化创建热图来实现这一点。

plotFoldChange(inputList=exampleDESeqResults,pathName="Interferon alpha/beta signaling"
)

在这里插入图片描述

为了定制化,提供了多种选项,包括:

  • 缩短每次比较的名称
  • 提供一个自定义的基因列表进行可视化,并添加一个信息性的标题
  • 在热图单元格中使用对数2倍数变化
  • 交换默认的行和列,并在行(比较)之间添加分隔
exampleDESeqResultsRenamed <- setNames(exampleDESeqResults,c("Pos", "Neg")
)plotFoldChange(exampleDESeqResultsRenamed,manualTitle="Signature genes",genesToPlot=c("CD4", "CD8A","CD8B", "CD28", "ZAP70"),geneFormat="hgnc",colSplit=c("Pos", "Neg"),log2FoldChange=TRUE,colAngle=45,clusterRows=FALSE,clusterColumns=TRUE,invert=TRUE
)

在这里插入图片描述

构建和可视化蛋白质-蛋白质相互作用网络

pathlinkR 包含用于构建和可视化蛋白质-蛋白质相互作用(PPI)网络的工具。在这里,我们利用从 InnateDB 收集的 PPI 数据,生成在基因表达分析中识别的差异表达基因(DEGs)之间的相互作用列表。这些相互作用随后可以在 R 中用于构建 PPI 网络,同时提供了多种选项来控制网络的类型,例如支持一级、最小或零级网络。实现这一目标的两个主要函数是 ppiBuildNetwork()ppiPlotNetwork()

让我们继续查看 COVID 阳性患者随时间变化的差异表达基因(DEGs),使用显著的 DEGs 来构建一个 PPI 网络。由于我们输入的数据框包含了所有测量的基因(而不仅仅是显著的基因),我们将使用 filterInput=TRUE 选项,以确保网络仅由通过标准阈值(如上所述)的基因构建。由于我们正在可视化 DEGs 的网络,让我们通过指定 fillType="foldChange" 来给节点上色,以指示它们失调的方向(即上调或下调)。

exNetwork <- ppiBuildNetwork(rnaseqResult=exampleDESeqResults[[1]],filterInput=TRUE,order="zero"
)ppiPlotNetwork(network=exNetwork,title=names(exampleDESeqResults)[1],fillColumn=LogFoldChange,fillType="foldChange",label=TRUE,labelColumn=hgncSymbol,legend=TRUE
)

在这里插入图片描述

带有蓝色标签的节点(例如STAT1、FBXO6、CDH1等)是网络中的枢纽节点,即那些具有高介数中心性得分的基因。用于确定枢纽节点的统计量可以在ppiBuildNetwork()函数中通过“hubMeasure”选项进行设置。

exNetworkInterferon <- mutate(exNetwork,isInterferon = if_else(name %in% interferonGenes, "y", "n")
)ppiPlotNetwork(network=exNetworkInterferon,title=names(exampleDESeqResults)[1],fillColumn=isInterferon,fillType="categorical",catFillColours=c("y"="red", "n"="grey"),label=TRUE,labelColumn=hgncSymbol,legend=TRUE,legendTitle="Interferon\ngenes"
)

在这里插入图片描述

富集网络和提取子网络

pathlinkR 包含两个用于进一步分析蛋白质-蛋白质相互作用(PPI)网络的函数。首先,ppiEnrichNetwork() 函数会使用网络的节点表来测试富集的 Reactome 通路或 Hallmark 基因集。

exNetworkPathways <- ppiEnrichNetwork(network=exNetwork,analysis="hallmark",filterResults="default",geneUniverse = rownames(exampleDESeqResults[[1]])
)exNetworkPathways

在这里插入图片描述

其次,ppiExtractSubnetwork() 函数可以从起始网络中提取一个最小连通的子网络,使用富集通路中的基因作为提取的“起始”节点。例如,下面我们将使用上述 Hallmark 富集的结果,从“干扰素γ反应”项中提取一个基因子网络,然后绘制这个缩减后的网络,并突出显示通路中的基因。

exSubnetwork <- ppiExtractSubnetwork(network=exNetwork,pathwayEnrichmentResult=exNetworkPathways,pathwayToExtract="INTERFERON GAMMA RESPONSE"
)ppiPlotNetwork(network=exSubnetwork,fillType="oneSided",fillColumn=degree,label=TRUE,labelColumn=hgncSymbol,legendTitle="Degree"
)

在这里插入图片描述

或者,您也可以使用ppiExtractSubnetwork()函数中的genesToExtract参数,提供您自己的基因集(一个包含Ensembl ID的字符向量)来提取为子网络。

进行通路富集分析

通路富集的核心概念是过度表达:也就是说,我们差异表达基因(DEG)列表中属于特定通路的基因数量是否比随机情况下预期的更多?为了计算这一点,最简单的方法是比较某个通路中的 DEGs 与所有 DEGs 的比例,以及数据库中所有通路中的基因与该通路中所有基因的比例。pathlinkR 主要使用 Reactome 数据库(Fabregat 等,2017)来实现这一目的。

过度表达分析可能出现的一个问题是,假设每个通路中的每个基因在属于该通路方面具有“相等”的价值。实际上,一种蛋白质可以具有多种(有时是非常不同的)功能,并且属于多个通路,例如蛋白激酶。还有一些通路与细胞机制有相当大的重叠,如 TLR 通路。这可能导致多个相似通路或甚至不相关的“假阳性”富集,使得解析结果变得非常困难。

一种解决方案是使用独特的基因对,正如 r BiocStyle::CRANpkg("sigora") 包的创建者所描述的(Foroushani 等,2013)。这种方法减少了由于多面性基因导致的相似和不相关通路的数量,更多地关注可能与基础生物学相关的通路。这种方法是 pathlinkRpathwayEnrichment() 函数的默认方法。

pathwayEnrichment() 函数的输入是一个数据框列表(每个来自 DESeq2::results()),默认情况下会将基因分为上调和下调两类,然后分别对每组进行通路富集分析。列表中数据框的名称应表明在 DESeq2 结果中进行的比较,因为它将用于识别结果。对于 analysis="sigora",我们还需要提供一个基因对签名库(gpsRepo),其中包含要测试的通路和基因对。将此参数保留为“默认”将使用 sigora 中的 reaH GPS 库,包含人类 Reactome 通路。或者,也可以提供自己的 GPS 库;有关如何制作的详细信息,请参阅 ??sigora::makeGPS()

## Note the structure of `exampleDESeqResults`: a named list of results from
## DESeq2
exampleDESeqResultsenrichedResultsSigora <- pathwayEnrichment(inputList=exampleDESeqResults,analysis="sigora",filterInput=TRUE,gpsRepo="default"
)head(enrichedResultsSigora)

在这里插入图片描述

对于那些仍然倾向于传统的过度表达分析的人,我们提供了通过设置analysis="reactome"来使用r BiocStyle::Biocpkg("ReactomePA")(Yu 等,2016)进行分析的选项。在使用这种方法时,我们建议提供一个基因全集,作为富集测试的背景;这里我们将使用 DESeq2 测试显著性的所有基因(即计数矩阵中的所有基因),在运行测试之前将它们转换为 Entrez 基因 ID。详情请参阅我们的 Github 页面 上的完整手册。

除了在设置analysis为“sigora”或“reactome”时使用的 Reactome 数据库外,我们还提供了使用 Molecular Signatures Database (MSigDb) 中的 Hallmark 基因集 进行过度表达分析。这些是 50 个基因集,代表“具有协调表达的特定、明确定义的生物学状态或过程”(Liberzon 等,2015)。与更细致的 Reactome 通路相比,这个数据库提供了关于关键生物学过程的更高级别的总结

enrichedResultsHm <- pathwayEnrichment(inputList=exampleDESeqResults,analysis="hallmark",filterInput=TRUE,split=TRUE
)head(enrichedResultsHm)

在这里插入图片描述

最后,用户在进行富集分析时也可以使用来自 KEGG 的数据。通过设置analysis="kegg",可以使用传统的过度表达分析;或者通过指定analysis="sigora"gpsRepo="kegH",可以使用基于基因对的方法。

绘制通路富集分析结果

现在我们已经得到了来自多个比较的大量通路富集分析结果,是时候将它们可视化了。plotPathways()函数通过将Reactome通路(或Hallmark基因集)分组到父组下,并指示每个通路在每个比较中是上调还是下调,从而帮助我们轻松识别哪些通路在不同的差异表达基因(DEG)列表中是共享的或独特的。由于通常会有许多通路,您可以将绘图分成多列(最多3列),并截断通路名称以使结果更容易展示。

有时,一个通路可能在同一个DEG列表中的上调和下调基因中都富集(这种情况通常发生在较大的通路中)。这种现象会用一个白色星号表示,其中显示更显著(调整后的p值更低)的方向。您还可以更改比较的角度/标签,或者在标签下方添加每个比较中的DEG数量。最后,您可以指定要包含在可视化的通路或顶级通路组。

pathwayPlots(pathwayEnrichmentResults=enrichedResultsSigora, columns=2
)

在这里插入图片描述

这些绘图也可以进行多种调整:

  • 基于顶级通路分组,仅显示与免疫相关的通路
  • 改变用于调整后p值的颜色缩放
  • 压缩比较名称以便更好地适应绘图,并使其水平显示
  • 在比较名称下方添加用于富集的DEGs数量
  • 增加通路名称的截断截止值,以便显示更多单词

从这些结果中,你可以看到,尽管许多免疫系统通路在COVID-19和非COVID-19脓毒症患者中随时间朝同一方向变化,但有一些独特的通路脱颖而出,大多与干扰素信号传导有关(“干扰素信号传导”、“干扰素γ信号传导”、“干扰素α/β信号传导”、“ISG15抗病毒机制”)。这可能反映了COVID-19患者早期抗病毒反应的增强,这种反应随时间减弱,而非COVID-19脓毒症患者则没有变化。

pathwayPlots(pathwayEnrichmentResults=enrichedResultsSigora,specificTopPathways="Immune System",colourValues=c("#440154", "#FDE725"),newGroupNames=c("COVID\nPositive", "COVID\nNegative"),showNumGenes=TRUE,xAngle="horizontal",nameWidth=50
)

在这里插入图片描述

从富集通路生成网络

pathlinkR 包含将基于 Reactome 的方法(“sigora”或“reactomepa”)的通路富集结果转换为网络的函数,通过计算分配给每个通路的基因的重叠来确定它们之间的相似性。在这些网络中,每个通路是一个节点,它们之间的连接或边是通过距离度量来确定的。可以设置一个阈值,当两个通路之间的相似性达到最小值时,它们被认为是相连的,并且会在它们的节点之间绘制一条边。

我们提供了一个预先计算好的 Reactome 通路距离矩阵,该矩阵是使用 Jaccard 距离生成的,但也支持使用多种距离度量。一旦创建了这个通路相互作用的“基础”,就可以使用 createPathnet() 函数构建通路网络:

data("sigoraDatabase")pathwayDistancesJaccard <- getPathwayDistances(pathwayData = sigoraDatabase)startingPathways <- pathnetFoundation(mat=pathwayDistancesJaccard,maxDistance=0.8
)# Get the enriched pathways from the "COVID Pos Over Time" comparison
exPathwayNetworkInput <- enrichedResultsSigora %>% filter(comparison == "COVID Pos Over Time")myPathwayNetwork <- pathnetCreate(pathwayEnrichmentResult=exPathwayNetworkInput,foundation=startingPathways
)

另一种可视化方法

pathnetGGraph(myPathwayNetwork,labelProp=0.1,nodeLabelSize=3,nodeLabelOverlaps=8,segColour="red",themeBaseSize = 12
)

在这里插入图片描述

填充的节点(通路)是富集的通路(即由pathwayEnrichment()输出的通路)。节点的大小与统计显著性相关,而边的厚度与两个相连通路的相似性有关。

pathnetVisNetwork(myPathwayNetwork)

在这里插入图片描述

仅使用差异表达基因(DEGs)生成通路网络

另一种选择是在生成通路网络信息时仅使用差异表达基因(DEGs),具体方法如下:

candidateData <- sigoraExamples %>%filter(comparison == "COVID Pos Over Time") %>% select(pathwayId, genes) %>%tidyr::separate_rows(genes, sep=";") %>%left_join(sigoraDatabase,by=c("pathwayId", "genes" = "hgncSymbol"),multiple="all") %>%relocate(pathwayId, ensemblGeneId, "hgncSymbol"=genes, pathwayName) %>%distinct()## Now that we have a smaller table in the same format as sigoraDatabase, we
## can construct our own matrix of pathway distances
candidateDistData <- getPathwayDistances(pathwayData=candidateData,distMethod="jaccard"
)candidateStartingPathways <- pathnetFoundation(mat=candidateDistData,maxDistance=0.9
)candidatesAsNetwork <- pathnetCreate(pathwayEnrichmentResult=filter(sigoraExamples, comparison == "COVID Pos Over Time"),foundation=candidateStartingPathways,trim=FALSE
)pathnetVisNetwork(candidatesAsNetwork, nodeLabelSize=30)

在这里插入图片描述

系统信息

R version 4.4.1 (2024-06-14)
Platform: x86_64-pc-linux-gnu
Running under: Ubuntu 22.04.5 LTSMatrix products: default
BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.10.0 
LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.10.0locale:[1] LC_CTYPE=en_CA.UTF-8       LC_NUMERIC=C              [3] LC_TIME=en_CA.UTF-8        LC_COLLATE=en_CA.UTF-8    [5] LC_MONETARY=en_CA.UTF-8    LC_MESSAGES=en_CA.UTF-8   [7] LC_PAPER=en_CA.UTF-8       LC_NAME=C                 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_CA.UTF-8 LC_IDENTIFICATION=C       time zone: America/Vancouver
tzcode source: system (glibc)attached base packages:
[1] stats4    stats     graphics  grDevices utils     datasets  methods  
[8] base     other attached packages:[1] DESeq2_1.46.0               SummarizedExperiment_1.36.0[3] Biobase_2.66.0              MatrixGenerics_1.18.0      [5] matrixStats_1.4.1           GenomicRanges_1.58.0       [7] GenomeInfoDb_1.42.0         IRanges_2.40.0             [9] S4Vectors_0.44.0            BiocGenerics_0.52.0        
[11] pathlinkR_1.2.0             dplyr_1.1.4                
[13] BiocStyle_2.34.0           loaded via a namespace (and not attached):[1] RColorBrewer_1.1-3      rstudioapi_0.17.1       jsonlite_1.8.9         [4] shape_1.4.6.1           magrittr_2.0.3          ggtangle_0.0.4         [7] magick_2.8.5            farver_2.1.2            rmarkdown_2.28         [10] GlobalOptions_0.1.2     fs_1.6.5                zlibbioc_1.52.0        [13] vctrs_0.6.5             memoise_2.0.1           ggtree_3.14.0          [16] rstatix_0.7.2           tinytex_0.53            htmltools_0.5.8.1      [19] S4Arrays_1.6.0          broom_1.0.7             Formula_1.2-5          [22] gridGraphics_0.5-1      SparseArray_1.6.0       sass_0.4.9             [25] bslib_0.8.0             htmlwidgets_1.6.4       plyr_1.8.9             [28] cachem_1.1.0            igraph_2.1.1            lifecycle_1.0.4        [31] iterators_1.0.14        pkgconfig_2.0.3         gson_0.1.0             [34] Matrix_1.7-1            R6_2.5.1                fastmap_1.2.0          [37] GenomeInfoDbData_1.2.13 clue_0.3-65             aplot_0.2.3            [40] enrichplot_1.26.1       digest_0.6.37           colorspace_2.1-1       [43] patchwork_1.3.0         AnnotationDbi_1.68.0    RSQLite_2.3.7          [46] ggpubr_0.6.0            vegan_2.6-8             labeling_0.4.3         [49] fansi_1.0.6             httr_1.4.7              polyclip_1.10-7        [52] abind_1.4-8             mgcv_1.9-1              compiler_4.4.1         [55] bit64_4.5.2             withr_3.0.2             doParallel_1.0.17      [58] backports_1.5.0         BiocParallel_1.40.0     carData_3.0-5          [61] viridis_0.6.5           DBI_1.2.3               highr_0.11             [64] ggforce_0.4.2           R.utils_2.12.3          ggsignif_0.6.4         [67] MASS_7.3-61             DelayedArray_0.32.0     rjson_0.2.23           [70] permute_0.9-7           tools_4.4.1             ape_5.8                [73] R.oo_1.26.0             glue_1.8.0              nlme_3.1-166           [76] GOSemSim_2.32.0         grid_4.4.1              reshape2_1.4.4         [79] cluster_2.1.6           fgsea_1.32.0            generics_0.1.3         [82] gtable_0.3.6            R.methodsS3_1.8.2       tidyr_1.3.1            [85] data.table_1.16.2       car_3.1-3               tidygraph_1.3.1        [88] utf8_1.2.4              XVector_0.46.0          ggrepel_0.9.6          [91] foreach_1.5.2           pillar_1.9.0            stringr_1.5.1          [94] yulab.utils_0.1.7       circlize_0.4.16         splines_4.4.1          [97] tweenr_2.0.3            treeio_1.30.0           lattice_0.22-6         
[100] bit_4.5.0               tidyselect_1.2.1        GO.db_3.20.0           
[103] ComplexHeatmap_2.22.0   locfit_1.5-9.10         Biostrings_2.74.0      
[106] knitr_1.48              gridExtra_2.3           bookdown_0.41          
[109] xfun_0.49               graphlayouts_1.2.0      visNetwork_2.1.2       
[112] stringi_1.8.4           UCSC.utils_1.2.0        lazyeval_0.2.2         
[115] ggfun_0.1.7             yaml_2.3.10             evaluate_1.0.1         
[118] codetools_0.2-20        ggraph_2.2.1            tibble_3.2.1           
[121] qvalue_2.38.0           BiocManager_1.30.25     ggplotify_0.1.2        
[124] cli_3.6.3               munsell_0.5.1           jquerylib_0.1.4        
[127] Rcpp_1.0.13             png_0.1-8               parallel_4.4.1         
[130] ggplot2_3.5.1           blob_1.2.4              clusterProfiler_4.14.0 
[133] DOSE_4.0.0              tidytree_0.4.6          viridisLite_0.4.2      
[136] sigora_3.1.1            scales_1.3.0            purrr_1.0.2            
[139] crayon_1.5.3            GetoptLong_1.0.5        rlang_1.1.4            
[142] cowplot_1.1.3           fastmatch_1.1-4         KEGGREST_1.46.0 

参考

  • https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1012422

相关文章:

【R包】pathlinkR转录组数据分析和可视化利器

介绍 通常情况下&#xff0c;基因表达研究如微阵列和RNA-Seq会产生数百到数千个差异表达基因&#xff08;deg&#xff09;。理解如此庞大的数据集的生物学意义变得非常困难&#xff0c;尤其是在分析多个条件和比较的情况下。该软件包利用途径富集和蛋白-蛋白相互作用网络&…...

基于大模型的脑出血全周期预测与诊疗方案研究报告

目录 一、引言 1.1 研究背景与意义 1.2 研究目的与创新点 1.3 研究方法与数据来源 二、大模型预测脑出血的原理与技术基础 2.1 大模型概述 2.2 脑出血相关数据收集与预处理 2.3 机器学习算法在预测模型中的应用 2.4 模型训练与优化 三、术前风险预测与准备 3.1 术前…...

高数1.1 函数

1. 定义 1.1 函数 1.2 反函数 1.2.1 求反函数例题 1.3 基本初等函数和初等函数 1.4 基本函数性质...

Java常见设计模式(中):结构型模式

&#x1f308; 引言&#xff1a;设计模式就像乐高积木 适配器&#xff1a;让不同形状的积木完美拼接装饰器&#xff1a;给积木添加炫酷灯光效果代理&#xff1a;遥控积木完成复杂动作组合&#xff1a;将小积木搭建成宏伟城堡 结构型模式 主要用于描述对象之间的关系&#xff…...

【Python修仙编程】(二) Python3灵源初探(3)

第一部分&#xff1a;乾坤袋的秘密与修炼之路 在修仙界&#xff0c;有一个古老的传承&#xff0c;名为《Python无极心法》&#xff0c;它蕴含着强大的力量&#xff0c;能够助修仙者突破重重境界&#xff0c;领悟宇宙天地的奥秘。而要修炼此心法&#xff0c;必须先从基础的“乾…...

Mac本地部署Deep Seek R1

Mac本地部署Deep Seek R1 1.安装本地部署大型语言模型的工具 ollama 官网&#xff1a;https://ollama.com/ 2.下载Deepseek R1模型 网址&#xff1a;https://ollama.com/library/deepseek-r1 根据电脑配置&#xff0c;选择模型。 我的电脑&#xff1a;Mac M3 24G内存。 这…...

可以免费无限次下载PPT的网站

前言 最近发现了一个超实用的网站&#xff0c;想分享给大家。 在学习和工作的过程中&#xff0c;想必做PPT是一件让大家都很头疼的一件事。 想下载一些PPT模板减少做PPT的工作量&#xff0c;但网上大多精美的PPT都是需要付费才能下载使用。 即使免费也有次数限制&#xff0…...

c++作业

练习题&#xff1a; #include <iostream> #include <cstring> using namespace std;class mystring {char* p;int len; public:mystring();mystring(const char* p);~mystring();void copy(const mystring& str);void append(const mystring& str);void sh…...

补题蓝桥杯14届JavaB组第4题

算法&#xff1a;动态规划 需要两个一维数组来进行dp 一个用来记录到当前位置的最短时间&#xff0c;另一个用来记录到达当前位置传送门的最短时间 到达传送门的时间需要进行判断&#xff0c;如果上一次传送到达传送门&#xff0c;需要判断上一次传送到这的位置在当前传送门…...

DeepSeek 15天指导手册——从入门到精通 PDF(附下载)

DeepSeek使用教程系列--DeepSeek 15天指导手册——从入门到精通pdf下载&#xff1a; https://pan.baidu.com/s/1PrIo0Xo0h5s6Plcc_smS8w?pwd1234 提取码: 1234 或 https://pan.quark.cn/s/2e8de75027d3 《DeepSeek 15天指导手册——从入门到精通》以系统化学习路径为核心&…...

【北京迅为】itop-3568 开发板openharmony鸿蒙烧写及测试-第1章 体验OpenHarmony—烧写镜像

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…...

C#开发——时间间隔类TimSpan

TimeSpan 是 C# 中的一个结构&#xff08; struct &#xff09;&#xff0c;用于表示时间间隔或持续时间。它位于 System 命名空间中&#xff0c;是处理时间相关操作时非常重要的工具&#xff0c;尤其是在计算两个日期或时间之间的差值、表示时间段或执行时间相关的运算…...

第002文-kali虚拟机安全与网络配置

1、kali系统介绍 kali是一个基于Linux kernel的操作系统&#xff0c;由BackTrack(简称BT)发展而来。BackTrack是2006年推出的一个用于渗透测试及黑客攻防的专用平台&#xff0c;基于Knoppix(linux的一个发行版)开发。BackTrack版本周期&#xff1a;2006年的起始版本BackTrack …...

【HarmonyOS Next】鸿蒙应用折叠屏设备适配方案

【HarmonyOS Next】鸿蒙应用折叠屏设备适配方案 一、前言 目前应用上架华为AGC平台&#xff0c;都会被要求适配折叠屏设备。目前华为系列的折叠屏手机&#xff0c;有华为 Mate系列&#xff08;左右折叠&#xff0c;华为 Mate XT三折叠&#xff09;&#xff0c;华为Pocket 系列…...

关于“你对 Spring Cloud 的理解”

Spring Cloud 是一个基于 Spring Boot 的微服务框架&#xff0c;旨在简化分布式系统的开发、部署和管理。它提供了一系列工具和组件&#xff0c;帮助开发者构建和管理微服务架构。以下是对 Spring Cloud 的核心理解&#xff1a; 1. 微服务架构的支持 Spring Cloud 提供了对微…...

微信小程序-二维码绘制

wxml <view bindlongtap"saveQrcode"><!-- 二维码 --><view style"position: absolute;background-color: #FFFAEC;width: 100%;height: 100vh;"><canvas canvas-id"myQrcode" style"width: 200px; height: 200px;ba…...

c++中如何打印未知类型对象的类型

在 C 中要打印未知类型对象的类型名称&#xff0c;可以通过以下方法实现&#xff1a; 目录 方法一&#xff1a;使用 typeid 和 name()&#xff08;需包含 &#xff09; 使用示例&#xff1a; 问题与改进&#xff1a; 方法二&#xff1a;编译时类型名称&#xff08;C17 起&…...

SpringBoot集成easy-captcha图片验证码框架

SpringBoot集成easy-captcha图片验证码框架 此项目已经很久未维护&#xff0c;如有更好的选择&#xff0c;建议使用更好的选择!!! 一、引言 验证码&#xff08;CAPTCHA&#xff09;是现代应用中防止机器人攻击、保护接口安全的核心手段之一。然而&#xff0c;从零开发验证码…...

Materials Studio MS2020在linux系统上的安装包下载地址 支持centos Ubuntu rocky等系统

下载地址&#xff1a;MS2020-linux官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘 Materials Studio 2020是一款功能强大的材料科学计算模拟软件&#xff0c;以下是其详细介绍&#xff1a; 核心模块功能 CASTEP模块&#xff1a;采用平面波赝势方法&#xff0c;适用于周…...

DeepSeek 开源狂欢周(二)DeepEP深度技术解析 | 解锁 MoE 模型并行加速

在大模型时代&#xff0c;Mixture-of-Experts (MoE) 模型凭借其强大的容量和高效的计算能力&#xff0c;成为研究和应用的热点。然而&#xff0c;MoE 模型的训练和推理面临着巨大的专家并行通信挑战。近日&#xff0c;DeepSeek 开源了 DeepEP 项目&#xff0c;为解决这一难题提…...

Kylin麒麟操作系统 | 系统监控

以下所使用的环境为&#xff1a; 虚拟化软件&#xff1a;VMware Workstation 17 Pro 麒麟系统版本&#xff1a;Kylin-Server-V10-SP3-2403-Release-20240426-x86_64 一、系统状态查询工具 1. 静态显示系统进程信息ps ps命令会生成一个静态列表&#xff0c;列表中显示的进程其…...

mysql怎样优化where like ‘%字符串%‘这种模糊匹配的慢sql

一 问题描述 工作中经常遇到这种模糊匹配的慢sql&#xff1a; select * from 表名 where 字段 like %字符串%; 由于前面有%&#xff0c;导致无法走该字段上的索引。 二 解决办法 ① 给该字段创建一个全文索引 CREATE FULLTEXT INDEX 索引名 ON 表名 (字段名); ② 改写sq…...

基于 C++ Qt 的 Fluent Design 组件库 QFluentWidgets

简介 QFluentWidgets 是一个基于 Qt 的 Fluent Designer 组件库&#xff0c;内置超过 150 个开箱即用的 Fluent Designer 组件&#xff0c;支持亮暗主题无缝切换和自定义主题色。 编译示例 以 Qt5 为例&#xff08;Qt6 也支持&#xff09;&#xff0c;将 libQFluentWidgets.d…...

事件【Qt】

文章目录 事件 事件 event label.cpp #include "label.h" #include<QDebug> Label::Label( QWidget * parent):QLabel(parent) {}void Label::enterEvent(QEvent *event) {//显式地忽略 event 参数,表示函数内部不会使用 event 参数&#xff0c;也不会对其进…...

若依vue plus环境搭建

继前面文章若依系统环境搭建记录-CSDN博客 把ruoyi vue plus也摸索了下。 作者是疯狂的狮子&#xff0c;dromara/RuoYi-Vue-Plus 初始化文档&#xff1a;项目初始化&#xff0c;环境搭建的视频&#xff1a;RuoYi-Vue-Plus 5.0 搭建与运行_哔哩哔哩_bilibili 上来就列出了一…...

算法题(80):环形链表II

审题&#xff1a; 需要我们判断链表是否带环&#xff0c;若带环&#xff0c;需要我们返回进入环的第一个节点地址 思路&#xff1a; 方法一&#xff1a;set 每个节点的地址都是唯一的&#xff0c;所以我们的set存的是节点地址。 当我们遍历链表时&#xff0c; 若节点地址没有存…...

Spring Boot集成Jetty、Tomcat或Undertow及支持HTTP/2协议

目录 一、常用Web服务器 1、Tomcat 2、Jetty 3、Undertow 二、什么是HTTP/2协议 1、定义 2、特性 3、优点 4、与HTTP/1.1的区别 三、集成Web服务器并开启HTTP/2协议 1、生成证书 2、新建springboot项目 3、集成Web服务器 3.1 集成Tomcat 3.2 集成Jetty 3.3 集成…...

ISO 15118,最新版,汽车充电桩相关标准,1~22子标准

ISO 15118 是一项国际标准&#xff0c;主要规定了电动汽车&#xff08;EV&#xff09;与充电桩&#xff08;EVSE&#xff09;之间的通信协议&#xff0c;涵盖了充电过程中的信息交换、安全认证、充电控制等内容。以下是其主要内容&#xff1a; 1. 通信协议 V2G通信&#xff1a…...

信息系统项目管理师考试介绍和学习资料分享

信息系统项目管理师考试是评估考生在信息系统项目管理领域的专业知识和技能的重要考试。以下是对信息系统项目管理师考试的详细介绍&#xff1a; 拥有软考信息系统项目管理师高级证的作用&#xff1a; 提高求职竞争力‌&#xff1a; 信息系统项目管理师证书是国家级证书&#…...

基于 Spring AI 的 HIS 系统智能化改造

【Spring AI 的背景与现状】 Spring AI 是 Spring 生态里整的一个新活儿&#xff0c;专门给开发者提供搞 AI 驱动的应用的工具和框架。虽然 Spring AI 已经鼓捣了挺长时间&#xff0c;但截至现在&#xff08;2025年2月&#xff09;&#xff0c;它还没正式发布。不过&#xff0…...

visual studio 2022安装教程及下载(附安装包)visual studio 2022下载安装教程图文详情

文章目录 前言一、visual studio 2022下载二、visual studio 2022安装教程三、软件设置四、安装完成 前言 Visual Studio 2022 作为强大的集成开发环境&#xff0c;深受开发者青睐。但初次安装&#xff0c;其复杂步骤易让人摸不着头脑。为帮大家顺利安装&#xff0c;本文将详细…...

Nginx+PHP+MYSQL-Ubuntu在线安装

在 Ubuntu 上配置 Nginx、PHP 和 MySQL 的步骤如下&#xff1a; 1. 更新系统包 首先&#xff0c;确保系统包是最新的&#xff1a; sudo apt update sudo apt upgrade2. 安装 Nginx 安装 Nginx&#xff1a; sudo apt install nginx启动并启用 Nginx 服务&#xff1a; sudo…...

【Excel】 Power Query抓取多页数据导入到Excel

抓取多页数据想必大多数人都会&#xff0c;只要会点编程技项的人都不会是难事儿。那么&#xff0c;如果只是单纯的利用Excel软件&#xff0c;我还真的没弄过。昨天&#xff0c;我就因为这个在网上找了好久发好久。 1、在数据-》新建查询-》从其他源-》自网站 &#xff0c;如图 …...

spring boot 2.7 + seata +微服务 降级失败问题修复

文章引流 一个简单而使用的API管理工具 版本号 spring boot 2.7.17 spring-cloud-dependencies 2021.0.8 spring-cloud-circuitbreaker-resilience4j 2.1.7 spring-cloud-starter-alibaba-seata 2021.1 jdk 1.8原因分析 未配置属性 feign.circuitbreaker.enabledtrue # 未…...

Ubuntu 22.04 安装Nvidia驱动加速deepseek

一键安装22.04 nvidia 驱动 nvidia 官网下载驱动我的环境是NVIDIA RTX A5000nvidia 文档参考没有安装驱动之前确认自己的型号 lspci | grep -i vga &#xff08;如数字2231&#xff09; 参考docker 支持nvidia &#xff0c;注释了需要的取消注释即可 42行-92行一定要重启服务器…...

【Java项目】基于Spring Boot的校园博客系统

【Java项目】基于Spring Boot的校园博客系统 技术简介&#xff1a;采用Java技术、Spring Boot框架、MySQL数据库等实现。 系统简介&#xff1a;校园博客系统是一个典型的管理系统&#xff0c;主要功能包括管理员&#xff1a;首页、个人中心、博主管理、文章分类管理、文章信息…...

centos7 离线安装docker

1.下载docker Index of linux/static/stable/x86_64/ 2.安装docker tar -zxvf docker-19.03.9.tgz cp -p docker/* /usr/bin 创建docker服务配置文件docker.servicevim /etc/systemd/system/docker.service [Unit] DescriptionDocker Application Container Engine Docume…...

基于Rook的Ceph云原生存储部署与实践指南(上)

#作者&#xff1a;任少近 文章目录 1 Ceph环境准备2 rook部署ceph群集2.1 Rook 帮助地址2.2 安装ceph2.3 获取csi镜像2.4 Master参加到osd2.5 设置默认存储 3 Rook部署云原生RBD块存储3.1 部署storageclass资源3.2 部署WordPress使用RBD3.3 WordPress访问 4 Rook部署云原生RGW…...

微服务合并

有的团队为了节约机器成本、有的团队为了提升研发效率、有的团队为了降低人均服务数 微服务合并&#xff0c;可以从多个角度入手 代码重构融合&#xff1a;人工拷贝代码、解决冲突&#xff0c;然后分阶段实施迁移重构。代码合并打包&#xff1a;将多个代码仓库&#xff0c;拉取…...

Linux中子线程会继承父线程对相关变量的可见性

在 Linux 的 POSIX 线程模型中,当父线程修改全局变量后创建子线程,子线程一定会看到修改后的最新值。这是由线程的内存共享机制和线程创建时序保证的,具体原理如下: 关键机制解析 内存共享本质: 所有线程共享相同的全局数据段修改操作直接作用于物理内存,无副本存在cint …...

道可云人工智能每日资讯|深圳将设立人工智能和机器人产业基金

道可云元宇宙每日简报&#xff08;2025年2月26日&#xff09;讯&#xff0c;今日元宇宙新鲜事有&#xff1a; 上海青浦发布国际产业协作元宇宙平台 近日&#xff0c;“2025出海企业与跨境专业服务论坛”在上海青浦区徐泾镇举行。论坛上重磅发布三大全球化服务平台&#xff0c…...

5.11 PEFT重参数化方法:低秩分解的微调革命

PEFT重参数化方法:低秩分解的微调革命 一、重参数化技术全景图 mindmap root((重参数化方法)) LoRA "低秩矩阵分解" "参数冻结策略" AdaLoRA "动态秩调整" "重要性采样" QLoRA "量化低秩分解" "NF4量化策…...

vscode 版本

vscode官网 Visual Studio Code - Code Editing. Redefined 但是官网只提供最新 在之前的版本就要去github找了 https://github.com/microsoft/vscode/releases 获取旧版本vscode安装包的方法_vscode 老版本-CSDN博客...

自然语言处理NLP深探

1. NLP 的定义、特点、具体工作、历史和流派 定义:自然语言处理(Natural Language Processing,NLP)是计算机科学与人工智能领域的一个重要分支,旨在让计算机理解、处理和生成人类自然语言,实现人与计算机之间用自然语言进行有效通信。特点 交叉性:涉及计算机科学、语言学…...

【leetcode hot 100 15】三数之和

一、两数之和的扩展 class Solution {public List<List<Integer>> threeSum(int[] nums) {// 将得到的结果存入Set中&#xff0c;保证不重复Set<List<Integer>> set new HashSet<>();// 模拟两数之和&#xff0c;作为第一个循环中的内容for(in…...

提示学习(Prompting)

提示学习&#xff08;Prompting&#xff09;是一种利用预训练语言模型&#xff08;Pre-trained Language Models, PLMs&#xff09;来完成特定任务的方法。它的核心思想是通过设计特定的提示&#xff08;Prompt&#xff09;&#xff0c;将任务转化为预训练模型能够理解的形式&a…...

wav格式的音频压缩,WAV 转 MP3 VBR 体积缩减比为 13.5%、多个 MP3 格式音频合并为一个、文件夹存在则删除重建,不存在则直接建立

&#x1f947; 版权: 本文由【墨理学AI】原创首发、各位读者大大、敬请查阅、感谢三连 &#x1f389; 声明: 作为全网 AI 领域 干货最多的博主之一&#xff0c;❤️ 不负光阴不负卿 ❤️ 文章目录 问题一&#xff1a;wav格式的音频压缩为哪些格式&#xff0c;网络传输给用户播放…...

TDengine 中的数据库

数据库概念 时序数据库 TDengine 中数据库概念&#xff0c;等同于关系型数据库 MYSQL PostgreSQL 中的数据库&#xff0c;都是对资源进行分割管理的单位。 TDengine 数据库与关系型数据库最大区别是跨库操作&#xff0c;TDengine 数据库跨库操作除了少量几个SQL 能支持外&…...

react覆盖组件样式,不影响其他地方相同类名的组件

less module 配合 :global(){} less文件 /* ButtonComponent.less */ .customButton {// 覆盖第三方按钮库的类名&#xff08;如 .ant-btn&#xff09;:global(.ant-btn) {background: #1890ff;// 通过父选择器限定作用域&:hover {background: #40a9ff;}} } tsx文件 //…...

ProtoBuf

protobuf 序列化 序列化&#xff1a;本质就是将结构化的数据转成为字符串&#xff08;在网络HTTP中遇到过&#xff09;protobuf&#xff1a;就是将结构化的数据进行序列化的一种方式。 特点 • 语⾔⽆关、平台⽆关&#xff1a;即 ProtoBuf ⽀持 Java、C、Python 等多种语⾔…...