从宏基因组中鉴定病毒序列(2)

Introduction

在环境微生物学和生态学研究中,宏基因组学(Metagenomics)技术的应用已经彻底改变了我们对微生物群落的理解。宏基因组学通过对环境样本中的全部遗传物质进行测序和分析,可以全面揭示微生物群落的组成、功能和相互作用。然而,在这些复杂的微生物群落中,病毒序列的鉴定仍然是一个巨大的挑战。

病毒在生态系统中扮演着关键角色,它们通过感染宿主微生物调控微生物群落的动态和功能。病毒的存在和活动对宿主的进化、生物地球化学循环以及环境健康有着深远的影响。尽管病毒在生态系统中至关重要,但由于它们的基因组多样性高、没有通用的保守基因、以及基因组片段化严重,传统的宏基因组分析方法常常难以有效地识别和解析病毒序列。

为了克服这些挑战,研究人员开发了一系列专门的工具和方法,用于从宏基因组数据中提取和鉴定病毒序列。这些方法结合了序列比对、结构特征分析和机器学习等技术,显著提高了病毒序列的鉴定效率和准确性。通过这些方法,科学家们不仅能够更全面地了解环境病毒的多样性,还能揭示病毒与其宿主之间的复杂关系,为生态学、进化生物学和公共卫生等领域的研究提供重要的参考。

上一篇推文已经介绍从宏基因组数据中鉴定病毒序列的主要方法和工具,这里我们再介绍一下对病毒序列做质量评估和一些应用的文章。

Quality assessment

CheckV

CheckV 是一个完全自动化的命令行管道,用于评估单contig病毒基因组的质量,包括识别集成原病毒的宿主污染、估计基因组片段的完整性以及识别封闭基因组,于2017年发表在Nature Biotechnology[7]。

软件:https://bitbucket.org/berkeleylab/checkv/src/master/

Installation
  • 安装软件

可以使用通用包管理器(mamba 或 conda)或特定于 Python 的包管理器(pip)在计算机中安装 checkv。

# mamba
mamba install -c conda-forge -c bioconda checkv=1.0.1# conda
conda install -c conda-forge -c bioconda checkv=1.0.1# pip
pip install checkv

因为跟上面讲的genomad的依赖项基本一致,所以我直接用pip安装在同一环境中就可以用了。

$ checkv end_to_end -h
usage: checkv end_to_end <input> <output> [options]
positional arguments:input         以FASTA格式输入核苷酸序列(支持.gz,.bz2和.xz文件)output        输出目录optional arguments:-h, --help    显示此帮助消息并退出-d PATH       引用数据库路径。默认情况下,使用 CHECKVDB 环境变量【添加后可不写】--remove_tmp  从输出目录中删除中间文件-t INT        用于Prodigal和DIAMOND的线程数--restart     覆盖现有的中间文件。默认情况下,CheckV 在程序中断的地方继续--quiet       禁止记录消息programs:end_to_end          运行完整的管道以估计完整性,污染并识别封闭的基因组contamination       识别并消除集成前病毒上的宿主污染completeness        估计基因组片段的完整性complete_genomes    根据末端重复序列和侧翼宿主区域识别完整基因组quality_summary     跨模块汇总结果download_database   下载最新版本的CheckV数据库
  • 下载数据库
    geNomad 依赖于一个包含用于对序列进行分类的标记的概况、它们的分类信息、它们的功能注释等的数据库:

可以通过软件下载:

checkv download_database ./

也可以自行下载并解压(我试了这个快),解压后大概5.4G,我放在~/db/genomad_db/checkv-db-v1.0。

#数据库下载(手动)
wget https://portal.nersc.gov/CheckV/checkv-db-v1.0.tar.gz
tar zxvf checkv-db-v1.0.tar.gz
Example

我们使用上面genomad运行得到的GCF_009025895.1_ASM902589v1_genomic_virus.fna文件来测试:

