论文解读:《DataPype:用于计算机辅助药物设计的全自动统一软件平台》

news2024/11/15 13:35:50

论文解读:《DataPype: A Fully Automated Unified Software Platform for Computer-Aided Drug Design》

  • 1.文章概述
  • 2.背景
  • 2.方法
    • 2.1 DataPype概述
    • 2.2 数据
    • 2.3 分子和蛋白质数据的处理
      • 2.3.1 配体处理
      • 2.3.2 蛋白质加工
    • 2.4 CADD方法
    • 2.5 基准研究
      • 2.5.1 单个 CADD 制备软件参数的优化
      • 2.5.2 DataPype 中包含的单个 CADD 软件的基准测试
    • 2.6 VS评分指标
  • 3.结果
    • 3.1 对分子数据库输入文件进行分块的基准测试
    • 3.2 配体制备方法的优化和基准测试
    • 3.3 蛋白质制备方法的优化和基准
    • 3.4 DataPype 中包含的单个 CADD 软件的基准测试以及与已发布数据的比较
  • 4.结论

文章地址:https://pubs.acs.org/doi/10.1021/acsomega.3c05207
DOI:https://doi.org/10.1021/acsomega.3c05207
期刊:Journal of Chemical Information and Modeling
2022年影响因子/分区:5.6/二区
发布时间:2023年10月12日

1.文章概述

随着计算机辅助药物设计(computer-aided drug design,CADD)的出现,数千种分子的传统物理测试现已被靶向药物发现所取代,其中潜在的生物活性分子在物理合成之前由计算机软件预测。然而,尽管这是一个重大突破,CADD仍然面临各种限制和挑战。小分子数据的可用性日益增加,因此需要简化来自不同数据库的数据来源,并将数据处理和清理自动化为可供多个CADD软件应用程序使用的形式。有几个独立的软件包可以帮助药物设计者,每个软件包都有自己特定的应用,需要专业知识和专业知识才能实现最佳使用。这些应用程序需要自己的输入和输出文件,这对非专家用户或多学科发现团队来说是一个挑战。在这里,作者开发了一个名为DataPype的新软件平台,它围绕着这些不同的软件包。它提供了一个统一的自动化工作流程,使用专业软件搜索命中化合物。此外,可以在一个工作流程中使用多个虚拟筛选包,如果查看潜在命中化合物的不同方法都预测同一组分子,那么应该更有信心制造或购买和测试这些分子。重要的是,DataPype可以在计算机服务器上运行,从而加快了新化合物的虚拟筛选速度。在一个界面中结合对多个CADD工具的访问将增强药物发现的早期阶段,提高可用性,并启用并行计算的使用。

2.背景

