Trends in Plant Science | 植物生物学中的大语言模型

news/2024/11/15 21:24:26/文章来源:https://www.cnblogs.com/miyuanbiotech/p/18328522

分享一篇来自南洋理工大学Marek Mutwil团队发表在《Trends in Plant Science》上有关植物生物学方向的大语言模型综述:Large language models in plant biology。生物序列本身就是一种自然语言,与LLM是天作之合,实际上生物大模型已有很多开发,只是解释太过复杂,大多是学术报道。这方面也是我一直想要总结的,值得分享和反复阅读。

图片

要点

  • 理解植物生物学的复杂性需要创新的分析方法来阐明植物发育和应对压力反应的遗传和分子机制。

  • 大语言模型(LLMs)可以在嘈杂的生物数据中找到模式和相关性,但LLMs尚未被植物学界广泛采用。

  • 描述了不同类型的LLMs,并涵盖了它们如何被用来研究生物系统。

  • 数据、硬件和软件的需求在可接受的范围内,以构建为植物学界服务的强大LLMs。

大语言模型(LLMs),如ChatGPT,已经在全球范围内掀起了风暴。然而,LLMs并不仅限于人类语言,它们还可以用来分析序列数据,例如DNA、蛋白质和基因表达。由此产生的基础模型可以被重新用于识别数据中的复杂模式,从而产生强大的、多功能的预测工具,能够预测细胞系统的状态。这篇综述概述了不同类型的LLMs,并展示了它们在生物学中的近期应用。由于LLMs尚未被植物学界广泛采用,本文还介绍了这些模型如何被部署用于植物。

在生物学中应用深度学习

深度学习的最新进展在人工智能领域取得了非凡的成就,例如提供准确的医疗诊断、通过律师资格考试以及完成某些版本的图灵测试。最著名的AI之一,ChatGPT,是一个大语言模型(LLM),这是一种能够生成模仿人类语言的文本的神经网络。通过在数十亿文本上进行训练,LLM通过自我监督的方式,学习了它所训练语言的上下文理解。ChatGPT基于一个生成预训练变换器(GPT)基础模型,该模型在大量文本数据上进行了预训练。LLM通常通过解决填空题(例如,“法国的___是巴黎”)进行预训练,从而获得对语言和单词之间相关性的理解。虽然基础模型是为解决填空题而预训练的,但它们可以微调到多种用途,允许它们利用之前学到的知识解决新问题。例如,ChatGPT是通过监督学习对基础GPT-3模型进行微调的版本,模型在对话交流数据集上进行了训练,专门设计用于执行指令任务。值得注意的是,ChatGPT能够补充由广泛科学家网络生成的“植物科学面临的一百个重要问题”列表,显示出LLM可以模仿知识和创造力。

LLM可以通过将DNA或氨基酸序列视为文本来适应分析生物序列数据。这导致了DNA和蛋白质语言模型(LMs)以及其他针对生物序列数据的专业LLM的普及。与应用于自然语言的LLM类似,生物序列LLM的任务是预测掩蔽氨基酸或核苷酸的身份,从而获得对“蛋白质/DNA语言”的理解,使模型能够找到新的依赖模式。类似于GPT-3模型,这些生物基础模型然后可以微调到新任务,并显示出与甚至超越先前方法在蛋白质结构预测、基因功能预测、调控元件和剪接位点的识别、蛋白质设计等方面竞争的显著能力(图1)。这种强大的能力归功于模型将通过无监督学习获得的知识应用到特定领域。

然而,LLM方法尚未在植物研究中得到广泛应用。在这篇综述中,我们将讨论在生物学中使用LLMs的最新进展,并提出如何使用这些方法和可用数据为植物研究带来新的见解。

图片

图1. DNABERT模型的预训练和微调。模型架构被初始化,并且模型在序列数据上进行预训练。通过微调得到的预训练模型可以被重新用于预测各种DNA属性。

什么是语言模型(LMs)?

