英文原文来自Grails官方网站,本人原创翻译,转载请注明来自xia3hua4
GWT插件
Google Web Toolkit(GWT)是一个可以用Java语言开发富用户界面的高级AJAX框架,也就是说你可以充分利用Java的类型检查和代码重用特性。GWT会编译你的Java代码以生成执行迅速且跨平台的Javascript代码,你可以将其用于任意的Web页面。
本插件既简化了GWT和GSP页面协作的过程,又简化了服务器端RPC请求的处理。如果你以前没有用过GWT,请阅读GWT官方网站的文档来了解如何使用GWT。
要求:Grails 0.5.6以上版本
Mac OS X 10.5(leopard)用户请使用下列GWT版本。
http://google-web-toolkit.googlecode.com/files/gwt-leopard-1.4.61.tar.gz
开始使用GWT的时候,第一件事情就是创建一个模块。模块将一系列客户端代码封装为一个单元。
创建一个模块
grails create-gwt-module <module>
上述命令会在项目的src/java目录下生成一个模块文件以及一个对应的客户端类文件。如果模块的名称中有包(package),那么文件会在相应的目录路径中创建。例如:
grails create-gwt-module org.example.MyApp
上述命令会创建文件:
创建了一个模块之后,你需要创建一个HTML页面来放置该模块所定义的UI元素。运行下述Grails命令即可:
grails create-gwt-page <page> <module>
第一个参数指定了要创建的页面,第二个参数指定了页面中所要放置的GWT模块。页面需要使用文件的相对路径指定,路径的结尾可以是"html"或者"gsp”或者其他。如果路径由目录名称和GSP文件名组成,则会被当作控制器的视图。如果不是则当作普通的web页面。
// 下述命令会创建视图文件: grails-app/views/main/index.gsp grails create-gwt-page main/index.gsp org.example.MyApp
// 下述命令会创建文件: web-app/dir/main.html grails create-gwt-page dir/main.html MyModule
// 下述命令会创建文件: web-app/index.gsp grails create-gwt-page index.gsp org.example.AnotherModule
如果使用第一个方法并且指定的控制器不存在的话,grails脚本会提示是否自动创建。
GWT中有个叫做宿主模式的东西,使得你可以在一个特殊的浏览器中测试、调试你的web界面。本插件中同样提供了此项功能。只需运行下述命令即可:
grails run-gwt-client
上述命令会启动宿主模式浏览器并将其指向你正在运行的web应用程序。(你可以在一个命令行窗口中运行)grails run-app并在另一个命令行窗口中运行上述命令。如果你的web应用程序不是在本机运行的,或者不是在默认端口运行的,你可以向脚本传递参数来将宿主模式浏览器指向其他的URL。
// 运行在8080端口上的非本机主机
grails run-gwt-client myServer
// 本机非默认端口。 grails run-gwt-client 9090
// 两种情况同时存在 grails run-gwt-client myServer:9090服务器端RPC
几乎所有的实用GWT应用程序都需要在某些地方用到RPC支持。GWT通常需要为你定义的每个服务接口编写一个servlet,不过本插件简化了这个过程,使得你可以使用普通的Grails服务实现RPC的服务器端。通过添加expose属性,任何服务都可以为GWT进行配置,这和使用Remoting等插件是差不多的。
class MyService {
static expose = [ 'gwt:example.client' ]
List listUsers() {
…
}
…
}
GWT expose 属性的格式是很简单的:gwt:<package> ,相关RPC会创建在<package> 所指定的java包中。这通常和某个模块的入口点包相同。
你现在需要运行应用程序(grails run-app)以便生成需要的RPC接口。该插件同样也会在你修改服务时更改接口文件,只要你不自己修改这些接口。如果你修改了这些接口,本插件就不会同步接口和Grails服务。虽然这样你会失去自动同步的便利,但是使得你可以完全控制接口定义。
注意 如果你修改了任意一个接口文件,本插件会停止同步所有的接口文件。这样是为了确保你进行的修改可以得到保留,比如添加'@gwt.typeArgs'这样的javadoc注解。
在从客户端GWT代码中访问服务是,可以使用下述示例中的URL:
MyServiceAsync myService = (MyServiceAsync) GWT.create(MyService.class);
ServiceDefTarget endpoint = (ServiceDefTarget) myService;
// 注意RPC服务所在的URL String moduleRelativeURL = GWT.getModuleBaseURL() + "rpc";
endpoint.setServiceEntryPoint(moduleRelativeURL);
// 调用服务种的方法 List users = myService.listUsers()
…集合和映射类型
GWT既支持list、set这样的集合,也支持映射作为方法的参数和返回值。不过,GWT并不支持使用泛型指定集合或者映射中包含的数据类型,用户必须想RPC接口定义中加入自定义的javadoc注解'@gwt.typeArgs'。如果你使用1.5或者以上版本的JVM的话,本插件可以稍稍简化此项过程,自动添加CollectionTypeArg 和 MapTypeArg。这既可以用来指定参数类型也可以指定返回值类型,如下所示:
class MyService {
static expose = [ 'gwt:example.client' ]
// The return list contains objects of type java.lang.String. @CollectionTypeArg(String)
List listUsers() {
…
}
// 'arg' 参数是一个映射,其中的键是java.lang.Integers类型, // 值是java.lang.Strings类型。 void processMap(@MapTypeArg(key=Integer, value=String) Map arg) {
…
}
…
}
注意 在编写本文档时,注解还不支持方法签名。希望在Grails 1.0发布时此问题能被解决。
本插件会在你第一次进行普通Grails编译动作时自动编译GWT模块,比如在运行grails compile 或者 grails run-app时。如果模块已经被编译过,在开发模式下不会被再次编译。如果你使用GWT宿主模式来测试应用程序的话这样很好,不过如果你使用标准浏览器来测试,你做的修改并不会反映出来。所以,如果你想要使用普通浏览器测试开发种的最新修改时,你可以使用下述命令手动编译GWT模块:
grails compile-gwt-modules创建一个WAR
这里很简单,运行下述Grails命令即可:
grails war
本插件会确保在文件打包之前已经编译了GWT模块。完成了之后,你可以将你的web应用程序像通常一样部署到任意的servlet容器中。
尽管IntelliJ IDEA收费,但是仍然挡不住我从Eclipse转投IntelliJ的冲动。从Eclipse到IntelliJ的迁移过程总体来说easy的不得了,只要注意几个小地方,Eclipse项目在IntelliJ下一样可以工作的很好。
File-> New Project,选择Import project from external module.
选择Eclipse, Next, 在下面的对话框中,Select Eclipse projects direcotry选择Eclipse项目的目录,
下面的选项中,"Create module files in Eclipse directories"将会在Eclipse目录中创建IDEA的模块文件,选择"Keep project and module files in"可以将IDEA项目文件保存在单独的目录中以免污染Eclipse项目的文件结构。

