Centos 7.x standard installation
Analysis 2.4.x
I prefer to install from source code, because this should always work once you've got it started. I also prefer to use the system libraries (because that should be the right thing to do) rather than tacking on alternative versions of software which can complicate installation and the operation of other programs. I've not yet had serious problems with this methodology. Since CentOS 6, the system Python and Tk libraries have been up to date enough that analysis runs well.
Make sure you have the necessary software and development libraries installed (you'll have chosen to install the compilers already).
yum install python-devel freeglut-devel tcl-devel tk-devel tkinter libX11-devel libXext-devel numpy
Go to where you want to install ccpnmr and unpack
Then for analysis 2.4.x the installation script requires the following responses.
# cd /usr/local
# tar xzvf <path>/analysis<version>.tgz
Then for analysis 2.4.x the installation script requires the following responses.
# cd ccpnmr
# python installCode.py
Messages will be logged in "log_Analysis_3.txt"
Assuming your platform is linux
Are you using 64 bit libraries? (answer n unless you know otherwise) (y or n))? y
Found X11 include match: /usr/include/X11/Xlib.h
Found X11 lib match: /usr/lib64/libX11.so
Need to know where X11 directory is, in order to compile Analysis
This directory should contain [include/*/X11/Xlib.h, lib*/*/libX11.*], and as seen, /usr does
Guess X11 dir = "/usr", is this correct (y or n)? y
CCPN Tcl gzipped tar file not found, assuming using existing Tcl
Found Tcl include match: /usr/include/tcl.h
Found Tcl lib match: /usr/lib64/tclConfig.sh
Need to know where Tcl directory is, in order to compile Analysis
This directory should contain [include/*/tcl.h, lib*/*/tclConfig.sh], and as seen, /usr does
Guess Tcl dir = "/usr", is this correct (y or n)? y
Guess Tcl version = 8.5 (by looking), is this ok (y or n) (reply y unless sure otherwise)? y
CCPN Tk gzipped tar file not found, assuming using existing Tk
Found Tk include match: /usr/include/tk.h
Found Tk lib match: /usr/lib64/tkConfig.sh
Need to know where Tk directory is, in order to compile Analysis
This directory should contain [include/*/tk.h, lib*/*/tkConfig.sh], and as seen, /usr does
Guess Tk dir = "/usr", is this correct (y or n)? y
Assuming Tk version is also 8.5
CCPN Python gzipped tar file not found, assuming using existing Python
Found Python include match: /usr/include/python2.7
Found Python lib match: /usr/lib64/python2.7
Need to know where Python directory is, in order to compile Analysis
This directory should contain [include/*/python2.*, lib*/*/python2.*], and as seen, /usr does
Guess Python dir = "/usr", is this correct (y or n)? y
Guess Python version = 2.7 (by looking), is this ok (y or n) (reply y unless sure otherwise)? y
Do you want OpenGL used in Analysis (y or n) (n means only get Tk)? y
CCPN Mesa gzipped tar files not found, assuming using existing Mesa or alternative OpenGL
Found OpenGL include match: /usr/include/GL/gl.h
Found OpenGL lib match: /usr/lib64/libGL.so.1
Need to know where OpenGL directory is, in order to compile Analysis
This directory should contain [include/*/GL/gl.h, lib*/*/libGL.*], and as seen, /usr does
Guess OpenGL dir = "/usr", is this correct (y or n)? y
Found glut include match: /usr/include/GL/glut.h
Found glut lib match: /usr/lib64/libGL.so.1
Compile and install Analysis code (y or n)? y
You can create environment file from scratch (this does not copy it from environment_default.txt)
If you have already created it and edited it by hand you probably do not want to create it again here.
Create environment file (y or n) (answer y unless you know otherwise)? y
Does your glut need explicit initialisation (OSX and freeglut probably y, ordinary glut probably n) (y or n)? y
Use -fPIC compiler flag (y or n) (if gcc compiler y, otherwise n; answer y unless you know otherwise)? y
Use OPENMP compiler flags (y or n) (if gcc compiler >= 4.3 y, otherwise n; answer n unless you know otherwise; y allows Bayes peak separator code to use multi-processors)? y
...lots of compiler messages.....
Do you want to create a bin directory (answer y unless you know otherwise) (y or n)? y
Creating the bin directory
Install latest updates (from server) (y or n)? y
Getting latest updates from server
...updates downloaded...
Run Analysis (as test) (y or n)? y
...various messages...main analysis control bar appears...
>>> Finished installation script
Your executables are in /usr/local/ccpnmr/bin so you will want to make sure that this is on your path. I do this by adding files to /etc/profile.d as follows
# cat ccpnmr.csh
setenv CCPNMR_TOP_DIR /usr/local/ccpnmr
set path = ( $path $CCPNMR_TOP_DIR/bin )
# cat ccpnmr.sh
export CCPNMR_TOP_DIR=/usr/local/ccpnmr
export PATH=$PATH:$CCPNMR_TOP_DIR/bin
ARIA 2.3.1
This is simple on CentOS 7. First download the aria2.3.1 source code from http://aria.pasteur.fr You have to register and sign in to get access.
Unpack aria and check your environment (assuming you're root using bash)
export CCPNMR_TOP_DIR=/usr/local/ccpnmr
export PYTHONPATH=.:/usr/local/ccpnmr/ccpnmr2.4/python
yum install tix-devel python-matplotlib
cd /usr/local
tar xzvf <path>aria2.3.1.tgz
cd aria2.3
python check.py
if all is well then copy in the CCPNMR aria-compatibility patches
cd src/py/aria/
wget http://www.ccpn.ac.uk/v2-software/downloads/aria-compatibility-patches/importFromCcpn.py
wget http://www.ccpn.ac.uk/v2-software/downloads/aria-compatibility-patches/exportToCcpn.py
mv importFromCcpn.py.1 importFromCcpn.py
mv exportToCcpn.py.1 exportToCcpn.py
Make an /etc/profile.d/aria2.3.csh script like
if ((-e /usr/local/aria2.3)) then
setenv ARIA2 /usr/local/aria2.3
if ($?PYTHONPATH) then
setenv PYTHONPATH {$PYTHONPATH}:/usr/local/ccpnmr/ccpnmr2.4/python
else
setenv PYTHONPATH .:/usr/local/ccpnmr/ccpnmr2.4/python
endif
alias aria2 /bin/python -O ${ARIA2}/aria2.py
endif
Now set up and recompile your ARIA-enabled CNS
cd /usr/local tar xzvf <path>cns_solve_1.21_all-mp.tar.gz
mv cns_solve_1.21/ cns_solve_1.21_aria2.3/
cd cns_solve_1.21_aria2.3
edit cns_solve_env to set the CNS_SOLVE directory (/usr/local/cns_solve_1.21_aria2.3). Copy the aria2.3/cns/src files to the source directory in the cns distribution.
cp -rf ../aria2.3/cns/src/* source/
At some point many fortran compilers started to fail to generate the correct code for the SETFPEPS subroutine in CNS. To address this edit source/machvar.f and replace the subroutine with the following
C ======================================================
C SUBROUTINE SETFPEPS
C IMPLICIT NONE
C I/O
INCLUDE 'numbers.inc'
INCLUDE 'machvar.inc'
C
C Determine the machine epsilon i.e. the smallest FPEPS such that both
C 1+FPEPS and 1-FPEPS are different from 1.
C
C local
DOUBLE PRECISION ONEDP
DOUBLE COMPLEX DBCOMP
C
C external
C NONE
C
C begin
C
C ONEDP doesn't really need to be defined - EPSILON() only needs to know
C the type
ONEDP=(1.00)
FPEPS = EPSILON(ONEDP)
DBCOMP = DCMPLX(ZERO,ZERO)
CALL DECLAR('FP_EPSILON', 'DP', ' ', DBCOMP, FPEPS)
RETURN
END
C========================================================
Now install flex-devel for libfl, switch to csh and build
yum install flex-devel
csh
source cns_solve_env
cp -rf ../aria2.3/cns/src/* source/
make install
Note that ARIA 2.3.1 still has some fossil bugs/issues lurking in the code. For example:
"ambigous" for "ambiguous" in the cns/protocols/refine* input files.
Issues with reading very small energies from CNS output.