Install ROSETTA software package

1.1 Download ROSETTA

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

  • Rosetta 3.x source code
  • Rosetta 3.x database

1.2 Unpack ROSETTA

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

1.3 Patch ROSETTA

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.

1.4 Compile single-processor version

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.

1.5 Compile multi-processor version

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.

1.5.1 Check availability of MPI libraries

To compile and run with MPI support an appropriate library is required. These are usually pre-installed on HPC systems. Possible libraries are:

    Open MPI
    MPICH
    MPICH2
    LAM/MPI

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.

1.5.2 Compile with MPI support

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.

concept:

application: