Install coge: Difference between revisions

From CoGepedia
Jump to navigation Jump to search
Franka1 (talk | contribs)
No edit summary
Franka1 (talk | contribs)
No edit summary
Line 396: Line 396:
  sudo perl Makefile.PL lib=/usr/local/lib/perl/5.18.2; sudo make install
  sudo perl Makefile.PL lib=/usr/local/lib/perl/5.18.2; sudo make install


*Install non-standard Perl modules
*Each .pm file in /coge/web will have a list of perl modules at the top of the file. Use 'sudo cpanm' to install these.
 
AuthCAS
DBIx::Class
DBIx::Class::Schema
DBD::SQLite
Data::UUID
Data::GUID
XML::SAX::Expat (requires: sudo apt-get install expat libexpat1-dev)
XML::Parser
XML::Simple
IPC::System::Simple
CGI::Application::Dispatch
CGI::Log
GD::Graph::bars
Moose
ZMQ::LibZMQ3
File::Slurp
DateTime
URI::Split


=== Install JBrowse  ===
=== Install JBrowse  ===

Revision as of 19:51, 10 July 2014

Server with existing CoGe Installation

Initial Dependencies

Run the following command:

sudo apt-get -y install {program}


where {program} is each of the following:

git
mysql-server
samtools
ubuntu-dev-tools
build-essential checkinstall
gcc-multilib
expat libexpat1-dev
libgd2-xpm-dev build-essential
njplot
imagemagick
graphviz
apache2
lamp-server^
phpmyadmin
swig
ttf-mscorefonts-installer

Then, use:

sudo cpan App::cpanminus
sudo cpanm {module}

where {module} is each of the following:

AuthCas
DBIx::Class
DBIx::Class::Schema
DBD::SQLite
Data::UUID
Data::GUID
XML::SAX::Expat
XML::Parser
XML::Simple
IPC::System::Simple
CGI::Application::Dispatch
CGI::Log
GD::Graph::bars
Moose
ZMQ::LibZMQ3
File::Slurp
DateTime
URI::Split
JSON
JSON::XS

Create new mysql database

Dump CoGe Database schema

mysqldump -d -h localhost -u root -pXXXXXXX coge | sed 's/AUTO_INCREMENT=[0-9]*\b//' > cogetable.sql

Note: be sure to disable apparmour for MySQL.

Create new CoGe Database

create database coge

Initialize new coge database

mysql -u root -pXXXXXXXX coge < cogetable.sql

Populate a few entries in the feature_type table

mysql -u root -pXXXXXXXXX coge < feature_type.sql

Create new user for new CoGe database

  • Want a web-user with limited write privileges and a power user to load new data
create user 'coge'@'localhost' IDENTIFIED BY 'XXXXXX';
grant all privileges on coge.* to coge;
create user 'coge_web'@'localhost' IDENTIFIED BY 'XXXXXX';
grant select on coge.* to coge_web;
flush privileges;

Note: The CoGe web-user needs edit/insert permission on some tables. Here is a snapshot of what these are:

Deploy new CoGe Web-site

Download CoGe repository from GitHub

git clone https://github.com/LyonsLab/coge.git

Make directories where files go and give write persmission

cd coge/web
./setup.sh


Configure apache

The /etc/apache2/sites-available/default.conf should look like this:

<VirtualHost *>
	ServerAdmin webmaster@localhost
	
	DocumentRoot /opt/coge/web
	<Files ~ "\.(pl|cgi)$">
    		SetHandler perl-script
    		PerlResponseHandler ModPerl::Registry
    		Options +ExecCGI
    		PerlSendHeader On
	</Files>

	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>
	<Directory /opt/coge/web>
		PerlSetEnv COGE_HOME "/opt/coge/web"
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
		# This directive allows us to have apache2's default start page
                # in /apache2-default/, but still have / go to the right place
                #RedirectMatch ^/$ /apache2-default/
	</Directory>
	
	<Directory /opt/coge/web/services/>
        	Options +FollowSymLinks +ExecCGI
        	AddHandler wsgi-script .py
    	</Directory>

    	<Directory /opt/coge/web/services/JBrowse/JBrowse_TrackContent_WS/>
        	Options +FollowSymLinks +ExecCGI
        	AddHandler wsgi-script .py
    	</Directory>
    	Alias /CoGe/jex /opt/coge/web/services/jex.py
    	Alias /CoGe/services/JBrowse/track /opt/coge/web/services/JBrowse/J$
    	Alias /CoGe "/opt/coge/web"

	Alias /gobe/ /opt/coge/web/gobe/
	<Directory "/opt/coge/web/gobe/">
		Options +FollowSymLinks +ExecCGI
		AddHandler wsgi-script .py
	</Directory>
	
	ScriptALias /api/v1/jbrowse/ /opt/coge/web/services/service.pl
	Alias /services/JBrowse/track /opt/coge/web/services/JBrowse/JBrowse_TrackContent_WS/source.py
	ScriptAlias /api/v1/ /opt/coge/web/services/mojolicious/
	ScriptAlias /cgi-bin/ /opt/coge/web/
	<Directory "/opt/coge/web">
		AllowOverride None
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
		AddHandler cgi-script .pl
		Order allow,deny
		Allow from all
	</Directory>

	wsgiScriptAlias /jex /opt/coge/web/services/jex.py

	ErrorLog /var/log/apache2/error.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog /var/log/apache2/access.log combined
	ServerSignature On

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>



