我正在尝试优化代码以读取分子,但是,我认为我做得不好。
在我的示例中,我必须阅读ChEMBL和Zinc数据库。可以使用1个SDF文件下载ChEMBL,而将Zinc(我可以下载的最佳方式)分为几个SDF.GZ文件。
我认为:读取1个SDF文件比读取多个SDF文件更快(由于IO时间),但是,如何读取具有数百万个分子的1个SDF文件并并行处理呢?使用多个SDF,我可以调用N个作业/工人,每个作业/工人要读取1个SDF文件并进行处理。
我已经尝试做一个接收摩尔的函数,但是当我使用RQ
或Joblib
时它不起作用(使用函数作为下面的代码,但是RQ
或{{ 1}}将不会发送Joblib
?)。
就我而言,我只想获取每个分子的InChI,SMILES和其他属性,但是在串行算法中,20万个分子需要花费超过1个小时的时间(锌有数百万个,因此,不可能使用串行算法)。
示例:
mol