然后一路Next即可。
接着你就应该能看到项目文件结构了。

但是WEB-INF种的classes和lib目录并没有添加到buildpath中,我们需要进行进一步操作。在Module Setting中增加Module Library
.png)
在弹出的对话框中点选Attach Jar Directory将lib和classes目录添加进去即可。
今天试用了IntelliJ IDEA,远比想象中方便,强大。方便的快捷键,人性化的UI设计,颇有Mac OS的风范。同样让我喜欢的还有GRails,开发本来就应该如此容易,何必假装专业的纠缠于没完没了的Spring,Hibernate之中。最后,让Eclipse见鬼去吧, $99的IntelliJ IDEA,值!
互联网从来都不是现实的镜像。Facebook或者是校内中的居民,绝大多数不希望他们的父母成为自己的“好友”。所以即使多么接近真实,在人和人的关系上,它也不可能完全照搬现实。互联网可以人为的主动或者被动损失掉某些信息。要损失信息是互联网的缺点,但同样也可以是优点,所以可以隐藏身份是互联网与现实之间最大的区别。而Facebook或者校内的在身份的真实性方面减少了信息的损失,这是他们的特色,是成功的一部分因素,但却不是决定性的。Facebook的成功可以归结于运气好,先在学校内部传开来了,最先开始用的一部分人实名了开来,新加入的用户如果使用他们的真实身份,在这个圈子就没有办法混下去,这就激发出了一个实名的病毒链。这是一个星火燎原的过程,就像病毒的传播一样,而不是在整个草原上都撒上油,然后再点火。不过中国是个神奇的地方,从来不乏BT的营销天才。他们可以生生的把一批用户搬到别处去,因为他们知道,搬了就有的赚,屎玉柱就是个例子。他涉足网游的时候网游的全盛期已经过去了,他还是在不惜血本的搬,不仅搬动了,而且还套住了相当一部分用户,还有他们的钱包。因为屎玉柱的“系统”非常高明,说道系统,又想到了平台。谁都知道,掌控了平台也就掌控了整个生态链中最大的价值,但平台总是少数人的事,而且可遇不可求。更重要的,每个独立的个体,并不天然地需要一个平台,只是到了他无法脱离那个平台的时候,平台才成为平台。DOS/Windows成为平台,是因为微软正好赶上了计算机个人化的那个浪潮,加上IBM的慷慨、英特尔的辅佐、以及众多PC厂商的卖力吆喝,直到一个跟OS无关的新平台──互联网的出现。Google一开始只是一种计算链接权重、给网页打分排序的技术,做大了、用它的人多了,才成为整合全球信息的工具。所有一开始就按平台设计的产品,最终几乎都没有成为平台。平台更关键的因素在于,它是个过程而非设计。校内看起来可以满足你的所有沟通需求,从blog到相册到圈子到即时通信,但是实际上是不可能的。每个人都有自己的使用习惯,即使校内有校内通,我们两个人的校内通都在线,但是我们仍然选择用QQ去聊。我用校内可以沟通,但是校内好友我们都认识,离了校内,我们照样沟通,所以校内成不了平台。国内最有希望能做成平台的就是QQ,但是QQ太保守,希望5年或者10年后,能看到一个成熟的QQ平台。
以上乃睡前乱谈,没有思路,没有条理,诸君一笑置之即可。
分析网上骂人
茅于轼
过去我很少上网看自己的博客。最近因为朋友们建议,也想和网民们交流,所以连着几天,天天上网看大家对我的文章的反应。网络的确是好东西,大家可以无所顾忌地讲出自己的心里话,平等地讨论问题。这在其他场合是绝不可能的。
最近我发表了一篇文章,题目是《替富人说话,为穷人办事》。对我的文章有赞成的,也有批评的。这一点儿也不稀奇。但是从反应的语调、风格来看,有两种截然不同的分类。一类是骂人话,都很短,一般就一两句话。这一类大概占到1/4。其他则是理性的讨论。对网上骂人这一现象很值得分析,它能够告诉我们许多事情。
下面是骂人话的一些例子:“你好去死了!”、“让阎王老子折磨你!”、“你是你妈生的吗?你他妈的是什么东西?”、“去吃大便!”、“一条老狗!”
这些话很短,但是包含着重要的信息。
首先,说这些话的人,多半是文化比较低,不能够从分析道理来说服人,所以只好用一言半语发泄自己的不满。其实,他们的反对并不是没有道理,可是说不清楚,他们用逻辑组织言词的能力比较差,有苦难言。碰到真正被人欺侮的时候同样讲不出理,往往采用暴力相向的手段。网上骂人和群起的暴力事件有着共同的缘由。他们的拳头胜过他们的头脑。
其次,他们有强烈的不满情绪,所以挑出最恶毒的话来表达。倒未必是真想置我于死地,但对社会的不满是严重的,几乎到了要爆发的程度。这种爆发式的情绪如果广泛存在,是一个危险的信号,因为万一发生社会动荡,将对所有的人都不利,包括处于社会底层的群众。历史上一切造反都要靠动员底层群众,造反无非是这一派的底层群众打那一派的底层群众,牺牲的都是底层百姓。得利的都是善于利用和操纵别人的聪明人。这些经验教训普通老百姓是看不到的。他们容易听从煽动,意气用事,上当受骗,甚至当别人的炮灰。
我们要问,为什么有这么多的人不会用理性思考,思想简单,容易走极端,产生出爆发式的情绪?恐怕这和我们的初等教育有关。我们的小学校里,教的还是阶级斗争的那一套;标榜的英雄人物还是阶级斗争中涌现出来的人物。再就是无原则的爱国主义,只要是自己国家的都是对的,缺乏正义原则和博爱精神。提倡的是为了一个简单的目标去斗争,反对怀疑精神和创造性思维。而且这种教育一直贯彻到大学。老师如果在讲堂上离经叛道,是要受处分的,严重的还要发配劳教。提倡盲从式的教育倒过来会自食其果的。
我国的初等教育还缺乏尊重别人也尊重自己的礼貌教育。不是说书本上,而是说在实践中。“文革”时的唯我独左、唯我正确的遗风远远没有肃清。所以才有这种骂人的习惯。现在很多的小学老师就是在“文革”中成长起来的一代人。他们的言行习惯时时刻刻影响着下一代人。我们否定了“文革”,但是对“文革”的批判仍不彻底,为尊者讳,不得不吃这个苦果。
社会上有这么多有强烈不满情绪的人,值得我们深思。是什么政策得罪了他们?我的答案是我们这个社会特权分子可以侵犯别人而不受制裁。一边有特权,另一边就连起码的保护都没有了。受人侵犯又没处申诉,当然会产生出强烈的不满。现在老百姓告政府状的越来越多,但是要么法院不受理,要么受理了不能公正判决。百姓能够胜诉的微乎其微。这样一种状态当然是危险的。
现在的社会非常复杂,需要专家来治理。绝不是随便哪个人都能够胜任的。但是当官的人必须为每一个人着想,不能光想着有权有势的人,否则就难免会有社会动乱的可能。“极左”年代的一个口号是保护穷人,保护穷人是对的,错在反对富人。反对富人的结果是把中国变成了一个穷人国,没有一个富人的穷人国。到后来干脆宣称穷人光荣,愈穷愈光荣,把穷人致富的梦想彻底消灭了。保护富人是重要的,但如果不保护穷人,社会同样会陷入危机。因此,穷人和富人应该同样得到保护。
社会必须由精英治理,但是精英必须公正地为全体人民的利益着想,不可以为统治者自己的利益着想。其实这是一个极其简单的道理。可惜的是简单的道理还没有被普遍承认,而是被大范围地破坏着。看看网上骂人,可以知道当今社会处于什么状况。
"Nobody knows how to make a pencil. There's not a single person in the world who actually knows how to make a pencil.
没有人知道如何制造铅笔,准确的说,世界上没有单独的一个人精确的知道如何去制造一只铅笔
"In order to make a pencil, you have to get wood for the barrel. In order to get wood, you have to have logging. You have to have somebody who can manufacture saws. No single person knows how to do all that.
要制造一只铅笔,你必须获得制作笔筒需要的木头,要活得木头,你必须伐木,必须有人为你提供电锯你才能伐木。没有单独的一个人知道做这所有的一切事情
"What's called lead isn't lead. It's graphite. It comes from some mines in South America. In order to make pencils, you'd have to be able to get the lead.
大家看到的笔芯并不是笔芯,它是石墨。是来自南美洲的一种矿产,为了制造铅笔,你必须能够获得它
"The rubber at the tip isn't really rubber, but it used to be. It comes from Malaysia, although the rubber tree is not native to Malaysia. It was imported into Malaysia by some English botanists.
还要铅笔的橡皮擦也不是橡皮,但它曾经是。 它是产自马来西亚。尽管马来西亚并不是原来就有橡胶树,是英国的植物学家引进的。
"So, in order to make a pencil, you would have to be able to do all of these things. There are probably thousands of people who have cooperated together to make this pencil. Somehow or other, the people in South America who dug out the graphite cooperated with the people in Malaysia who tapped the rubber trees, cooperated with, maybe, people in Oregon who cut down the trees.
为了制造铅笔,你必须能够获得这一切。可能有上千人一起合作才能制造一只铅笔。一些南美的人哇石墨矿产,一些马来西亚的人在橡胶树上取得橡胶,可能还有美国俄勒冈州的人可能帮忙伐木。
"These thousands of people don't know one another. They speak different languages. They come from different religions. They might hate one another if they met. What is it that enabled them to cooperate together?
成千上万的人互相不认识,讲不同的语言,来自不同的地区,甚至相互憎恨对方,但什么令到他们在一起合作?
"The answer is the existence of a market.
这个答案就是市场
"The simple answer is the people in South America were led to dig out the graphite because somebody was willing to pay them. They didn't have to know who was paying them; they didn't have to know what it was going to be used for. All they had to know was somebody was going to pay them.
南美的人愿意挖石墨矿因为有人愿意购买它。他们不知道谁付钱,也不知道用来干什么,他们只知道有人愿意购买它。
"What brought all these people together was an enormously complex structure of prices – the price of graphite, the price of lumber, the price of rubber, the wages paid to the laborer, and so on. It's a marvelous example of how you can get a complex structure of cooperation and coordination which no individual planned.
所有买的东西在一起构成一个及其庞大的复杂的结构,而这个结构的核心就是价格, 石墨的价格,木材的价格,橡胶的价格,劳动力的价格,等等。制造铅笔是一个说明市场运行的一个令人惊叹的例子,所有这些这些东西能够不需要任何独立的计划组合在一起。
"There was nobody who sat in a central office and sent an order out to Malaysia: 'Produce more rubber.' It was the market that coordinated all of this without anybody having to know all of the people involved."
没有人能够坐在一个中央办公室里面命令马来西亚人,生产多点橡胶。市场会在没有任何人指挥的情况下自动进行调整
———-
市场是不是令人惊异的伟大,大师就是大师,没有老师和我解释市场经济是这样一个伟大的东西,我们的媒体也多是说“我们的社会主义市场经济建设取得了令人瞩目的成就”等假大空的话,一堆的经济术语,金融术语,抄股票的更多术语,他们都真得懂经济么?我很是怀疑。
最近貌似有很多短信,号召大家不要去家乐福购物,通过抵制法货来抵制法国人欺负我国运动员的行径。我从来不抵制任何货物,包括日货,韩货,美货以及现在的法货。用过的相机都是日货,用的本子还有美货。法货貌似没用过,不过上周好像刚去了趟南方那边的家乐福。至于棒子货,基本没用过,中看不中用的玩意。
不知道以使用什么货来区分是否爱国,是否就是中国式的“普世价值”?
如果要抵制什么货的话,我只抵制蠢货。
世界上最难分辨的两幅画:经科学家的研究,%90以上人的智商都差不多,请大家单击下面的网站认真的看一分钟,看看有什么不同的地方,发现有两处不同的地方,那个人的智商比一般人的高%5点,最好的测试方法,大家不容错过.我认真看了两分钟,才看出一好处不相同的地方,郁闷啊!大家试试,超级精彩!!!
对于大型分子数据库来说,结构搜索一直是个难题。动辄上千万条的分子数据,对检索速度的要求必然很高。这里我将结构搜索分成三种:第一种是结构精确匹配,第二种是子结构匹配,第三种是相似结构匹配。
对于精确匹配,没有任何难的地方,查找到完全一致的SMILES表示即可。难的地方就在子结构检索和相似结构检索上。十几年间的化学信息学系统一直在尝试解决这个问题,由此也提出了很多的方法,这些方法经过逐步的演化形成了现在的分子指纹算法。
分子指纹是对分子结构特征的一种非常抽象的表示,在我们开始讨论分子指纹之前,先从化学信息系统的远古时代开始,了解子结构检索和相似结构检索是如何进行的。
很多子结构检索算法都需要对大量的分子进行重复比对,一般来说,都是直接将分子结构以某种编码形式保存在数据库中,但是这样的效率是很低的,当数据库中的数据量逐渐增加时,这种方式会带来相当难解决的性能瓶颈。后来就有人提出,可否对数据库中的结构数据进行预处理,以提高搜索进行的速度。尽管预先处理也是需要消耗性能的,但是预先处理只需要进行一次,会给检索性能的提升带来巨大的回报。
举例来说,我们要检索所有包含乙苯
结构的分子,首先可以确定它的分子式C8H10,这样,类似C2H6的小分子就可以完全排除掉了,我们只需要检索比C8H10大的分子即可。由此可以看出一点,排除掉某种分子的成本确实要比确定某种分子是其子结构所要的成本低的多。也就是说,如果可以避免进行“正选”,而尽量多地运用“排除”手段,系统的检索效率则会高很多。除了分子式之外,相对分子质量、不饱和度也都可以用作判断依据。由此以来,搜索范围可以大大缩小。
但是,这还仅仅是缩小了搜索范围,并没有解决分子近似的算法问题。
为了解决这个问题,“结构密钥”(Structural key)的概念首先被提出了。结构密钥通常用二进制串表示,二进制串中的每一位只能是0或者1。如果某个位是1,就说明这个位所代表的结构特征存在,如果是0,就表示这个位所代表的结构特征不存在。这样,在比对两个分子结构时,只需要比对其结构密钥即可。不过,要确定一个结构密钥,首先就需要定义结构特征以及结构特征所对应的二进制位。一般来说,这种定义是可以任意进行的,定义的方式也有很多种。举例来说,是否有N原子、是否有环状结构、是否有羟基、是否有羰基这些都可以作为定义结构密钥的依据。确定了结构密钥的定义之后,就可以按照定义为数据库中的所有分子生成其结构密钥了。尽管为数据库中的所有分子生成结构密钥的过程可能很长,但是这样做的效果是很显著的。
在结构密钥之后,分子结构检索随着分子指纹的出现又发生了一次大的变革。分子指纹是比结构密钥更抽象的一个概念,上面我们所说的结构密钥缺少通用性。对于结构密钥的定义会很大程度上影响到检索速度。一个良好的定义可以显著提高搜索速度,反之低质量的定义会大大降低检索的命中率。结构密钥的定义也依赖于查询的用途,研究石化方向的专家所定义的特征可能对研究药物的专家毫无用处。
分子指纹不再使用预先定义的格式。分子指纹和结构密钥一样也是一个二进制串,但是二进制串的每一位都没有确定的含义。就好像你人的指纹一样,每个人的指纹都是不一样的,但是每一处指纹特征又都没有任何含义。
结构密钥的格式是预先定义的,而分子指纹是通过分子本身生成的。分子指纹到底是怎么生成的,且听下回分解。
(此文太监了,最近太忙,如果有人想接着看欢迎来信提醒我接着写下去)
来自Rich Apodaca的Blog,简单翻译了一下,注明来源后欢迎转载。
PubChem- 免费化学数据库的始祖。可以通过多种查询条件搜索超过八百万种化合物。虽然有部分PubChem记录通过MeSH链接到了原始文献中,但是大多数记录并没有链接到相应的原始文献。 不过PubChem的初衷并不是文献检索。PubChem很大程度上参与到了世界最大的在线分子数据表集合中,本列表种的其他数据库都将他们的条目交叉引用到了PubChem中。PubChem的整个数据库都可以通过FTP下载。PubChem是CAS Registry所碰到的真正对手。
ZINC- 一个免费的商业数据库,包括虚拟筛选可用的化合物。可以通过结构、IUPAC名称、InChl和一系列运算出的属性,检索超过460万种化合物。对于非商业用途,你可以下载全部或者部分ZINC数据库在本地使用。
eMolecules-Google分子数据。通过简单的接口和超快的搜索引擎,eMolecules 通过其他信息来源补充了PubChem的数据。尽管eMolecules的重点是可以通过商业手段获得的数据,但是只有部分分子可以指向到供应商的在线目录中。eMolecules种的大多数条目都是链接到PubChem中的,因此我觉得现在eMolecules 的用处并不是很大。如果你想起了一个叫做"Chmoogle"的东西,那其实就是eMolecules。(别把它和Google弄混了)。
CHEBI- 一个免费的小分子化合物在线词典。CHEBI的数据主要来自两个来源: Integrated Relational Enzyme Database of the EBIh'ythe Kyoto Encyclopedia of Genes and Genomes。 你可以找出分子在什么情况下和哪些蛋白质有关。该数据库同时也提供与CAS注册号、Beilstein注册号和Gmelin注册号的交叉链接。
NIST Chemistry WebBook- 提供大多数有机化合物的物理数据 (包括热化学、 热物理学和热力学信息) 。可以通过分子式、结构、CAS号和IUPAC名称搜索。
BioCyc- 搜集了包含酶基质、酶产品、酶抑制剂、酶激活剂在内的3500种化合物。在接受一个授权协议的情况下,整个数据库都可以按照Chemical Markup Language格式免费下载。
ChemExper- 查找你所需要的化学品的供应商。可以通过结构、名称、分子式和CAS号进行检索。找到化合物之后,你可以向一个或者多个供应商进行询价。我没有实际尝试过,不过听起来主义不错。
Compendium of Pesticide Common Names- 超过1100常用农药。化合物是需要通过浏览索引页面而不能通过搜索查找。 Each entry lists, among other pieces of information, a chemical structure and sub-classifications (repellents, antifeedants, synergists, etc.).
NMRShiftDB- 提供有机分子结构及其核磁共振( NMR )的化学位移。nmrshiftdb含有超过22000有机化合物的化学位移数据和19000个谱图。你可以通过结构、化学位移和核(nucleus?what?)检索记录。 NMRShiftDB完全开放,它可以通过编程方式访问,并且运行在线数据库的软件源代码也可以免费下载。 人用户可以提交自己的谱图或者位移数据,以供别人审阅或者列入数据库中。
Chemical Structure Lookup Service (CSLS)- 一个化学结构目录。如果你用过Metacrawler, 那么你应该了解SCLS的原理,即从多个免费化学数据库种查找数据。你可以通过IUPAC名称、InChI、结构、SMILES和一系列的分子特征查找超过两千七百万种化合物。你的搜索结构种会包括含有你所要搜索的分子的数据库的链接。用户界面不止是不好看的问题了,简直是太烂了。如果你不在意用户界面的话,CSLS可能是这个列表中最有用的服务之一。
DrugBank- Combines detailed drug data with comprehensive drug target information. Search over 4,300 drugs by trade name, SMILES, and InChI. Each record contains information on target of action, therapeutic indication, medications the drug is an ingredient of, and trade names. Searches can be limited to only approved drugs or experimental drugs. Both the concept and interface to this service are well thought-out. Note: this service was unavailable as of Jan 19, 2007
Wikipedia- Wikipedia? Yes, Wikipedia. Wikipedia offers several kinds of chemical information produced by a knowledgeable, all-volunteer army. Looking for information on organic compounds? Consider this datasheet on morphine as an example. For those interested in synthesis, Wikipedia is increasingly being used to collaboratively author short reviews on the topic. Search capabilities are currently limited to text and don't appear to work with IUPAC names or CAS numbers. Where this quintessential disruptive technology and its offspring end up taking chemical publishing is unclear, but the ride will be spectacular.
ChemDB- A chemical database is but one of the services offered by this site. Search over 4.1 million compounds by structure, or various calculated properties. ChemDB also offers a variety of free online cheminformatics tools such as Babel file format conversion, SMILES depict, and molecular property calculation. Read more about ChemDB in this Bioinformatics paper.
ChemBank- Structure search over 36,000 original biological assays of small molecules collected by Harvard's Institute of Chemistry and Cell Biology (ICCB). Many of the data contained in ChemBank have never been published, making this database particularly valuable.
National Institute of Allergy and Infectious Diseases Database- Structure search hundreds of thousands of screening datapoints collected by the NIAID in its HIV, Opportunistic Infection, and TB programs.
National Toxicology Program- Seach by name for compounds listed in the NTP database. Returns detailed internal reports and links to the primary literature.
NIST Chemical Kinetics Database- Search by reagent or product name or formula for gas phase rate constants collected from the primary literature.
Computational Chemstry Comparison and Benchmark Database- Search by formula for over 600 gas phase atom and molecule physical chemistry data obtained experimentally and by computation.
IUPAC-NIST Solubility Data Series- Search by name or CAS number through over 67,000 solubility measurements. Data were comprehensively compiled from over 1,800 references in primary literature.
SOLV-DB- Search over 200 common solvents by name, CAS number, or chemical formula physical. Available data include boiling point, water solubility, viscosity, octanol-water partition constant, flash point, and a variety of other properties.
NIMH Pyschoactive Drug Screening Program Ki Database- Search over 44,000 Ki determinations culled from the literature. Although this database appears to have no structure search capability, this is listed as a "Future Enhancement". This is a perfect example of a very useful service that could do with a major user interface redesign. There also appears to be another (defunct) service by the same name, but adifferent URL.
Kyoto Encyclopedia of Genes and Genomes (KEGG)- A Japanese counterpart to PubChem/PubMed. One of the most interesting services on this list, KEGG consists of four interconnected databases: KEGG Pathway; KEGG genes; KEGG Brite; and KEGG Ligand. KEGG Ligand contains over 14,000 compounds searchable by name, and crosslinked to over 45,000 biological pathways. The KEGG Ligand database can be searched by structure through KegDraw, a 2-D structure editor written in Java. With some minor configuration on my Linux system, I was able to perform some basic substructure searches using KegDraw. Your mileage may vary. A nice overview of KEGG is available in a recent article. The contents of KEGG can be downloaded by anonymous ftp for academic use.
BRENDA- Search over 40,000 structures as substrates, products, cofactors, or inhibitors for enzymes. Although my search was able to find compounds by substructure, I was not able to view any links to the results. Your mileage may vary.
Biochemical Pathways Database- Structure search over 1,100 small molecules as participants in biochemical pathways. A potentially useful service, but currently too slow to fully evaluate. A structure search for naphthalene hung for five minutes before I terminated it without success.
ChemMine- Search by structure for compounds collected from a variety of open databases. View assay results in annotated biological experiments. I find the layout and organization of this service annoyingly confusing, but the underlying information appears to be useful nevertheless. Behind the scenes, ChemMine uses two open source cheminformatics libraries: Open Babel and JOELib. For a more detailed view of ChemMine, see the recent article.
Organic Syntheses- Search by structure through the entire contents of synthetic organic chemistry's flagship resource. Substructure search requires Chime, so if you run Linux, or for some other reason can't install the plugin, you'll be out of luck.
WebReactions- Structure search organic reactions in four databases containing a total of over 391,000 reactions. Each reaction hit is linked to the primary literature through a bibliographical reference. Although the interface takes some getting used to, WebReactions may make a worthy companion to the traditional SciFinder search.
Spectral Database for Organic Compounds (SDBS)- Search by name, molecular formula, molecular weight range, or CAS number through over 14,000 full1H NMR spectra, 12,000 full 13C spectra, and 50,000 full FT-IR spectra collected from over 32,000 compounds.
BindingDB- Structure search over 24,000 Ki and IC50 measurements from over 10,000 molecules. Data is collected from, and cross-referenced to, the primary literature. I was unable to determine how to submit a substructure search through the Marvin applet on my Linux system (there is no "Search" button, for example). A text search for "naphthalene", for example, showed some impressive potential for this database. Anyone can currently contribute to BindingDB, one of the few databases on this list to have such a policy.
PDBBind- Browse over 2,700 complexes of small molecules ligands with proteins found in the Protein Databank. Structure searching requires a license. 3-D rendering comes courtesy of the ever-popular Jmol applet.
AffinDB- Search affinity data for complexes found in the Protein Databank. Affinity data are cross-linked to the primary literature through PubMed. Small molecule searching is limited to IUPAC names provided in a pull-down menu. By registering, users can upload affinity data themselves. AffinDB is just one example of what might be possible as chemistry databases begin to combine multiple sources of data into easy-to-use packages.
ChemRefer- It doesn't get any simpler. Type in your keywords and get links to the matching full-text PDFs from the primary literature. As mentioned before, the legality of some of ChemRefer's holdings, for example its articles from ACS journals, is not clear. But as more chemistry journals go Open Access, look to services like ChemRefer to play an increasing role in the way scientists navigate the primary literature.