2

我正在使用 RDKit 包将一些 SMILES 转换为指纹。

我的问题,我使用 Scikit learn,我想做一份简历。对于 CV,我需要 np.array 数据结构...对于指纹类型,我将数据结构转换为 0 和 1 的结构。这里只是一个任意的例子

print x: 一个 vektor 包含很多:rdkit.DataStructs.cDataStructs.ExplicitBitVect object at 0x05E498F0 objects will be createt

x=np.array(x) print x:将创建一个由 1 和 0 组成的向量。

我不知道为什么 numpy 数组转换,改变类型?

对于 0x05DDF960 处的 rdkit.DataStructs.cDataStructs.LongSparseIntVect 对象之类的对象,numpy 将向量更改为相同的结构。

我只是问,因为从 4 个指纹中的 2 个,由于 numpy 转换,我得到了这个错误:

AttributeError:“numpy.ndarray”对象没有指纹摩根的属性“GetNumBits”

from rdkit import DataStructs
from rdkit.Chem.Fingerprints import FingerprintMols
from rdkit.Chem import AllChem
from rdkit import Chem
from rdkit import DataStructs
from rdkit.Chem import MACCSkeys
import numpy as np


ms = [Chem.MolFromSmiles('CCOC'),    Chem.MolFromSmiles('CCO'),Chem.MolFromSmiles('COC')]
fps = [MACCSkeys.GenMACCSKeys(x) for x in ms]
a=DataStructs.FingerprintSimilarity(fps[0],fps[1])


#everything is fine
print fps
print a
# output: [<rdkit.DataStructs.cDataStructs.ExplicitBitVect object at 0x0325CE30>, <rdkit.DataStructs.cDataStructs.ExplicitBitVect object at 0x0325CE68>, <rdkit.DataStructs.cDataStructs.ExplicitBitVect object at 0x0325CEA0>]


#now the error occures

fps=np.array(fps)
print fps

#output: [[0 0 0 0 1 0 1 .....] [1 0 0 0 1...0 1] [1 0 0 .... 1 1]
a=DataStructs.FingerprintSimilarity(fps[0],fps[1])
#AttributeError: 'numpy.ndarray' object has no attribute 'GetNumBits'

Drücken Sie eine beliebige 味道。. . 打印帧率

4

0 回答 0