最近,可以购买用于针对疾病相关靶标的生物测定的小分子数量已超过60亿(Enamine REAL),遍历远远超出了历史上类似 Lipinski 的化学空间的快乐狩猎场。
发现和开发治疗人类疾病的新药的传统方法,包括在人体临床试验之前对数千个分子进行物理制造和生物测试,已被更有针对性的方法所取代。以靶点为中心的药物发现的兴起与制药、生物技术和学术研究界对计算机辅助药物设计 (CADD) 的采用同时发展。CADD还从硬件进步(存储,CPU和GPU)和算法开发中受益匪浅。CADD软件现在可用于预测更有可能在制造之前调节参与疾病发病机制的蛋白质活性的分子,从而更快地关注有可能成为药物的分子。
基于3D蛋白质结构的可用性和靶蛋白生物学功能的先验知识,CADD分为两种主要方法:基于结构的药物设计(structure-based drug design,SBDD)和基于配体的药物设计(ligand-based drug design,LBDD)。SBDD方法利用蛋白质3D结构来设计有望与目标蛋白高亲和力结合的化合物。在没有蛋白质3D结构的情况下,LBDD是一种广泛使用的方法。在LBDD方法中利用与靶标结合所需的已知活性化合物的化学和结构特征的知识。典型的 LBDD 方法包括:基于属性的化合物过滤库、假受体建模、药效团搜索与过滤、形状匹配。基于结构的药物设计方法包括:分子动力学、对接/评分和分析;所有这些都由各种软件包组成。人工智能技术正在利用数据和计算资源的日益可用性,对CADD的各个方面产生积极影响。这些独立应用程序中的每一个都有自己的输入和输出文件以及提取最佳结果的专业知识要求,有些应用程序可能只在单个 CPU 内核上运行。对于那些可以在多个内核上运行计算的人,通常使用不同的底层协议,例如,OpenEye使用OpenMPI,而MOE使用可扩展的多处理器(scalable multiprocessor,SMP)方法在多个内核上运行虚拟筛选(virtual screening,VS)。因此,用户需要深入了解每种软件工具的文件格式、转换工具和最佳并行计算参数。对于非专家用户或参与多学科发现团队的人员,这可能是一个艰巨的挑战。随着分子的虚拟集合不断扩大,周转时间是VS实验的关键,需要并行计算方法。
用于训练CADD软件的化学和生物数据是异构的,通常内部不一致,需要大量清理。每个CADD工具都需要以特定方式预处理不同的数据和“用户专业知识”,以优化工具从数据中学习的方式。由于优化过程的手动性质,设置固有的原因是无法将该方法可重复地应用于另一个蛋白质靶标。这阻碍了“最佳实践”,并且需要为新项目再次重塑整个过程。因此,非常需要简化来自不同数据库的数据来源,并将数据处理/清理自动化为可由多个CADD软件包使用的形式。分子/蛋白质数据的正确管理将为CADD研究提供更高质量的数据集。DataPype没有明确考虑VS活动的生理背景,例如蛋白质靶标的细胞或器官位置,因此考虑筛选数据库化合物在不同pH下的质子化状态需要用户手动编辑相关的命令行。寻求发现共价配体或在位于PPI的结合口袋上工作也不太适合使用该技术进行研究。
数百个软件包提供的各种技术可用于帮助分子设计者寻找生物活性分子,它们中的每一个在药物设计的特定受限领域都是有用的。其中许多可以免费用于学术用途,但通常没有支持,易于安装,用户友好的GUI和商业软件包的文档。通常,CADD软件工具被单独或随意应用,以发现和开发新的小分子,以结合和调节参与疾病进展的蛋白质的活性。在高性能计算系统上运行用于早期药物发现的VS活动通常涉及学习开发软件或使用现有技术进行计算。与熟练使用每种技术、优化项目软件以及最大化并行计算的效用相关的学习曲线陡峭。需要专业知识和专业知识来充分利用每种技术和软件包来准备输入数据并分析输出 - 软件需要知道“药物”所需的物理和化学特性,以便它可以学习预测可能的新药。
HPC 基础架构的可用性和功能是可以确定 VS 活动可行性的重要方面。许多学术研究小组都有一个本地服务器,用于运行较小的作业和初始基准测试,此外还可以访问大学管理的HPC系统,并且经常链接到国家HPC基础设施。每个系统都是独一无二的,需要熟悉不同的排队系统,例如 SLURM,并提供不同级别的资源。运行分配通常在计算节点上受到时间限制,因此任何串行计算都可能导致违反这些限制。多种商业产品可用于与本地 HPC 资源(如 Google Cloud Computing、Azure 和 AWS)竞争。除了即用即付计算和存储之外,它们还提供自动化机器学习服务。学术团体可能难以预算和吸收此类费用。商业CADD软件开发商还为客户提供满足其计算需求的在线解决方案,例如OpenEye Orion。以及薛定谔的同等产品。这些服务提供与其他系统的有限互操作性,并且通常链接到预定的 HPC 产品。在开发CADD软件流程时,一个日益成问题的问题是构建每个应用程序通常需要复杂的化学和生物信息学库生态系统。初始安装以及后续更新和维护操作通常都会产生兼容性问题、冗余和歧义。正确使用这些库需要高水平的用户专业知识。
为了规避这些问题,已经开发了CADD平台,该平台结合了多个独立算法的功能。CADD的许多方面已被整合到各种平台中,例如生成器用户界面(GenUI),它能够集成从头分子生成技术用于 GUI 中的数据预处理、模型构建、分子生成和交互式化学空间可视化,并提供 API 以与其他工具集成。GenUI的分子生成器重点和以描述符为中心的QSAR建模是DataPype的主要区别。
另一个专注于LBDD的平台是LigAdvisor,它是一个Web服务器,能够组合应用许多基于配体的相似性方法,但本地安装版本不可用。SBDD方法也已结合在平台中,例如在八达通中对接以及VIKING中的MD和量子力学。ezCADD平台将大多数常用的CADD技术整合到一个平台中,但只能在线使用。另一个强大的开源数据分析和集成平台是KNIME,允许用户创建灵活的工作流程来集成来自各种来源的数据,执行数据预处理,运行预测建模算法并可视化结果。
作者之前已经证明,使用两个或三个互补的CADD工具会产生更高质量的命中分子。通过多种CADD方法排名靠前的化合物应该更有可能具有活性。在所描述的数据管道中,有多种工具可供顺序使用。为了简化早期药物发现过程,作者创建了一个同构的全自动并行数据流软件平台,用于执行小分子命中发现和命中到先导物开发,称为"DataPype"。它以现有的 CADD 工具为中心,以创建单个接口,以在多个 CPU 内核上分配计算。DataPype 可以应用多种开源和闭源 CADD 方法的组合——对接 (FRED)、形状(ROCS)和药效团(Align-it)平行对抗蛋白质靶标,以鉴定命中化合物并合并结果。如果用于模拟潜在命中化合物的不同抽象级别都预测同一组分子,那么应该有更高的信心来合成/购买和测试它们。重要的是,DataPype可以在计算机服务器上运行,从而加快对新化合物的搜索,并利用大数据为药物发现和开发提供信息。

