标签: rdkit

如何将 RDKit 添加到 PyCharm 中的项目?

所以,我正在尝试将 RDKit 添加到我在 PyCharm 中的项目中。我发现如果您使用解释器,/usr/bin/python2.7PyCharm 会尝试使用pip. 而 RDKit 需要conda. 我试图将解释器更改为conda,但RDKit要么不在列表中,要么无法打开带有 repo 的 URL。有谁知道如何解决这个问题?

顺便说一句,在安装东西的同时,是否有可能让解释器/usr/bin/python2.7使用其他任何东西(不是pip)?

python pycharm rdkit

5
推荐指数
1
解决办法
3232
查看次数

与Anaconda的rdk​​it安装问题

我正在尝试使用Anaconda和Python 2.7在我的Windows 7系统上运行rdkit.我一直在遵循http://www.rdkit.org/docs/Install.html的说明

conda create -c https://conda.anaconda.org/rdkit -n my-rdkit-env rdkit
activate my-rdkit-env
Run Code Online (Sandbox Code Playgroud)

然后我得到以下内容:

停用环境"C:\ Anaconda2"......

激活环境"C:\ Anaconda2\envs\my-rdkit-env"

但是,如果我再打开一个Jupyter笔记本,并尝试

import rdkit
Run Code Online (Sandbox Code Playgroud)

它失败了

ImportError:没有名为rdkit的模块

任何帮助将不胜感激!

python rdkit anaconda

5
推荐指数
1
解决办法
2985
查看次数

摩根指纹识别器

在一个例子中,我意识到至少有两种方法可以使用rdkit. 但是在两种方式中使用完全相同的属性我得到了不同的向量。我错过了什么吗?

第一种方法:

