生物生态学领域构建和分析进化树的常用R工具包介绍和使用

构建进化树的需求

在生物生态学领域,构建进化树(也称为系统发生树或谱系树)具有以下几个重要的目的和需求:

  1. 理解物种间的亲缘关系: 进化树揭示了物种之间的演化关系和共同祖先,帮助科学家理解不同物种是如何从共同的祖先分化出来的。这对于研究物种起源、分布和生物多样性至关重要。

  2. 探索生物进化历程: 通过构建进化树,研究人员可以追踪生物类群的历史变迁和演化路径,包括物种形成、灭绝、迁移和适应性辐射等事件。

  3. 估算物种分化时间和事件: 进化树中的节点通常与时间尺度相关联,通过对分子数据(如DNA序列)进行分析,可以估算物种分化的年代和速率,以及关键的演化事件发生的时间。

  4. 研究物种适应性和生态位分化: 进化树结合形态、生态和基因型数据,可以帮助科学家理解物种如何适应不同的环境和生态位,以及这些适应性特征是如何在进化过程中演变的。

  5. 疾病传播和病原体溯源: 在微生物学和传染病研究中,构建病原体的进化树有助于追踪疾病的传播路径,识别病原体的起源和变异,以及评估疫苗和治疗策略的有效性。

  6. 保护生物学和生物多样性管理: 进化树提供了关于物种独特性和遗传多样性的信息,这对于制定保护策略、评估物种濒危状态和规划保护区网络至关重要。

  7. 农业和育种应用: 在植物和动物育种中,了解物种和品种的进化关系可以帮助选择具有优良性状的亲本,优化杂交和选育计划。

  8. 药物发现和生物技术: 进化树可用于研究生物活性化合物的来源和演化,指导药物筛选和生物工程设计。

  9. 教育和科普: 进化树是解释生物演化理论和展示生命之树的直观工具,对于科学教育和公众科普具有重要意义。

  10. 比较方法学和模型测试: 构建进化树也是检验和比较不同分子进化模型、统计方法和技术的有效手段,推动系统发生学和生物信息学的发展。

因此,构建进化树是生物生态学研究的核心组成部分,它为我们理解生命的多样性和演化过程提供了基础框架和重要证据。通过分析和解读进化树,科学家能够揭示生物界的复杂性和动态变化,为保护生物多样性、防治疾病和推动科技进步提供关键的科学依据。

常用进化树构建的R工具包