2.方法

2.1 DataPype概述

DataPype 是用 Python 3.5 编码的,在 Windows 10 教育版 22H2 PC 上运行的 Ubuntu 20.04 操作系统中,用于包装不同的 CADD 工具,将分子数据库拆分为更小的块,通过 CADD 协议的不同步骤并行传递数据(分子和蛋白质),并在最后组合所有处理过的块进行分析和报告。
DataPype 使用 yml 文件作为新的 Conda 环境安装。OpenEye、Align-it 和其他应用程序是单独安装的。安装后,将创建一个名为DataPype的文件夹,其中包含所有python工作脚本和基于文本的配置.ini文件。此配置文件指定主要的 DataPype 设置,例如蛋白质靶标 ID、数据库块数、是否应制备配体、要生成的构象体数量、使用全部或子集对接、形状和药效团软件。
DataPype 有两种运行方法:基准测试模式和虚拟筛选模式。基准测试模式旨在支持利用基准数据集(如有用诱饵增强型数据库 (DUD-E))验证 CADD 软件的效率或 DUD-E+通过分析指标计算。需要注意的是,基准数据集,如DUD-E和DUD-E+,由一组有限的靶标和筛选配体组成。因此,理想情况下,在基准测试模式下生成的结果对于DataPype和其他CADD软件的所有用户来说应该是相同的,假设配置和参数设置一致。因此,基准测试模式不仅可以作为评估软件安装的工具,还可以为药物设计领域计算工作流程的标准化和验证做出贡献。VS模式筛选化学数据库以发现具有潜在治疗活性的小分子。运行计算、输入分子和目标文件的模式以及所需的参数设置以及每个参数设置的简短说明外,都在配置文件.ini文件中指定。在工作目录中定义这些参数后,DataPype 通过运行以下命令开始计算:python Master_DataPype.py Config_DataPype.ini
Master_DataPype.py 是一个主脚本,用于调用其他脚本来执行配置文件中指定的不同任务。在VS模式下,DataPype可以从ChEMBL数据库中获取生物活性分子的活性和化合物数据。它还可以从RCSB PDB数据库下载相关的蛋白质数据。在基准测试模式下,DUD-E数据集可用,并通过计算和比较不同的基准指标来执行不同CADD方法的基准测试。
DataPype 的脚本以干净有序的方式简化输入数据和输出结果,并系统地隔离目录。根据用户的决定,一个目录中的输出文件可以自动选择,并在后续计算中用作输入文件。在每个步骤结束时,都会生成一份简明的报告,详细说明每个步骤的关键结果,即列出失败/通过该步骤的分子。所有生成的报告在DataPype执行的每个研究结束时编译成一个主报告。

2.2 数据

DataPype的基准测试模式旨在从DUD-E获取输入数据。DUD-E包含经过实验验证的活性物质和属性匹配诱饵的数据集,共有102个靶标,每个蛋白质靶标平均有224个活性配体,每个活性靶标有50个诱饵,以及每个靶标的晶体结构。
在VS模式下,DataPype可以选择使用自动化python脚本从ChEMBL数据库中获取生物活性分子的活性和化合物数据。数据的清理和处理也由脚本执行。DataPype还可以使用带有基于PDB REST的API的脚本从RCSB PDB数据库下载蛋白质数据,该脚本将UniProt蛋白质ID代码作为输入,并在PDB中搜索该靶标的相应X射线结构,根据某些标准(例如分辨率)整理和过滤结构,确认存在配体, 并以最低分辨率下载蛋白质和共结晶配体的元数据和结构。