checkv end_to_end GCF_009025895.1_ASM902589v1_genomic_virus.fna checkv_out \-t 4 -d ~/db/genomad_db/checkv-db-v1.0 --remove_tmp
CheckV v1.0.3: contamination
[1/8] Reading database info...
[2/8] Reading genome info...
[3/8] Skipping gene calling...
[4/8] Reading gene info...
[5/8] Skipping hmmsearch...
[6/8] Annotating genes...
[7/8] Identifying host regions...
[8/8] Writing results...
Run time: 0.77 seconds
Peak mem: 0.08 GBCheckV v1.0.3: completeness
[1/8] Skipping gene calling...
[2/8] Initializing queries and database...
[3/8] Running DIAMOND blastp search...
[4/8] Computing AAI...
[5/8] Running AAI based completeness estimation...
[6/8] Running HMM based completeness estimation...
[7/8] Determining genome copy number...
[8/8] Writing results...
Run time: 9.69 seconds
Peak mem: 1.12 GBCheckV v1.0.3: complete_genomes
[1/7] Reading input sequences...
[2/7] Finding complete proviruses...
[3/7] Finding direct/inverted terminal repeats...
[4/7] Filtering terminal repeats...
[5/7] Checking genome for completeness...
[6/7] Checking genome for large duplications...
[7/7] Writing results...
Run time: 0.02 seconds
Peak mem: 1.12 GBCheckV v1.0.3: quality_summary
[1/6] Reading input sequences...
[2/6] Reading results from contamination module...
[3/6] Reading results from completeness module...
[4/6] Reading results from complete genomes module...
[5/6] Classifying contigs into quality tiers...
[6/6] Writing results...
Run time: 2.42 seconds
Peak mem: 1.12 GB

Output

  • quality_summary.tsv
    这包含三个主要模块的综合结果,应该是所用的主要输出:
contig_idcontig_lengthprovirusproviral_lengthgene_countviral_geneshost_genescheckv_qualitymiuvig_qualitycompletenesscompleteness_methodcomplete_genome_typecontaminationkmer_freqwarnings
15325NoNA1102Not-determinedGenome-fragmentNANANA0.01.00no viral genes detected
241803NoNA72271Low-qualityGenome-fragment21.99AAI-based (medium-confidence)NA0.01.00flagged DTR
338254Yes3607254232Medium-qualityGenome-fragment80.30HMM-based (lower-bound)NA5.71.00NA
467622NoNA143250High-qualityHigh-quality100.00AAI-based (high-confidence)NA0.01.76high kmer_freq
598051NoNA158271CompleteHigh-quality100.00AAI-based (high-confidence)DTR0.01.00NA

在上面的示例中,有 5 个病毒contig的结果:

  • 第一个 5325 bp contig没有完整性预测,这由“checkv_quality”字段的“未确定”指示。该contig也没有鉴定出病毒基因,因此它甚至有可能不是病毒。

  • 第二个 41803 bp contig被归类为“低质量”,因为其完整性<50%。这是基于“AAI”方法的估计。请注意,quality_summary.tsv 文件中仅报告高或中置信度估计值。您可以查看“completeness.tsv”了解更多详细信息。该contig具有 DTR,但由于某种原因被标记(有关详细信息,请参阅complete_genomes.tsv)

  • 第三个contig被认为是“中等质量”,因为其完整性估计为 80%(基于“HMM”方法)。这意味着它太新颖了,无法基于 AAI 来估计完整性,但与 CheckV 参考基因组共享 HMM。请注意,该值代表一个下限(意味着真实的完整性可能高于但不低于该值)。请注意,该contig也被归类为原病毒。

  • 第四个contig基于 >90% 的完整性被归类为高质量。但请注意,“kmer_freq”的值为 1.7。这表明病毒基因组在contig中多次出现。这些情况相当罕见,但仍需警惕。

  • 根据直接末端重复 (DTR) 的存在,第五个contig被分类为完整,并且根据 AAI 方法具有 100% 完整性。该序列可以放心地视为完整的基因组。

  • contamination.tsv
    如何估计污染的详细概述

  • completeness.tsv
    关于如何估计完整性的详细概述

  • complete_genomes.tsv
    已确定的假定完整基因组的详细概述

Pipeline

checkV的具体工作流程如下:

