The core-routines of the CS-Rosetta algorithms are implemented and released with the ROSETTA software suite.
To download ROSETTA you have to acquire a license which is free for academic users. Go here to get your license.
The user-credentials you obtained after acquiring the license will allow you to download from here:
Rosetta Download: Academic User Login
Rosetta Download: Commercial User Login
After successful login you will find different download options. For CS-Rosetta it is sufficient to download
Create a directory rosetta in your home directory or any other position of your choice and unpack the two tar-archives in this directory.
$ mkdir -p $HOME/rosetta $ cd $HOME/rosetta $ tar -xvzf ~/Downloads/rosetta3.4_database.tgz #replace ~/Downloads with the appropriate location for the downloaded files. $ tar -xvzf ~/Downloads/rosetta3.4_source.tgz $ find . -type d -print0 | xargs -0 chmod 755 #[Optional] make all directories accessible for all users
At this point you should have the two subdirectories
rosetta_database rosetta_source
If you acquired Rosetta 3.4 a patch is required to bring the software package onto a level that is compatible with the CS-Rosetta toolbox. For Rosetta 3.5 and higher (available approximately Fall 2012) such a patch will not be necessary.
To apply the patch download it from our download section and apply it as described below:
cd $HOME/rosetta $ patch -p1 < ~Downloads/patch_rosetta3.4_to_CSROSETTA3_VER_1.0.txt
You should now see text output as printed below and no error messages:
patching file rosetta_source/src/apps/public/boinc/minirosetta.cc patching file rosetta_source/src/basic/options/keys/antibody.OptionKeys.gen.hh patching file rosetta_source/src/basic/options/keys/chemical.OptionKeys.gen.hh patching file rosetta_source/src/basic/options/keys/cluster.OptionKeys.gen.hh ... patching file rosetta_source/src/utility/io/mpistream.ipp
Note that this patched version of Rosetta is reduced to the code necessary to run CS-Rosetta. A lot of Rosetta functionality that is rather unrelated to CS-Rosetta type applications, for instance, enzyme design, had to be removed to render the patched version compilable. We assume that this does not pose a problem to any user of CS-Rosetta. If other functionality is required, however, the user is advised to install a second copy of Rosetta 3.4 unpatched. As pointed out previously, the requirement to apply a patch will only be necessary for Release 3.4.
To compile the default version of ROSETTA go to the source directory and run the following command:
$ cd $HOME/rosetta/rosettta_source $ ./scons.py mode=release bin -j 8
You can specify the number of processors (here 8) to speed up compilation if you are working on a multi-core machine. The compilation should proceed without errors (but some warnings that can be ignored) and produce files in the subdirectory bin
scons: Reading SConscript files ... Running versioning script ... sh: git: command not found Done. (0.0 seconds) scons: done reading SConscript files. scons: Building targets ... .... < many lines starting with > g++ -o build/src/release/.... ... Install file: "build/src/release/linux/2.6/64/x86/gcc/4.4/minirosetta.default.linuxgccrelease" as "bin/minirosetta.default.linuxgccrelease" /usr/bin/ld: skipping incompatible /usr/lib/libm.so when searching for -lm /usr/bin/ld: skipping incompatible /usr/lib/libc.so when searching for -lc Install file: "build/src/release/linux/2.6/64/x86/gcc/4.4/fragment_picker.default.linuxgccrelease" as "bin/fragment_picker.default.linuxgccrelease" /usr/bin/ld: skipping incompatible /usr/lib/libm.so when searching for -lm /usr/bin/ld: skipping incompatible /usr/lib/libc.so when searching for -lc scons: done building targets.
Messages like this
/usr/bin/ld: skipping incompatible /usr/lib/libm.so when searching for -lm /usr/bin/ld: skipping incompatible /usr/lib/libc.so when searching for -lc
can be safely ignored.
RASREC uses the Message Passing Interface (MPI) standard to communicate between different processes. To enable RASREC simulations you thus have to compile with MPI support.
To compile and run with MPI support an appropriate library is required. These are usually pre-installed on HPC systems. Possible libraries are:
An easy check to find the installed MPI-Compiler uses the TAB-expansion of the shell:
$ mpi<TAB> mpic++ mpicc mpiCC mpicc-vt mpiCC-vt mpic++-vt mpicxx mpicxx-vt mpiexec mpif77 mpif77-vt mpif90 mpif90-vt mpirun
If nothing comes up you may have to load the respective library. On many systems this is organized via the module system. On our system this looks like this
$ module avail ----------------------------------------------- /cm/local/modulefiles ------------------------------------------------------ cluster-tools/5.2 cmd cmsh dot freeipmi/1.0.2 ipmitool/1.8.11 module-info use.own ----------------------------------------------- /cm/shared/modulefiles ---------------------------------------------------- acml/gcc/64/4.4.0 mpich/ge/open64/64/1.2.7 open64/4.2.5 acml/gcc/mp/64/4.4.0 bonnie++/1.96 openmpi/gcc/64/1.4.4 acml/gcc-int64/64/4.4.0 cmgui/5.2 openmpi/open64/64/1.4.4 acml/gcc-int64/mp/64/4.4.0 default-environment python/2.7 acml/open64/mp/64/4.4.0 fftw2/gcc/64/float/2.1.5 scalapack/gcc/64/1.8.0 acml/open64-int64/64/4.4.0 fftw2/open64/64/double/2.1.5 gotoblas/penryn/64/1.26 slurm/2.2.4 lapack/open64/64/3.3.0 netcdf/open64/64/4.1.1 blas/gcc/64/1 gcc/4.4.6 mpich/ge/gcc/64/1.2.7
The list shows all installed modules on your system and thus will vary substantially from system to system. We want to use the queuing system slurm, Python 2.7 and Open MPI, and thus issue the command
$ module load python/2.7 slurm openmpi/gcc/64
Note, that you can omit the version numbers and the system will load the default version.
It makes sense to add the load-command into your .bashrc or .cshrc file.
Now that we made sure that a compiler is installed we can issue the compilation command:
$ ./scons.py mode=release extras=mpi bin -j 8 scons: Reading SConscript files ... Running versioning script ... sh: git: command not found Done. (0.0 seconds) scons: done reading SConscript files. scons: Building targets ... mpiCC -o build/src/release/linux/2.6/64/x86/gcc/4.4/mpi/apps/public/AbinitioRelax.o -c -isystem external/boost_1_46_1/boost/ -isystem external/boost_1_46_1/boost/ -O3 -ffast-math -funroll-loops -finline-functions -s -Wno-unused-variable -finline-limit=487 -DNDEBUG -DUSEMPI -Isrc -Iexternal/include -Isrc/platform/linux/64/gcc/4.4 -Isrc/platform/linux/64/gcc -Isrc/platform/linux/64 -Isrc/platform/linux -Iexternal/boost_1_46_1 -Iexternal/dbio -I/usr/include -I/usr/local/include src/apps/public/AbinitioRelax.cc ...
Double check that lines now start with mpiCC and also contain the flag -DUSEMPI. However, you may also end up with an error that the compiler is not found:
scons: Reading SConscript files ... Running versioning script ... sh: git: command not found Done. (0.0 seconds) scons: done reading SConscript files. scons: Building targets ... mpiCC -o build/src/release/linux/2.6/64/x86/gcc/4.4/mpi/apps/public/AbinitioRelax.o -c -isystem external/boost_1_46_1/boost/ -isystem external/boost_1_46_1/boost/ -O3 -ffast-math -funroll-loops -finline-functions -s -Wno-unused-variable -finline-limit=487 -DNDEBUG -DUSEMPI -Isrc -Iexternal/include -Isrc/platform/linux/64/gcc/4.4 -Isrc/platform/linux/64/gcc -Isrc/platform/linux/64 -Isrc/platform/linux -Iexternal/boost_1_46_1 -Iexternal/dbio -I/usr/include -I/usr/local/include src/apps/public/AbinitioRelax.cc sh: mpiCC: command not found
The likely reason is that your systems uses a different name for the MPI compiler, such as mpicxx. To fix this problem we use the site.settings file of the build system. There are already a number of site.settings.XXX files, and maybe one of them works for you. By copying one of them to create the file site.settings you might already solve your problem:
cd $HOME/rosetta/rosetta_source/tools/build cp site.settings.langelab site.settings
If the provided files do not help, feel free to contact us and we are more than happy to help. If you have created a new site.settings file, please upload a copy on our ToolXchange or Forum for others to use and we will add it to the next release.