Hosting CDK on Google App Engine

Google App Engine has supported java for a while. I don’t know if others have tried to hosting CDK jar on the App Engine. Last weekend I tried to build an application or App Engine based on CDK and fortunately it seems most parts works.

 
I have build a app named ChemDeposit, it can be visited at http://chemdeposit.appspot.com/
 
It accept SMILES inputs to add or view information generated by CDK. And there’s also an *almost* substructure search implementing just based on default fingerprints.
 
The InChI generator and SMARTS search functions can not work on App Engine and I pasted error informations at http://chemdeposit.appspot.com/cdk-on-appengine.jsp , hope there’s someone can help.

免费SDF文件阅读和处理软件

Windows环境下,常用的SDF文件 阅读和处理的免费(或试用版)软件。
 
 
  • 加载速度快。打开大文件时,随着窗口滚动增量加载解析。
  • 编辑,包括画结构式
  • 根据结构式命名。Traditional name/ IUPAC name
  • 单个化合物结构图另存为图片。
  • 分子式和分子量等基于结构的分析。
  • 生成SMILES。
 

http://www.enso-software.com/WebSite2005/Default.aspx

With ensochemSheet, you can manage you SD files as comfortably as if the were in a database. Search for structures and alphanumerical data, let the program automatically filter duplicates and much more. Test the free demo version even today!
 
  • 编辑,包括画结构式。
  • 子结构检索。

http://www.hyleos.net/?s=applications&p=ChemFileBrowser

 
  • 加载速度慢;功能简单。
  • 列表查看和单个化合物查看。
  • 可以标注和选择SDF中的化合物,并对选择的部分导出。
  • 导出成SDF或CVS。
 
 
  • 用于聚类等分析的工具。
  • 列表和单个化合物信息查看。单个化合物信息查看自动全屏,有导航按钮。
  • 导出成Excel,结构图列表或属性列表。

 

上面的工具中,只有marvin view 还在持续的开发和改进。
 

 

http://www.bioclipse.net/

基于eclipse。

 

关于化学结构式web显示和输入

将化学结构式在网页上显示出来,是基于WEB的化合物注册系统(compound registry system)中必不可少的功能,也能用于化学品研发、销售企业的产品宣传网站。而要实现结构式检索,就要有结构式输入的功能。

我所知道的化学结构式web显示的方法,从技术手段上来说可以分为以下几种

  • 预生成图片。
  • 使用在线结构图生成服务。
  • 使用浏览器插件(java或activex)。
  • 基于Javascript和AJAX的方案。

预生成图片

在后台用工具将结构式信息都转换成图片格式(PNG, JPEG等),再将图片上传到网站服务器,用普通的图片显示方式显示出来。需要注意的就是一般的产品目录中,产品数量较大,是用数据库生成的列表,批量生成的图片,就需要用产品编号、CAS编号等相对固定的编码对应起来。

后台生成图片的工具很多,大部分化学信息学软件都可以做得到。但是为了方便批量操作,尽量选择有编程接口的软件,至少也要能够通过命令行调用的软件。

使用在线结构图生成服务

可以利用的服务,我在之前的这篇在线化学结构式图片生成服务中详细介绍过。前提基本都是要有化合物的SMILES编码信息。这样做的好处是,不用自己生成图片,不用占用自己网站的空间,甚至不用占用自己网站的带宽。同样潜在的问题是要依赖第三方服务的准确性、可靠性和稳定性。

使用浏览器插件

使用浏览器插件恐怕是最常见的解决方案。一般来说,这样的插件都需要用结构式的mol格式作为输入,mol格式可以从SDFile的连接表部分导出。关于mol 和SDFile格式请参考 Chemical table files。目前也只有使用插件,能够实现结构式的输入。

最常见的网页插件有

 

JMEhttp://www.molinspiration.com/jme/,java applet

我所见过的90%以上的在web中显示和输入结构式的浏览器插件,都是用JME来实现的。JME的作者没有声称过这个软件是免费的,非商业用户需要向他发一个邮件来索要。而实际上既然是java applet,直接下载下来用也很容易。而事实上大多数的人都是这么做的。

这个软件估计至少有10年历史了,作者是Peter Ertl


Jmolhttp://jmol.sourceforge.net/, java applet

没有用过。开源的项目,支持的格式非常多,不过还是不支持SMILES/InChI。

 

Chemdraw pluginhttp://www.cambridgesoft.com/software/details/?ds=2&dsv=93, activex

