New Projects - Fresh from the Labs
Unlike the majority of projects I review, this one actually is a set of multiple programs, presented as one suite. Whether you're into crystalline structures or designing chemical molecules, this may be the project you're looking for.
Available at the Web site are source tarballs for both the stable and development versions, and older versions are available in distro repositories. I ran into compiling problems with the development version, so I went with the stable version. Library requirements are quite extensive. According to the documentation, “to compile and use the GNOME Chemistry Utils, you need libglade-2, goffice, GtkGLExt, OpenBabel, BODR and their own dependencies. Everything except OpenBabel is available from the GNOME repository or one of its mirrors.”
I found a few more needed libraries, from both the configure and make stages. Although listed above, libgoffice, libopenbabel and libgtkglext1 all needed their development (-dev) packages installed to continue. Other needed packages were libgsf-1 and its -dev, libgcu0 and its -dbg, and chemical_mime_data.
Assuming you have the tarball, extract it and open a terminal in the new folder. From here, it's the standard fare of:
$ ./configure $ make
If your distro uses sudo:
$ sudo make install
If your distro uses root:
$ su # make install
As mentioned before, this is a suite of utilities rather than just one, so I take a brief look at each utility here. Below each utility's title, I provide the shell command to run the program. Unfortunately, partway through reviewing this suite, I managed to “break” several utilities, seemingly beyond repair. No matter which files I wiped, or how many re-installations I tried, I couldn't get the programs working again. Therefore, reviews will be brief (and possibly theoretical).
“GChemCalc is a simple calculator for chemists”, according to the About page. Below the main menu is a field for entering formulae, and GChemCalc will try to interpret the symbols you enter, either by atom or nickname. Once the formula is entered, its raw formula form will be written below, as well as its molecular weight. In the main field, the composition will be displayed according to each element along with its percentage of mass.
Click on the Isotopic Pattern tab, and you can see the monoisotopic mass as a direct number and also displayed in a line graph, which can be exported as an image.
I got far enough to realize that structures you build in this program can be used by most of the other programs. I'd just attempted to re-create an LSD molecule from the Wikipedia diagram, but the program crashed when I saved it as an .mdl file.
To start designing molecules, pick an object from the tool window, such as Add a four membered cycle, and you now can “draw” in the white workspace. Click and hold the mouse, and if you move the mouse around, the still-colored object will rotate until you release the mouse button, then the object will go black and stay in place. Although its operation seems somewhat arbitrary, moving forward and backward with the mouse will make the object larger or smaller (although you might need some perseverance to get it working).
As far as symbols and their placement, something like C or N will update its appropriate symbols as you continue to expand on the molecule, balancing itself out (as far as I can tell anyway, I'm not a chemist).
Once you have a structure you're happy with, you can open it in GChem3D, allowing you to see it as an actual 3-D structure, instead of bland 2-D lines.
Something I'd have liked to explore more was a button marked: “Export for Wikipedia publication”. I'm guessing that gets used a lot.
Unfortunately, I killed GChem3D when opening a bad file (the first of the casualties) and didn't get a chance to take it for a test run. The man file says: “gchem3d is a small chemical viewer application, which can show several chemical file formats”. From what I can tell from the other documentation, this takes place in an OpenGL 3-D window, letting you rotate and interact with each structure, as well as customize the visual atomic representation.
According to the man file, “gcrystal is a light model visualizer for crystal structures, based on the GNOME Chemistry Utils, that displays models of all sorts of crystal microscopic structures using OpenGL”. Although I didn't break this program, I couldn't make sense of it as a layman; however, the concept appears to be similar to that of GChem3D, but for viewing and editing crystalline forms rather than viewing molecular structures.
This gives you a periodic table of elements that has a great database of information available for each element. Click on an element, and you'll be given four tabs. The first, Main, consists of the element's name (which is also translated into several other languages on the right), the atomic number, atomic weight and electronic configuration. The other tabs give you the electronic properties, radii and thermodynamics.
According to the man file, “gspectrum is a simple spectrum visualizer. It is only able to display files in the JCAMP-DX format”. This was another casualty of mine, but it appears to display JCAMP spectra on a basic X-Y scale.
This was the unluckiest month I've had at LJ. I think I went through a dozen programs that wouldn't work before I came across these two projects. Although half the programs in this suite died on me (in a way I've never encountered before), I'm sure distro-stable versions will be a lot more reliable. Bad luck aside, the GNOME Chemistry Utils suite seems to provide viewing, access and editing to some file types that are used in important scientific circles. That alone is worth this project's perseverance.
John Knight is the New Projects columnist for Linux Journal.
- High-Availability Storage with HA-LVM
- Real-Time Rogue Wireless Access Point Detection with the Raspberry Pi
- Localhost DNS Cache
- DNSMasq, the Pint-Sized Super Dæmon!
- Days Between Dates: the Counting
- You're the Boss with UBOS
- The Usability of GNOME
- Linux for Astronomers
- PostgreSQL, the NoSQL Database
- February 2015 Issue of Linux Journal: Web Development