用于化学信息处理的压缩程序和解压缩程序库smiles strings
smilez的Python项目详细描述
smilez-smiles字符串的压缩
==
smilez主页:https://bitbucket.org/dalke/smilez
smilez是一个简单的smiles字符串压缩库。它紧密地基于短字符串的smaz压缩库,
可从https://github.com/antrez/smaz获得。
smilez不是一个通用的压缩算法。它可以压缩
smiles字符串约50-60%,包括许多长度只有几个字节的
smiles字符串。在最好的情况下,它可以压缩到75%,
,但是如果给它非smiles数据,结果可能会大50%。
pubchem和
chembl数据的真实性。压缩性能将取决于微笑字符串与训练集的匹配程度。一般来说,它最好是用
"正常"的微笑,而不常用的特征,如反应图
和同位素。
1 cccc
7 4 f/c=c/f
6 8[NH4+]
9 4 cCCCCCCC1O
26 13 CN1CNC2C1Cc(=O)N(C(=O)N2Cc)c
28 10 CN1Cc=NC2=C1C(=O)N(C(=O)N2Cc)C
42 17 CCCCCCCCCCCC2NC([NH]C2C1)S(=O)N(C(=O)N2Cc)C
42 17 17 CCCCCCCCCCCCCCCC2NC([NH]C2C1)S(=O)C(C)C(C)C(C)C)C(C)C(C)C)C(C 1][CH2:3][C:4](C)[CH2:3]
60 30摄氏度[n+]1(c2cc(cc1c3c2o3)o c(=o)c(c4=cc=cs4)(c5=cc=cs5)o)c.[br-]
chembl example
====br/>
我有一个从chembl 16导出的smiles数据集,其中有1292344条记录。
未压缩:66896248字节
压缩:25455759字节
=>;小60%
压缩字符串大约需要2.6秒,解压缩字符串需要1.4秒。
结果占用了61406214个字节,仅比原来的小8%
。(这就是为什么不在小字符串上使用zlib。)
压缩后的微笑比原来的微笑小58%(1.21 MB到
0.51 MB)。
=
int smilez_compress(const char*in,int inlen,char*out,int outlen,
int dictionary)
nlen'并将
压缩数据放入最大长度'outlen'字节的'out'中。如果
输出缓冲区太短,无法容纳整个压缩字符串,则返回
outlen+1。否则,将返回压缩字符串的长度
(小于或等于outlen)。
"dictionary"选项指定编码字典。如果
smilez_byte_dictionary(=0),则压缩字符串可以使用
bytes 0-255。如果smilez_whitespace_dictionary(=1),则压缩的
字符串将不使用字节"\n"、"\r"、"\t"或"。这允许您使用smilez字符串作为tab或空格分隔的文件中的字段,或在sd标记中使用smilez字符串,只需很小的代价。
解码器自动处理两个
字典。如果解码器值超出范围,则smilez_compress返回0。
int smaz_decompress(char*in,int inlen,char*out,int outlen);
如果输出缓冲区太短,无法容纳整个解压缩字符串,则返回outlen+1。否则返回
压缩字符串的长度(小于或等于outlen)。此函数不会自动将nul项放在o的末尾如果原始压缩字符串没有包含nulterm,则返回字符串。
在第1版上,定义smilez字节字典0
rsion值也可以通过函数调用获得:
int smilez_get_compression_version(void);
==
使用"python setup.py install"来构建和安装python模块
"smilez"。
模块基于smilez_get_version()和
smilez_get_compression_version():导入smilez
>;>;导入smilez
>;>;smilez。压缩版本
1
e两个字典:
>;>;smilez.byte_dictionary
0
>;>;smilez.whitespace_dictionary
1
>;>>smilez.decompress('i\xda\xc9\xb9')
'c1ccccccc1o'
>和使用空白字典压缩的示例:
>;>smilez.compress("p",smilez.whitespace\u字典)
'\xfep'
>;>smilez.compress("p")
'
com命令行程序
运行"make"将生成三个演示或测试程序:
smilezip
——
将smiles文件转换为smilez文件。
smiles文件每行包含一个记录。每行包含空格
或制表符分隔的字段,其中微笑是第一个字段。压缩第一个字段后,smilez
文件的格式相同。
%./smilezip nci_09425001_09450000.smi>;nci.smiz
%ls-l nci_09425001_09450000.smi nci.smiz
-rw-r--r--1 dalke staff 143390 2008年6月8日nci_09425001_09450000.smi
-rw-r--r--1 dalkE员工724140 7月2日02:52 NCI.SMIZ
注意!没有真正的理由拥有smilez文件。同一文件的gzip版本只有187483字节,几乎是smilez文件大小的1/4。这是如何使用空白字典的演示。
----
>将smilez文件转换为smiles文件:
%./smilezcat nci.smiz>;nci.smi
%cmp nci_.smi nci.smi
--——
这在C API上运行一组自测试。
credits
==
许可下发布。查看复制文件以获取更多信息。
许可下发布。
==
smilez主页:https://bitbucket.org/dalke/smilez
smilez是一个简单的smiles字符串压缩库。它紧密地基于短字符串的smaz压缩库,
可从https://github.com/antrez/smaz获得。
smilez不是一个通用的压缩算法。它可以压缩
smiles字符串约50-60%,包括许多长度只有几个字节的
smiles字符串。在最好的情况下,它可以压缩到75%,
,但是如果给它非smiles数据,结果可能会大50%。
pubchem和
chembl数据的真实性。压缩性能将取决于微笑字符串与训练集的匹配程度。一般来说,它最好是用
"正常"的微笑,而不常用的特征,如反应图
和同位素。
1 cccc
7 4 f/c=c/f
6 8[NH4+]
9 4 cCCCCCCC1O
26 13 CN1CNC2C1Cc(=O)N(C(=O)N2Cc)c
28 10 CN1Cc=NC2=C1C(=O)N(C(=O)N2Cc)C
42 17 CCCCCCCCCCCC2NC([NH]C2C1)S(=O)N(C(=O)N2Cc)C
42 17 17 CCCCCCCCCCCCCCCC2NC([NH]C2C1)S(=O)C(C)C(C)C(C)C)C(C)C(C)C)C(C 1][CH2:3][C:4](C)[CH2:3]
60 30摄氏度[n+]1(c2cc(cc1c3c2o3)o c(=o)c(c4=cc=cs4)(c5=cc=cs5)o)c.[br-]
chembl example
====br/>
我有一个从chembl 16导出的smiles数据集,其中有1292344条记录。
未压缩:66896248字节
压缩:25455759字节
=>;小60%
压缩字符串大约需要2.6秒,解压缩字符串需要1.4秒。
结果占用了61406214个字节,仅比原来的小8%
。(这就是为什么不在小字符串上使用zlib。)
压缩后的微笑比原来的微笑小58%(1.21 MB到
0.51 MB)。
int smilez_compress(const char*in,int inlen,char*out,int outlen,
int dictionary)
nlen'并将
压缩数据放入最大长度'outlen'字节的'out'中。如果
输出缓冲区太短,无法容纳整个压缩字符串,则返回
outlen+1。否则,将返回压缩字符串的长度
(小于或等于outlen)。
"dictionary"选项指定编码字典。如果
smilez_byte_dictionary(=0),则压缩字符串可以使用
bytes 0-255。如果smilez_whitespace_dictionary(=1),则压缩的
字符串将不使用字节"\n"、"\r"、"\t"或"。这允许您使用smilez字符串作为tab或空格分隔的文件中的字段,或在sd标记中使用smilez字符串,只需很小的代价。
解码器自动处理两个
字典。如果解码器值超出范围,则smilez_compress返回0。
int smaz_decompress(char*in,int inlen,char*out,int outlen);
如果输出缓冲区太短,无法容纳整个解压缩字符串,则返回outlen+1。否则返回
压缩字符串的长度(小于或等于outlen)。此函数不会自动将nul项放在o的末尾如果原始压缩字符串没有包含nulterm,则返回字符串。
在第1版上,定义smilez字节字典0
rsion值也可以通过函数调用获得:
使用"python setup.py install"来构建和安装python模块
"smilez"。
模块基于smilez_get_version()和
smilez_get_compression_version():导入smilez
>;>;导入smilez
>;>;smilez。压缩版本
1
e两个字典:
>;>;smilez.byte_dictionary
0
>;>;smilez.whitespace_dictionary
1
>;>>smilez.decompress('i\xda\xc9\xb9')
'c1ccccccc1o'
>和使用空白字典压缩的示例:
>;>smilez.compress("p",smilez.whitespace\u字典)
'\xfep'
>;>smilez.compress("p")
'
com命令行程序
运行"make"将生成三个演示或测试程序:
smilezip
——
将smiles文件转换为smilez文件。
smiles文件每行包含一个记录。每行包含空格
或制表符分隔的字段,其中微笑是第一个字段。压缩第一个字段后,smilez
文件的格式相同。
%./smilezip nci_09425001_09450000.smi>;nci.smiz
%ls-l nci_09425001_09450000.smi nci.smiz
-rw-r--r--1 dalke staff 143390 2008年6月8日nci_09425001_09450000.smi
-rw-r--r--1 dalkE员工724140 7月2日02:52 NCI.SMIZ
注意!没有真正的理由拥有smilez文件。同一文件的gzip版本只有187483字节,几乎是smilez文件大小的1/4。这是如何使用空白字典的演示。
>将smilez文件转换为smiles文件:
%./smilezcat nci.smiz>;nci.smi
%cmp nci_.smi nci.smi
这在C API上运行一组自测试。
credits
==