我只是想知道,有没有办法将 IUPAC 或常见的分子名称转换为 SMILES?我想做到这一点,而不必使用在线系统手动转换每一个。任何输入将不胜感激!
作为背景,我目前正在使用 python 和 RDkit,所以我不确定 RDkit 是否可以做到这一点,我只是不知道。我当前的数据是 csv 格式。
谢谢!
我正在使用 RDKit 并尝试检查分子是否完全匹配。使用Chem.MolFromSmiles()表达式后m == p显然不会导致预期的结果。当然,我可以检查是否p是 的子结构m以及是否m是 的子结构p。但对我来说,这看起来太复杂了。我在 RDKit 文档中找不到或忽略了完全匹配的代码示例。我该如何正确地做到这一点?谢谢你的提示。
代码:
from rdkit import Chem
myPattern = 'c1ccc2c(c1)c3ccccc3[nH]2' # Carbazole
myMolecule = 'C1=CC=C2C(=C1)C3=CC=CC=C3N2' # Carbazole
m = Chem.MolFromSmiles(myMolecule)
p = Chem.MolFromSmiles(myPattern)
print(m == p) # returns False, first (unsuccessful) attempt to check for identity
print(m.HasSubstructMatch(p)) # returns True
print(p.HasSubstructMatch(m)) # returns True
print(m.HasSubstructMatch(p) and p.HasSubstructMatch(m)) # returns True, so are the molecules identical?
Run Code Online (Sandbox Code Playgroud) 有没有办法使用 RDKit 或其他 python 模块将 SMILES 转换为化学名称或 IUPAC 名称?
我在其他帖子中找不到非常有用的东西。
非常感谢!
而不是抓住PubChem的网站,我宁愿做得好,并从PubChem ftp网站本地生成图像:
ftp://ftp.ncbi.nih.gov/pubchem/specifications/
唯一的问题是我仅限于OSX和Linux,我似乎无法找到一种以编程方式生成他们在网站上拥有的2D图像的方法.看这个例子:
https://pubchem.ncbi.nlm.nih.gov/compound/6#section=Top
在"2D结构"标题下,我们在这里有这样的图像:
https://pubchem.ncbi.nlm.nih.gov/image/imgsrv.fcgi?cid=6&t=l
这就是我想要产生的东西.
是否存在将图(或邻接矩阵)转换为SMILES字符串的方法或程序包?
例如,我知道原子是[6 6 7 6 6 6 6 8] ([C C N C C C C O]),邻接矩阵是
[[ 0., 1., 0., 0., 0., 0., 0., 0.],
[ 1., 0., 2., 0., 0., 0., 0., 1.],
[ 0., 2., 0., 1., 0., 0., 0., 0.],
[ 0., 0., 1., 0., 1., 0., 0., 0.],
[ 0., 0., 0., 1., 0., 1., 0., 0.],
[ 0., 0., 0., 0., 1., 0., 1., 1.],
[ 0., 0., 0., 0., 0., 1., …Run Code Online (Sandbox Code Playgroud) 我正在研究.smiles文件..smiles文件的文件结构是:http://en.wikipedia.org/wiki/Chemical_file_format#SMILES
我想从微笑文件中获取所有原子.这意味着如果存在单个"C"原子,则意味着将有4个"H"原子连接到它们.
我在搜索时发现python中有一些模块可以解析微笑格式,但它们不会给出支持的氢原子.(例如:它们只给'C'而不是其他4'H'原子连接到'C'原子)
如何使用python找到所有原子,包括连接的'H'原子.
需要转换为包含连接的'H'原子的所有原子的smiles文件示例:
[H]OC([H])([H])[C@@]1([H])C([H])=C([H])[C@@]([H])(n2c([H])nc3c(nc(nc23)N([H])[H])N([H])C2([H])C([H])([H])C2([H])[H])C1([H])[H]
Run Code Online (Sandbox Code Playgroud)
先感谢您.
我为一个分子生成了一堆构象异构体。对于每个一致的,我想将坐标保存在 SDF 文件中。我尝试了以下操作,但 sdf 文件中的坐标与符合者的坐标不同。
from rdkit import Chem
from rdkit.Chem import AllChem
from rdkit.Chem.EnumerateStereoisomers import EnumerateStereoisomers
from rdkit.Chem.EnumerateStereoisomers import StereoEnumerationOptions
aspirin = 'CC(=O)OC1=CC=CC=C1C(=O)O'
mol = Chem.AddHs(Chem.MolFromSmiles(aspirin))
conformers = AllChem.EmbedMultipleConfs(mol, numConfs=8)
conformer_i = mol.GetConformer(0) # This is the conformer that I wanted to save in a SDF file.
print(conformer_i.GetPositions())
Run Code Online (Sandbox Code Playgroud)
我明白了
[[ 3.55910965 0.20840444 0.20174025]
[ 2.13148034 -0.07274183 -0.11680036]
[ 1.81233825 -0.09134332 -1.32465968]
[ 1.16950868 -0.30747936 0.83214171]
[-0.12944319 -0.55824117 0.41262056]
[-0.53676538 -1.86517356 0.15656512]
[-1.82111824 -2.14574436 -0.26154327]
[-2.69581394 -1.09437287 -0.4203516 ]
[-2.35275981 …Run Code Online (Sandbox Code Playgroud) 我的目标是使用元素周期表(或列表)来获取有关Java中特定元素的信息.我想通过原子序数和符号进行搜索(但转换应该很简单).
我在这个JQuery插件中找到了这些信息.但它存储为JSON文件.
看起来硬编码信息是最有效的(因为它不会经常更改并且由于性能原因),但是如何将JSON转换为硬编码enum?