‘mol_object_list = []
对于str_smiles中的摩尔:
Chem.MolFromSmiles(摩尔)
Mol_object_list.append(摩尔)
‘TypeError:没有注册的转换器能够从这个C++对象产生std::basic_string、std::allocator >类型的std::basic_string
我有一个298微笑的列表,我想把这298转换成mol对象,但是rdkit给了我上面的错误。
有人能分辨出出了什么问题吗?
发布于 2022-06-25 08:57:33
首先,您提供的代码将无法工作,因为您需要首先将对象分配给某个对象。就像这样:
mol_object_list = []
for smi in str_smiles:
mol = Chem.MolFromSmiles(smi)
mol_object_list.append(mol)
回到您的错误,当微笑字符串输入无效时,就会发生错误。str_smiles
列表中的一些微笑可能是错误的。试试下面的代码,找出哪些代码:
mol_object_list = []
for smi in str_smiles:
try: # Try converting the SMILES to mol object
mol = Chem.MolFromSmiles(smi)
mol_object_list.append(mol)
except: # Print the SMILES if there was an error in converting
print(smi)
打印出来的微笑是无效的,你必须修复它们。
我假设str_smiles
是一个python列表。
https://stackoverflow.com/questions/72751013
复制相似问题