A: 去除宿主污染

  1. 基因首先基于与自定义HMM数据库的比较被注释为病毒或微生物。
  2. CheckV扫描contig(从5’到3’),比较基因注释和相邻基因窗口之间的GC含量。
  3. 这些信息用于计算每个基因间位置的分数并识别宿主-病毒断点。
  4. 这种方法最适合主要为病毒的contig。

B: 估计基因组完整性

  1. 蛋白质首先使用AAI(平均氨基酸身份)与CheckV基因组数据库进行比较。
  2. 在识别到最佳匹配后,完整性作为contig长度(或provirus的病毒区域长度)与匹配参考长度的比率计算。
  3. 根据比对的强度报告置信水平。
  4. 通常,高和中等置信水平的估计非常准确。
  5. 如果病毒基因组没有与CheckV数据库的密切匹配,CheckV基于contig上识别的病毒HMM估计完整性。
  6. 基于找到的HMM,CheckV返回基因组完整性的估计范围(例如,35%到60%完整性),表示基于具有相同病毒HMM的参考基因组长度分布的90%置信区间。

C: 预测封闭基因组

  1. 直接末端重复(DTRs):在contig的起始和结束处有>20bp的重复序列,这是最可信的标志,可能表示环状基因组或从环状模板复制的线性基因组。
  2. Provirus:在5’和3’末端有预测的宿主边界的病毒区域(参见部分A)。
    • 注意:如果宿主区域已被移除(如使用VIBRANT或VirSorter),CheckV将不会检测到provirus。
  3. 倒位末端重复(ITRs):在contig的起始和结束处有>20bp的重复序列(3’重复倒置),这是最不可信的标志。
  4. 对于上述所有方法,CheckV还会检查contig是否大致符合基于估计完整性的正确序列长度;这很重要,因为末端重复可能代表宏基因组组装的伪影。

D: 总结质量

  1. 基于A-C的结果,CheckV生成报告文件,并将查询contig分配到五个质量层次之一(与MIUViG质量层次一致并扩展):
    • 完整(参见部分C)
    • 高质量(>90%完整性)
    • 中等质量(50-90%完整性)
    • 低质量(<50%完整性)
    • 未确定质量

可以分步使用checkV:

checkv contamination input_file.fna output_directory -t 16
checkv completeness input_file.fna output_directory -t 16
checkv complete_genomes input_file.fna output_directory
checkv quality_summary input_file.fna output_directory

Application

这些专门的病毒鉴定工具各有优劣,研究者可以根据具体的研究需求和数据特征选择合适的工具。通过结合多种方法,可以提高病毒序列鉴定的准确性和效率,为深入理解病毒在生态系统中的角色和功能提供有力支持。

Biogeographic patterns and drivers of soil viromes

这是马斌老师团队2024发表于Nature Ecology & Evolution的一篇文章[8]。

病毒对于塑造土壤微生物功能和生态系统至关重要。然而,对土壤病毒组的研究在空间尺度和生物群落覆盖方面都受到限制。

在这里,使用全球土壤病毒组数据集 (GSV) 全面综合了土壤病毒组生物地理模式,分析了全球 1,824 个土壤宏基因组,发现了 80,750 个 DNA 病毒的部分基因组,其中 96.7% 未分类。
不同生物群落的土壤病毒多样性和群落结构的生物地理学各不相同。有趣的是,病毒的多样性与微生物的多样性并不相符,相反,森林和灌木丛土壤中的病毒多样性较低。

预测的土壤病毒多样性图谱进一步证实了土壤质地和水分条件是影响多样性的关键因素,揭示了潮湿和半湿润地区更高的多样性。此外,二项式度分布模式表明土壤病毒的随机共现模式。这些发现对于阐明土壤病毒生态学以及将病毒全面纳入土壤生态系统模型至关重要。

他们在这篇文章里用的鉴定病毒的方法是:

