幽灵的距离
fcd-torch的Python项目详细描述
Pythorch上的fréchet chemnet距离
从原始存储库移植的Fréchet ChemNet Distance的pytorch实现。移植模型产生与原始keras实现相同的输出,可用于可重复的研究。化学净重的pytorch模型减少了10倍,从而加快了装载速度。
其他功能:
- 如果多次使用同一数据集中的统计数据,则可以预先计算平均值和西格玛,以便进一步使用
- 支持对GPU的计算和GPU设备号的选择
- 多线程微笑解析
安装
首先,安装RDKit:conda install -yq -c rdkit rdkit
,然后从pip(pip install fcd_torch
)或直接从源代码安装fcd_torch
。
git clone https://github.com/insilicomedicine/fcd_torch.git cd fcd_torch python setup.py install
用法
导入模块from fcd_torch import FCD
。可以直接运行计算或预先计算统计信息,以便在测试集中重用它们(请参见下面的示例)。如果在gpu上运行fcd,gpu内存将仅在计算fcd时分配。
# Example 1:fcd=FCD(device='cuda:0',n_jobs=8)smiles_list1=['COc1cccc(NC(=O)Cc2coc3ccc(OC)cc23)c1','Cc1noc(C)c1CN(C)C(=O)Nc1cc(F)cc(F)c1']smiles_list2=['Oc1ccccc1-c1cccc2cnccc12','Cc1noc(C)c1CN(C)C(=O)Nc1cc(F)cc(F)c1']fcd(smiles_list1,smiles_list2)
# Example 2:fcd=FCD(device='cuda:0',n_jobs=8)smiles_list1=['COc1cccc(NC(=O)Cc2coc3ccc(OC)cc23)c1','Cc1noc(C)c1CN(C)C(=O)Nc1cc(F)cc(F)c1']smiles_list2=['Oc1ccccc1-c1cccc2cnccc12','Cc1noc(C)c1CN(C)C(=O)Nc1cc(F)cc(F)c1']pgen=fcd.precalc(smiles_list2)fcd(smiles_list1,pgen=pgen)
对于构造函数,可以将设备作为device='cpu'
传递给CPU,作为device='cuda:n'
传递给GPU,其中n
是GPU设备号。n_jobs
参数指定用于分析smiles的线程数。您还可以改变batch_size
参数。fcd的调用参数是fcd(ref=None, gen=None, pref=None, pgen=None)
,您应该在其中指定ref
(smiles list)或pref
(预先计算的统计信息),对于gen
和pgen
也是如此。