Configure coge.conf file

Replacing XXX's with your own information. (Change paths as necessary; this template is configured for having the Coge directory in the path: /opt/coge)

##This is a configuration file for CoGe.

#database configuration
DBNAME	  coge
DBHOST	  localhost
DBPORT	  3307
DBUSER	  coge
DBPASS	  XXXXXXX

#CAS authentication for webservices
CAS_URL https://auth.iplantcollaborative.org/cas

#basic auth name and password
AUTHNAME XXXXXX
AUTHPASS XXXXXX

#web cookie name
COOKIE_NAME cogec

#support email address
SUPPORT_EMAIL XXXXXX

#basedir for coge
COGEDIR	    /opt/coge/web/

#bin dir for coge's programs
BINDIR	    /opt/coge/web/bin/

#scripts dir for coge's programs
SCRIPTDIR	/opt/coge/scripts

RESOURCESDIR /opt/coge/resources

#data dir for coge's programs
DATADIR	    /storage/coge/data/

#cache dir
CACHEDIR /storage/coge/data/cache/

#dir for pair-wise whole genome comparisons (e.g. SynMap)
DIAGSDIR	    /opt/coge/web/data/diags/

#fasta dir
FASTADIR	    /opt/coge/web/data/fasta/

#sequence dir
SEQDIR	    /storage/coge/data/genomic_sequence/
#SEQDIR	   /opt/tmp/data/

#experiment dir
EXPDIR  /storage/coge/data/experiments/

#TMPL dir for CoGe's web page templates
TMPLDIR	    /opt/coge/web/tmpl/

#temp dir for coge
TEMPDIR	  /opt/coge/web/tmp/

#secure temp dir
SECTEMPDIR /storage/coge/tmp/

#IRODS dir
IRODSDIR        /iplant/home/<USER>/coge_data
IRODSENV        /opt/coge/web/irodsEnv

#Base URL for web-server
URL	    /

#URL for temp directory
TEMPURL	    /tmp/

#blast style scoring matrix dirs
#BLASTMATRIX    /opt/coge/web/data/blast/matrix/
BLASTMATRIX    /storage/coge/data/blast/matrix/

#blastable DB
#BLASTDB    /opt/coge/web/data/blast/db/
BLASTDB    /storage/coge/data/blast/db/

#lastable DB
#LASTDB    /home/franka1/coge/web/data/last/db/
LASTDB    /storage/coge/data/last/db/

#directory for bed files
BEDDIR	   /opt/coge/web/data/bed/

#servername for links
SERVER     http://XXXXXX/

#Job Engine Server
JOBSERVER localhost

#Job Engine Port
JOBPORT 5151

#directory for caching genome browser images
IMAGE_CACHE /opt/coge/web/data/image_cache/

#maximum number of processor to use for multi-CPU systems
MAX_PROC 32
COGE_BLAST_MAX_PROC 8

#True Type Font
FONT	/usr/share/fonts/truetype/msttcorefonts/arial.ttf

#SynMap workflow tools
KSCALC /opt/coge/web/bin/SynMap/kscalc.pl
GEN_FASTA /opt/coge/web/bin/SynMap/generate_fasta.pl
RUN_ALIGNMENT /opt/coge/web/bin/SynMap/quota_align_merge.pl
RUN_COVERAGE /opt/coge/web/bin/SynMap/quota_align_coverage.pl
PROCESS_DUPS /opt/coge/web/bin/SynMap/process_dups.pl
GEVO_LINKS /opt/coge/web/bin/SynMap/gevo_links.pl
DOTPLOT_DOTS /opt/coge/web/bin/dotplot_dots.pl

#various programs
BL2SEQ	 /usr/local/bin/legacy_blast.pl bl2seq
BLASTZ	 /usr/local/bin/blastz
LASTZ	 /usr/local/bin/lastz
MULTI_LASTZ	/opt/coge/web/bin/blastz_wrapper/blastz.py
LAST_PATH	/opt/coge/web/bin/last_wrapper/
MULTI_LAST	/opt/coge/web/bin/last_wrapper/last.py
#BLAST 2.2.23+
BLAST	 /usr/local/bin/legacy_blast.pl blastall
TBLASTN  /usr/local/bin/tblastn
BLASTN	 /usr/local/bin/blastn
BLASTP	 /usr/local/bin/blastp
TBLASTX	 /usr/local/bin/tblastx
FASTBIT_LOAD  /usr/local/bin/ardea
FASTBIT_QUERY /usr/local/bin/ibis
SAMTOOLS /usr/bin/samtools
RAZIP /usr/local/bin/razip

