问题标签 [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.
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
rdkit - 有没有办法显示 rdkit.Chem.rdmolops.GetAdjacencyMatrix 中的原子索引?
我正在尝试将化合物从 mol 转换为邻接矩阵。但是,我遇到了一个问题,即 rdkit.Chem.rdmolops.GetAdjacencyMatrix() 不提供邻接矩阵的原子索引。有没有办法在 rdkit 中包含邻接矩阵的索引数据?
rdkit.Chem.rdmolops.GetAdjacencyMatrix((Mol)mol)
rdkit - 如何使用 rdkit 将微笑转换为指纹?
我必须使用 rdkit 转换指纹列表中的微笑列表。但我不知道怎么做。我在互联网上搜索了解决方案,但实际上没有示例工作......有没有人有将微笑列表从分子转换为指纹的经验?
谢谢!
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)
python - 无法为数组分配内存,rdkit 转换为 numpy 数组错误
我有一个编码为 2048 位向量的 2215 个分子的列表。我想做的是从中创建二维数组。我正在使用rdkit
库转换为 numpy 数组。几周前代码运行没有问题,现在出现内存错误,但我不知道为什么。任何人都可以提供解决方案吗?
我试图使列表更小,并将其减少到两个向量。我认为这会有所帮助,但经过一段时间的处理后仍然会出现错误。这使我相信我实际上确实有足够的记忆力。
这是错误:
methods - RDKit SetScale 绘制方法
RDKit Chem Python 教程不太好。我需要 Set Scale 函数进行绘图,但我很难理解这些参数。尽管我进行了研究,但我没有在 Internet 上看到使用示例,也没有可用的描述。感谢您的关注。
rdkit - RDKIT:组合/添加粒子
我有一个大环和共价有机笼的数据库,我希望在其中将分子/离子添加到空腔中。我需要通过 RDKIT 做到这一点。有没有简单的方法来完成这项任务?
例如:
然后我希望能够以cage_guest
通常的方式操纵。
python - 如何从 SMILES 分子表示中生成图形?
我有一个用 SMILES 字符串表示的分子数据集。我试图将其表示为图表。有没有办法这样做?例如,假设我有 string CC(C)(C)c1ccc2occ(CC(=O)Nc3ccccc3F)c2c1
,有没有一种通用的方法可以将其转换为图形表示,即邻接矩阵和原子向量?我从图表中看到解决SMILES 的问题,我知道rdkit
有MolFromSmiles
,但我找不到从 SMILES 字符串中获取图表的东西。
python - 摩根指纹rdkit
在一个示例中工作时,我意识到至少有两种方法可以使用rdkit
. 但是以两种方式使用完全相同的属性,我得到不同的向量。我错过了什么吗?
第一种方法:
第二种方法:
这显然是不同的,即使在这两种情况下都使用手性。
此外,还有一种方法可以bitInfo
使用第二种方法从位向量中获取?
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。