2.3 分子和蛋白质数据的处理

2.3.1 配体处理

DataPype 中的配体处理包括配体制备和配体净化。在配体净化步骤中,所有重复分子都被去除,盐和配位键也被固定。这一步是由 OpenBabel 执行的。配体制备包括互变异构体的产生、电离和质子化态的枚举、部分电荷的计算和构象的产生。这一步主要是用OpenEye的QUACPAC和OMEGA执行的。还与RDKit和OpenBabel提供的相应功能进行了比较。

2.3.2 蛋白质加工

DataPype使用OpenEye的SPRUCE作为其制备蛋白质结构的默认工具。从PDB网站下载给定PDB ID的结构后,对结构进行质子化,构建缺失的侧链和环,枚举替代位置,并通过SPRUCE枚举和评估共结晶配体和辅因子的互变异构体。从 SPRUCE 生成的输出文件是根据软件的默认通用命名约定命名的。

2.4 CADD方法

作者整合了来自三个主要CADD子学科的快速软件,基于结构、形状和药效团的药物设计。对于对接,使用了OpenEye的FRED,对于形状,使用OpenEye的ROCS,对于药效团,使用Align-it。

2.5 基准研究

作者进行了三轮基准测试,使用DUD-E数据集严格测试DataPype的功能和性能。

2.5.1 单个 CADD 制备软件参数的优化

作者使用了DUD-E的代表性子集,该子集由靶标组成,在SPRUCE进行蛋白质制备后仅产生一个输出文件。然后在这些入围数据集中,作者进一步选择了不同蛋白质家族的7个不同数据集,其中包含不同蛋白质家族类别中最少数量的分子
在这里插入图片描述

2.5.2 DataPype 中包含的单个 CADD 软件的基准测试

为DataPype中包含的所有三种方法(对接,形状和药效团)选择默认软件(FRED,ROCS和Align-it)的软件,使用其优化的参数,对DUD-E数据集(所有102个目标)进行了全面验证运行。执行基准测试后获得的结果分数用于计算上述性能指标,并与先前发表的工作进行比较。

2.6 VS评分指标

AUC and EF1% scores(F1 score)。

3.结果

3.1 对分子数据库输入文件进行分块的基准测试

为了研究分块文件中分子排序对计算效率的影响及其对VS性能在计算时间方面的影响,作者进行了Smina对接。作者利用了来自 DUD-E 数据库的 fabp4 数据集,最初输入数据库文件中的分子被顺序分成块,每个块并行停靠在单独的核心上。作者发现完成计算包含更复杂分子(具有高于平均数量的可旋转键)的几个块所需的时间远远长于包含具有较少可旋转键的分子的块的计算时间。所以采用了一种新的分块文件方法,根据旋转键的数量对分子进行排序,并将它们按顺序添加到每个块中,从而根据可旋转键的数量均匀分布分子。新的文件分块方法使 Smina 分布式速度提高了约 30%。
在这里插入图片描述

3.2 配体制备方法的优化和基准测试

作者使用OpenEye与开源工具OpenBabel在40个块/核心上设计了执行配体净化和制备的协议。具体步骤如下:

  1. 规范化 SMILES 并使用 OpenBabel 固定配位键;
  2. 互变异构体生成 (QUACPAC Tautomers);
  3. 枚举电离态和质子化 (QUACPAC FixpKa);
  4. 计算部分电荷 (QUACPAC MolCharge);
  5. 构象异构体生成(由 OMEGA)
  6. 在使用 OpenBabel 形成重复互变异构体或原体的情况下的最终重复数据删除步骤。

将OpenBabel与OpenEye一起加入,是因为我们致力于最大限度地利用开源解决方案,同时为用户提供灵活性。每个软件包都有用于优化的参数,例如要生成的互变异构体和构象体的数量以及用于部分电荷的力场。为了研究改变这些参数对DataPype性能的影响,通过一次改变一个参数,保持其他值固定,并检查与这些制备的配体进行FRED对接后对ROC-AUC和EF1%值的影响,制备了不同的配体组。这项研究是在七个DUD-E数据集上进行的,并计算了平均结果。如果结果优于默认值,则接受更改并将其添加到新的默认协议中;否则,不会对默认协议进行任何更改。
在这里插入图片描述
在这里插入图片描述
在为基于 OpenEye 的协议优化和建立最佳参数值后,作者将每个步骤替换为 RDKit 或 OpenBabel 等效项,并确定对基准指标的影响,以确定它们是否是更好的选择。
在这里插入图片描述