语言模型是训练在大型文本数据集上的算法或神经网络(框1),用于学习自然语言中的统计模式和关系。它们是自然语言处理的基本组成部分,并在诸如翻译、文本生成和问题回答等各个领域有着广泛的应用。尽管没有明确的定义说明一个语言模型何时变成一个大语言模型(LLM),但LLM通常具有更多的参数(通常是数十亿个),建立在更大的训练数据上,并比普通语言模型拥有更多的能力。语言模型在生物学中已经使用了几十年,它们可以被分为词n-gram、卷积神经网络(CNNs)、长短期记忆(LSTM)网络和变换器(transformers)。

词n-gram是从文本中连续的n个词的序列,其中n是一个正整数。例如,“cellulose synthase”(纤维素合酶)是一个2-gram(或二元组)。在生物学中,词n-gram通常用于科学文献的文本挖掘以及在DNA中发现调控元件(在这里n-gram和k-mer可以互换使用)、蛋白质-蛋白质相互作用等。然而,这些方法忽略了词序,因此无法捕捉n-gram/k-mer之间的上下文。

卷积神经网络(CNNs)使用卷积,即应用于图像或字符序列的核(过滤器),以识别特定特征或信息。CNNs已用于植物研究中识别DNA中的调控增强子和蛋白质泛素化。尽管如此,像n-gram一样,CNNs受到应用过滤器大小的限制,更擅长发现局部模式而不是长距离依赖和复杂句子结构。CNNs也已被用于从序列预测基因表达水平。值得注意的是,通过使用扩张和扫描场方法,CNNs的性能超过了其他神经网络架构,展示了识别输入序列中重要基序的能力,在基因组学和转录组学分析中被广泛部署(由于它们的优势),并被用于预测DNA和RNA结合蛋白的序列特异性。

长短期记忆(LSTM)模型是一种适合分析序列数据的循环神经网络(RNN),例如文本或生物序列。LSTM能够通过使用长期和短期记忆结构的组合,捕捉句子中更远词之间的长距离依赖。LSTM已用于生物学中进行基因组注释和基因型分类。然而,由于LSTM和其他RNN将前一步的输出作为当前步骤的输入,它们倾向于在文本大小增加时“忘记”文本的开头,这是由于信息被压缩时消失梯度现象造成的。LSTM也可能不稳定,因为它们受到爆炸梯度的影响,这使得它们对某些数据集特别难以训练。此外,由于LSTM按序列处理单词,它们无法利用并行计算的优势,这使得它们的训练缓慢且成本高昂。

变换器模型在2017年被引入以改进机器翻译,但此后已被用于解决各种基因组问题。基于变换器的模型通常通过提供几个优势来优于上述架构。变换器的主要优势在于它们的多头注意力机制。这在它们的自注意力机制中使用,有效地捕获数据中的长距离依赖,部分克服了LSTM的“遗忘”问题,从而允许分析更长的序列。这是通过让多头注意力机制中的每个头关注输入文本的不同部分来实现的,从而允许对长距离交互有更微妙和更好的理解。此外,与RNN不同,其中计算依赖于前一步,变换器允许并行处理,使它们在训练、部署和扩展方面更有效率。最后,这些自注意力机制可以通过探测分析来更好地理解模型关注序列的哪些部分,允许识别序列中元素之间的统计关系。然而,支撑变换器高性能的注意力机制显示出二次复杂性,其中计算注意力的内存和计算需求与序列长度呈二次方增长。这使得训练变换器在计算上很昂贵,并有效地限制了可以分析的序列长度。

框1. 神经网络

神经网络实际上是具有可调整内部参数的数学函数,这些参数被称为权重。它们最初是模仿生物神经元设计的,其中权重类似于神经元如何调节其输入的方式。一个神经元的输出实质上是其输入的加权和(即,每个输入乘以相应的权重,然后将它们全部相加以产生输出)。最简单的神经网络之一是感知机,它只由一个神经元组成[78],尽管非常大的神经网络可以包含高达数万亿个参数。从根本上说,神经网络的训练涉及两个阶段:前向传播和反向传播(反向传播)步骤。在前向传播中,输入被送入神经网络,权重以数学方式操纵这些输入。从前向传播中派生出输出,并与真实值进行比较。通过这样做,可以派生出一个损失值,这可以最好地解释为预测值和真实值之间的误差。在反向传播中,损失被用来对神经网络中的权重进行微小调整,使预测更接近真实值。通过大量的迭代,包括前向和反向传播,神经网络学习到一组最优权重,这些权重最小化了损失。

