0

我正在使用化学开发工具包来计算化学结构的“指纹”。我想将这些保存在 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。

编辑:我坚持将输出字符串再次读入位集。

我试过的

fps=fp1.toString()    
bit=java.util.BitSet.valueOf({fps})

这返回

RuntimeError: No matching overloads found. at src/native/common/jp_method.cpp:121
4

0 回答 0