php生成分子式,php 转化smiles为分子式
近来在使用PHP进行结构式搜索的时候,发现获取到smiles无法进行查询操作,然后想到了转化为分子式的操作。主要是用在有机物。
困难一:我在smiles 上利用正则匹配C,O。遇到了问题就是其他元素也有C字母,所以无法正确去掉C
解决:我只用原来的smiles来分析有机物的组成,然后我按照有机物的结构,单独找出来C,O的数量,其余元素,简单统计一下放在后面就好了。主要分为三部分,C数目,O数目,其他元素
实现;1.前台获取的smiles,符合相应的规则
2.php处理
$Cnum=‘‘;
$Onum=‘‘;
//print($smiles."原来的");
$find=array("=","#",".","1","[","]","(",")");
$replace = array("");
$smiles=str_replace($find,$replace,$smiles,$j);
//print($j);
//ECHO ‘/n‘;
$ChemElement= array("Li","Be","Na","Mg","Al","Si","Cl","Br","Ca","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Gc","Ag","Au");
foreach($ChemElement as $value){
//print($value);
$k_x=substr_count($smiles,$value);
if($k_x>0){
$k_x=$k_x==1?‘‘:$k_x;
//str_replace($value,‘‘,$smiles);
$smiles_new.=$value.$k_x;
}
}
$k_c=substr_count($smiles,‘C‘);
//print(‘C个数‘.$k_c);
$i_c=preg_match_all(‘/C[a-z]/m‘,$smiles);
//print(‘非碳个数‘.$i_c);
$j_c=$k_c-$i_c;
//print_r(‘碳个数‘.$j_c);
//$smiles=preg_replace(‘/C[0-9A-Z/.]/m‘,‘‘,$smiles,-1,$count);
//print($smiles);
//print(‘替换次数‘.$count);
$k_o=substr_count($smiles,‘O‘);
//print(‘O个数‘.$k_o);
$i_o=preg_match_all(‘/O[a-z]/m‘,$smiles);
//print(‘非氧个数‘.$i_o);
$j_o=$k_o-$i_o;
//$smiles=preg_replace(‘/C[0-9A-Z/.]/m‘,‘‘,$smiles,-1,$count);
//print($smiles);
//print(‘替换次数‘.$count);
if($j_c>0){$j_c=$j_c==1?‘‘:$j_c;$Cnum=‘C‘.$j_c;}
if($j_o>0){$j_o=$j_o==1?‘‘:$j_o;$Onum=‘O‘.$j_o;}
$smilesPara = $Cnum.$Onum.$smiles_new;
结果:基本上可以解决一般意义上的分子式,当然元素我没有写全,我认为常用的写一下就好,本来就是为了搜索,不常见的物质,化学品库里也没有。
这里推荐一下 斯芬克斯的PHP搜索引擎,很不错。
原文:http://10725691.blog.51cto.com/10715691/1940277
php生成分子式,php 转化smiles为分子式相关推荐
- php 图片生成视频,图片转化为视频的方法 如何将照片制作成为视频
点击上方的下载地址,然后将软件进行安装.安装完毕后,打开软件在这个界面可以选择软件的比例大小和操作模式,我们选择"4:3"和"全功能模式". 接着我们将要进行操 ...
- 用化学绘图软件写带括号的分子式的方法
ChemDraw是一款国际通用的化学绘制工具,广泛应用于绘制各种化学结构式,包括结构式.能量图谱.方程式.生物聚合物以及分子式等.对于化学分子式带括号的情况,学习化学的同学都司空见惯,但是你知道如何使 ...
- 雷莫芦单抗|cas947687-13-0分子式:C285H434N74O88S2
雷莫芦单抗|cas947687-13-0分子式:C285H434N74O88S2 Cas号:947687-13-0 分子式:C285H434N74O88S2 分子量:6369.07 雷莫芦单抗用途与合 ...
- Nat. Mach. Intell. | 利用条件循环神经网络生成特定性质分子
作者 | 陆丰庆 今天给大家介绍瑞士知名药企阿斯利康和伯尔尼大学的 Esben Jannik Bjerrum团队在Nature Machine Intelligence上的一篇论文.该研究提出基于分子 ...
- ProGen:蛋白质生成语言模型
今天给大家介绍的是一项由硅谷Salesforce Research的Ali Madani等人和斯坦福的Possu Huang教授课题组合作的工作,他们在这篇论文中提出的一种蛋白生成语言模型ProGen ...
- T-GANs:基于“图灵测试”的生成对抗模型
在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考. 在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 AI 前沿成果. 点击本文底部的「阅读原文」即刻加入社区 ...
- 经典论文复现 | InfoGAN:一种无监督生成方法
过去几年发表于各大 AI 顶会论文提出的 400 多种算法中,公开算法代码的仅占 6%,其中三分之一的论文作者分享了测试数据,约 54% 的分享包含"伪代码".这是今年 AAAI ...
- 66.javac 编译与 JIT 编译\编译过程\javac 编译\词法、语法分析\填充符号表\语义分析\字节码生成\JIT 编译
66.javac 编译与 JIT 编译 66.1.编译过程 66.2.javac 编译 66.2.1.词法.语法分析 66.2.2.填充符号表 66.2.3.语义分析 66.2.4.字节码生成 66. ...
- arxiv202210 | cTransformer:基于Transformer的De Novo Molecular Design生成模型
Preprint. 原文标题: A Transformer-based Generative Model for De Novo Molecular Design 地址:https://arxiv.o ...
- 生成模型技术发展过程
生成模型 生成模型和判别模型的差异 生成模型的目标是在给定了数据集D,并且假设这个数据集的底层分布(underlying distribution)是Pdata,我们希望够近似出这个数据分布.如果我们 ...
最新文章
- 借双慧眼识别钓鱼欺诈网站
- Downloading the Source
- 【2021年度训练联盟热身训练赛第五场】Jam-packed
- Spring校验@RequestParams和@PathVariables参数
- MongoDB3.xxx 用户创建
- 通过BeanDefinitionReader获取BeanDefinition的三种不同方式
- DAVE笔记--Micrium uc-Probo Oscilloscope调试
- bzoj 3772: 精神污染 (主席树+dfs序)
- [产品分析] Palm Pre,iPhone,Gphone全面大比拼
- iOS 框架模式(简述 MVC,MVP,MVVM 和 VIPER CDD)
- Windows系统下CMD命令
- ppt在线转换成pdf
- 腾讯云轻量级服务器怎么搭建网站,腾讯云轻量应用服务器新手教程:快速搭建网站...
- 修改MySQL 数据库 密码
- 五节课从零起步(无需数学和Python基础)编码实现AI人工智能框架电子书V1
- 北大计算机本科生如何保研清华,高考无缘清华、北大,选择这五所985大学,保研几率大...
- NTLM认证原理及其过程
- ZIP文件如何解除解压密码
- 外架小横杆外露长度规范要求_浅谈提高悬挑架质量、安全及视觉效果的管理方法...
- linux c语言查找相同数字,关于c ++:以编程方式查找计算机上的核心数
热门文章
- tespeed - 测试网速的Python工具
- 有人问“一花一世界,一叶一菩提”
- canvas画布上的文字随窗口大小变形
- 「面向对象程序设计-C++」学习笔记(下半部分)
- 如何修改mc基岩版服务器端口,我的世界基岩版服务器指令设置家
- SVD求解线性方程组
- Comparator.comparing比较排序
- [翻译] Oracle Database 12c 新特性Multitenant - Cheney Shue
- PL330 DMAC笔记(4) -- 安全,使用约束和限制,编程限制
- java简易计算器报告_JAVA实训报告简易计算器.doc