在生物学中使用LLMs的示例

在生物学中使用变换器允许了一些最近的突破,例如非常准确的蛋白质结构预测模型AlphaFold2 (AF2) 。然而,并非所有的LLMs都使用变换器(例如,DNA LLM HyenaDNA),也不是所有使用变换器的模型都是LLMs(例如,AF2)。LLM模型可以分为三种架构类型:编码器-解码器、仅编码器和仅解码器(框2)。来自变换器的双向编码器表示(BERT)模型通常用于分类、命名实体识别(NER)和摘要,而GPT模型通常用于文本生成和翻译。然而,这两种类型的微调版本可以用于最初不打算用于的任务,例如,ChatGPT可以用于文本分类和NER,使用零样本或少样本提示。

由于LLMs用于分析单词序列,许多类型的序列数据可以用作训练输入,在生物学中,BERT和GPT模型最近已被应用于研究基因组、蛋白质组和基因表达数据。LLMs通常使用利用大量公开可用的基因组数据的自我监督方法进行预训练。BERT模型使用掩蔽语言建模(MLM),目标是预测掩蔽的标记,而GPT模型使用因果语言建模,任务是预测序列中的下一个标记。然后可以将序列中预测的新词反馈到同一个模型中,以迭代方式重复预测下一个;这使模型成为自回归的。通过预训练,模型学习到标记内的模式,这些模式后来可以用于提取特征和模式,并推广到未见过的数据。通过微调这些预训练的基础模型,可以用监督学习方法重新用于其他任务。

仅编码器模型

DNABERT是一个BERT系列模型,使用MLM进行训练,模型的任务是通过使用上游和下游标记(因此是双向的)来预测掩蔽的标记。在训练期间,DNA序列被标记化为k-mer,模型的任务是使用相邻的k-mer来预测掩蔽的k-mer(见图1)。训练数据可以包括具有多个基因组的物种的物种特异性基因组(例如,1000个人类基因组)或多物种基因组。DNABERT-2是在135个物种的基因组上训练的,总计32.49亿个核苷酸碱基,而Nucleotide Transformer是在惊人的3202个人类基因组和来自其他物种的850个基因组上训练的。值得注意的是,这些基础模型是多功能工具,可以微调以擅长各种任务,例如识别转录因子结合位点、剪接位点和基因。此外,已证明这些模型在训练于多个不同物种的基因组时,在许多任务上的表现优于训练于单一物种的基因组。这表明基于不同物种的LLM模型可以学习基因组的通用“语言”,以捕获跨物种功能重要的基因组特征,因此,在各种预测任务中具有更好的泛化能力。