以下是一些在生物生态学领域构建和分析进化树的R工具包,以及它们的应用场景、数据输入输出格式和简要解释:

  1. ape(Analyses of Phylogenetics and Evolution):

    • 应用场景:构建和操作进化树,包括树的转换、绘制和统计分析。
    • 数据输入输出格式:常见的新ick、Nexus和PhyloXML格式。
    • 详细解释:ape是R中最常用的进化树处理包,提供了丰富的函数来处理和分析进化树。
  2. phangorn

    • 应用场景:最大似然法、贝叶斯推断和最大简约法构建进化树,以及模型选择和树的比较。
    • 数据输入输出格式:支持多种格式,如Newick、Nexus和_PHYLIP_。
    • 详细解释:phangorn是一个功能全面的进化树分析包,包含了多种构建和优化树的算法。
  3. phytools

    • 应用场景:处理和可视化带有特征数据的进化树,进行祖先状态重建和演化模型测试。
    • 数据输入输出格式:支持Newick、Nexus和_PHYLIP_格式的树文件,以及CSV或表格格式的特征数据。
    • 详细解释:phytools特别适合于处理带有额外特征数据的进化树,如形态、基因型或表型数据。
  4. geiger

    • 应用场景:进行宏进化分析,包括分支特定模型、祖先状态重建和谱系多样性分析。
    • 数据输入输出格式:主要接受ape包中的树对象和相关的特征数据。
    • 详细解释:geiger提供了一系列用于宏进化分析的函数,可以帮助研究者探索物种演化过程中的模式和趋势。
  5. ** diversitree**:

    • 应用场景:分析物种多样性和谱系分化的动态过程,包括 Birth-Death 过程和多元状态演化模型。
    • 数据输入输出格式:接受ape包中的树对象和相关的特征数据。
    • 详细解释:diversitree专注于物种多样性和谱系分化的统计建模,可以用来探究物种形成和灭绝的规律。
  6. picante

    • 应用场景:计算群落的物种丰富度、多样性指数和相关性分析。
    • 数据输入输出格式:接受社区数据矩阵和进化树对象。
    • 详细解释:picante是一个专门用于生态系统和群落生态学分析的包,结合了物种进化和群落结构的研究。
  7. ade4

    • 应用场景:多维数据分析,包括主成分分析、聚类和排序方法。
    • 数据输入输出格式:接受各种类型的表格数据和分类数据。
    • 详细解释:ade4是一个通用的数据分析包,包含了许多用于探索性数据分析和统计建模的函数。
  8. mvMORPH

    • 应用场景:处理和分析多变量形态数据,包括主坐标分析和Procrustes分析。
    • 数据输入输出格式:接受表格形式的形态数据。
    • 详细解释:mvMORPH主要用于形态学研究,可以进行复杂的多变量形态数据分析。
  9. r8s

    • 应用场景:使用限制性最优化方法估计分子钟参数和节点时间。
    • 数据输入输出格式:接受序列比对文件和Newick格式的树文件。
    • 详细解释:r8s是一个专门用于分子钟分析和节点时间估计的包。
  10. strap

    • 应用场景:进行系统发育和物种树的联合分析。
    • 数据输入输出格式:接受基因树和物种树的数据。
    • 详细解释:strap用于处理和分析基因树与物种树的关系,尤其是在处理不完全谱系 Sorting 的情况下。
  11. TreeSim

    • 应用场景:模拟进化树和物种分布过程。
    • 数据输入输出格式:生成和接受Newick格式的树文件。
    • 详细解释:TreeSim是一个用于模拟进化和物种分布过程的包,可以帮助研究者理解进化过程和模式。
  12. TreeSearch

    • 应用场景:搜索最优的进化树和进行模型选择。
    • 数据输入输出格式:接受和生成Newick格式的树文件。
    • 详细解释:TreeSearch提供了多种搜索和优化树的算法,可以帮助找到最优的进化树。
  13. evobiR

    • 应用场景:进行表型进化和适应性辐射分析。
    • 数据输入输出格式:接受表格形式的表型数据和进化树对象。
    • 详细解释:evobiR专注于表型进化和适应性辐射的研究,提供了相关的统计方法和可视化工具。
  14. ouch

    • 应用场景:处理和分析单倍型数据。
    • 数据输入输出格式:接受表格形式的单倍型数据和进化树对象。
    • 详细解释:ouch主要用于单倍型数据的分析,包括单倍型网络的构建和相关统计测试。
  15. pegas

    • 应用场景:处理和分析种群遗传学数据。
    • 数据输入输出格式:接受表格形式的遗传标记数据和群体信息。
    • 详细解释:pegas提供了一系列用于种群遗传学分析的函数,包括基因流、群体结构和遗传多样性的计算。
  16. adegenet

    • 应用场景:处理和分析多态性数据,包括主坐标分析和聚类。
    • 数据输入输出格式:接受表格形式的多态性数据。
    • 详细解释:adegenet主要用于遗传标记数据的分析,包括多态性检测和群体结构分析。
  17. poppr

    • 应用场景:处理和分析具有重复测量的种群遗传学数据。
    • 数据输入输出格式:接受表格形式的遗传标记数据和群体信息。
    • 详细解释:poppr专为含有重复测量的种群遗传学数据设计,提供了相关的统计方法和可视化工具。
  18. phrapl

    • 应用场景:处理和分析基于区域的系统发育数据。
    • 数据输入输出格式:接受表格形式的区域数据和进化树对象。
    • 详细解释:phrapl主要用于基于区域的系统发育分析,包括区域的划分和进化树的构建。
  19. treeio

    • 应用场景:读取和写入多种格式的进化树文件。
    • 数据输入输出格式:支持多种格式,如Newick、Nexus、PHYLOXML和NeXML。
    • 详细解释:treeio是一个方便的包,用于处理不同格式的进化树文件。
  20. ggtree

    • 应用场景:基于ggplot2的进化树可视化。
    • 数据输入输出格式:接受ape包中的树对象,并生成SVG或PDF格式的图形。
    • 详细解释:ggtree提供了一种基于ggplot2的进化树可视化方法,可以创建高度定制化的图形。