3.3 蛋白质制备方法的优化和基准

比较了用于制备蛋白质的不同开源方法,OpenEye的SPRUCE,PDBFixer和LePro的性能。使用三个软件包制备的蛋白质对七个DUD-E数据集进行了FRED对接,并计算和比较了它们的指标。
在这里插入图片描述

3.4 DataPype 中包含的单个 CADD 软件的基准测试以及与已发布数据的比较

在 DataPype 中优化了不同的 CADD 制备方法后,作者使用这些 CADD 方法(FRED、ROCS 和 Align-it)对完整的 102 个 DUD-E 数据集进行了全面的基准研究。还使用了优化的配体和蛋白质制备步骤。
在这里插入图片描述
为了在更广泛的背景下分析这些结果,还将它们与Ericksen等人的早期研究进行了比较。在DUD-E数据集的21个目标子集上使用多种CADD方法。两项研究都使用了FRED软件,但其他软件包不同,尽管在类似的SBDD或LBDD子学科中。
在这里插入图片描述
在这里插入图片描述
DataPype中三种CADD算法的性能与Ericksen等人研究的其他软件相当或更好。在DataPype中使用FRED的富集与Ericksen论文中的富集之间存在一些差异。

4.结论

DataPype 是一个集成各种 VS 方法的平台,将输入复合数据库拆分为用户定义的块数,以便在多个 CPU 内核上进行并行计算,从而显著提高计算速度。串行化学信息学代码,如OE互变异构体和OpenBabel,当包装在DataPype平台中时,可以利用多核加速,从而提高它们在合理的时间范围内处理大型化合物数据库的适用性。DataPype是一个可扩展的python框架,因此我们将在平台中加入其他开源和免费学术使用的应用程序,并开发一个Web界面,以便更广泛地传播给研究界。

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

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

相关文章

Swoole 4.8版本的安装

1、从github拉取安装包 Release v4.8.13 swoole/swoole-src GitHub 2、解压压缩包 tar -zxvf ./v4.8.13.tar.gzcd ./swoole-src-4.8.13 3、执行安装命令 phpize && \ ./configure && \ make && sudo make install 4、检查swoole模块是否安装完成…

第一章 函数 极限 连续(未完更新中)