组装的contigs通过 VirSorter (v.1.0.5)比对 NCBI 病毒参考序列数据库 (Refseq) (www.ncbi.nlm.nih.gov/genome/viruses/) ;使用VIBRANT (v.1.2.1) 和 DeepVirFinder (v.1.0),截止长度为 1,000bp。注释为 VirSorter 类别 1、2、4 和 5 的contigs,或 DeepVirFinder 评分≥0.7 且 P < 0.05 的contigs,被视为假定的病毒contigs。通过将数据与 VIBRANT 的数据相结合,CAT (v.5.0.3) 用于进一步估计按 VirSorter 类别 3 和 6 排序的contigs,或 DeepVirFinder 得分为 0.7-0.9 且 P< 0.05 的contigs。具有 >40% 开放阅读框注释为细菌、古细菌或真核生物的contigs被视为非病毒contigs。取出≥5 kb或≥1.5 kb的contigs和环状片段进行进一步研究;通过 BLAST (v.2.11.0) 鉴定的 Φx174 DNA 被手动去除。

A global atlas of soil viruses

这也是一篇2024年发表于Nature microbiology的文章[9]:

历史上被微生物生态学家忽视的土壤病毒现在被认为对全球生物地球化学循环至关重要。然而,我们对其全球分布、活动以及与土壤微生物组相互作用的了解仍然有限。
在这里展示了全球土壤病毒图谱,这是一个综合数据集,由 2,953 个先前测序的土壤宏基因组编译而成,由 616,935 个未培养的病毒基因组和 38,508 个独特的病毒操作分类单元组成。
全球土壤病毒图谱的稀疏曲线表明,大多数土壤病毒多样性仍未被探索,样本间高空间周转率和低共享病毒操作分类单元率进一步强调了这一点。
通过检查与生物地球化学功能相关的基因,还证明了病毒影响土壤碳和养分循环的潜力。这项研究代表了土壤病毒多样性的广泛特征,并为制定有关病毒圈在土壤微生物组和全球生物地球化学中的作用的可检验假设奠定了基础。

这篇文章中鉴定病毒的方法是:

使用 IMG/VR v3 病毒识别管道的修改版本对病毒contigs进行了初步识别。该管道根据 Pfam 数据库 和 VirFinder 中 23,841 个病毒蛋白家族、16,260 个微生物来源蛋白家族的存在来识别病毒,以识别至少 1 kb 长的contigs中的假定病毒基因组。

在本研究过程中,发布了 geNomad v1.3.3,这是一种具有改进的分类性能的病毒识别工具,并将其纳入流程中,以提高预测置信度并执行分类分配。
使用 CheckVv1.0.1(数据库版本 1.5) 进一步处理预测的病毒序列,以评估病毒基因组的质量。
由于本研究重点关注非整合病毒基因组,因此被 geNomad 或 CheckV 标记为原病毒的contigs被丢弃。
从剩余的contigs中,使用以下规则选择病毒基因组:

  1. 至少 1 kb 的contigs,与 CheckV数据库中的基因组具有高度相似性(即具有高质量或中等完整性估计)或包含自动选择直接末端重复;
  2. 长于 10 kb 的contigs需要具有高于 0.8 的 geNomad 病毒评分,并且编码一种病毒标志(例如,终止酶、衣壳蛋白、门户蛋白等)(由 geNomad 确定),或者具有gNomad 病毒标记至少为 5.0;
  3. 短于10kb和长于5kb的contigs需要具有高于0.9的geNomad病毒评分,编码至少一种病毒标志并且具有高于2.0的病毒标记富集。
    这产生了 49,649 个病毒contigs,将其用于下游分析。

病毒基因组按照 MIUViG 指南聚类成 vOTU(平均核苷酸同一性为 95%,比对分数为 85%)。简而言之,进行了全对全 BLAST(v2.13.0+,‘-task megablast -evalue 1e-5 -max_target_seqs 20000’)搜索来估计成对平均核苷酸身份和比对分数 (AF)。并采用 pyLeiden对基因组进行聚类,使用图作为输入,其中满足 MIUViG 标准的基因组对通过边连接。

使用 DIAMOND 进行蛋白质比对,使用 Markov Cluster Process 进行聚类,将病毒按大致属水平(40% 平均氨基酸同一性,20% 共享基因)和科水平(20% 平均氨基酸同一性,10% 共享基因)聚类进行分组。通过与先前描述的来自 NCBI GenBank 和 MAG 的 160 万个细菌和古菌基因组的 CRISPR 间隔区数据库相匹配,将病毒序列分配给假定的宿主(细菌和古菌)分类群。

Bacteriophage in 1300-year-old human palaeofaeces