info = {}
mol = Chem.MolFromSmiles('C/C1=C\\C[C@H]([C+](C)C)CC/C(C)=C/CC1')
fp = AllChem.GetMorganFingerprintAsBitVect(mol, useChirality=True, radius=2, nBits = 124, bitInfo=info)
vector = np.array(fp)
vector
array([0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0,
       0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, …
Run Code Online (Sandbox Code Playgroud)

python fingerprint rdkit morgan

5
推荐指数
1
解决办法
2040
查看次数

在Windows和Python3.7.4下安装RDKit

如果RDKit的安装不是那么复杂,则它可能是一个不错的软件包。在SO上,有几个问题与RDKit的安装有关。但是,在不同的操作系统或不同的环境上。

我的配置是: Win10,Python 3.7.4,pip已安装,PATH已设置,PYTHONPATH已设置。通过可以正常安装其他模块python -m pip install <package>

我知道该网站建议使用Anaconda进行最快的安装。但是,我没有也不想水蟒。

网页上显示:“从以下网址获取适当的Windows二进制版本:https : //github.com/rdkit/rdkit/releases ”。但是,没有最新版本的二进制文件。

这意味着,我将不得不从源代码构建它。我很犹豫,因为该过程似乎很复杂,安装了许多新问题和未知数的额外安装,此外,对于那些首次从源头构建二进制文件的人来说,说明似乎已经过时且不完整。

因此,然后我尝试了RDKit的一些非官方二进制文件。

如果我解压它们并按照说明设置路径,则会收到此错误消息:

>>> from rdkit import Chem
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\xyz\Programs\RDKit\rdkit\__init__.py", line 2, in <module>
    from .rdBase import rdkitVersion as __version__
ImportError: DLL load failed: The specified module could not be found.
Run Code Online (Sandbox Code Playgroud)

所以,最后我的问题是:

  • 如何使用上述配置正确安装RDKit?
  • 指定的DLL丢失了什么?
  • 它在哪里期待并搜索它?
  • 这些RDKit 3.6二进制文件是否可能与Python 3.7.4不兼容?

我很确定这可能是一件“小事”(这里的路径或那里的支票),但我被卡住了。谢谢您的提示。 …

python windows installation python-3.x rdkit

5
推荐指数
1
解决办法
501
查看次数

在 python 3.8 Ubuntu 20.04 LTS 中安装 RDKit 时出现问题

我在尝试使用 python3 和 Ubuntu 20.04 LTS 安装 RDKit 时遇到了很多麻烦尝试以这种方式安装 rdkit:

sudo apt-get install python3-rdkit
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用 python3 导入它时它不起作用。它确实安装了,但它不在包列表中。使用后我也无法导入它,例如:

from rdkit import Chem
Run Code Online (Sandbox Code Playgroud)

官网(https://www.rdkit.org/docs/Install.html)网站确实有下面的安装语句,但是没有用:

sudo apt-get install python-rdkit librdkit1 rdkit-data
Run Code Online (Sandbox Code Playgroud)

我将不胜感激任何帮助!

python python-3.x rdkit ubuntu-20.04

5
推荐指数
1
解决办法
4029
查看次数

将matplotlib图像插入到pandas数据帧中

目的:我正在使用rdkit来根据我的分子颜色进行着色rdkit.Chem.Draw.SimilarityMaps.现在,我想使用matplotlib图像SimilarityMaps函数在pandas数据帧中引入它们,并以html文件的形式导出该表.

代码:我尝试使用以下代码执行此操作

import pandas as pd
from rdkit import Chem
from rdkit.Chem import Draw
from rdkit.Chem.Draw import SimilarityMaps
from rdkit.Chem.Draw import IPythonConsole #Needed to show molecules
from rdkit.Chem.Draw.MolDrawing import MolDrawing, DrawingOptions

df = pd.DataFrame({'smiles':['Nc1nc(NC2CC2)c3ncn([C@@H]4C[C@H](CO)C=C4)c3n1','CCCC(=O)Nc1ccc(OCC(O)CNC(C)C)c(c1)C(C)=O','CCN(CC)CCNC(=O)C1=CC=C(C=C1)NC(=O)C','CC(=O)NC1=CC=C(C=C1)O','CC(=O)Nc1sc(nn1)[S](N)(=O)=O']})

def getSim(smi):
    mol = Chem.MolFromSmiles(smi)
    refmol = Chem.MolFromSmiles('c1ccccc1')
    fp = SimilarityMaps.GetMorganFingerprint(mol, fpType='bv')
    fig, maxweight = SimilarityMaps.GetSimilarityMapForFingerprint(refmol, mol, SimilarityMaps.GetMorganFingerprint)
    return fig

df['map'] = df['smiles'].map(getSim)
df.to_html('/.../test.html')
Run Code Online (Sandbox Code Playgroud)

当我打开文件时test.html,map列包含信息"Figure(200x200)".我检查我的数据帧映射列是否包含对象:它在python中没有问题,但在html文件中没有.

问题:我不确定如何获取带有图像的数据框,我希望得到社区的帮助来澄清这个主题.

提前致谢

python matplotlib pandas rdkit

4
推荐指数
1
解决办法
2772
查看次数

如何使用RDKit计算SMILE结构列表的分子指纹和相似度?

我正在使用 RDKit 根据两个具有 SMILE 结构的分子列表之间的 Tanimoto 系数计算分子相似性。现在我可以从两个单独的 csv 文件中提取 SMILE 结构。我想知道如何将这些结构放入RDKit中的指纹模块中,以及如何一一计算两个分子列表之间的相似度?

from rdkit import DataStructs
from rdkit.Chem.Fingerprints import FingerprintMols
ms = [Chem.MolFromSmiles('CCOC'), Chem.MolFromSmiles('CCO'), ... Chem.MolFromSmiles('COC')]
fps = [FingerprintMols.FingerprintMol(x) for x in ms]
DataStructs.FingerprintSimilarity(fps[0],fps[1])
Run Code Online (Sandbox Code Playgroud)

我想将我拥有的所有 SMILE 结构(超过 10,000 个)放入“ms”列表中并获取它们的指纹。然后我将比较两个列表中每对分子之间的相似性,也许这里需要一个 for 循环?

提前致谢!

我使用 pandas dataframe 选择并打印出包含我的结构的列表,并将列表保存到 list_1 和 list_2 中。当运行到ms1行时,出现如下错误:

TypeError: No registered converter was able to produce a C++ rvalue of type std::__cxx11::basic_string<wchar_t, 
std::char_traits<wchar_t>, std::allocator<wchar_t> > from this Python object of type float
Run Code Online (Sandbox Code Playgroud)

然后我检查了文件,微笑栏中只有微笑。但是当我手动将一些分子结构放入列表中进行测试时,仍然存在错误

fpArgs['minSize']. 
Run Code Online (Sandbox Code Playgroud)

例如,钆双酰胺的 SMILES 为“O=C1[O-][Gd+3]234567[O]=C(C[N]2(CC[N]3(CC([O-]4)=O) )CC[N]5(CC(=[O]6)NC)CC(=O)[O-]7)C1)NC",错误代码如下(运行fps线时):

ArgumentError: …
Run Code Online (Sandbox Code Playgroud)

python csv similarity fingerprint rdkit

4
推荐指数
1
解决办法
2万
查看次数

如何将摩根伯爵指纹计算为 numpy.array?

我想使用 rdkit 生成计数摩根指纹并将其输入 scikit Learn 模型(Python 中)。但是,我不知道如何将指纹生成为 numpy 数组。当我使用

from rdkit import Chem
from rdkit.Chem import AllChem
m = Chem.MolFromSmiles('c1cccnc1C')
fp = AllChem.GetMorganFingerprint(m, 2, useCounts=True)
Run Code Online (Sandbox Code Playgroud)

我得到一个需要转换的 UIntSparseIntVect 。我发现的唯一的东西是cDataStructs(参见: http: //rdkit.org/docs/source/rdkit.DataStructs.cDataStructs.html),但这目前不支持UIntSparseIntVect。

c++ python numpy scikit-learn rdkit

3
推荐指数
1
解决办法
5929
查看次数

如何将 RDKit 一致性对象保存到 sdf 文件中?

我为一个分子生成了一堆构象异构体。对于每个一致的,我想将坐标保存在 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)

python machine-learning chemistry cheminformatics rdkit

3
推荐指数
1
解决办法
6368
查看次数

AttributeError:“图像”对象没有属性“保存”

我正在遵循 RDKit 的基本教程。

p = Chem.MolFromSmiles('[nH]1cnc2cncnc21')
subms = [x for x in ms if x.HasSubstructMatch(p)]
len(subms)

AllChem.Compute2DCoords(p)

for m in subms: AllChem.GenerateDepictionMatching2DStructure(m,p)
    img=Draw.MolsToGridImage(subms,molsPerRow=4,subImgSize=(200,200),legends=[x.GetProp("_Name") for x in subms])    
    img.save('images/cdk2_molgrid.aligned.o.png')    
Run Code Online (Sandbox Code Playgroud)

我的版本如下所示:

NP=pd.read_excel(r'C:\Users\BajMic\NPPics.xlsx', header=0, index_col=False, keep_default_na=True)
NP['mol']=NP.smiles.apply(getMol)

ms= [i for i in NP['mol'] if i is not None]
img=Draw.MolsToGridImage(ms, molsPerRow=10)
img.save('Pic.png')
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,教程和我自己的代码,我得到相同的错误: AttributeError: 'Image' object has no attribute 'save'

现在,这很令人困惑,因为我只是遵循一个简单的教程。我查看了其他类似的主题,但我认为我的案例更加微不足道。我在这里缺少什么?

教程: https: //www.rdkit.org/docs/GettingStartedInPython.html

image save rdkit

1
推荐指数
1
解决办法
6054
查看次数