A Language for the Exchange of Chemical Information using Web Technology:
No More File Format Exchangers!.
Abstract: The CEX language will deliver the interoperability between computational chemistry programs that is necessary to accomplish complex task without file format changes. This language is Web enabled and will pass chemical information from one Web site to another, allowing for a complex calculation to be carried out on any server around the world. This will allow scientists world-wide to share resources and code without having to ship the code to each site. This is not another file format or universal translator, it is an enabling technology that creates a data stream that can be passed to and from applications.
CEX (Chemical EXchange) is a protocol for exchange of chemical information between computer processes either within a machine or over the network. The initial focus is on the development of an object-based protocol which provides communication between chemistry oriented applications on Unix, Macintosh and Windows platforms. The CEX concept was born out of the frustration of not being able to pass chemical information from one program to another without lousy file conversion. The CEX protocol will allow a scientist to string applications together by passing information along a data stream. The essential information from one application is put on a stream as an abstract object and reliably delivered to another in the same form. The CEX API provides transparent access to the information on both ends. This allows for the transparent interoperability of the applications. Code to support several critical object classes has been developed and is available for development. Several applications have been ported to this protocol. The feasibility of the concept has been demonstrated by stringing together a series of chemical applications to form a complex operation, e.g., obtain a crystal structure, deduce hybridization and bonding from geometry, add hydrogens and display:
Examples such as: brookfind | pdb2cex | bondage | hydrogenate | rasmol
To date, several file conversions, bondage, dgeom, clustering, rasmol, grasp, batchmin, ChemDraw and others have been adapted to use this language.
A data language offers the ulitmate flexibility. It can be used on any OS and both locally and over the internet. In order for the language to be of value in needs to be extensible and easy to use. CEX is extensibile and has several objects within the dictionary already, Molecule (DW), Surface (AN), Camera (CH), and Instructions (RS). This language is used like an API and an example for the API to create an atom is: (cx_create_atom) . The parser technology allows for the data to be placed in any location in the data string, there is no defined data format, and the parser knows what to get based on the defined data types. This reduces the front end data processing needs of any program saving several hundred lines of code. After the program has accomplished the task, it places the data onto the data stream and the stream is off to its next task. Smarts have been placed into the language for directing the data to its next destination. Essentially, this allows one to pipe code together wherever the code is around the world. (See Examples )
The above mention band of idealist and others get together about once a quarter for a hack at the code. The code is developed mostly by DW and RS and extended by many others. To date, several file conversions, bondage, dgeom, clustering, rasmol, grasp, batchmin, and others have been adapted to use this language.
The next phase in the development plan is to continue with individual contributions, but move the care and feeding to an academic group. The CEX group has agreed with Tom Ferrin and Conrad Huang at UCSF for the long term care for CEX, and the funding is being provided by corporations. Interest in this approach is building daily and is presently supported by groups at Daylight, Oxford Molecular, Abbott, Chiron, CGL at UCSF, Columbia, CambridgeSoft, GlaxoWellcome, and would like more support.
The next get together will be in San Francisco at UCSF in Nov. If you are interested in the next meeting contact fbrown@oxmol.com Frank Brown, Oxford Molecular.