Olex2 is an open-source program for solving and refining crystal structures. I am not a crystallographer -- I have never (successfully= publication quality output) solved a crystal structure in my life -- and I have no idea whether Olex2 is an alternative or a complement to SHELX.
What I do now is that Olex2 is more of a point-and-click type program with a snazzy GUI, and so it would seem that the learning curve may be shallower than that of SHELX. However, as always you must always be cautious when doing science -- just because it's easy to do, doesn't mean that you're doing it right (I'm looking at you, biologists/physicians/social scientists using statistical software).
But maybe Olex2 makes getting started just easy enough that you can slowly work your way towards actually slowly get to the point where you know and understand what you are doing?
That's my hope anyway.
Quick note: there's no source code on the
http://www.olex2.org/ website. However, there's a sourceforge SVN repository:
http://sourceforge.net/projects/olex2/
Ideally I should show you how to download and compile and make a .deb package from the source, but sadly I haven't managed to figure it out (I'll add troubleshooting data to this post later). I even tried using the deb rules by
http://jupiter.plymouth.edu/~jsduncan/software/olex2.php (again, I might add troubleshooting data later)
Anyway, using the pre-built binaries is easy enough. Only the older version 1.1 seems to be working ok on Debian Wheezy.
Installation:
Note that I've generated a list of dependencies the lazy way -- by looking at the ldd output.
Anyway.
You'll need a raft of libraries, including libGL. You can get this from different sources depending on your graphics card (or lack thereof). Install libgl1-mesa-glx or libgl1-fglrx-glx (ati) or libgl1-nvidia-glx (nvidia). Then continue.
Again, note that you may want to change the versions of the packages below that you install. Anyway, here's a list that may work:
sudo apt-get install libpng3 libglu1-mesa libgtk2.0-0 libatk1.0-0 libgdk-pixbuf2.0-0 libpango1.0-0 libglib2.0-0 libfreetype6 libxrender1 libfontconfig1 libx11-6 libxext6 libpng12-0 libxinerama1 libxxf86vm1 libsm6 lib32z1 zlib1g libc6 libpython2.6 libstdc++6 libgcc1 libxcomposite1 libxdamage1 libxfixes3 libcairo2 libxi6 libxrandr2 libxcursor1 libffi5 libexpat1 libpcre3 libxcb1 libice6 libuuid1 libssl1.0.0 libpixman-1-0 libxcb-shm0 libxcb-render0 libselinux1 libxau6 libxdmcp6
Get the compiled binary:
cd ~
wget http://www.olex2.org/olex2-distro/1.1/olex2-linux64.zip
unzip olex2-linux64.zip
cd ~/olex2
sed -i 's./work/distro/olex2-new.$HOME/olex2.g' start
Create the file ~/.local/share/applications/olex2.desktop
[Desktop Entry]
Name=Olex2
GenericName=Olex2
Comment=Software for refinement of crystal structures
Exec=sh /home/verahill/olex2/start
Terminal=false
Type=Application
Categories=Science
Version=1.1
You're now ready to use Olex2. If you launch it by hand, use the
start script. Otherwise just launch is from your desktop.
Olex2 is very pretty, but feels a bit incomplete and buggy though (again, I don't know if these are real issues or not -- and I'm no expert). The issue is that the program seems to throw errors every now and again. For example when clicking on electron density map in the Solve window:
Map sigma 0.000
: CalcFourier {diff=}{r=0.1}{m=}
N4esdl25TInvalidArgumentExceptionE mask size at [xlib/fracmask.cpp(Init):22]
calcFourier -diff -r=0.1 -m
Problem with version 1.2:
Start Olex2. 1.2 takes a lot longer than 1.1 to start, but that's fine. Click on Tutorials. Click on Maps and Masks. CLick Next five times (the step where you actually create the mask). It triggers the following error:
An error occured running the function/macro next_demo_item
Traceback (most recent call last):
File "olexFunctions.py", line 480, in func
retVal = f(*args, **kwds)
File "/home/verahill/olex2_1.2/etc/scripts/Tutorials.py", line 138, in next_demo_item
self.run_demo_item()
File "/home/verahill/olex2_1.2/etc/scripts/Tutorials.py", line 318, in run_demo_item
flash_gui_control(control)
File "gui/tools/__init__.py", line 123, in flash_gui_control
OV.Refresh()
File "guiFunctions.py", line 61, in Refresh
olx.Refresh()
File "/home/verahill/.olex2/data/4f11cd71424c9e8484c8c4f91644e3b6/olx/__init__.py", line 1319, in Refresh
for arg in args:
RuntimeError: [repository/pyext.cpp(runOlexFunctionEx):354]: Function 'html.SetImage' failed: wrong html object name: 'IMG_H3-H3-MASKS'Key variable values:
args = ()
kwds = {}
al = []
Problems with compiling:
sudo apt-get install libwxgtk2.8-dev
mkdir ~/tmp/svn_co
cd ~/tmp/svn_co
svn checkout svn://svn.code.sf.net/p/olex2/code/branches/1.2 olex2-1.2
cd olex2-1.2/
make
/home/verahill/tmp/svn_co/olex2-1.2/gxlib/gxapp.cpp: In member function ‘esdl::TUndoData* gxlib::TGXApp::Name(gxlib::TXAtom&, const olxstr&, bool)’:
/home/verahill/tmp/svn_co/olex2-1.2/gxlib/gxapp.cpp:2003:73: error: no matching function for call to ‘gxlib::TGXApp::SynchroniseBonds(gxlib::TXAtomPList)’
/home/verahill/tmp/svn_co/olex2-1.2/gxlib/gxapp.cpp:2003:73: note: candidate is:
[..]
/home/verahill/tmp/svn_co/olex2-1.2/gxlib/gxapp.cpp: In member function ‘esdl::TUndoData* gxlib::TGXApp::Name(const olxstr&, const olxstr&, bool, bool)’:
/home/verahill/tmp/svn_co/olex2-1.2/gxlib/gxapp.cpp:2136:71: error: no matching function for call to ‘gxlib::TGXApp::SynchroniseBonds(gxlib::TXAtomPList)’
/home/verahill/tmp/svn_co/olex2-1.2/gxlib/gxapp.cpp:2136:71: note: candidate is:
[..[
make[1]: *** [/home/verahill/tmp/svn_co/olex2-1.2/obj/gxapp.s] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: *** [/home/verahill/tmp/svn_co/olex2-1.2/obj/gxmacro.s] Error 1
make[1]: Leaving directory `/home/verahill/tmp/svn_co/olex2-1.2'
make: *** [all] Error 2
There's a CMakeLists.txt file, but when doing e.g.
mkdir build_olex
cd build_olex/
cmake ../olex2-1.2
I get
CMake Error: Error in cmake code at
/home/verahill/tmp/svn_co/olex2-1.2/CMakeLists.txt:49:
Parse error. Expected a command name, got unquoted argument with text "${olex2_html_SRCS}".
-- Configuring incomplete, errors occurred!