InChiKey

IUPAC(International Union of Pure and Applied Chemistry)对InChi(The IUPAC International Chemical Identifier)发布了新(beta)版本,加入了InChiKey。简要的讲,是对InChi加入了一个25位字符组成的摘要。

InChi本身就是一个Identifier,为什么还要给它加上一个Key呢?InChi作为化学品标识,与CAS、MDL Number等等相比,优点在于其承载的信息与结构式等价。但是它太长太复杂了,还包含着字母和数字之外的特殊符号,于是在两个重要的应用领域中很难使用。一是作为各类化学信息系统中的化合物ID,可以想象一个长度无法控制的标记放在Excel表格里,是多么不方便;另外一个应用就是作为互联网上可供搜索的关键字。

那InChiKey就与CAS, MDL Number是同样的意义了吗?肯定不是的。其一,它是免费并开放的(under the terms of the GNU Lesser General Public License)。其二,是因为有InChi存在。知道了一个InChiKey,就肯定可以很容易的找到对应的InChi,也就唯一的确定了结构式,确定了这个化学品实际是什么。而CAS, MDL Number如果没有相应的商业数据库甚至软件支持,就什么也不是。InChiKey虽然也需要数据库去查询InChi,但其实这个数据库中只需要存在这个简单的对应表就足够了。

没有仔细研究InChiKey的生成方法。应该是很简单,原理不外乎用摘要算法(类似MD5)做一下数据压缩而已。ChemWeb的mailing中也提到”There is a finite, but very small probability of finding two structures with the same InChIKey.” 。用摘要算法做数据压缩虽然是很常见的方法,在这个方面却有很多可能的应用。比如数据库中某个字段如果存储InChi,开销会比较大,搜索操作效率也不会高。如果将其都MD5之后存储成固定宽度摘要字段,当用户输入InChi进行搜索的时候,将其输入也进行MD5,再进行搜索效率就会大大提高了。压缩算法总是会有信息损失的,比如字符串片段的搜索就没法进行了。

No comments yet. Be the first.

Leave a reply

Additional comments powered by BackType

Random posts

  • 吕布
  • Compile VC6 project with makefile
  • Web interface provided on SQLMOL
  • 我只想说,我操!
  • Writely.com blogging error