了解 一、函数的性质 理解 一、函数 1、函数概念 ⚠️定义域和对应规则是同一函数的判断 2、复合函数 简单的说就是内层函数的值域与外层函数的定义域有交集 3、反函数 3.1、yx^3为反函数,yx^2不是 3.2、单调函数是反函数的充分非必要条件(单调函数…

Python爬虫(二十四)_selenium案例:执行javascript脚本

本章叫介绍如何使用selenium在浏览器中使用js脚本,更多内容请参考:Python学习指南 隐藏百度图片 #-*- coding:utf-8 -*- #本篇将模拟执行javascript语句from selenium import webdriver from selenium.webdriver.common.keys import Keysdriver webdri…

经典链表试题(二)

文章目录 一、移除链表元素1、题目介绍2、思路讲解3、代码实现 二、反转链表1、题目介绍2、思路讲解3、代码实现 三、相交链表1、题目介绍2、思路讲解3、代码实现 四、链表的中间结点1、题目介绍2、思路讲解3、代码实现 五、设计循环队列1、题目介绍2、思路讲解3、代码实现 六、…

酸纯化APU系统在阳极氧化酸回收中的应用

阳极氧化是一种涉及对金属(通常是铝)表面进行电化学处理的工艺,作为一种表面处理中常见且主要的技术,阳极氧化可增强其耐腐蚀性、硬度和耐磨性,从而提高铝合金的使用寿命和美观度。 常见的表面处理方法——阳极氧化 阳极氧化是以铝或铝合金制…

超简洁ubuntu linux 安装 cp2k

文章目录 打开下载网址解压接下来的步骤讲解 将解压的包移到对应路径下最后运行 打开下载网址 需要从github下载:下载网址 两个都可以从windows下先下载,再复制到linux中, 如果不能复制,右键这两个,复制链接&#xf…

C++数据结构X篇_19_排序基本概念及冒泡排序(重点是核心代码,冒泡是稳定的排序)

文章目录 1. 排序基本概念2. 冒泡排序2.1 核心代码2.2 冒泡排序代码2.3 查看冒泡排序的时间消耗2.4 冒泡排序改进版减小时间消耗 1. 排序基本概念 现实生活中排序很重要,例如:淘宝按条件搜索的结果展示等。 概念 排序是计算机内经常进行的一种操作,其目…

【Python二级-练习(详细版)】

python江湖 1、求长方形面积题目描述:代码如下: 2、随机密码验证题目描述:代码如下: 3、信息分配表(字典)题目描述:代码如下: 4、全模式分词(jieba)题目描述:…

2023年腾讯云双11活动云服务器价格表

2023年腾讯云双11活动已经拉开了序幕,腾讯云推出了一系列的优惠活动,下面给大家分享腾讯云双11活动云服务器价格表,对于有需要购买云服务器的用户来说,无疑是一份非常有价值的参考。 一、腾讯云双十一活动入口 活动入口&#xff…

Python:实现日历功能

背景 日常生活中,每天都要用到日历,日历成为我们生活中的必需品,那么如何制作日历呢,其实方法有很多,可以直接在excel中制作,也可以手画等等。 学习过编程的朋友,能否想到用Python编写一…

吐血整理,Jmeter服务端性能测试-线程阻塞问题案例分析(超细)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、Jstack打印快照…

vue3根据数据取消el-table选中状态获取到最新数据

原始数据: //el-table点击复选框事件 function getSelected(selection, row){//判断是否是已选过数据 0为没有选,>0有选过if(initial.value>0 ){let isCheck false //是否取消 true取消 false不取消//循环判断已选的数据是否包含当前点击获取到的…

相交链表-力扣

一、题目描述 题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 二、题解 注意题目所说的相交,相交节点不只是数值上的相等,而是相交以后两条链变成一条链。 解决改题目,我们可以:…

APP 专项测试之兼容性测试

1、APP 兼容性测试认识 随着 APP 应用范围越来越广,用户群体越来越大,终端设备的型号也越来越多,移动终端碎片化加剧,使得 APP 兼容性测试成为测试质量保障必须要考虑的环节。 APP 兼容性测试通常会考虑:操作系统、厂…

分享从零开始学习网络设备配置--任务4.2 使用IPv6静态及默认路由实现网络连通

任务描述 某公司利用IPv6技术搭建网络,公司3个部门所有PC机连接在同一交换机上,PC1代表行政部划分到VLAN10中,PC2代表财务部划分到VLAN20中,PC3代表销售部划分到VLAN30中,R1代表公司出口路由器,R2模拟Inter…

【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(底层实现系列)

零基础全方位带你学习探索Docker容器开发实战指南(底层实现系列) Docker简介对比虚拟化技术的优势 底层特性Linux Container(LXC)底层实现隔离性 Linux namespacepid namespace(隔离空间机制)net namespace…

Unity的碰撞检测(一)

(一)测试前准备工作 1.创建两个游戏对象,分别取名为”Player”和”Enemy”,并且为名为”Player”的游戏对象设置Tag也为”Player”,二者在场景中如图1所示: 图 1 绿为Enemy,红为Player 2.编写脚…

合肥中科深谷嵌入式项目实战——人工智能与机械臂(二)

订阅:新手可以订阅我的其他专栏。免费阶段订阅量1000 python项目实战 Python编程基础教程系列(零基础小白搬砖逆袭) 说明:本专栏持续更新中,订阅本专栏前必读关于专栏〖Python网络爬虫实战〗转为付费专栏的订阅说明作者&#xff1…

理性推广 | C1N短网址帮您节省运营成本!

今天所讲便是利用短链接“低成本推广”帮你节省隐性成本。 什么是短链接 1.短链接起源 说起短链接起源不得不提到微博,在微博推出后因为有字数限制,一般字数不超过140字,所以微博内容如果发布很长的链接就会占用很多内容,根据这…

OpenCV #以图搜图:感知哈希算法(Perceptual hash algorithm)的原理与实验

1. 介绍 感知哈希算法(Perceptual Hash Algorithm,简称pHash) 是哈希算法的一种,主要用来做相似图片的搜索工作。 2. 原理 感知哈希算法(pHash)首先将原图像缩小成一个固定大小的像素图像,然后…