System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及一种实现化学分子结构数据自动扩增的方法和系统,属于计算机信息处理。
技术介绍
1、化学分子结构数据是描述化学物质分子结构的信息。所谓分子结构,是指分子的原子组成、排列和连接关系,分子结构在很大程度上影响了化学物质的反应性、极性、相态、颜色、磁性和生物活性,因此是化学科学重要的基础研究对象。化学分子结构数据一般可以通过实验测定或通过计算得到,对于理解化学物质的性质和行为非常重要。在化学数据库中,通常会存储大量的化学分子结构数据,以便进行检索和分析,这些化学分子结构数据也是化学人工智能的基础资源。
2、目前,获取大量化学分子结构数据的方法之一为数据扩增,通过数据扩增可以增加训练数据的数量和质量,提高人工智能模型的性能和泛化能力,从而更好地应用于化学结构数据的分析和处理。在化学分子结构数据中,数据扩增可以通过以下方式实现:通过采集更多的化学物质分子结构数据以增加样本数量;变换数据,通过对原始数据进行变换,使生成新的数据样本,例如,可以通过旋转、平移、缩放等方式对化学分子结构数据进行变换,以增加数据的多样性。因为在实际应用中,化学分子结构数据往往对应着通过实验获取的性质数据,比如毒性、生物活性等,采集更多的化学物质分子结构数据需要耗费大量资源,因此通常使用变换数据的方法来实现数据扩增。
3、smiles(simplified molecular input line entry system,简化分子线性输入规范),是一种用ascii字符串明确描述分子结构的规范。由于smiles表达式的构造方式具有
技术实现思路
1、针对现有技术存在的上述问题和需求,本专利技术的目的是提供一种能使扩增的化学分子结构数据具有明确结构特征且能使得到的smiles字符串中的字符顺序和字符组合规整的实现化学分子结构数据自动扩增的方法和系统,从而为化学人工智能研究提供有力支持。
2、为实现上述专利技术目的,本专利技术采用如下技术方案:
3、一种实现化学分子结构数据自动扩增的方法,包括如下步骤:
4、s1)使用rdkit工具中的“molfromsmiles”函数读取所输入的化学分子结构的smiles数据;
5、s2)使用rdkit工具中的“getscaffoldformol”函数识别所读入的化学分子结构中的特征结构,并输出特征结构的类型及特征结构的smiles数据;
6、s3)使用rdkit工具中的“molfromsmiles”函数分别读取所输入的化学分子结构的smiles数据和特征结构的smiles数据,获得化学分子结构和特征结构;
7、s4)使用rdkit工具中的“getnumatoms”函数创建化学分子结构的原子编号列表,并使用rdkit工具中的“getsubstructmatches”函数创建特征结构的原子编号列表;
8、s5)依次比对步骤s4)所得的化学分子结构的原子编号列表中的数字是否在特征结构的原子编号列表中,并将未出现在特征结构的原子编号列表中的数字组成新的列表,作为特征结构以外的原子编号列表;
9、s6)随机打乱特征结构以外的原子编号列表中的原子编号的排列顺序,然后使其与步骤s4)所得的特征结构的原子编号列表相组合,获得特征结构对齐的化学分子结构的原子编号列表;
10、s7)使用rdkit工具中的“renumberatoms”函数根据步骤s6)所获得的特征结构对齐的化学分子结构的原子编号列表对化学分子结构中的原子进行重排,获得特征结构对齐的化学分子结构;
11、s8)使用rdkit工具中的“moltosmiles”函数根据步骤s7)所获得的特征结构对齐的化学分子结构计算特征结构对齐的化学分子结构的smiles数据,并存入扩增结果列表中;
12、s9)重复执行步骤s6)~步骤s8),直至达到用户设定的最大尝试次数阈值或数据扩增倍数阈值停止,然后输出化学分子结构的扩增数据。
13、一种实施方案,若步骤s1)读取结果为空或报错,则提示“输入的化学分子结构的数据错误”,并输出化学分子结构的扩增数据为空。
14、一种实施方案,步骤s2)所述识别包括如下具体步骤:
15、s21)使用rdkit工具中的“getscaffoldformol”函数计算所读入的化学分子结构中的骨架结构,若函数返回结果,则使用rdkit工具中的“moltosmiles”函数计算该返回结果中的骨架结构的smiles数据,并输出特征结构的类型为“骨架结构”及该骨架结构的smiles数据;若函数返回为空,则执行步骤s22);
16、s22)使用正则表达式“\([^)*\)]”删除所输入的化学分子结构的smiles数据中的括号“()”以及括号中的字符,获得所读入的化学分子结构中的主链结构的smiles数据,若主链结构的smiles数据的字符数大于3并且小于所输入的化学分子结构的smiles数据的字符数,则输出特征结构的类型为“主链结构”及该主链结构的smiles数据。
17、一种实施方案,步骤s4)所述的化学分子结构的原子编号列表的创建是使用rdkit工具的“getnumatoms”函数计算所读入的化学分子结构中的原子总数,根据所得原子总数创建由0到原子总数减一的顺序数字列表。
18、一种实施方案,步骤s6)使用程序语言python中的“random.shuffle”函数随机打乱特征结构以外的原子编号列表中的原子编号的排列顺序。
19、一种优选方案,步骤s8)将获得的特征结构对齐的化学分子结构的smiles数据存入扩增结果列表之前,先检查待存入的smiles数据是否已在扩增结果列表中存在,若已存在,则丢弃不存入。
20、一种实施方案,若步骤s22)获得的主链结构的smiles数据的字符数小于等于3或等于所输入的化学分子结构的smiles数据的字符数,则按以下步骤进行数据扩增:
21、a)使用rdkit工具中的“moltosmiles”函数根据所输入的化学分子结构的smiles数据和“dorandom=true”参数本文档来自技高网...
【技术保护点】
1.一种实现化学分子结构数据自动扩增的方法,其特征在于,所述方法包括如下步骤:
2.根据权利要求1所述的方法,其特征在于:若步骤S1)读取结果为空或报错,则提示“输入的化学分子结构的数据错误”,并输出化学分子结构的扩增数据为空。
3.根据权利要求1所述的方法,其特征在于,步骤S2)所述识别包括如下具体步骤:
4.根据权利要求1所述的方法,其特征在于:步骤S4)所述的化学分子结构的原子编号列表的创建是使用RDKit工具的“GetNumAtoms”函数计算所读入的化学分子结构中的原子总数,根据所得原子总数创建由0到原子总数减一的顺序数字列表。
5.根据权利要求1所述的方法,其特征在于:步骤S6)使用程序语言Python中的“random.shuffle”函数随机打乱特征结构以外的原子编号列表中的原子编号的排列顺序。
6.根据权利要求1所述的方法,其特征在于:步骤S8)将获得的特征结构对齐的化学分子结构的SMILES数据存入扩增结果列表之前,先检查待存入的SMILES数据是否已在扩增结果列表中存在,若已存在,则丢弃不存入。
...【技术特征摘要】
1.一种实现化学分子结构数据自动扩增的方法,其特征在于,所述方法包括如下步骤:
2.根据权利要求1所述的方法,其特征在于:若步骤s1)读取结果为空或报错,则提示“输入的化学分子结构的数据错误”,并输出化学分子结构的扩增数据为空。
3.根据权利要求1所述的方法,其特征在于,步骤s2)所述识别包括如下具体步骤:
4.根据权利要求1所述的方法,其特征在于:步骤s4)所述的化学分子结构的原子编号列表的创建是使用rdkit工具的“getnumatoms”函数计算所读入的化学分子结构中的原子总数,根据所得原子总数创建由0到原子总数减一的顺序数字列表。
5.根据权利要求1所述的方法,其特征在于:步骤s6)使用程序语言python中的“random.shuffle”函数随机打乱特征结构以外的原子编号列表中的原子编号的排列顺序。
6.根据权利要求1所述的方法,其特征在于:步...
【专利技术属性】
技术研发人员:徐挺军,
申请(专利权)人:中国科学院上海有机化学研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。