不是免费的,在工作中用到过。功能非常强大,结构式编辑功能与Chemdraw软件基本相当,远远超出其他插件。

 

Chemwriterhttp://metamolecular.com/chemwriter/, java applet

Chemwrite应用并不广泛,功能也不强大,只能说图片显示的质量要比JME好不少,进行了边缘平滑的处理。之所以要提到,是因为这个软件的作者是 Depth-first 这个化学信息学博客的作者Rich Apodaca,我在这里学到了很多有用的知识。

 

 

JChemPaint, http://apps.sourceforge.net/mediawiki/cdk/index.php?title=JChemPaint, java applet

基于CDK项目的一个衍生产品。

 

基于Javascript和AJAX的方案

不论java applet还是activex,都对客户端有所要求。java applet要求客户访问网站的时候,要安装java运行时环境;activex默认在浏览器中不能运行,要客户判断安装并执行,因为有臭名昭著的安全问题。而基于Javascript和AJAX的方案,能够解决这些问题,也符合Web2.0的趋势。

 

MX-GWThttp://chemhack.com/mx-gwt/, 纯javascript

这是国内的一位叫Duan Lian的同学的作品。是我知道的和见过的唯一的用纯粹的javascript实现的结构式显示和输入方案。这个软件实际上是把Rich Apodaca用java开发的一个轻量级的化学信息处理库,MX,通过Google的GWT编译成javascript,使之能在浏览器里运行。非常棒。

 

Molinspiration WebMEhttp://www.molinspiration.com/docu/webme/index.html, AJAX

是开发JME的公司Molinspiration最近开发的AJAX的方案,需要服务器的支持。如果愿意买这个软件的话,Molinspiration提供服务器端支持。对客户来说,仍然只要能支持js的浏览器就行了。

 

PubChem edithttp://pubchem.ncbi.nlm.nih.gov/edit/, AJAX

PubChem在线服务的结构式输入工具,可以拆出来用。而且PubChem也足够开放,提供了很详细的使用说明,包括如何把输入的结构传递到表单。在在线化学结构式图片生成服务提到过,这个编辑器背后隐藏着一个通过SMILES来显示结构式的接口。

 

 

对化学结构式图片进行OCR

原文在 Have your hamburger and eat it - Edit molecules in PDFs。虽然讲的是“编辑PDF中的结构式”,实际上的核心意思是通过OCR的手段,将结构式还原回来。

OCR文字,识别个名片简单,但是恢复带有图型结构的化学结构式图片,看起来就不那么容易了。这篇文章里提供的工具,却偏偏很容易。

核心的软件是BKChem,是基于Python的开源化学信息学软件。很可惜这个网站在国内被盾住了,上传一个在这里

Windows环境下软件配置的步骤是

  1. 安装Python
  2. 按照Python的版本安装 Python Imaging Library
  3. 下载并且安装BKChem-0.12.5.zip。国内下载不了请用这个链接
  4. 下载 convert_clipboard_image.pyconvert_clipboard_image.xml 这两个文件,放在BKChem的plugins文件夹里。这个文件夹一般的路径是这样的 C:\Python25\share\bkchem\plugins
  5. 下载osra-mingw-1-1-0.zip,解压。在系统变量中,设置OSRA变量的值是解压后文件夹中osra.exe的绝对路径。

 

软件使用的方法是

  1. 在C:\Python25\Lib\site-packages\bkchem路径下,双击bkchem.py,运行BKChem。
  2. 在打开的PDF/ Word/ 画图板等软件中拷贝结构式图型。
  3. 在BKChem中点击plugins菜单下的"Paste and Convert Image",就可以开始转换了。

然后呢,当然就是继续编辑这个结构式啦。与其他OCR一样,在准确性是不能达到100%的。往往一些环结构会断掉,特殊的元素、手性键会认错。

不过这已经离可以转换成mol/ SMILES/ InChI格式的结构式不远了。

090218, update

Optical Structure Recognition Software To Recover Chemical Information: OSRA, An Open Source Solution

 

 

在线化学结构式图片生成服务

利用一些网站提供的资源,可以在线生成结构式图片。

DayLight

其中比较突出的是DayLight提供的服务,在另外一篇 结构式图片生成服务, DayLight SMI2GIF 中做过详细介绍。DayLight的服务传入的结构式参数是SMILES,而且有很丰富的参数以调节输出效果。

NIST

