TPP 5.0.0: Installing on Ubuntu 16.04

From SPCTools

(Difference between revisions)
Jump to: navigation, search
Revision as of 23:45, 29 November 2016
Edeutsch (Talk | contribs)

← Previous diff
Revision as of 23:57, 29 November 2016
Edeutsch (Talk | contribs)

Next diff →
Line 13: Line 13:
* This installation assumes you are installing to <code>/local/tpp/</code>, if you want to install anywhere else, change accordingly * This installation assumes you are installing to <code>/local/tpp/</code>, if you want to install anywhere else, change accordingly
* This installation assumes you are using Apache 2.4 as your web server * This installation assumes you are using Apache 2.4 as your web server
-* Where a block is presented with lines beginning with a dollar ($), these are commands to be typed in at the shell directly. You should be able to copy and paste them a line at a time.+* The gray blocks are commands to be typed in at the shell directly. You should be able to copy and paste them a line at a time.
== Installation == == Installation ==
-=== Installing prerequisites ===+=== Installing prerequisite packages ===
Use the ubuntu package manager to install all the dependencies Use the ubuntu package manager to install all the dependencies
Line 34: Line 34:
</pre> </pre>
-=== Extracting and building the source ===+=== Using an old compatibility version of gcc ===
-Extract TPP-4-5-2-src.tgz to /usr/local/src+Although later TPP versions can use gcc 5, the version of Boost and ProteoWizard bundled with TPP 5.0.0 seems to require gcc 4.x. Use the below commands to force an older version of gcc (assumes you installed it above!)
-<pre>$ cd /usr/local/src+<pre style="white-space: pre-wrap">ll /usr/bin/gcc* /usr/bin/g++*
-$ tar xzf TPP-4-5-2-src.tgz</pre>+sudo rm /usr/bin/g++
 +sudo rm /usr/bin/gcc
 +sudo ln -s g++-4.9 /usr/bin/g++
 +sudo ln -s gcc-4.9 /usr/bin/gcc
 +ll /usr/bin/gcc* /usr/bin/g++*
 +</pre>
 + 
 +=== Creating a suitable place to compile and install ===
 + 
 +In this recipe, we install in /local. You may wish to install in a different location, and the recipe should be adjusted accordingly. This also assumes that you will use an account 'tpp' and group 'tpp'. Maybe you'll use a different account.
 + 
 +<pre style="white-space: pre-wrap">sudo mkdir /local
 +cd /local
 +sudo mkdir tpp data svn
 +sudo chown tpp.tpp tpp data svn
 +</pre>
 + 
 +=== Downloading the source code from svn ===
 + 
 +<pre>cd /local/svn
 +svn checkout svn://svn.code.sf.net/p/sashimi/code/trunk/trans_proteomic_pipeline
 +cd /local/svn/trans_proteomic_pipeline
 +</pre>
Create a new file <code>/usr/local/src/TPP-4.5.2/src/Makefile.config.incl</code> and populate it with Create a new file <code>/usr/local/src/TPP-4.5.2/src/Makefile.config.incl</code> and populate it with

Revision as of 23:57, 29 November 2016

middle
Note that this recipe will likely not be exactly applicable to different versions of TPP and different distributions of Linux, but perhaps can be a useful head start. For other versions of TPP, please see the README and INSTALL_LINUX files found in source code distribution for instructions on how to build TPP for the Linux platform.


Contents

Before we begin

First some general notes

  • We assume a fresh installation of Ubuntu 16.04 as a starting point.
  • This recipe was tested on a fresh Ubuntu 16.04 LTS instance running on Azure in November 2016
  • We assume that there is an ordinary user account named 'tpp' that will be used as the primary account. This account will need sudo privileges
  • This installation assumes you are installing to /local/tpp/, if you want to install anywhere else, change accordingly
  • This installation assumes you are using Apache 2.4 as your web server
  • The gray blocks are commands to be typed in at the shell directly. You should be able to copy and paste them a line at a time.

Installation

Installing prerequisite packages

Use the ubuntu package manager to install all the dependencies

sudo apt --yes install subversion
sudo apt --yes install make
sudo apt --yes install g++
sudo apt --yes install g++-4.9
sudo apt --yes install build-essential
sudo apt --yes install zlib1g-dev
sudo apt --yes install libghc-bzlib-dev
sudo apt --yes install gnuplot
sudo apt --yes install unzip
sudo apt --yes install expat
sudo apt --yes install libexpat1-dev

Using an old compatibility version of gcc

Although later TPP versions can use gcc 5, the version of Boost and ProteoWizard bundled with TPP 5.0.0 seems to require gcc 4.x. Use the below commands to force an older version of gcc (assumes you installed it above!)

ll /usr/bin/gcc* /usr/bin/g++*
sudo rm /usr/bin/g++
sudo rm /usr/bin/gcc
sudo ln -s g++-4.9 /usr/bin/g++
sudo ln -s gcc-4.9 /usr/bin/gcc
ll /usr/bin/gcc* /usr/bin/g++*

Creating a suitable place to compile and install

In this recipe, we install in /local. You may wish to install in a different location, and the recipe should be adjusted accordingly. This also assumes that you will use an account 'tpp' and group 'tpp'. Maybe you'll use a different account.

sudo mkdir /local
cd /local
sudo mkdir tpp data svn
sudo chown tpp.tpp tpp data svn

Downloading the source code from svn

cd /local/svn
svn checkout svn://svn.code.sf.net/p/sashimi/code/trunk/trans_proteomic_pipeline 
cd /local/svn/trans_proteomic_pipeline

