我正在使用化学开发套件来计算指纹'用于化学结构。我想将它们保存在一个sql数据库中,但我要注意确定存储然后读取数据的最佳方法。我目前正在使用python,因为代码的其他部分在jython中不起作用。
我使用jpype来连接包。
import os
from jpype import *
_jvm=os.environ["JPYPE_JVM"]
_cp=os.environ['CLASSPATH']
startJVM(_jvm, "-Djava.class.path="+_cp)
cdk=JPackage("org").openscience.cdk
完成所有工作的样本部分如下:
sp = cdk.smiles.SmilesParser(cdk.DefaultChemObjectBuilder.getInstance())
mol=sp.parseSmiles('CCCCC')
ECFP=cdk.fingerprint.CircularFingerprinter
fingerp=ECFP(ECFP.CLASS_ECFP6)
fp1 = fingerp.getBitFingerprint(mol).asBitSet()
fp1.toString()
此输出
out: u'{61, 152, 222, 777, 825, 947, 993}'
请注意,fp1是一个BitSet。
编辑:我再次将输出字符串读入bitset。
我尝试了什么
fps=fp1.toString()
bit=java.util.BitSet.valueOf({fps})
返回
RuntimeError: No matching overloads found. at src/native/common/jp_method.cpp:121