NIST是美国国家标准与技术局(National Institute of Standards and Technology),NIST WebBook 是老牌的免费化合物信息数据库,提供丰富的化合物物理、化学性质数据。其化合物的编码方式,其实是CAS号码。把CAS号码转换成数字,就可以很容易得到结构式图片的地址了。

http://webbook.nist.gov/cgi/cbook.cgi?Struct=C490119

NIST WebBook的数据量并不是很大,只有几万条记录。不知道是不是因为太老的原因(05年就没再更新过),其中还有错误数据。至少到这篇发布的时候,上面的例子仍就是一个错误结构。我写Email报告了这个问题,不知道啥时候能修正。

NLM

NLM是(National Library of Medicine) 它提供的ChemIDPlus数据库 也是用CAS号码进行编码的。数据量要比NIST大很多,结构式输出的质量也更好。

http://chem.sis.nlm.nih.gov/chemidplus/RenderImage?maxscale=30&width=200&height=200&superlistid=000490119

Pubchem

对于化合物的标记,SMILES是公开的标准,直观还原结构式信息,值得应用;CAS不公开不免费,但也成为了既成的行业标准。现在能与CAS相提并论的,我想就是NCBI的PubChem 数据库了。NCBI是美国国立生物技术信息中心(The National Center for Biotechnology Information。在在线数据库的范畴内来说,PubChem的Compound ID(cid)基本上是必被引用的。所以也勉强将它用cid作结构参数的图片生成接口纳入进来。这个接口背后也有很多参数用以调节输出。

http://pubchem.ncbi.nlm.nih.gov/image/imagefly.cgi?cid=10273&width=400&height=400

有一篇很好的文章,Thirty-Two Free Chemstry Databases(32个免费化学数据库) ,仔细读过的话也许还会有更多的发现。

2008年12月15日更新

Hack PubChem的结构式编辑页面,找到PubChem通过SMILES输出结构式图片的服务

http://pubchem.ncbi.nlm.nih.gov/edit/editsrv.fcgi?drawevent=paste&sessionid=122931177&smiles=c1(c(cncc1)C(O)=O)C(O)=O&speed=1&nopng=0&vid=&vhadd=0

 

ChemDB

ChemDB / Smi2Depict: Generate 2D Images from Molecule Files

http://c1ccccc1-2.ics.uci.edu:8081/arrow-webapp/ArrowWebService?action=smi2png&smiles=c1(c(cncc1)C(O)=O)C(O)=O&width=400&height=200&arrowdesc=&extraImageSetting=amap

eMolecules

http://depict.emolecules.com/cgi-bin/mymol/depict.cgi?smiles=c1(c(cncc1)C(O)=O)C(O)=O&width=100&height=100&colorscheme=cow&format=png&submit=image

NCI/CADD, Chemical Identifier Resolver 

美国癌症研究中心

http://cactus.nci.nih.gov/chemical/structure/c1(c(cncc1)C(O)=O)C(O)=O/image

 

 

Firefox加载Java Applet后死翘的问题

现象就是加载了带Java Applet的网页后,直接死翘或者在关闭页面的时候死翘,整个Firefox失去响应,只能强制结束进程。
真好吃: JVM卡死firefox提出了正解。

我的firefox有时候不能正常现实applet
反映就是卡死firefox
但是有一个奇怪的现象就是 如果运行本地的网页applet后
在不关闭firefox的前提下 去看含有applet的网页没有任何问题

我百思不得其解 最后分析出了一个大概的原因
jvm大概无法获取firefox的代理服务器设置
所以就卡死掉了

我在java 控制面板中代理服务器设置选择直接连接就解决问题了

如图设置,搞定
JVM connection setting

结构式图片生成服务, DayLight SMI2GIF

SMILES的发明者,DayLight公司提供了一个非常实用的Web Service工具,可以在线通过化合物的SMILES编码,生成它的结构式图片。这个工具就是SMI2GIF 。它是基于DayLight公司的产品”HTTP Toolkit“建立的。我们可以购买这个产品自己建立Web Service,也可以直接在线使用DayLight提供的服务。

下面的图片是一个最简单的在线应用。

图片的HTML代码是

        <img src="http://www.daylight.com/dayhttp/smi2gif?smiles=Oc1ccccc1"></img>
    

DayLight给出了一个参考文档,对这个接口的调用参数和功能,讲述得非常详细。下面就把简单的,我也懂的参数作一点举例介绍。

图片的高度和宽度,线条的粗细,输出的格式(PNG/GIF)

        http://www.daylight.com/dayhttp/smi2gif?width=100&height=100&smiles=O%3DC1CCCCC1&Linewidth=thick&output=PNG

色调搭配

提供了几种基本色调


COB
- color on black

COW
- color on white

COP
- color on paper

BOW
- black on white

BOP
- black on paper

WOB
- white on black

WOP
- white on paper

        http://www.daylight.com/dayhttp/smi2gif?smiles=O%3DC1CCCCC1&colormode=COW
    

对原子单独指定颜色

        http://www.daylight.com/dayhttp/smi2gif?numcolors=10&tdt=%24SMI%3COCCCCCCCCCC%3EALAB%3C0.0%2C.1%2C.2%2C.3%2C.4%2C.5%2C.6%2C.7%2C.8%2C.9%2C1.0%3E%7C
    

是否显示手性结构

        http://www.daylight.com/dayhttp/smi2gif?hide_chi_h=false&smiles=C[C%40%40H](N)C(%3DO)O
    

突出显示子结构

这样的功能一般都用在子结构检索之后的结果输出中。

        http://www.daylight.com/dayhttp/smi2gif?smiles=O%3DC1CCCCC1&highlight=O%3DC
    

URL编码

对查询URL中的SMILES字符串,应该用URL-Encode(RFC1738)进行编码。同时,SMI2GIF也支持省略掉百分号的简洁编码方式,比如 (O=C1CCCCC1)可直接表示成 4f3d4331434343434331

参数缩写

SMI2GIF的各个参数,都可以按照下面的映射进行缩写

Option Abbreviation
colormode c
fromto f
height he
hide_chi_h hi
hlen_pct hl
hydrogens hy
numcolors linew
linewidth n
old_style ol
orient or
output ou
reaction r
scale sca
schematic sch
smiles smil
smirks smir
tdt t
width w
xsmiles x

windows search 4.0预览版发布

Windows Search 4.0 Preview

windows search以前叫msn desktop。自打vista,微软就很重视桌面搜索了。与之对应的更著名的桌面搜索软件是google desktop,实际上后者也更强大,更开放(windows search也是通过ifilter开放的)。

其实windows内置的搜索,很早很早以前就有了,叫index service。index service/ msn desktop/ vista/ windows search这一系列产品,貌似都是同样的技术基础。但是一个产品定位总是不准,形象一直变化,就显得不那么高档。这一点上来说,微软的市场能力还真不一定就比google强。

着两种桌面搜索产品以前都用过。说不上什么确切的理由,但是比较自然地用windows search替换了GDS。windows search在使用上,的确更贴近普通用户。贴两张图吧。

desktop-search-windows.png
desktop-search-google.png

谷歌拼音输入法的化学专业词典

简介

可以用于谷歌输入法的词典文件,包含大量中文化学词汇,多为化合物名称。词库容量很大,有15976条化合物名称中文词汇;包括各种多音字拼写(也包括拼错的)共有拼音条目6万余条。比较搜狗拼音化学词汇大全【官方推荐】的一千多条的量要大多了。

google pinyin dict for chemist

作者 zh.charlie@gmail.com

使用方法

在谷歌拼音输入法的“属性设置”中导入

googlepinyinimport.png

数据和制作方法

化合物中文名称,从Chemblink.com网站上采样获得。

词汇提取程序使用Python编写。其中,从unicode字符串中提取汉字的正则表达式:

ur'([\u4e00-\u9fa5]+)'

汉字到拼音的转换程序,使用了roy在水木上贴的python代码和数据库

谷歌拼音输入法的词典格式和分析方法,在前一篇中有所介绍。

使用授权

随便用。随意转载、修改、使用,不必注明原作者。对词典的正确性、全面性作者无法保证和负责。


下载

google.pinyin.dict.for.chemists.zip

搭建了一个免费电子书下载搜索引擎

用Google自定义搜索搭建了一个免费电子书下载搜索,把以前常用的几个站点都放上去了。包括csdn下载频道这类非法电子书交换市场;也包括RapidShare这样的文件存储网站;还有一些大大小小的电子书共享网站。以后随时把自己用到的类似站点这样做垂直分类。

实际上早有人开始做这样的事了,而且更敬业一些。对自定义搜索引擎中搜索一下就可以找到他们了。

coopfreeebookdownload.png

Next Page »

Random posts

  • 一些厂商提供的数据仓库工具
  • 备份本地邮件到Gmail等邮箱
  • MOL Reader and SMILES Writer in Javascript
  • Python中的r = cond?x:y(转寄)
  • 今天是2009年5月35号