以上列出的工具包涵盖了构建和分析进化树的各种方面,从简单的树构建到复杂的宏进化分析。选择哪种工具包取决于你的具体研究问题和数据类型。在使用这些工具包时,通常需要先安装相应的R包,然后按照文档或教程提供的示例代码进行操作。许多工具包还提供了详细的用户手册和示例数据集,以帮助用户快速上手。

 常见进化树格式及其生成软件

  1. Newick (.tre, .nw, .nwk):

    • 软件:PhyML, RAxML, FastTree, MrBayes等
    • 输入:多序列比对文件(如fasta)
    • 输出:文本格式的进化树描述,包含分支长度和节点支持度信息
    • 基本命令示例(RAxML):raxmlHPC -s aligned_sequences.fasta -n my_tree -m GTRGAMMA
  2. Nexus (.nex):

    • 软件:PAUP*, TNT, MrBayes等
    • 输入:多序列比对文件,可能还包括其他元数据
    • 输出:包含了系统发育分析所需的各种信息,包括序列数据、模型参数、树结构等
    • 基本命令示例(MrBayes):mb ./my mrbayes.nex
  3. NHX (.nhx):

    • 软件:ETE Toolkit, PhyloXML等
    • 输入:Newick格式的进化树
    • 输出:扩展的Newick格式,包含了更多的元数据和属性信息
    • 示例:无特定生成命令,通常通过脚本或工具将Newick转换为NHX
  4. Phylip (.phy):

    • 软件:PHYLIP, RAxML, IQ-TREE等
    • 输入:多序列比对文件
    • 输出:简洁的文本格式,每行包含一个物种和其对应的序列
    • 基本命令示例(RAxML):raxmlHPC-PTHREADS -s aligned_sequences.phy -n my_tree -m GTRGAMMA
  5. Jplace (.jplace):

    • 软件:raxml-place, pplacer等
    • 输入:通常是原始的序列数据和一个参考树
    • 输出:JSON格式的文件,包含了每个序列在参考树上的放置信息
    • 示例:无特定生成命令,通常由placement软件生成
  6. Beast (.xml):

    • 软件:BEAST, BEAUti
    • 输入:多序列比对文件和相关参数设置
    • 输出:XML格式的配置文件,包含了用于贝叶斯系统发育推断的所有信息
    • 示例:使用BEAUti图形界面生成配置文件,然后用BEAST运行分析
  7. PhyloXML (.phyloxml):

    • 软件:PhyloXML Tools, ETE Toolkit等
    • 输入:多种格式的系统发育数据
    • 输出:XML格式的文件,详细记录了系统发育树的信息和相关元数据
    • 示例:使用ETE Toolkit的命令行工具将Newick转换为PhyloXML
  8. NeXML (.nexml):

    • 软件:nexml-python, CDAOtools等
    • 输入:多种格式的系统发育数据
    • 输出:XML格式的文件,遵循NeXML标准,包含了系统发育树和相关元数据
    • 示例:使用nexml-python库将Newick转换为NeXML
  9. NHWT (.tre):

    • 软件:Dendroscope
    • 输入:Newick格式的进化树
    • 输出:二进制格式的树文件,用于Dendroscope中的快速加载和可视化
    • 示例:在Dendroscope中直接打开或保存Newick文件为NHWT
  10. PDF / SVG (.pdf, .svg):

    • 软件:FigTree, iTOL, EvolView等
    • 输入:多种格式的系统发育树文件
    • 输出:可缩放的矢量图形格式,用于高质量的出版和展示
    • 示例:在FigTree中打开系统发育树文件并导出为PDF或SVG
  11. CSV / TSV (.csv, .tsv):

    • 软件:自定义脚本,Python库(如ete3, biopython等)
    • 输入:系统发育树和其他相关数据
    • 输出:表格格式的文件,便于数据分析和处理
    • 示例:使用Python脚本从Newick格式的树中提取信息并保存为CSV
  12. JSON (.json):

    • 软件:自定义脚本,JavaScript库(如phylocanvas等)
    • 输入:系统发育树和其他相关数据
    • 输出:轻量级的数据交换格式,便于Web应用程序使用
    • 示例:使用JavaScript库将Newick转换为JSON

 