ESM-2是一个基于BERT(特别是RoBERTa,BERT的一个衍生物)的LLM,能够从单个蛋白质序列中准确预测蛋白质结构。ESM-2是在约6500万个独特的蛋白质序列上使用MLM方法训练的。值得注意的是,与使用计算成本高昂的序列比对来识别相关(因此相互作用)氨基酸对的AF2模型相比,ESM-2模型比AF2更简单,尽管它在CASP14基准测试上的表现低于AF2,但它的速度高达60倍,并且不需要多序列比对输入,这需要搜索大型蛋白质数据库。随后,该模型被应用于预测来自生命王国的7.72亿个蛋白质的结构(https://esmatlas.com/),允许在宏基因组水平上研究蛋白质结构。

Geneformer模型是在约3000万个人类单细胞RNA测序数据上训练的,其中基因表达值通过按细胞内基因表达等级排序的基因ID序列转换而来。然后,模型的任务是通过MLM预测每个细胞中掩蔽的基因,并获得了对底层基因调控网络的理解。微调后,该模型在基因剂量敏感性、染色质动态和网络动态任务上获得了最先进的预测性能。基因组预训练网络(GPN)是唯一专门部署用于植物的模型。模型架构和训练类似于DNABERT,但它使用卷积机制来捕获核苷酸之间的长距离依赖,而不是变换器。像DNABERT一样,该模型能够识别DNA基序、各种类型的基因组区域(基因间、编码序列和内含子)并预测单核苷酸多态性的影响。与计算保守性得分的流行工具(phyloP 和phastCons)相比,GPN可以从基因组中所有相似上下文中的联合核苷酸分布中学习,并且不依赖于全基因组比对,这些比对在基因间区域通常质量较低。

框2. LLMs的不同架构

LLMs可以分为编码器-解码器、仅编码器和仅解码器架构。编码器-解码器架构由两个主要部分组成:编码器和解码器。编码器处理输入序列并将其嵌入到一组高维潜在空间向量中,捕捉序列的含义和上下文。解码器使用潜在空间向量生成输出序列,例如,将一种语言翻译成另一种语言。在变换器LLMs中,编码器和解码器具有包括自注意力机制的层,允许它们考虑序列中不同单词之间的关系。因此,编码器专注于理解输入,而解码器专注于生成输出。不同的架构擅长不同的任务。

在基因组学的背景下,Orca是一个能够从DNA序列预测染色体接触图的编码器-解码器。Orca编码器接受一维DNA序列并将其嵌入为数值向量,然后解码为表示基因组接近性的二维接触图。仅编码器LLMs,如BERT,在上游和下游上下文很重要时,擅长生成丰富的生物序列嵌入。这些嵌入可以用作各种分类器的数据。例如,DNABERT嵌入可以直接用于构建转录因子结合位点、编码序列和mRNA剪接位点的最新预测器。

仅解码器架构,如GPT,擅长生成新序列和各种零样本预测任务。然而,它们也可以通过微调用于预测任务,如在3300万个人类细胞上训练并擅长细胞类型注释、遗传扰动预测、批次校正和多组学整合的scGPT模型所示。

仅解码器模型

GPT系列模型在生物学中使用不多。除了自注意力机制,解码器还具有交叉注意力机制。单细胞GPT(scGPT)是一个LLM,它在各种下游任务中实现了最先进的性能。为了实现这一点,作者创新性地通过在超过1000万个单细胞RNA测序数据上训练模型,适应了GPT技术。虽然GPT模型擅长预测句子中的下一个词,但作者让模型在给定细胞提示和已知在细胞中表达的基因子集的情况下,预测细胞中基因的表达。通过学习细胞类型和基因表达之间复杂的关联,该模型在多批次整合、细胞类型注释、遗传扰动预测和基因网络推断等多样化任务上实现了最先进的性能。值得注意的是,该模型可以轻松扩展,整合多个组学数据集(例如,基因表达、染色质可及性和蛋白质丰度),以类似翻译一种组学类型的“语言”到另一种组学类型的“语言”的模式工作。

模型可解释性

模型可解释性是使用LLMs的一个关键方面。可解释性指的是理解和解释机器学习模型所做的决策或预测的能力。在LLMs的背景下,这一点尤其重要,原因有几个。首先,这些模型的高复杂性和大量的参数使它们本质上难以理解。这种“黑箱”特性在需要理解模型如何工作的科学环境中可能是一个重大障碍,以便深入了解底层的生物系统。其次,能够解释模型增加了在敏感领域如医疗保健中应用时必不可少的信任和可靠性。第三,可解释性可以提供对模型关注点和决策过程的洞察,这对于微调和提高模型性能非常有价值。

模型可解释性已经推动了对调控基因组学的理解。一些先前的工作广泛使用了SHAPley Additive exPlanations(SHAP),它将模型的输出分解以计算模型特征对其输出的贡献,以及Deep Learning Important FeaTures(DeepLIFT),它使用反向传播找到影响输出的神经元,来解释模型。这些方法被用来识别DNA序列中的重要序列基序,允许在核苷酸水平上分配重要性分数。

通过在可解释性领域的进步,植物生物学家可以学习重要特征,如基因调控结构、DNA结构属性和基序共关联,并将其应用于合成生物学等领域以培育更好的作物。尽管已经提出了许多其他可解释性方法,例如通过在训练中添加约束来使模型本质上可解释,或从神经网络的隐藏表示(潜在空间)中进行事后可解释性,可解释性仍然是一个大部分未解决的问题,不同的架构使用不同的提议解决方案,如前所述。值得注意的是,在可解释性领域没有一劳永逸的解决方案,需要更多的研究。

在新型模型的背景下,已经开发了各种技术来提高LLMs的可解释性。这些技术包括特征重要性映射、注意力图和旨在将模型决策分解为可理解组件的可解释性框架。例如,变换器中的自注意力机制可以被探测以理解模型关注序列的哪些部分,从而揭示数据内的统计关系。在生物学应用中,这可能意味着识别模型认为对特定预测任务重要的关键基因组或蛋白质组特征(图2)。

还存在可以显示BERT模型中注意力头的可视化工具,例如BertViz,它可以突出显示输入序列的哪些区域在模型的每层中贡献最大。在DNABERT中,作者开发了DNABERT-viz,它同样绘制了变换器头的自注意力图。在scGPT中,作者同样分析了注意力图,并在由GPT模型生成的嵌入上进行了聚类和基因富集分析。通过在潜在空间中聚类和寻找邻居,可以构建相似性网络以推断离散基因之间的相互作用。

这证明了尽管DNABERT和scGPT是变换器模型的两个不同谱系,但类似的分析方法可以通过未池化的嵌入或通过解读注意力机制来使用。在生物学研究中,变换器的这些属性可以被用来,例如,(i)注释DNA序列并预测蛋白质功能,以及(ii)解释序列中的哪些基序对所述预测做出贡献,从而提供对赋予序列该属性的关键氨基酸残基或核酸基序的洞察。这反过来可以为下游的湿实验室验证实验提供线索,提高对这些序列的整体理解,并为通过改进对底层DNA序列的理解来培育更好的作物提供基础。虽然各种深度神经网络架构在提取各种类型的生物信息方面取得了成功,但我们预见基于变换器的方法可能提供更优越的能力,特别是在处理生物数据中的长距离依赖和复杂模式方面。

图片

图2. DNABERT模型的预训练、解剖、分类和探测。预训练步骤接受可以分解为k-mer(标记化)的DNA序列,模型的任务是通过掩蔽语言建模预测掩蔽标记的身份。预训练中使用的不同标记包括CLS标记(分类标记——描述特定序列的类型,例如编码序列)、SEP标记(分隔不同序列)和MASK标记(预训练中掩蔽k-mer)。输入通过嵌入层并由变换器块处理。最后隐藏状态可以用于分类层以预测分析序列的属性。使用BertViz可视化的DNABERT-2注意力图使模型的可解释性更好,说明某些标记如何促进对其他标记的上下文理解。

为植物构建LLMs:数据、硬件和软件需求

尽管最近已经努力为植物构建LLMs,如FloraBERT和AgroNT,但仍然很少关注在植物数据上训练这些LLMs,甚至更少关注应用它们。许多最初的DNA语言模型没有在植物数据上训练(例如,DNABERT-2是在动物、细菌和真菌上预训练的,而不是植物)或仅在有限的植物物种选择上训练。有超过788个已测序的植物基因组,更多的模型可以在各种植物上预训练,涵盖被子植物、裸子植物、蕨类植物、石松植物、苔藓植物和绿藻类,并应用于植物研究,例如使用这些模型进行转录组表达预测。此外,正如上文所例证的,LLMs可以与单细胞RNA测序数据(GeneFormer和scGPT)一起预训练和微调,以及其他捕获表观基因组、蛋白质组和代谢组的方式,因为这些数据越来越可用。正如人类细胞图谱有助于解释新数据集,最近为策划多模态植物数据的举措被证明对于植物学中结构化数据组织至关重要。

植物的单细胞RNA测序数据正在积累,已有超过100万个拟南芥的测序细胞核。这些研究包括捕捉种子到种子发育的图谱(800,000个测序细胞核)、根部油菜素内酯反应(210,856个细胞核)、根部发育(100,000个细胞核)、叶片感染时间过程(41,994和11,895个细胞核)以及叶片紫外线处理(23,729个细胞核)。不出所料,更多的数据转化为LLM模型的更高性能,因为将scGPT训练数据集大小从300,000个细胞核增加到3,000,000个细胞核将细胞类型注释准确率从0.755提高到0.84。幸运的是,LLMs可以解释批次效应,使得可以整合来自多个研究的单细胞数据。这表明已经产生和未来的数据对于构建植物LLMs将是非常宝贵的。

LLMs的硬件需求通常是昂贵的,因为这些模型需要具有大量内存的昂贵图形处理单元(GPU)。实际上,训练如ESM-2这样的模型在大型科技公司之外是不可能的,训练成本可能超过200,000美元(最大的模型在512个NVIDIA V100 GPU上训练60天)。然而,对于较小的模型以及在各种云服务的普及下,计算可以负担得起且易于实施。例如,预训练DNABERT-2的成本约为600美元(在8个NVIDIA GeForce RTX 2080 Ti GPU上训练14天),而GeneFormer的成本约为400美元(在12个NVIDIA V100 32GB GPU上训练3天)在各种云服务上。此外,大多数模型都作为开源软件提供,并附有用户手册,允许精通Python的计算生物学家轻松微调和部署。

结论和未来展望

尽管使用深度学习方法研究生物现象并不是新事物,但近年来,越来越强大的人工智能模型的出现,使它们能够筛选并识别嘈杂基因组数据中的模式。虽然其他架构,如CNNs和RNNs,通过开创转录组预测和预测蛋白质的RNA和DNA结合位点,为生物信息学领域做出了重大贡献,但具有高度适应性注意力机制的LLMs为这一领域提供了新的视角。当然,这并没有抹去使用旧架构完成的大量工作。LLMs有潜力成为范式转变的驱动力,其中通常以假设为驱动的科学可以越来越多地以数据为驱动。在这种新范式中,研究人员可以从无假设的、大规模的数据生成开始,这些数据可以用来训练LLM。

LLMs在几项预测任务中表现出最先进的性能,如基因组注释、转录因子结合位点识别和蛋白质结构预测。然而,通过整合多模态数据,LLMs可以提供更深入的见解,提供更全面的细胞系统视图和更强的预测性能。例如,通过整合染色质可及性和蛋白质丰度测量,scGPT在识别细胞类型方面表现更好。同时,基于多物种数据构建模型可以提供稳健的进化洞见,正如Nucleotide Transformer模型的基准测试实验所例证的。研究表明,与多物种基因组训练相比,仅用多个人类基因组训练的表现并不那么好,这表明多物种模型更好地捕获了在进化过程中保守的功能重要性。最后,更多的数据和增加的多样性通常会导致更高的性能,正如GeneFormer的预测能力随着训练语料库中细胞数量的增加而不断提高。

通过构建具有更多参数的模型,也可以提高LLMs的性能,因为更大的模型通常表现更好。然而,由于更大的LLMs需要更多的计算资源,这就需要更高效的模型。幸运的是,对LLMs的研究带来了几项创新,产生了更小、更高效的模型。例如,FlashAttention使用优化的读写算法加快了预训练,并允许分析更长的序列,而稀疏注意力可以显著减少训练所需的内存占用和计算资源。对于微调,Low-Rank Adaptation在预训练的大型模型中插入少量可训练参数,将内存占用减少了多达三倍。更高效的资源模型,如HyenaDNA,放弃了昂贵的注意力机制,使用长依赖卷积系统,将训练计算减少了20%,并将可查询的标记数量增加到100万。

植物研究的未来可以通过使用LLMs大大增强和促进。虽然以前的工作在研究生物系统时利用了深度学习,但LLMs提供了新的视角,并且在几种情况下,与以前的方法相比,性能有所提高。用例可能包括从DNA序列预测基因表达模式,这可以用来预测植物在不利条件下的表现,到预测突变对基因表达的影响。生成模型可以通过从头开始提出新启动子来帮助合成生物学中重要的启动子的创建,为更好的作物工程铺平道路。以前的机器学习方法也可以通过LLMs增强,创建新的混合CNN-RNN深度学习模型,这些模型可以提高可解释性,并在数据稀缺的条件下更好地适应,如Mamba架构。这反过来将引导该领域以更少的数据更好地理解底层生物学。

未解决的问题

  1. 如何提供访问不断积累的多模态单细胞数据,这些数据是构建LLMs所必需的?

  2. 如何降低LLMs的使用门槛,使它们更容易被植物学界理解和部署?

  3. 为了模拟细胞系统,最需要多少数据以及哪些数据模态?

  4. 通过在多物种的多模态数据上训练LLMs,可以获得哪些洞见?

资源:

  • www.runpod.io/

  • https://github.com/Zhihan1996/DNABERT_2

  • https://github.com/bowang-lab/scGPT

关注本公众号,后台回复:植物LLM,获取PDF原文。

图片

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

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

相关文章

严建兵 | 玉米基因组育种的理论与实践

来源:第一届全国作物杂种优势与生物育种学术大会,严建兵老师报告《玉米基因组育种的理论与实践》。 声明:本文仅用于学习交流,不用于任何商业用途。文中所有转载的图片、音频、视频文件等知识归该权利人所有。如不慎侵犯权益,请后台联络,我们将第一时间删除。本文来自博客…

Mac 上Idea 获取环境变量失败的问题总结

* 注意修改后需要彻底杀掉idea后台,重启idea即可生效

国内AI育种近期动态

近期,可以看到,AI育种入局者越来越多,产品、报告、论文、会议、新闻也越来越多,这是好事,大家一起把蛋糕做大。 (点击标题链接,查看详情) 华智生物联合多家单位启动生物育种大模型计划 7月5日,在2024世界人工智能大会暨人工智能全球治理高级别会议期间,中信农业旗下华…

Java基础07:基本运算符

运算符 运算符operator Java 语言支持如下运算符:算术运算符: +,-,*,/,%,++,-- 赋值运算符 = 关系运算符: >,<,>=,<=,==,!= instanceof 逻辑运算符: &&,||,! 位运算符: &,|,^,~ , >>,<<,>>> (了解!!!) 条…

测试发布

本文来米联客(milianke),作者:米联客(milianke),转载请注明原文链接:https://www.cnblogs.com/milianke/p/18328481

Windows安装MinIO

官方文档 1. 安装 MinIO 服务器 从以下 URL 下载 MinIO 可执行文件: https://dl.min.io/server/minio/release/windows-amd64/minio.exe下一步包括运行可执行文件的说明。不能从资源管理器或双击文件来运行可执行文件 2. 启动minio server 在 PowerShell 或命令提示符中,导航…

sublime_text_build_4169 分析

sublime_text 记录 目录sublime_text 记录1、定位注册对话框license_window_1400A25D2定位按钮事件lambda2、注册函数on_ok_clicked_license_window_1400A3F60check_lic_1400A19BC(to patch)parse_lic_1405B0E48verify_rsa_signature_1405B1B693、网络校验net_check_license_…

玉米、水稻、小麦全国种植大数据地图

水稻、小麦和玉米是我国三大主粮作物,种植面积大,产量较高,是人们日常饮食中的主要来源。水稻主要分布在南方地区,小麦主要分布在北方地区,而玉米则在全国各地都有广泛种植。这些粮食作物的种植和收成情况对于我国的粮食安全和经济发展具有重要意义。 其中,水稻在我国的分…

MP | 严建兵团队综述DH与人工无融合生殖进展以及作物育种应用

2024年6月13日,华中农业大学严建兵教授团队在Molecular Plant发表综述:Doubled Haploid Technology and Synthetic Apomixis: Recent Advances and Applications in Future Crop Breeding,系统总结了双单倍体(DH)技术和人工无融合生殖的最新研究进展,探讨了DH技术升级、单…

21、flask-进阶-类视图和RESTful-前后端分离概念

前后端分离与不分离概念前后端不分离:如 render_template(index.html, data=data) 这种就是前后端不分离前端和后端一起渲染前后端分离:后端返回json数据 - jsonify() 前端使用ajax来请求数据: ajax 各自处理各自的数据,代码不在一起http请求方式:GET:查询 POST:添加数据…

使用bom统一管理maven项目中的依赖版本

背景 最近在做一个文件导入的功能时,领导觉得这个功能可以作为一个通用的组件给其他项目使用,让我将这个模块封装成一个组件上传到私服。 在进行过程中,我发现了问题:在我的模块中是要使用到spring-boot,lombok,easyexcel这些依赖,为了防止版本依赖冲突,我必须保持项目中依…

BUUCTF 6.[第五空间2019 决赛]PWN5 1

拿到题目,先运行一下很明显地出现了一个重复我们的输入,以及一个判断的过程,那么我们可以猜测可能会有栈溢出漏洞,让我们继续保护是开了一个canary 以及nx ,大概率就不是栈溢出漏洞了,因为canary的存在会使栈溢出非常麻烦。 我们看一下IDA存在栈溢出漏洞,但是由于长度不…