Tuesday, December 19, 2006

Traditionally, a large portion of the industry has relied on workstations from SGI, and OpenEye has supported a wide variety of platforms on which their customers deploy, including Windows, and multiple flavors of Linux and UNIX.


But recently, OpenEye has begun to include Mac OS X as a solution in their multi-platform development environment, and sees Apple as an increasingly attractive solution for their end users.

The decision to deploy Apple solutions is becoming more and more compelling in the pharmaceutical industry. Mac OS X with its UNIX base offers a growing, stable platform for users and developers to conduct their research. And Macintosh computers are an increasingly desirable option with the Intel Core Duo processors and top-notch 3D graphics support.

A Look at Multi-Platform Development in Mac OS X

While OpenEye has a strong product line, filling each niche of large-scale molecular modeling, they don't sell shrink-wrapped products. They offer highly specialized tools that are often developed in concert with customers who have very specific needs. The results have been outstanding, so as the product line grows, more and more customers are coming to OpenEye either simply to buy “finished” products or else to purchase toolkits to write their own in-house software.

A rapid development cycle and multi-platform toolkits dictate the need for a development environment that is efficient and portable. Compile times have become a key component to the efficiency of OpenEye's developers, so they were thrilled when they saw huge performance gains on Intel-based Macs.

Bob Tolbert, PhD and vice president of development at OpenEye Scientific Software, explains, “We have a huge C++ code base that is very template heavy. It had always taken a long time to compile, but Apple is the fastest compiler platform we have. Compiling something in 10 minutes versus 50 minutes makes a huge difference to us. We can use multiple cores to build pieces in parallel, and it is phenomenally faster than a high-end Windows PC. All of our developers want it because they can recompile and crank through—they don't sit and wait.”

The increased compilation speed, however, would mean little to OpenEye if Mac OS X wasn’t a robust multi-platform development environment. Their Tier 1 and Tier 2 platforms—which are defined by the availability of all current OpenEye software—include Microsoft Windows, Linux, and multiple flavors of UNIX, as well as Mac OS X.

To write clean code that can easily be compiled in each of these environments, OpenEye avoids using IDEs, sticking to traditional UNIX tools such as GCC and make. Their UNIX-brewed developers tend to prefer vi and Emacs for writing and editing code. Mac OS X, being based on UNIX, has each of these tools built in.

Tolbert says, “You can just drop into Mac OS X and you have Emacs and vi, you can build with make, you don't have to do anything special. You have very little chance of building code here that won't work somewhere else. If you sit in Windows for too long, you can write code that won't build anywhere else; on a Mac, you know that if you move it somewhere else, it is going to compile.”

Optimization Tools on a Stable UNIX Platform

If the availability of standard UNIX development tools and significant performance gains at compilation time hadn't already convinced OpenEye that Mac OS X was the premier cross-platform development environment, their experience with an Apple utility called Shark would certainly have pushed them over the edge. Shark is a profiling utility that is part of the CHUD (Computer Hardware Understanding Developer) tools, that help developers optimize code in Mac OS X. Many of the benefits of Shark will be seen regardless of what platform the code originated from or what platform the code is ported to.

Tolbert explains, “We've been really happy with the performance tuning we get with Shark, Apple's tool for optimization and profiling. When we get to the end and want to optimize an application, we run through Shark and every one of our command-line applications has gained a noticeable and measurable speed increase.”

Tolbert says his team currently works on multiple platforms, and uses a number of Macs along with Linux and other machines.

He adds, “You can do similar things with a command-line profiler in Linux, but it's much harder to dig through the output.”

Mac OS X 10.4 Tiger has ushered in some welcome changes for the developers at OpenEye as well. On Intel-based Macs, OpenEye is using GCC 4.0, which ships with Xcode 2.x. They have also found fixes and improvements in OpenGL—crucial for 3D modelling—that caused them problems on other platforms when users upgrade graphics drivers. OpenEye uses Qt in conjunction with OpenGL to further abstract the development environment from the runtime platform.

In fact, a packaged, supported 3D graphics solution has been difficult to find outside of SGI. Users who opt for hardware 3D stereo graphics in a Linux or Windows environment often find themselves dealing with driver issues that may or may not be solvable.

Tolbert explains, “You need a stable, set platform that you know works, as opposed to buying the machines from vendor A and special ordering the 3D card from vendor B and putting it together yourself to get it to work.”

An OpenEye View of Software Development

OpenEye doesn't currently cater to the novice developer or novice modeler. They target the key players at major pharmaceutical companies who both write and run the applications that make modern day drug discovery possible. In the pharmaceutical industry, successful drug discovery is highly correlated to the ability to logically pare down massive amounts of data into digestible subsets before real world experiments take place. This process is called virtual screening. To do this efficiently, you need the right software and the right hardware.

OpenEye's products break down into three broad categories: First, the computational chemistry software that is mostly command-line based and runs well across a cluster. Second, a large and growing set of toolkits written in C++ with Java and Python wrappers, making core components easily accessible to a wide variety of developers. Third, visualization tools and front ends, which scientists use to interact with their data.

Some of OpenEye's most popular products include OMEGA, ROCS, OEChem, and VIDA. OMEGA and ROCS, used in tandem, fit into the first category. OMEGA prepares a database to search and generate multiple 3D conformations for each set of molecules, while ROCS is a small molecule comparison tool that helps guide decisions.

OEChem is an extremely robust chemistry informatics toolkit written in C++, which allows pharmaceutical companies to leverage a solid base for writing their own proprietary applications.

VIDA is OpenEye's graphical interface that is used to “visualize, manage, and manipulate large sets of molecular information.” It is used by modelers with a set of results to share with a chemist, or teams of chemists. 3D visualization is core to the discovery process so hardware stereographic displays are the norm for the industry. Conference rooms with 3D goggles become virtual screening areas where scientists can almost literally climb around inside each molecule to get a better understanding of their results.

The Mac Pro is a premier workstation graphics platform with the optional inclusion of the NVIDIA Quadro FX 4500 graphics card. An integrated stereo 3D port makes it an ideal choice for the type of 3D visualization that is critical to running applications like VIDA.

Seeing Mac in their Future

Multi-platform development is important not just because companies use different platforms; mixed IT environments are becoming increasingly common, because of individual users shifting to different platforms. Employees often lead the shift to Mac OS X because they need the power of a UNIX-based operating system that provides an enterprise-class desktop, and includes the convenience and power of Microsoft Word, Excel and PowerPoint, all in one package. And you only get that with Mac OS X.

Mac OS X allows users to have the best of both worlds. As the pharmaceutical industry changes, the needs of developers and users are changing with it. As the big pharmaceutical companies are shifting away from older platforms, Apple continues to roll out increasingly powerful Intel-based systems running Mac OS X that fit their needs.