进化树构建实例

使用ape

以下是一个完整的例子,包括输入数据格式、数据处理步骤和作用的介绍,以及相应的代码和脚本。

输入数据格式:输入数据通常是以fasta格式的序列数据。例如:

>Seq1
ATCGATCGATCG
>Seq2
ATCGATCGTGC
>Seq3
ATCGTAGCTAG
...

每个序列以">"开头,后面跟着序列的标识符(如Seq1),然后是对应的核酸或蛋白质序列。

如果是样品,则>后面应该是样品名称,一般会是物种,下面紧接着是物种对应的barcode或者其他物种相关的序列。 

数据处理步骤和作用:

  1. 读取fasta格式的数据: 使用read.fasta()函数从文件中读取fasta格式的序列数据。这将返回一个列表,其中每个元素代表一个序列,元素的名字是序列的标识符。

  2. 计算序列之间的距离矩阵: 使用dist.dna()dist.alignment()函数根据DNA或蛋白质序列计算距离矩阵。这个矩阵表示了所有序列之间的差异程度。

  3. 使用距离矩阵构建进化树: 使用nj()函数根据 Neighbor-Joining (NJ) 算法构建进化树。NJ算法是一种基于距离的方法,用于估计物种之间的系统发育关系。

  4. 可视化进化树: 使用plot()函数绘制进化树。可以调整各种参数来美化和注释树。

以下是一个完整的R代码示例:

# 加载ape包
library(ape)# 读取fasta格式的序列数据
seqs <- read.fasta("sequences.fasta")# 将序列数据转换为多序列比对对象
alignment <- align.seqs(seqs)# 计算距离矩阵
dist_matrix <- dist.dna(alignment)# 使用NJ算法构建进化树
tree <- nj(dist_matrix)# 可视化进化树
plot(tree, type="unrooted", cex=0.8, label.offset=0.5)

在这个例子中,我们首先加载了ape包,然后读取了一个名为"sequences.fasta"的fasta格式文件。接着,我们将读取的序列数据转换为多序列比对对象,这是进行距离计算的前提。然后,我们计算了基于DNA序列的距离矩阵,并使用NJ算法构建了进化树。最后,我们绘制了未根定的进化树,并调整了标签的大小和偏移量以优化视觉效果。

请注意,实际操作时需要确保fasta文件位于R工作目录下,或者提供完整的文件路径。此外,根据数据的具体情况,可能需要调整距离计算方法和其他参数。

使用Phytools

Phytools是一个R包,用于进化树和物种演化性状的分析。以下是一个使用phytools构建进化树的基本示例,包括输入输出数据格式、数据处理步骤以及完整代码。

输入数据格式:

  • Nexus格式的进化树文件:这是一种常见的格式,用于存储分子系统发生学的数据,包括序列信息和树结构。
  • 物种特征数据(可选):这可以是CSV或其他格式的表格数据,包含每种物种的特定性状值。
NEXUS格式的进化树文件生成:

 Nexus格式的进化树文件通常是由分子系统发生学软件生成的,这些软件通过分析生物大分子(如DNA、RNA或蛋白质)的序列数据来推断物种之间的进化关系。以下是一个常见的生成Nexus格式进化树文件的步骤:

  1. 收集序列数据

    • 从公共数据库(如NCBI、Ensembl等)或者实验数据中获取目标物种的特定基因或蛋白质序列。
  2. 序列预处理

    • 根据需要,可能需要对序列进行一些预处理,包括去除低质量序列、填补缺失数据、校正突变等。
  3. 多序列比对

    • 使用比对软件(如ClustalW、MAFFT、Muscle等)将收集到的序列进行比对,以确定它们的相似性和差异性。
  4. 模型选择

    • 选择一个适合你的数据的进化模型。这可以通过软件(如JModelTest、ModelTest等)自动完成,这些软件会根据数据的特性选择最佳模型。
  5. 构建最大似然树(Maximum Likelihood, ML)、贝叶斯推断树(Bayesian Inference, BI)或邻接法(Neighbor-Joining, NJ)

    • 使用系统发育分析软件(如RAxML、MrBayes、PHYLIP等)基于比对后的序列和选择的模型来构建进化树。
  6. 运行分析

    • 在所选软件中设置参数并运行分析。这可能需要一段时间,取决于数据的大小和复杂性。
  7. 输出Nexus格式的进化树文件

    • 分析完成后,大多数软件都允许你将生成的进化树保存为Nexus格式。在软件的输出选项中选择Nexus格式,并指定输出文件的名称和位置。