###Formatdb needs to be updated to makeblastdb
FORMATDB /usr/bin/formatdb
LAGAN	 /opt/coge/web/bin/lagan-64bit/lagan.pl
LAGANDIR /opt/coge/web/bin/lagan-64bit/
CHAOS	 /opt/coge/web/bin/lagan-64bit/chaos
GENOMETHREADER /opt/coge/web/bin/gth
DIALIGN	       /opt/coge/web/bin/dialign2_dir/dialign2-2_coge
DIALIGN2	       /opt/coge/web/bin/dialign2_dir/dialign2-2_coge
DIALIGN2_DIR	       /opt/coge/web/bin/dialign2_dir/
HISTOGRAM	       /opt/coge/web/bin/histogram.pl
KS_HISTOGRAM	       /opt/coge/web/bin/ks_histogram.pl
PYTHON		       /usr/bin/python
PYTHON26		   /usr/bin/python
DAG_TOOL	       /opt/coge/web/bin/SynMap/dag_tools.py
BLAST2BED	       /opt/coge/web/bin/SynMap/blast2bed.pl
TANDEM_FINDER	       /opt/coge/web/bin/dagchainer/tandems.py
DAGCHAINER	       /opt/coge/web/bin/dagchainer_bp/dag_chainer.py
EVALUE_ADJUST	       /opt/coge/web/bin/dagchainer_bp/dagtools/evalue_adjust.py
FIND_NEARBY	       /opt/coge/web/bin/dagchainer_bp/dagtools/find_nearby.py
QUOTA_ALIGN	       /opt/coge/web/bin/quota-alignment/quota_align.py
CLUSTER_UTILS	       /opt/coge/web/bin/quota-alignment/cluster_utils.py
BLAST2RAW	       /opt/coge/web/bin/quota-alignment/scripts/blast_to_raw.py
SYNTENY_SCORE	       /opt/coge/web/bin/quota-alignment/scripts/synteny_score.py
DOTPLOT	       /opt/coge/web/bin/dotplot.pl
SVG_DOTPLOT	       /opt/coge/web/bin/SynMap/dotplot.py
NWALIGN	       /usr/local/bin/nwalign
CODEML	       /opt/coge/web/bin/codeml/codeml-coge
CODEMLCTL      /opt/coge/web/bin/codeml/codeml.ctl
CONVERT_BLAST  /opt/coge/web/bin/convert_long_blast_to_short_blast_names.pl
DATASETGROUP2BED	/opt/coge/web/bin/dataset_group_2_bed.pl
ARAGORN			/usr/local/bin/aragorn
CLUSTALW		/usr/local/bin/clustalw2
GZIP	/bin/gzip
GUNZIP	/bin/gunzip
TAR	/bin/tar

#MotifView
MOTIF_FILE /opt/coge/web/bin/MotifView/motif_hash_dump

#stuff for Mauve and whole genome alignments
MAUVE	/opt/coge/web/bin/GenomeAlign/progressiveMauve-muscleMatrix
COGE_MAUVE	/opt/coge/web/bin/GenomeAlign/mauve_alignment.pl
MAUVE_MATRIX /opt/coge/web/data/blast/matrix/nt/Mauve-Matrix-GenomeAlign
#newicktops is part of njplot package
NEWICKTOPS		/usr/bin/newicktops
#convert is from ImageMagick
CONVERT			/usr/bin/convert
#from graphviz
DOT
NEATO


CUTADAPT /usr/local/bin/cutadapt
GSNAP /usr/local/bin/gsnap
CUFFLINKS /usr/local/bin/cufflinks
PARSE_CUFFLINKS /opt/coge/scripts/parse_cufflinks.py
GMAP_BUILD /usr/local/bin/gmap_build
BOWTIE_BUILD /usr/local/bin/bowtie2-build
TOPHAT /usr/local/bin/tophat

#THIRD PARTY URLS
GENFAMURL http://dev.gohelle.cirad.fr/genfam/?q=content/upload
GRIMMURL http://grimm.ucsd.edu/cgi-bin/grimm.cgi#report
QTELLER_URL http://geco.iplantc.org/qTeller

Install Perl Modules

  • Install CoGe modules /modules directory of CoGe install path
sudo perl Makefile.PL lib=/usr/local/lib/perl/5.18.2; sudo make install
  • Each .pm file in /coge/web will have a list of perl modules at the top of the file. Use 'sudo cpanm' to install these.

Install JBrowse

Download and install the JBrowse package from http://jbrowse.org/install/

cd js
unzip JBrowse-1.9.7.zip
mv JBrowse-1.9.7 jbrowse

Populate with test data

scripts/replicate_genome_between_coge_installations.pl -dsgid 11022 -u1 coge -p1 XXXXXXX -db1 coge -u2 oryza_coge -p2 XXXXXXX -db2 oryza_coge -sd /opt/apache/oryz_coge/data/genomic_sequence

Troubleshooting

Visualization in GEvo does not work

This relies on a system known as Gobe. Check the following things:

  • Apache configuration for gobe
  • Check to see if paths hard-coded into gobe/flash/service.wsgi need to be updated
    • NOTE: Not sure if this is required