这是2024年在NC上发表的研究[10]:

噬菌体被广泛认为是快速进化的生物实体。然而,关于古代噬菌体的知识是有限的。在这里,我们分析了先前从古代古粪便和人类肠道内容物样本中生成的 DNA 序列数据集,并鉴定了与当今的 Mushuvirus mushu(一种感染肠道共生细菌的病毒)几乎相同的古代噬菌体基因组。
基因组的 DNA 损伤模式与其古代起源一致,尽管经过 1300 年的进化,古代木须病毒基因组与现代对应物具有 97.7% 的核苷酸同一性,表明原噬菌体与其宿主之间存在长期关系。此外,还重建并验证了过去 5300 年的 297 个其他噬菌体基因组,包括属于未知家族的噬菌体基因组。
研究结果证明了重建古代噬菌体基因组序列的可行性,从而扩大了已知的病毒圈,并为跨越数千年的噬菌体-细菌相互作用提供了见解。

病毒contigs鉴定:

使用三种机器学习工具来识别病毒contigs。第一个是 Jaeger v.1.1.0,这是一种深度学习模型,可基于自动组成特征提取来识别宏基因组中的噬菌体基因组序列 (https://github.com/Yasas1994/Jaeger)。第二个和第三个是 VIBRANT v.1.2.124 和 VirSorter2 v.2.2.325,它们依赖于分析代表与预测蛋白质相似但应用不同分类器和参考数据库的保守家族和/或结构域的 HMM 图谱。 Jaeger 和 VIBRANT 使用默认设置运行。对于 VirSorter2,我们使用了位置参数“–include-groups dsDNAphage,NCLDV,ssDNA,lavidaviridae all”。进一步分析了至少两种工具分类为病毒的contigs。

References

  1. Camargo, A.P., Roux, S., Schulz, F. et al. Identification of mobile genetic elements with geNomad. Nat Biotechnol (2023). https://doi.org/10.1038/s41587-023-01953-y
  2. Ren, J., Song, K., Deng, C., Ahlgren, N.A., Fuhrman, J.A., Li, Y., Xie, X., Poplin, R. and Sun, F. (2020), Identifying viruses from metagenomic data using deep learning. Quantitative Biology, 8: 64-77. https://doi.org/10.1007/s40484-019-0187-4
  3. Guo, J., Bolduc, B., Zayed, A.A. et al. VirSorter2: a multi-classifier, expert-guided approach to detect diverse DNA and RNA viruses. Microbiome 9, 37 (2021). https://doi.org/10.1186/s40168-020-00990-y
  4. Kieft, K., Zhou, Z. & Anantharaman, K. VIBRANT: automated recovery, annotation and curation of microbial viruses, and evaluation of viral community function from genomic sequences. Microbiome 8, 90 (2020). https://doi.org/10.1186/s40168-020-00867-0
  5. Chen, L., Banfield, J.F. COBRA improves the completeness and contiguity of viral genomes assembled from metagenomes. Nat Microbiol 9, 737–750 (2024). https://doi.org/10.1038/s41564-023-01598-2
  6. Flamholz, Z.N., Biller, S.J. & Kelly, L. Large language models improve annotation of prokaryotic viral proteins. Nat Microbiol 9, 537–549 (2024). https://doi.org/10.1038/s41564-023-01584-8
  7. Nayfach, S., Camargo, A.P., Schulz, F. et al. CheckV assesses the quality and completeness of metagenome-assembled viral genomes. Nat Biotechnol 39, 578–585 (2021). https://doi.org/10.1038/s41587-020-00774-7
  8. Ma, B., Wang, Y., Zhao, K. et al. Biogeographic patterns and drivers of soil viromes. Nat Ecol Evol 8, 717–728 (2024). https://doi.org/10.1038/s41559-024-02347-2
  9. Graham, E.B., Camargo, A.P., Wu, R. et al. A global atlas of soil viruses reveals unexplored biodiversity and potential biogeochemical impacts. Nat Microbiol (2024). https://doi.org/10.1038/s41564-024-01686-x
  10. Rozwalak, P., Barylski, J., Wijesekara, Y. et al. Ultraconserved bacteriophage genome sequence identified in 1300-year-old human palaeofaeces. Nat Commun 15, 495 (2024). https://doi.org/10.1038/s41467-023-44370-0

关注公众号,获取最新推送

关注公众号 ‘bio llbug’,获取最新推送。

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

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

相关文章

Modbus转Profibus网关在汽车行业的应用

一、前言 在当前汽车工业的快速发展中&#xff0c;汽车制造商正通过自动化技术实现生产的自动化&#xff0c;目的是提高生产效率和减少成本。Modbus转Profibus网关&#xff08;XD-MDPB100&#xff09;应用于汽车行业&#xff0c;主要体现在提升自动化水平、优化数据传输以及实…

刷题之小欧的平均数(卡码网)

小欧的平均数 这道题不看解析的话完全没有思路&#xff0c;连题目都没读明白&#xff0c;甚至看了评论答出来了还是不知道为什么&#xff0c;有知道的朋友可以教教我 #include<iostream> using namespace std;int main() {int x,y,z;cin>>x>>y>>z;//…

【机器学习 复习】第10章 聚类算法

一、概念 1.聚类 &#xff08;1&#xff09;是无监督学习&#xff0c;其实无监督学习就是无中生有&#xff0c;不给你标准答案&#xff08;标签啊啥的&#xff09;&#xff0c;然后让你自己来。 &#xff08;2&#xff09;聚类就是这样&#xff0c;让机器自己根据相似特征把相…

怎么将图片压缩调小?在线压缩图片的4种快捷方法

压缩图片是日常很常用的一个图片处理功能&#xff0c;现在拍摄和制作的图片都比较大&#xff0c;在使用时经常会受到影响。在遇到无法上传、传输过慢的问题时会降低工作效率&#xff0c;所以掌握一招快速压缩图片是非常重要的。通过下面这篇文章来给大家介绍一下在线图片压缩的…

Flutter ffi Failed to lookup symbol

iOS release版本&#xff0c;解决方式参考官方文档&#xff1a;在 iOS 中使用 dart:ffi 调用本地代码 如果debug版本也报这个错误&#xff0c;很可能是有多个.c文件&#xff0c;编译的时候没带上&#xff01; 假设你的ffi模块名字是 c_lib 对于Android端&#xff0c;需要修改…

基于Pytorch框架构建AlexNet模型

Pytorch 一、判断环境1.导入必要的库2.判断环境 二、定义字典1.定义字典 三、处理图像数据集1.导入必要的模块2.定义变量3.删除隐藏文件/文件夹 四、加载数据集1.加载训练数据集2.加载测试数据集3.定义训练数据集和测试集路径4.加载训练集和测试集5.创建训练集和测试集数据加载…

elementUI相关知识及搭建使用过程

​​​​​​ 目录 ​​​​​​ 一.elementUI相关的知识 1.什么是elementUI 2.如何在创建的项目中使用elementUI的组件(1)安装 ​ (2)在项目的main.js中引入elementUI (3)使用elementui里的组件 一.elementUI相关的知识 1.什么是elementUI Element&#xff0c;一套为开…

MQTTX 1.10.0 发布:CLI高级文件管理与配置

MQTTX 1.10.0 版本现已发布&#xff01; 在本次更新中&#xff0c;CLI 版本在文件管理和配置功能方面进行了显著增强。主要更新包括&#xff1a;支持从文件中读取和写入消息、高级配置选项、文本输出模式、以及改进的日志记录。此外&#xff0c;桌面版本现在支持数据库重建&am…

IDEA集成Maven

&#x1f4bb;博主现有专栏&#xff1a; C51单片机&#xff08;STC89C516&#xff09;&#xff0c;c语言&#xff0c;c&#xff0c;离散数学&#xff0c;算法设计与分析&#xff0c;数据结构&#xff0c;Python&#xff0c;Java基础&#xff0c;MySQL&#xff0c;linux&#xf…

《Nest系列 - 3. 掌握常见Nest 装饰器,奠定坚实基础!!!!!!》

nest 一个核心就是依赖注入&#xff0c;而中的大部分功能都是通过装饰器来实现的&#xff0c;那什么是装饰器呢&#xff1f; 就是一个 xxx &#xff0c;诸如 Module&#xff0c;controller, Get, Post 那这样有什么好处呢&#xff1f; 可以把他理解成一个方法&#xff0c;在不改…

物联网 IoT 收录

物联网IoT日常知识收录 thingsboard, nodered是国际大品牌&#xff0c; iotgateway是国内的&#xff0c; 几个scada, pyscada, json-scada都还不错&#xff0c;比较一下。thingsboard-gateway是python系的&#xff0c;如果你愿意&#xff0c;可以用这个作为公司的物联网网关。…

深入探索Jetpack数据绑定(DataBinding)

Jetpack的数据绑定&#xff08;DataBinding&#xff09;库为我们提供了一个强大而灵活的工具&#xff0c;用于将UI组件与数据源绑定在一起。本文将深入探讨数据绑定的高级用法&#xff0c;包括双向绑定、自定义Binding Adapter、使用LiveData和ViewModel&#xff0c;以及如何处…

热虹吸管的传热计算

热对称管和热管通过使用中空管内的两相流体&#xff0c;在特定的距离上传输大量的热量。 更广泛使用的热管使用吸芯结构将液体输送回热端&#xff0c;而热虹吸管是一个简单的空心管&#xff0c;使用重力。 由于缺乏吸芯结构&#xff0c;使得热虹吸管比传统的热管便宜得多。 然…

跟《经济学人》学英文:2024年6月22日这期 Think Nvidia looks dear?

Think Nvidia looks dear? American shares could get pricier still Investors are willing to follow whichever narrative paints the rosiest picture 觉得Nvidia看起来很贵&#xff1f;美国股票可能会变得更贵 投资者愿意追随任何一个描绘出最乐观的故事 dear&#x…

虚幻引擎 Gerstner Waves -GPU Gems 从物理模型中实现有效的水体模拟

这篇文章重点在于结合GPU Gems一书中有关Gerstner Waves 的数学公式&#xff0c;在虚幻引擎中复现正确的Gerstner Waves和正确的法线 文中内容整理自书中&#xff0c;并附带我的理解&#xff0c;与在虚幻引擎中的实现&#xff0c;可以参考原文看这篇文章&#xff0c;原文网上很…

Redis队列自研组件

背景 年初的时候设计实践过一个课题&#xff1a;SpringBootRedis实现不重复消费的队列&#xff0c;并用它开发了一个年夜饭下单和制作的服务。不知道大家还有没有印象。完成这个课题后&#xff0c;我兴致勃勃的把它运用到了项目里面&#xff0c;可谁曾想&#xff0c;运行不久后…

靠AI一年增长15%,商场的春天来了么

文&#xff5c;艺 思 编&#xff5c;王一粟 “在商场全面部署AI机器人仅1年&#xff0c;AI带来的销售占同期整体联营销售额的比重逐步增加&#xff0c;最高达到了15%。” 这是正在银泰百货发生的真实案例。 除了线上电商&#xff0c;百货商场等线下的实体零售也正在尝试…

汇聚荣电商实力好不好?

在数字化浪潮的推动下&#xff0c;电商平台如雨后春笋般涌现&#xff0c;而“汇聚荣”作为其中的一员&#xff0c;其综合实力自然成为业界与消费者关注的焦点。那么&#xff0c;汇聚荣电商的实力究竟如何呢?接下来&#xff0c;我们将从多个维度深入探讨这一问题。 一、品牌影响…

创建和探索VGG16模型

PyTorch在torchvision库中提供了一组训练好的模型。这些模型大多数接受一个称为 pretrained 的参数&#xff0c;当这个参数为True 时&#xff0c;它会下载为ImageNet 分类问题调整好的权重。让我们看一下创建 VGG16模型的代码片段&#xff1a; from torchvision import models…

什么美业系统好用?美业门店收银系统源码分享、小程序展示

专业美业系统与普通系统相比&#xff0c;更加贴合美业门店的经营需求&#xff0c;提供了更全面、便捷、高效的管理功能&#xff0c;有助于提升门店的服务质量和经营效益。 博弈美业系统包括PC、iPad、手机、小程序四大端口&#xff0c;满足不同人群的各种需求。客户可从小程序…