以下是一个使用RAxML构建Nexus格式进化树的基本命令示例:

raxmlHPC -s aligned_sequences.fasta -n my_tree -m GTRGAMMA -p 12345

在这个例子中,-s指定了输入的fasta格式的比对序列文件,-n指定了输出的树的名称,-m选择了GTR+Gamma模型,-p设置了随机数种子。RAxML将会生成一个名为"my_tree.nex"的Nexus格式的进化树文件。

 物种特征数据格式:

物种特征数据的CSV文件通常包含每种物种的标识符(如物种名称或编号)和一系列相关的性状值。以下是一个简单的物种特征数据CSV文件的例子:

Species,Trait1,Trait2,Trait3
SpeciesA,10.5,Yes,Blue
SpeciesB,8.2,No,Green
SpeciesC,12.1,Yes,Red
SpeciesD,9.8,No,Yellow

在这个例子中:

  • 第一列是"Species",包含了每个物种的名称。
  • 接下来的列("Trait1"、"Trait2"和"Trait3")是不同的性状。这些性状可以是数值型的(如"Trait1"可能是体长或体重),也可以是分类型的(如"Trait2"可能是有无某种特性,用"Yes"和"No"表示)或名义型的(如"Trait3"可能是颜色)。

每一行代表一个特定物种的性状值。例如,第二行表示"SpeciesB"的"Trait1"值为8.2,"Trait2"值为"No","Trait3"值为"Green"。

在使用phytools等R包进行分析时,需要确保物种名称在特征数据文件和进化树文件中是一致的,这样才能正确地将性状数据映射到进化树上的物种上。如果物种名称不一致,可能需要进行一些预处理步骤来匹配或重命名物种名称。

数据处理步骤:

  1. 加载必要的R包:首先需要在R环境中安装并加载phytools包。
  2. 读取进化树文件:使用read.nexus函数读取Nexus格式的进化树文件。
  3. (可选)读取物种特征数据:如果要分析物种性状,可以使用read.csv或其他适当的函数读取特征数据。
  4. 将特征数据映射到进化树上:使用trait.data函数将特征数据与进化树上的物种对应起来。
  5. 可视化进化树和性状:使用plotTree或plotSimmap等函数绘制进化树,并可以选择显示物种的性状。

完整R代码示例:

# 加载phytools包
library(phytools)# 读取Nexus格式的进化树文件
tree <- read.nexus("example_tree.nex")# (可选)读取物种特征数据
traits <- read.csv("species_traits.csv", header=TRUE)# 将特征数据映射到进化树上
tree <- trait.data(tree, traits$Trait1, tip.labels=tree$tip.label)# 可视化进化树和性状
plotTree(tree, type="fan", show.tip.label=TRUE, cex=0.8, label.offset=0.02)

在这个例子中,我们假设有一个名为"example_tree.nex"的Nexus格式的进化树文件,以及一个名为"species_traits.csv"的CSV文件,其中包含物种的性状数据。我们首先读取进化树文件,然后(如果存在的话)读取性状数据,并将性状数据映射到进化树上。最后,我们绘制进化树,并显示物种的标签。

RAxML工具构建

RAxML (Randomized Axelerated Maximum Likelihood) 是一个广泛使用的分子系统发生学工具,主要用于构建最大似然(Maximum Likelihood, ML)进化树。它支持多种模型和优化算法,能够处理大规模的序列数据,并且具有快速、高效的特点。

