$Date: 2003/06/23 05:29:07 $
Put simply, Open Babel is a free, open-source version of the Babel chemistry file translation program. OpenBabel is a project designed to pick up where Babel left off, as a cross-platform program and library designed to interconvert between many file formats used in molecular modeling and computational chemistry.
Open Babel includes two components, a command-line utility and a C++ library. The command-line utility is intended to be used as a replacement for the original babel program, to translate between various chemical file formats. The C++ library includes all of the file-translation code as well as a wide variety of utilities to foster development of other open source chemistry software.
Your choice. It's probably easier to call it Open Babel since that's what it is--an open version of Babel. But if you like one-word, mixed-case project names, then go for OpenBabel. In that case, the space is just too small to be printed.
The original Babel was written by Pat Walters and Matt Stahl, based on the "convert" program by Ajay Shah, and is still a remarkable application. Both Pat and Matt have moved on to other work, but the original Babel is hosted by OpenEye Scientific Software at the new Babel homepage among other places.
Along the way, the two original authors started a rewrite of Babel into C++ they called OBabel, which was never really publicly released. But Matt used some of these ideas in OELib, which was generously released under the GNU GPL by his employer, OpenEye Software, and some version of this OELib is still available from the OELib homepage.
OpenEye decided that for their purposes, OELib needed a rewrite, but this would be closed-source to include some advanced algorithms. So the GPL'ed version of OELib would not be maintained. Instead, the free version of OELib was renamed to "Open Babel" and is still maintained as this project with the blessing of Matt and other contributors.
As of this writing, the latest version is "1.100" which denotes that we're not quite at version 2.0.0 yet. We're close, though.
The file formats currently supported are some of the more common file formats and, admittedly, those we use in our work. If you'd like to see other file formats added, we need one of:
The latter obviously is the easiest with text file formats. Binary files take some time to reverse engineer without documentation or working code. Also consider pointing developers to this FAQ and the "What's in it for me?" section.
The biggest missing feature from Babel is deriving bond types for QM files. The Babel code was a mishmash and didn't always did a good job, but it was good at lying. There are better algorithms now, but they're not fully implemented yet. Right now (version 1.100) it will generally do what it can, but it sometimes gets things wrong. In particular, it needs a pass to detect aromatic rings. If you find molecules it mangles, please let us know so we can fix the bugs!
It's an open project, so if features are suggested or donated, they'll be considered as much as anything else on the drawing board. Some things are pretty clear.
See the project page for more details.
See the official Roadmap page.
If your product is closed-source or otherwise incompatible with the GPL, you cannot link directly to the code library. You can, however, distribute Open Babel in unmodified form with your products to use the command-line interface. If you decide to distribute binaries, you should either offer users the source if they want, or point them to the Open Babel website.
What's not to like with this deal? You can have Open Babel translate foreign file formats for you and can point users at the website for distribution. You don't need to write tons of code for all these formats and bug reports can be passed back to us.
Of course, there's one catch. You'll most likely need to add feature-rich support for your file formats. So if you contribute a small amount of code under the GPL to read/write your files, everything else is handled by Open Babel.
It's a win-win for everyone. The community benefits by having feature-rich translation code and open file formats. Your company and its programs benefit by the ability to read just about every format imaginable. Users benefit by using the programs they need for the tasks they need.
If your an academic developer, you certainly should read the previous answer too. It takes little work on your part to interface with Open Babel and you get a lot in return.
But even if you're just an academic user, there's a lot of reasons to contribute. Most of us deal with a variety of file formats in our work. So it's useful to translate these cleanly. If a format isn't currently supported by Open Babel, see question 2.1 above. If you find bugs please report them. Since it's open source, you can patch the code yourself, recompile and have the problem fixed very quickly.
If you're inclined to write code, the GPL is an excellent option for the acadmic. You're the original copyright holder, so you can do whatever you want with the code, in addition to selling it. But if you've also licensed it under the GPL, no one can distribute it commercially without your agreement. Fellow acadmics can use it directly, learn from it, improve it and contribute back to you. Isn't that why many of us went into science?
Once licensed under the GPL, the code must remain free to interested parties. If someone modifies it, that code must still remain under the GPL, free for all.
Certainly the answers for closed-source software and academics also apply for you. Beyond that, if your code is compatible with the GPL, you can directly use Open Babel and all of the API. This is already happening with the Ghemical molecular editor, available under the GPL. There's a lot of code in Open Babel beyond file translation and more to come. Why reinvent the wheel?
The short answer is that OpenEye Scientific Software employs Matt Stahl, one of the authors of the original Babel. They released a library called OELib under the GPL that did many things that Babel did. Later they decided to release the next version of OELib as a closed-source project--their choice for their code. We took the version of OELib still under GPL and went from there.
If you'd like to see Open Babel licensed differently, we'd suggest asking OpenEye if they'd consider releasing the old code under a new license, e.g. the LGPL. At that point, we'd consider whether Open Babel should be relicensed or not. Obviously all copyright holders must agree to the new license.
Open Babel is hosted by: