问题标签 [cheminformatics]

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 回答
40 浏览

python - RDKit:尝试循环枚举时出现“TypeError:‘Mol’对象不可迭代”

我正在尝试使用 RDKit 枚举大型化合物库并将结果输出为 CSV 文件中的单列 SMILES 字符串。我能够成功使用以下代码:

但是,内存使用率非常高。为了减少内存使用量,我尝试执行迭代枚举,在“reactants_1”时取一个分子,将其与“reactants_2”中的所有分子反应,将生成的化合物写入 CSV 文件,然后迭代:

但是,在这种情况下,“prods2 = [Chem.MolToSmiles(x[0]) for x in list(prods)]”这一行出现以下错误:“TypeError: 'Mol' object is not iterable”。在第一个实例中,我能够毫无问题地迭代“Mol”对象。关于如何解决这个问题的任何想法,或者在枚举大型复合集时有任何其他方法可以显着降低 RAM 使用率?