以下是一个使用RAxML构建最大似然进化树的详细实例脚本:

步骤1:准备输入文件

首先,你需要一个经过多序列比对的fasta格式的文件。例如,你有一个名为 aligned_sequences.fasta 的文件,其中包含了你要分析的物种的基因或蛋白质序列。

步骤2:选择模型和运行RAxML

然后,你可以使用RAxML命令行工具来构建进化树。以下是一个基本的RAxML命令示例:

raxmlHPC -s aligned_sequences.fasta -n my_tree -m GTRGAMMA -p 12345 -N 100

在这个命令中:

  • -s 参数指定了输入的fasta格式的比对序列文件。
  • -n 参数指定了输出的树的名称前缀,这里为 "my_tree"。
  • -m 参数选择了模型,这里选择的是GTR+Gamma模型。RAxML支持多种模型,具体选择应根据你的数据和研究需求。
  • -p 参数设置了随机数种子,用于保证结果的可重复性。你可以设置任何你喜欢的数字。
  • -N 参数指定了进行的Bootstrap复制次数,这里设置为100次。Bootstrap是一种统计方法,用于评估进化树的分支支持度。

这个命令将会生成一个名为 "my_tree.bestTree" 的最优ML树文件和一个名为 "my_tree.bootstraps" 的Bootstrap树文件。

步骤3:解析和可视化结果

你可以使用其他工具(如 FigTree、iTOL 等)来解析和可视化RAxML生成的进化树。以下是一个使用FigTree打开最优ML树的简单命令:

figtree my_tree.bestTree

这将会启动FigTree程序并打开 "my_tree.bestTree" 文件,你可以在图形界面中查看和编辑进化树。

FigTree 介绍

FigTree 是一个用于可视化和分析系统发育树的图形界面软件。它由林肯大学的 Richard Durbin 开发,并广泛应用于生物学、生态学和进化生物学等领域。FigTree 提供了丰富的选项来定制和美化系统发育树,包括颜色、标签、比例、分支样式等。

以下是一个使用 FigTree 的详细使用脚本示例:

步骤1:安装和启动 FigTree

