Downloaded from Ftp://Ftp.Ncbi.Nlm.Nih.Gov/Pubchem/ Helps That the Sketcher Can Be Operated Without Resorting CACTVS
Total Page:16
File Type:pdf, Size:1020Kb
Journal of Cheminformatics Software Open Access The PubChem chemical structure sketcher Wolf D Ihlenfeldt1, Evan E Bolton2 and Stephen H Bryant*2 Address: 1Xemistry GmbH, Hainholzweg 11, D-61462 Königstein, Germany and 2National Center for Biotechnology Information, National Library of Medicine, National Institutes of Health, Department of Health and Human Services, 8600 Rockville Pike, Bethesda, MD 20894, USA Email: Wolf D Ihlenfeldt - [email protected]; Evan E Bolton - [email protected]; Stephen H Bryant* - [email protected] * Corresponding author Published: 17 December 2009 Received: 8 October 2009 Accepted: 17 December 2009 Journal of Cheminformatics 2009, 1:20 doi:10.1186/1758-2946-1-20 This article is available from: http://www.jcheminf.com/content/1/1/20 © 2009 Ihlenfeldt et al; licensee BioMed Central Ltd. This is an Open Access article distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/by/2.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. Abstract PubChem is an important public, Web-based information source for chemical and bioactivity information. In order to provide convenient structure search methods on compounds stored in this database, one mandatory component is a Web-based drawing tool for interactive sketching of chemical query structures. Web-enabled chemical structure sketchers are not new, being in existence for years; however, solutions available rely on complex technology like Java applets or platform-dependent plug-ins. Due to general policy and support incident rate considerations, Java- based or platform-specific sketchers cannot be deployed as a part of public NCBI Web services. Our solution: a chemical structure sketching tool based exclusively on CGI server processing, client-side JavaScript functions, and image sequence streaming. The PubChem structure editor does not require the presence of any specific runtime support libraries or browser configurations on the client. It is completely platform-independent and verified to work on all major Web browsers, including older ones without support for Web2.0 JavaScript objects. Introduction NCBI Web services. For these reasons, NCBI Web pages The National Center for Biotechnology Information traditionally allow only the use of basic HTML and JavaS- (NCBI) http://www.ncbi.nlm.nih.gov is widely known for cript on the client, CGI/FCGI processes on the server, and its cluster of literature, biology, genomics, and chemistry nothing more. databases which are freely accessible on the Web [1]. These databases register many tens of millions of hits per This approach has not been a severe limitation for the day from millions of users accessing the site via a broad operation of the classic collection of databases served by range of Web browsers and operating system platforms. NCBI. However, with the addition of the PubChem[2] From experience gained in more than a decade of opera- suite of databases, an obvious problem arose. Chemical tion, NCBI has developed a set of principles concerning structure databases cannot be readily queried by structure what kind of client-side technology can be deployed as a in a reasonable fashion using purely textual input and part of its Web services. These help to prevent access or standard HTML form elements. Users of chemical struc- support issues, specifically those pertaining to configura- ture databases demand the capability to search by full- tion or installation of the user's Internet access tools. structure or substructure, with a graphical rendition of the Therefore, any technology which cannot be expected to query structure as input. Fragment name search, externally work reliably with a standard client browser installation generated and pasted SMILES/SMARTS[3]strings, or right out of the box, typically cannot be used in public upload of query files drawn with stand-alone chemical Page 1 of 9 (page number not for citation purposes) Journal of Cheminformatics 2009, 1:20 http://www.jcheminf.com/content/1/1/20 structure drawing programs are awkward procedures and structure editor onto a server CGI, and to send a dynami- do not yield a satisfactory user experience. It became very cally generated sequence of images with the evolving clear that the PubChem structure search system needed a structure back to the client browser, but, unlike Daylight method to allow users to draw their query structure inter- Grins, the editor behaves much like an interactive applica- actively, in an integrated fashion, and without the need of tion with mouse movements being tracked as they are external software. being made, rather than requiring the user click on an image to register their action. This type of software config- This is, of course, not a new problem. Most of the structure uration would not require any applets or plug-ins on the databases on the Web already have graphical structure client and appeared to be feasible on any browser sup- input tools. These traditionally come in two styles: Java porting the display of images and basic JavaScript func- applets and browser plug-ins. A Java applet requires that tions the client browser has a functional Java virtual machine installed and correctly configured. While this may be a The WebME editor from Molinspiration, with a design condition easily satisfied by most browsers, there will very similar to the PubChem sketcher, was released after always be some fraction where an issue may crop up. For the PubChem sketcher had been publicly deployed for example, if only one in ten thousand of NCBI's two mil- several months. At the time of writing, it re-used functions lion world-wide users per day encounters and reports such of the portable JavaScript mouse event code originally an issue, two hundred user requests will ensue, distracting written by us for the PubChem Sketcher. This code re-use and diluting support capabilities. So, while there are quite is not problematic - the sketcher JavaScript components a number of capable Java-based structure editors such as are US Government Work in the public domain. We have JME[4], JChemPaint[5]http://sourceforge.net/projects/ been informed that the current version of this software is jchempaint/, JmolDraw[6], MCDL[7], SDA[8], or Mar- now relying on a different event catching mechanism. vin[9], the use of any of these for PubChem was not pos- sible. Relying on plug-ins such as the one from The bandwidth requirements for this model are not exces- ChemDraw[10], is even more problematic because plug- sive. Essentially, the client needs to capture and send ins are platform-dependent, and there are (to our knowl- mouse events on an image area (not more than a couple edge) no free chemical structure editor plug-ins which can of dozen bytes per second), and to receive a sequence of connect to arbitrary sites. images. Since typical chemical structure drawings consist mostly of a monochrome background, with sparse mono- A very recent trend are first attempts to implement chem- chrome lines and letters, these images were expected to ical structure sketchers purely based on advanced client- compress very well. They do not exceed a couple of kilo- side JavaScript functionality, without required server bytes for a reasonable-sized drawing area. Even with four interaction. One example for this approach is jsmoledi- or five image updates per second, the required receiver tor[11]. Disadvantages of this approach are that these bandwidth would thus not exceed some ten kilobytes per applications only work on very recent browser releases second. This poses certainly no problem for Internet and make necessary limitations in the feature set. For access via broadband and could be, after some throttling example, 2D-layout cleanup and import/export of various of the data stream, acceptable even for dial-up via tradi- chemical file formats typically involve a rather large code tional phone line or ISDN connections. It is comparable base to implement them. Sending a large amount of Java- to the bandwidth requirements of Internet radio or Script code to a browser client in a dynamic per-session telephony, and certainly far less than streaming video. A fashion is not currently feasible. Nevertheless, it is not segmentation of the drawing area into panels in order to unlikely that future Web sketchers will use more and more further reduce the amount of data sent to the client was JavaScript client-side intelligence and rely on server-side considered, but not deemed necessary after these initial functions only for more demanding computational tasks. calculations. Design Considerations The server responsible for the update of the images must Facing restrictions on the use of Java or platform-specific be able to process multiple events per second in order to solutions, we decided to go a completely new route in guarantee a satisfactory user experience. Users expect implementing a full featured, dynamically interactive dynamic feedback as it is provided in standard stand- Web-based structure editor. Like the approach pioneered alone structure editors, such as continuously updated by in internal CIBA project[12] and then also taken up, bond lines following the mouse cursor. Because of the according to one of the reviewers as a direct result of see- rapid sequence of events, the server CGI application has to ing the CIBA prototype, by Daylight Grins http:// be of the FastCGI (FCGI)[13] variant, as even the 100 ms www.daylight.com/daycgi/testgrins, we considered to start-up overhead of a classical CGI to process only an move all the chemical structure processing functions of a individual event would be prohibitive. Page 2 of 9 (page number not for citation purposes) Journal of Cheminformatics 2009, 1:20 http://www.jcheminf.com/content/1/1/20 The general rules for the deployment of Web applications the sketcher deployed at NCBI in order to integrate the at NCBI also require robustness and redundancy with fail- application into the PubChem environment.