Create a new file /usr/local/src/TPP-4.5.2/src/Makefile.config.incl and populate it with

TPP_ROOT=/usr/local/tpp/
TPP_WEB=/tpp/
## for Boost
BOOST_INCL=-I/usr/include/boost/
BOOST_LIBDIR=/usr/lib
BOOST_LIBSPEC=-gcc43-mt
LINK=shared
LIBEXT=so
PERL_LIB_CORE= /usr/lib/perl/5.10/CORE/

Build TPP

$ make && make install

Copy any files from /usr/local/src/TPP-4.5.2/perl to /usr/local/tpp/bin if they don't exist there already

$ cp -n /usr/local/src/TPP-4.5.2/perl/* /usr/local/tpp/bin

Configuring your installation for use

Add local configuration data to /usr/local/tpp/cgi-bin/tpp_gui_config.pl. Add the following lines immediately after the line # SET TPP_GUI DEFAULTS HERE. Nothing along these paths can be a symlink, because the TPP web client (Petunia) resolves absolute paths and checks those against the config, which means symlinks will look like they're outside of the allowed directories. You can probably get around this with some funky apache configuration using URL rewrites, but that's too complex to go into here, and not necessary generally. Note the trailing slashes, they are important!

 'base_dir' => '/usr/local/tpp/',
 'www_root' => '/usr/local/tpp/',
 'data_dir' => '/usr/local/tpp/data/',
 'tppbin' => '/usr/local/tpp/bin/',

Create the data directory and set permissions and ownership so that apache can use it properly

$ cd /usr/local/tpp
$ mkdir data
$ mkdir data/parameters
$ cp /usr/local/tpp/bin/isb_default_* /usr/local/tpp/data/parameters
$ chown -R www-data:www-data /usr/local/tpp/data
$ chmod -R 0660 /usr/local/tpp/data
$ chmod -R a+X /usr/local/tpp/data

Setting up apache

Now we need to tell apache about the TPP installation. Create a new file /etc/apache2/sites-available/tpp-x.y.z and populate with

<VirtualHost *:80>

        # directory to store data for web browser viewing
        Alias /tpp/data "/usr/local/tpp/data"
        <Directory "/usr/local/tpp/data">
                AllowOverride None
                Options Indexes +FollowSymLinks Includes
                Order allow,deny
                Allow from all
        </Directory>

        # directory for tpp's html resources (css, js, images, etc)
        Alias /tpp/html "/usr/local/tpp/html"
        <Directory "/usr/local/tpp/html">
                AllowOverride None
                Options Includes Indexes FollowSymLinks MultiViews
                Order allow,deny
                Allow from all
        </Directory>

        # directory for tpp's schema resources
        <Directory "/usr/local/tpp/schema">
                AllowOverride None
                Options Includes Indexes FollowSymLinks MultiViews
                Order allow,deny
                Allow from all
        </Directory>

        # directory for tpp's executable files
        ScriptAlias /tpp/cgi-bin "/usr/local/tpp/cgi-bin"
        <Directory "/usr/local/tpp/cgi-bin">
                #AllowOverride AuthConfig Limit
                AllowOverride All
                Options Indexes +FollowSymLinks MultiViews ExecCGI +Includes
                AddHandler default-handler .jpg .png .css .ico .gif
                AddHandler cgi-script .cgi .pl
                Order allow,deny
                Allow from all
                SetEnv WEBSERVER_ROOT /usr/local/
                #SetEnv WEBSERVER_ROOT /var/www
        </Directory>
         
        # Enables Lorikeet spectrum display program to work for linux  
                Alias /ISB /usr/local/tpp
</VirtualHost>

TPP produces pepxml files but links to them as .shtml in the putunia gui. We need to enable the SSI includes module to make these links work, which is not enabled by default in ubuntu server. You can see whether you already have the includes module enabled by running

$ apache2ctl -M

If the list contains "include_module" then you've already got it enabled, if not, enable it by running

$ a2enmod include

Finally, we enable the virtual host we've just created

$ a2ensite tpp-x.y.z
$ /etc/init.d/apache2 restart

And now you're good to go ... head on over to http://localhost/tpp/cgi-bin/tpp_gui.pl; And you can give up your root shell now by issuing the command

$ exit

Installing the tutorial data (optional)

If you want to test your installation using the SPC demo/tutorial data (yeast ORF data) then there are a few extra steps. First create a demo directory in the data area

$ mkdir /usr/local/tpp/data/demo

Extract all the example files (mzXML, tandem params, fasta database) to /usr/local/tpp/data/demo

You'll also need to create a download directory for SpectraST libraries.

$ mkdir -p /usr/local/tpp/data/dbase/speclibs

Set the permissions and ownership

$ chown -R www-data:www-data /usr/local/tpp/data/demo /usr/local/tpp/data/dbase
$ chmod -R 0660 /usr/local/tpp/data/demo /usr/local/tpp/data/dbase
$ chmod -R a+X /usr/local/tpp/data/demo /usr/local/tpp/data/dbase

The tandem.xml parameters file has a hard coded path that is windows specific. You will need to change the windows path to isb_default_input_kscore.xml in tandem.xml to the correct Linux path. The file can normally be found in linux instalaltions at /usr/local/tpp/bin/isb_default_input_kscore.xml, but if you've followed these instructions, you will have copied it to /usr/local/data/parameters already.

Replace "C:\InetPub\wwwroot\ISB\data\parameters\isb_default_input_kscore.xml" with "/usr/local/tpp/data/parameters/isb_default_input_kscore.xml" in the tandem.xml file.

Personal tools