问题标签 [rdkit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
563 浏览

c# - 尝试使用来自 bp-kelley/rdkit-csharp 的 build.bat 为 RDKit 构建 C# 包装器

我正在尝试为 RDKit 构建 C# 包装器,但一直在努力取得进展。我尝试了两条路线:

注意这个问题很长而且没有帮助。长话短说使用 NuGet(请参阅下面的答案)。


尝试一

来自 RDKit /Code/JavaWrappers/csharp_wrapper 的文档

第一个位于https://github.com/rdkit/rdkit

./Code/JavaWrappers/csharp_wrapper 中有带有构建指令的 C# 包装器,位于:https ://github.com/rdkit/rdkit/tree/master/Code/JavaWrappers/csharp_wrapper

我第一次尝试编译包装器涉及手动构建这些包装器。按照这个自述文件:https ://github.com/rdkit/rdkit/blob/master/Code/JavaWrappers/csharp_wrapper/README

在 Windows 上构建:

由于 cmake 对 C# 一无所知,因此其中涉及到一个不幸的手动步骤。

  • 确保将 cmake 配置变量 RDK_BUILD_SWIG_CSHARP_WRAPPER 设置为 ON。
  • 运行 cmake 生成解决方案文件并在 Visual Studio 中打开它。
  • 选择添加现有项目的选项并添加 $RDBASE/Code/JavaWrappers/csharp_wrapper/RDKit2DotNet.csproj
  • 右键单击添加的项目(名为 RDKit2DotNet)并添加对 RDKFuncs 的依赖项(这是创建 C# 项目所需的 C++ dll 的项目)
  • 构建 RDKit2DotNet 项目。

您的 bin 目录($RDBASE/Code/JavaWrappers/csharp_wrapper/bin/Release,如果您进行了发布构建)现在包含两个 DLL: - RDKFuncs.dll 是包含 RDKit 功能的 C++ dll - RDKit2DotNet.dll 包含 C# 包装器。要在您自己的项目中使用包装器,您应该将两个 dll 复制到您的项目目录中并添加对 RDKit2DotNet.dll 的引用

目录 RDKitCSharpTest 包含一个示例测试项目和一些非常基本地使用包装器功能的代码。

为了cmake运行,我更新了 CMakeLists.txt 以告诉它如何找到 swig 并进行RDK_BUILD_SWIG_CSHARP_WRAPPER ON如下设置:

这会创建很多新文件和一个.sln名为GraphMolCSharp.sln. 然后我就可以按照自述文件中的其余步骤进行操作了。我打开GraphMolCSharp.sln并添加RDKit2DotNet.csproj为项目并添加RDKfuncs为构建依赖项。但是构建它在 Visual Studio 中产生了很多错误,首先是:

然后很多Unable to find x错误。

如果有人可以就我可能做错的任何事情提供一些指导,请告诉我。


尝试二

第二个使用在build.bat这里找到的:https ://github.com/bp-kelley/rdkit-csharp

首先我运行:

然后我更新了build.bat使用Visual Studio 16 2019如下。

第 95 行:cmake -G "Visual Studio 16 2019" -A x64 ...

第 111 行:cmake -G "Visual Studio 16 2019" ...

如果有人能够提供帮助调试下面的输出,我将不胜感激。

我不得不取消以下行:

但是已经复制nuget.exe到预期的位置。

这是运行的大部分输出build.bat

0 投票
1 回答
523 浏览

rdkit - 有没有办法显示 rdkit.Chem.rdmolops.GetAdjacencyMatrix 中的原子索引?

我正在尝试将化合物从 mol 转换为邻接矩阵。但是,我遇到了一个问题,即 rdkit.Chem.rdmolops.GetAdjacencyMatrix() 不提供邻接矩阵的原子索引。有没有办法在 rdkit 中包含邻接矩阵的索引数据?

rdkit.Chem.rdmolops.GetAdjacencyMatrix((Mol)mol)

0 投票
1 回答
391 浏览

rdkit - 如何使用 rdkit 将微笑转换为指纹?

我必须使用 rdkit 转换指纹列表中的微笑列表。但我不知道怎么做。我在互联网上搜索了解决方案,但实际上没有示例工作......有没有人有将微笑列表从分子转换为指纹的经验?

谢谢!

0 投票
0 回答
481 浏览

python - 我试图将我的 SmilesCode 转换为指纹。它确实有效,但我在为我的 SmilesCode-List 使用该函数时遇到问题

我试图在列上迭代我的函数,但它不能正常工作。你们能告诉我我必须在哪里更正我的代码吗?

那是我的代码

我希望每个 SmilesCode 都有一个位串,但我只会得到每一行/SmilesCode 的错误。定义的函数确实可以工作,但如果我用它来迭代我想要的列,那就不行了!如果我使用 pandas 的 apply() 函数:

我得到这个错误代码:

ArgumentError:rdkit.Chem.rdmolops.RDKFingerprint(NoneType, int, int, int, int, int, float, int) 中的 Python 参数类型与 C++ 签名不匹配:RDKFingerprint(RDKit::ROMol mol, unsigned int minPath=1, unsigned int maxPath=7, unsigned int fpSize=2048, unsigned int nBitsPerHash=2, bool useHs=True, double tgtDensity=0.0, unsigned int minSize=128, bool branchedPaths=True, bool useBondOrder=True, boost::python:: api::object atomInvariants=0, boost::python::api::object fromAtoms=0, boost::python::api::object atomBits=None, boost::python::api::object bitInfo=None)

0 投票
2 回答
425 浏览

python - 无法为数组分配内存,rdkit 转换为 numpy 数组错误

我有一个编码为 2048 位向量的 2215 个分子的列表。我想做的是从中创建二维数组。我正在使用rdkit 转换为 numpy 数组。几周前代码运行没有问题,现在出现内存错误,但我不知道为什么。任何人都可以提供解决方案吗?

我试图使列表更小,并将其减少到两个向量。我认为这会有所帮助,但经过一段时间的处理后仍然会出现错误。这使我相信我实际上确实有足够的记忆力。

这是错误:

0 投票
0 回答
119 浏览

methods - RDKit SetScale 绘制方法

RDKit Chem Python 教程不太好。我需要 Set Scale 函数进行绘图,但我很难理解这些参数。尽管我进行了研究,但我没有在 Internet 上看到使用示例,也没有可用的描述。感谢您的关注。

0 投票
1 回答
53 浏览

rdkit - RDKIT:组合/添加粒子

我有一个大环和共价有机笼的数据库,我希望在其中将分子/离子添加到空腔中。我需要通过 RDKIT 做到这一点。有没有简单的方法来完成这项任务?

例如:

然后我希望能够以cage_guest通常的方式操纵。

0 投票
3 回答
6228 浏览

python - 如何从 SMILES 分子表示中生成图形?

我有一个用 SMILES 字符串表示的分子数据集。我试图将其表示为图表。有没有办法这样做?例如,假设我有 string CC(C)(C)c1ccc2occ(CC(=O)Nc3ccccc3F)c2c1,有没有一种通用的方法可以将其转换为图形表示,即邻接矩阵和原子向量?我从图表中看到解决SMILES 的问题,我知道rdkitMolFromSmiles,但我找不到从 SMILES 字符串中获取图表的东西。

0 投票
1 回答
2689 浏览

python - 摩根指纹rdkit

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

第一种方法:

第二种方法:

这显然是不同的,即使在这两种情况下都使用手性。

此外,还有一种方法可以bitInfo使用第二种方法从位向量中获取?

0 投票
1 回答
2928 浏览

python - Windows和Python3.7.4下RDKit安装

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

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

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

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

这意味着,我必须从源代码构建它。我犹豫不决,因为这个过程似乎相当复杂,许多额外的安装都有新的问题和未知数,此外,对于第一次从源代码构建二进制文件的人来说,这些说明似乎已经过时和不完整。

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

如果我解压它们并根据说明设置路径,我会收到以下错误消息:

所以,最后我的问题:

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

我很确定这可能是一个“小”的东西(这里的路径或那里的检查),但我被卡住了。谢谢你的任何提示。

更新:

显然,这不仅仅是一件“小”的事情。让它发挥作用的机会很可能非常低。与此同时,我发现了这个:

https://github.com/rdkit/rdkit/issues/1812

https://github.com/rdkit/rdkit/issues/2389

如果作者rdkit写道(2019 年 4 月):

我很高兴能够对 RDKit 进行 pip 分发,但据我所知,没有人设法弄清楚如何让它真正工作。

我很乐意接受已经解决这个问题的人的 PR,但我不太可能在不久的将来有时间自己做这件事。

所以,如果有人觉得有能力做到这一点,请随意。如果我想使用 RDKit,我会在其他方面投入时间,或者必须切换到 Anaconda。