[发明专利]一种基于R语言的化合物质谱信息批量检索方法有效
申请号: | 201910642216.0 | 申请日: | 2019-07-16 |
公开(公告)号: | CN110415771B | 公开(公告)日: | 2022-11-29 |
发明(设计)人: | 黄青;钱翰宇;张玫;谭力;贾蓓茜;袁耀佐;施海蔚;罗楠;张莹;马跃新;刘书娟 | 申请(专利权)人: | 江苏省食品药品监督检验研究院 |
主分类号: | G16C20/40 | 分类号: | G16C20/40;G16C20/90 |
代理公司: | 南京天华专利代理有限责任公司 32218 | 代理人: | 莫英妍 |
地址: | 210019*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提出一种基于R语言的化合物质谱信息批量检索方法,通过数据清洗,提取位置标签及关键词,建立合适的数据抓取方式,调整数据排列形式,可快速批量检索Mona等外部公开数据库中的化合物质谱信息,实现对数百个化合物的快速批量本地化检索的同时,有效缩短搜索时间,并能够根据实际应用需求抽取所需信息,生成方便阅读的汇总报告。 | ||
搜索关键词: | 一种 基于 语言 化合 物质 信息 批量 检索 方法 | ||
【主权项】:
1.一种基于R语言的化合物质谱信息批量检索方法,其特征在于,包括以下步骤:步骤1:导入MoNA数据库作为检索母库,输入待检索列表;步骤2:利用特征标签“Name:”确定母库中所有化合物英文名及其位置,构建数据向量“position”,记录母库中的每个化合物英文名在母库中的位置信息;同时化合物英文名的位置为每个化合物信息的起始行,依据position,构建数据向量“name”,记录母库每个化合物英文名用于和待检索化合物名称进行匹配;若提取计算机模拟结果,则转步骤3,若提取所有不同环境的实验结果,则转步骤8;步骤3:采用match函数将待检索列表中的第i个化合物英文名与数据向量“name”中的数据进行匹配,其中i∈[1,N],N为待检索列表中的化合物英文名数量;再通过数据向量“position”,获取第i个化合物在母库中的起始行位置nistart,即:nistart=position(match(待检测化合物列表,name))若不需要获取第i个化合物的子离子信息,则转到步骤4,若需要获取第i个化合物的子离子信息,则转到步骤5;步骤4:将第i个化合物在数据库中的起始行位置自动向下搜索,找到标签“Num”时停止,将该标签“Num”位置减一,得到该化合物的结束行位置niend,即:niend=ninum‑1根据第i个化合物在数据库中的起始行位置和结束行位置,得到该化合物的mi*2的信息矩阵subi,其中mi=niend‑nistart;将信息矩阵subi的第一列作为行名;若i=N,转到步骤7,否则令i=i+1,转到步骤3;步骤5:通过数据向量“position”,获取第i个化合物英文名位置加1后在母库中的位置并减1,得到第i个化合物在数据库中的结束行位置niend,即:niend=position(match(待检测化合物列表,name)+1)-1根据第i个化合物在数据库中的起始行位置nistart和结束行位置niend,得到该化合物的mi*2的信息矩阵subi,其中mi=niend‑nistart,转到步骤6;步骤6:将得到的矩阵subi在标签“Num”处分开,标签“Num”前及“Num”行为该化合物的基本信息,储存为矩阵subfi,包括相对分子质量分子式等,“Num”后为该化合物子离子信息,储存为矩阵subsi;矩阵subfi中第一列为化合物信息标签,将其与所有可能存在的标签label进行匹配,可能存在的标签label为:label=("Name:","InChIKey:","Formula:","MW:","ExactMass:","Ion_mode:","Precursor_type:","PrecursorMZ:","Instrument_type:","Instrument:","Retention_index:","Spectrum_type:","Collision_energy:","Comments:","Num"),按照匹配结果对行名按label内标签顺序进行依次赋值为a1、a2、a3…a15,该赋值步骤可实现对化合物信息按照label内标签顺序重新排列,对于空缺的标签赋值为NA,使得每一条化合物信息除子离子外长度相等;对于矩阵subsi,它的首列为子离子质合比,第二列为该子离子丰度比,利用order函数将subsi依据子离子丰度比从大到小排序,当子离子数大于20时,只取丰度比前20的子离子,将subsi的行名依次赋值为“ms2_1,ms2_2......ms2_20”,实现对Mona数据库中冗余信息剔除;将行名赋值后的矩阵subfi和subsi合并,得到行名规范后的矩阵subi,将规范后的subi转置后合并,使化合物信息对齐,即同一个标签的信息呈现在同一列,且每一行化合物信息在专业逻辑上逐层递进,方便阅读;步骤7:采用转置函数tr将信息矩阵subi转置为2*mi的转置信息矩阵,并采用rbind.fill函数将上述转置信息矩阵按行合并为一个包含待检索列表中所有化合物信息的矩阵,并输出为数据框,结束;步骤8:将待检索列表储存为向量“compound_name”,定义函数single.search()为:采用which函数,找出待检索列表中的第i个化合物英文名在数据向量“name”中的所有位置,并将关于该化合物的所有位置信息储存为向量a,通过数据向量“position”获取该化合物在母库中的起始行位置njstart(j为向量a中第j个位置),即:njstart=position(which(name==compound.name))自起始行位置起向下搜索,直至下一个特征标签“Name:”的行位置,将该行数减1,得到该化合物的结束行位置njend,则自起始行位置njstart至结束行位置njend的数据为关于该化合物的数据,得到信息矩阵subi,按照步骤6中的方法,对矩阵subi进行行名规范;对向量a中储存的所有位置信息进行上述同样的抓取并分别得到信息矩阵,将信息矩阵转置后按行合并,得到该化合物的所有实验信息抓取;步骤9:利用自定义函数single.search(),依次检索并输出待检索列表中的化合物的所有实验数据,并将所有实验数据合并为一个数据矩阵。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏省食品药品监督检验研究院,未经江苏省食品药品监督检验研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201910642216.0/,转载请声明来源钻瓜专利网。