首先,你需要在你的计算机上安装 FigTree。你可以在其官方网站(http://tree.bio.ed.ac.uk/software/figtree/)下载适合你操作系统的版本,并按照安装向导进行安装。

安装完成后,你可以通过以下方式启动 FigTree:

  • 在 Windows 系统中,可以通过开始菜单或桌面快捷方式打开 FigTree。
  • 在 macOS 或 Linux 系统中,可以通过终端运行 java -jar /path/to/FigTree.jar 命令来启动 FigTree。

步骤2:加载系统发育树文件

启动 FigTree 后,你可以通过以下步骤加载系统发育树文件:

  1. 点击菜单栏中的 "File",然后选择 "Open..."。
  2. 在弹出的文件选择对话框中,找到并选择你的系统发育树文件(通常为 .nex.tre.nhx.xml, 或 .phy 格式),然后点击 "Open"。

步骤3:定制和美化系统发育树

一旦你的系统发育树被加载到 FigTree 中,你可以通过以下方式对其进行定制和美化:

  1. 调整树的布局和样式

    • 在左侧的 "Appearance" 面板中,你可以选择不同的树布局(如 Radial、Rectangular、Unrooted 等)和分支样式(如 Straight、Curved、Spline 等)。
    • 在 "Colors" 面板中,你可以设置树的不同部分的颜色,如分支、标签、背景等。
  2. 添加和编辑标签

    • 在左侧的 "Tip Labels" 和 "Node Labels" 面板中,你可以选择显示或隐藏标签,以及设置标签的字体、颜色、大小等属性。
    • 如果你的系统发育树文件包含了性状数据,你还可以在 "Trait Mappings" 面板中选择要显示的性状,并设置其颜色和样式。
  3. 调整图的尺寸和比例

    • 在顶部的工具栏中,你可以使用缩放和平移工具来调整图的显示范围和比例。
    • 你也可以在 "Size" 面板中设置图的宽度、高度和分辨率。

步骤4:保存和导出结果

完成系统发育树的定制和美化后,你可以通过以下方式保存和导出结果:

  1. 保存 FigTree 项目文件

    • 点击菜单栏中的 "File",然后选择 "Save As..."。
    • 在弹出的对话框中,选择保存位置和文件名,然后点击 "Save"。
  2. 导出图片

    • 点击菜单栏中的 "File",然后选择 "Export..."
    • 在弹出的对话框中,选择输出格式(如 PNG、JPEG、SVG 等),设置图片的尺寸和质量,然后点击 "Save"。

其它的欢迎大家后续继续关注!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/593622.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】基本指令了解(一)

&#x1f497;个人主页&#x1f497; ⭐个人专栏——数据结构学习⭐ &#x1f4ab;点击关注&#x1f929;一起学习C语言&#x1f4af;&#x1f4ab; 目录 导读&#xff1a;1. 认识Linux1.1 什么是Linux1.2 Linux特点 2. ls指令3. pwd命令4. cd 指令5. touch命令6. mkdir指令7. …

SSM共享汽车租赁平台----计算机毕业设计

项目介绍 本项目分为前后台&#xff0c;前台为普通用户登录&#xff0c;后台为管理员登录&#xff1b; 管理员角色包含以下功能&#xff1a; 管理员登录,修改管理员信息,用户信息管理,管理新闻公告,汽车品牌信息管理,城市信息管理,租赁点信息管理,共享汽车信息管理,汽车订单信…

《微信小程序开发从入门到实战》学习七十

6.6 网络API 6.6.4 上传文件API 用wx.uploadFile接口使小程序发起HTTPS POST请求&#xff0c;上传文件到服务端。该接口接受一个人Object入参。参属性如下&#xff1a; url: &#xff08;必填&#xff09;上传文件到服务器的URL, filePath: &#xff08;必填&#xff09;要…

【Linux Shell】1. Shell 简述

文章目录 【 1. Shell 解释器、Shell语言、Shell脚本 】【 2. Shell 环境 】【 3. 一个简单的 Shell 脚本 】3.1 Shell 脚本的编写3.2 Shell 脚本的运行3.2.1 作为可执行程序运行 Shell 脚本3.2.2 作为解释器参数运行 Shell 脚本 【 1. Shell 解释器、Shell语言、Shell脚本 】 …

单挑力扣(LeetCode)SQL题:1532. 最近的三笔订单(难度:中等)

题目&#xff1a;1532. 最近的三笔订单 &#xff08;通过次数5,860 | 提交次数9,333&#xff0c;通过率62.79%&#xff09; 表&#xff1a;Customers ------------------------ | Column Name | Type | ------------------------ | customer_id | int | | name …

解决Redis序列化乱码问题

如果我们使用原生的JDK序列化&#xff0c;那么当我们将数据存储到Redis中就会出现乱码的情况 为了解决这个问题我们需要重写RedisTemplate从而解决序列化乱码问题 首先在Maven中引入相应的依赖 <dependency> <groupId>com.fasterxml.jackson.core</group…

七、Redis 缓存 —— 超详细操作演示!

七、Redis 缓存 —— 超详细操作演示&#xff01; 七、Redis 缓存7.1 Jedis 客户端7.1.1 Jedis 简介7.1.2 创建工程7.1.3 使用 Jedis 实例7.1.4 使用 JedisPool7.1.5 使用 JedisPooled7.1.6 连接 Sentinel 高可用集群7.1.7 连接分布式系统7.1.8 操作事务 7.2 金融产品交易平台7…

Python怎么修改进程名称

目录 一、进程名称的概念 二、Python修改进程名称的方法 三、代码示例与使用说明 四、注意事项 五、适用场景 六、总结 Python是一种强大的编程语言&#xff0c;广泛应用于各种应用程序的开发。在Python中&#xff0c;修改进程名称可以通过多种方式实现。下面我们将深入探…

StringBad ditto (motto)

第12章 类和动态内存分配 StringBad ditto (motto): // calls StringBad (comst StringBad &) StringBad metoo - motto: // calls StringBad (const StringBad &) StringBad also StringBad (motto): // calls StringBad (const StringBad &) StringBad * pStri…

python c语言 代码动态检查,python c语言语法分析

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;python c语言 代码动态检查&#xff0c;python c语言语法分析&#xff0c;今天让我们一起来看看吧&#xff01; Source code download: 本文相关源码 初学编程&#xff0c;应该学习哪一门编程语言&#xff0c;有不少人感…

项目经理面试10问

今天我们来说说项目经理专业面试的十条经验总结。如果你认真阅读并思考&#xff0c;相信对在屏幕前的你会有所帮助和启发。 1、请做一下自我介绍 自我介绍很重要。无论面试什么岗位&#xff0c;面试官通常都会问你一个最常见的问题&#xff1a;“请做一下自我介绍。” 在准备…

机器学习的算法简单介绍-随机森林算法

随机森林 随机森林目前在学习的过程中&#xff0c;并未使用到&#xff0c;因此&#xff0c;仅仅简单的介绍一下相应的概念和应用的方面&#xff0c;等后续学习的过程中使用到&#xff0c;会继续进行补充。 随机森林&#xff08;Random Forest&#xff09;可以看作是一种集成学…

C语言——格式说明符前面加修饰符

在C语言中&#xff0c;格式说明符前面可以添加一些修饰符来控制输出或输入的格式&#xff0c;主要包括宽度、精度、左对齐标志和前缀填充字符等。 1. 宽度&#xff08;Width&#xff09; %[width]type&#xff1a;这里的width是一个非负整数&#xff0c;表示输出字段的最小宽度…

java 属性复制为空属性不复制

工具类 package com.jiayou.peis.common.core.util;import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanWrapper; import org.springframework.beans.BeanWrapperImpl;import java.util.HashSet; import java.util.Set;/*** 自定义属性复制*/…

Vue 生命周期有哪些?作用是什么?

什么是vue的生命周期 Vue 实例从开始创建、初始化数据、编译模板、挂载Dom和渲染、更新和渲染、卸载等一系列过程&#xff0c;这是 Vue 的生命周期 vue的生命周期的八个钩子函数 beforeCreat() 创建前 在new一个vue实例后&#xff0c;只有一些默认的生命周期钩子和默认事件&a…

Unity坦克大战开发全流程——开始场景——开始界面

开始场景——开始界面 step1&#xff1a;设置UI 反正按照这张图拼就行了 step2&#xff1a;写脚本 前面的拼UI都是些比较机械化的工作&#xff0c;直到这里写代码的时候才真正开始有点意思了&#xff0c;从这里开始&#xff0c;我们就要利用面向对象的思路来进行分析&#xff1…

虾皮跨境电商选品有哪些规则

如何在虾皮&#xff08;Shopee&#xff09;平台上进行跨境电商选品在如今全球化的商业环境中&#xff0c;跨境电商已成为许多卖家拓展业务的重要途径。虾皮&#xff08;Shopee&#xff09;作为一家知名的跨境电商平台&#xff0c;为卖家提供了丰富的销售机会。然而&#xff0c;…

【C++核心编程(二)】

一、类和对象 C面向对象的三大特性为:封装、继承、多态。 C认为万事万物都皆为对象&#xff0c;对象上有其属性和行为。 例如: 人可以作为对象&#xff0c;属性有姓名、年龄、身高、体重...&#xff0c;行为有走、跑、跳、吃饭、唱歌... 车也可以作为对象&#xff0c;属性…

HTML中的主根元素、文档元数据、分区根元素、内容分区、文本内容 和 内联文本语义

本文主要介绍了HTML中主根元素<html>、文档元数据<base>、<head>、<link>、<meta>、<style>、<title>、分区根元素<body>、内容分区<address>、<article>、<aside>、<footer>、<h1> (en-US), &…

3dmax全景图用什么渲染 全景图云渲染使用教程

在给客户展示设计概念时&#xff0c;应用3ds Max创建的全景图是一个高效直观的方法。这种方式不仅可以全方位地呈现整个空间&#xff0c;让客户沉浸式地感受设计师的创意&#xff0c;而且在展现大型空间设计&#xff0c;如展览馆或者会议室等&#xff0c;效果尤其显著&#xff…