Skip to content

Home > Science > Installing AMBER under MandrivaLinux (+ PLEP)

Installing AMBER under MandrivaLinux (+ PLEP)

AMBER is a molecular modelling software suite to perform extensive calculations on macromolecules.

Tuesday 24 October 2006

AMBER (Assisted Model Building with Energy Refinement) is a molecular modelling software suite to perform extensive calculations on macromolecules. I used it before in my researches for simulating cis-platinated DNAs and some proteins.

Since i’m regularly changing my linux box (Mandriva) for the latest version, i have from time to time to reinstall AMBER. Here are the basics steps i follow to do so.

Please note theses steps have been validated with AMBER 6.0. Later versions could apply but i’ve not tested them.

Dependencies

In order to compile AMBER, you’ll need a fortran compiler and yacc. I presume you have installed the developpment librairies (if not, the software dependency solver urpmi should do it correctly for you).

urpmi g77-devel
urpmi byacc
urpmi imake

Compiling AMBER

Uncompress the tarball in /usr/local/

tar -zxvf Amber6.tar.gz
cd Amber6
tar -xvf AMB60.tar
mv amber6 ../
cd ../amber6

Following steps are as described in the INSTALL file:

export AMBERHOME=/usr/local/amber6
cd src
ln -s -f Machines/Machine.g77 MACHINE
make install

Now add AMBER path into you profile:

echo "
alias ambint /usr/local/amber6/exe/interface -t /usr/local/amber6/src/interface/tmp/amber.dat -i
export AMBERHOME=/usr/local/amber6
export PATH=$PATH:$AMBERHOME/exe
" >> $HOME/.bash_profile

Compiling ROAR

cd roar-2.0

Edit the Makefile file to remove comments on line 8 and 9 (parameters for linux, do not uncomment line 10), and add a comment for lines 25 to 27 (parameters for SGI). Then execute:

make install

Validation of the compilation

cd ../test/
make test.all

You should obtain something similar to:

[root@localhost test]# make test.all
cd 4096wat; ./Run.pure_wat
diffing mdout.pure_wat.save with mdout
PASSED
cd dhfr; ./Run.dhfr
diffing mdout.dhfr.save with mdout
PASSED
cd gb_rna; ./Run.gbrna
diffing mdout.gbrna.save with mdout
possible FAILURE: check mdout.dif
cd gb_rna; ./Run.gbrna.min
diffing mdout.gbrna.min.save with mdout.min
PASSED
cd polarizable_water; ./Run.pol_wat
diffing mdout.polwat.save with mdout
PASSED
cd nmr; ./Run.nmr
diffing mdout.nmr.save with mdout
PASSED
cd LES; ./Run.PME_LES

Amber 6 ADDLES and SANDER.LES test:

addles:
diffing output_addles.save with output_addles
possible FAILURE: check output_addles.dif
diffing LES.crd.save with LES.crd
possible FAILURE: check LES.crd.dif
diffing LES.prmtop.save with LES.prmtop
PASSED
sander.LES:
diffing md.LES.out.save with md.LES.out
PASSED
cd LES_CUT; ./Run.LES

Amber 6 SANDER.LES test, no PME

diffing md.LES.out.save with md.LES.out
PASSED
cd CMC; make setup; make test; make single_diff
make[1]: Entre dans le répertoire `/usr/local/amber6/test/CMC’
cd ala/setup; /usr/local/amber6/exe/tleap -f leapin > leap.out
cd ala_ala/setup; /usr/local/amber6/exe/tleap -f leapin > leap.out
cd ala_val/setup; /usr/local/amber6/exe/tleap -f leapin > leap.out
cd br_cl/setup; /usr/local/amber6/exe/tleap -f leapin > leap.out
cd lj/setup; /usr/local/amber6/exe/tleap -f leapin > leap.out
cd lj_lj/setup; /usr/local/amber6/exe/tleap -f leapin > leap.out
touch setup
make[1]: Quitte le répertoire `/usr/local/amber6/test/CMC’
make[1]: Entre dans le répertoire `/usr/local/amber6/test/CMC’
cd ala_ala/test; ./run
b run1_b_300
diffing run1_b_300.out.save with run1_b_300.out
PASSED
diffing run1_b_300.mc.save with run1_b_300.mc
PASSED
b run0_b_300
diffing run0_b_300.out.save with run0_b_300.out
PASSED
diffing run0_b_300.mc.save with run0_b_300.mc
PASSED
b run4_b_300
diffing run4_b_300.out.save with run4_b_300.out
PASSED
diffing run4_b_300.mc.save with run4_b_300.mc
PASSED
w run1_w_300
diffing run1_w_300.out.save with run1_w_300.out
PASSED
diffing run1_w_300.mc.save with run1_w_300.mc
PASSED
w run0_w_300
diffing run0_w_300.out.save with run0_w_300.out
PASSED
diffing run0_w_300.mc.save with run0_w_300.mc
PASSED
w run4_w_300
diffing run4_w_300.out.save with run4_w_300.out
PASSED
diffing run4_w_300.mc.save with run4_w_300.mc
PASSED
cd ala_val/test; ./run
b run1_b_300
cd ala_val/test; ./run
b run1_b_300
diffing run1_b_300.out.save with run1_b_300.out
PASSED
diffing run1_b_300.mc.save with run1_b_300.mc
PASSED
b run0_b_300
diffing run0_b_300.out.save with run0_b_300.out
PASSED
diffing run0_b_300.mc.save with run0_b_300.mc
PASSED
w run1_w_300
diffing run1_w_300.out.save with run1_w_300.out
PASSED
diffing run1_w_300.mc.save with run1_w_300.mc
possible FAILURE: check run1_w_300.mc.dif
w run0_w_300
diffing run0_w_300.out.save with run0_w_300.out
PASSED
diffing run0_w_300.mc.save with run0_w_300.mc
possible FAILURE: check run0_w_300.mc.dif
cd br_cl/test; ./run
w run30_w_300
diffing run30_w300.out.save with run30_w_300.out
PASSED
diffing run30_w_300.mc.save with run30_w_300.mc
PASSED
w run31_w_300
diffing run31_w_300.out.save with run31_w_300.out
PASSED
diffing run31_w_300.mc.save with run31_w_300.mc
PASSED
w run3e_w_300
diffing run3e_w_300.out.save with run3e_w_300.out
PASSED
diffing run3e_w_300.mc.save with run3e_w_300.mc
PASSED
cd lj_lj/test; ./run
b run1_b_300
diffing run1_b_300.out.save with run1_b_300.out
PASSED
diffing run1_b_300.mc.save with run1_b_300.mc
PASSED
b run4_b_300
diffing run4_b_300.out.save with run4_b_300.out
PASSED
diffing run4_b_300.mc.save with run4_b_300.mc
PASSED
w run1_w_300
diffing run1_w_300.out.save with run1_w_300.out
possible FAILURE: check run1_w_300.out.dif
diffing run1_w_300.mc.save with run1_w_300.mc
possible FAILURE: check run1_w_300.mc.dif
w run4_w_300
diffing run4_w_300.out.save with run4_w_300.out
possible FAILURE: check run4_w_300.out.dif
diffing run4_w_300.mc.save with run4_w_300.mc
possible FAILURE: check run4_w_300.mc.dif
make[1]: Quitte le répertoire `/usr/local/amber6/test/CMC’
make[1]: Entre dans le répertoire `/usr/local/amber6/test/CMC’
cd ala/single; ./run
v single_v
v single_v_pme
b single_b
b single_b_pme
w single_w
w single_w_pme
cd ala_ala/single; ./run
v single_v
v single_v_pme
b single_b
b single_b_pme
w single_w
w single_w_pme
cd br_cl/single; ./run
v single_v
v single_v_pme
w single_w
w single_w_pme
cd lj/single; ./run
v single_v
v single_v_pme
w single_w
w single_w_pme
cd lj_lj/single; ./run
v single_v
v single_v_pme
w single_w
w single_w_pme
touch single
./Run.single_diff
-------------------------------------------------
Comparing mc and non-MC systems for: ala
-------------------------------------------------
v single_v
sander_pme vs. sander_pme.MC
diffing single_v.inf with single_v_m.inf
PASSED
MC and non-MC topologies
diffing tmp_mc with tmp_nonmc
PASSED
v single_v_pme
sander_pme vs. sander_pme.MC
diffing single_v_pme.inf with single_v_pme_m.inf
PASSED
MC and non-MC topologies
diffing tmp_mc with tmp_nonmc
PASSED
w single_w
sander_pme vs. sander_pme.MC
diffing single_w.inf with single_w_m.inf
PASSED
MC and non-MC topologies
diffing tmp_mc with tmp_nonmc
PASSED
w single_w_pme
sander_pme vs. sander_pme.MC
diffing single_w_pme.inf with single_w_pme_m.inf
PASSED
MC and non-MC topologies
diffing tmp_mc with tmp_nonmc
PASSED
-------------------------------------------------
Comparing mc and non-MC systems for: lj
-------------------------------------------------
v single_v
sander_pme vs. sander_pme.MC
diffing single_v.inf with single_v_m.inf
PASSED
MC and non-MC topologies
diffing tmp_mc with tmp_nonmc
PASSED
v single_v_pme
sander_pme vs. sander_pme.MC
diffing single_v_pme.inf with single_v_pme_m.inf
PASSED
MC and non-MC topologies
diffing tmp_mc with tmp_nonmc
PASSED
w single_w
sander_pme vs. sander_pme.MC
diffing single_w.inf with single_w_m.inf
PASSED
MC and non-MC topologies
diffing tmp_mc with tmp_nonmc
PASSED
w single_w_pme
sander_pme vs. sander_pme.MC
diffing single_w_pme.inf with single_w_pme_m.inf
PASSED
MC and non-MC topologies
diffing tmp_mc with tmp_nonmc
PASSED
make[1]: Quitte le répertoire `/usr/local/amber6/test/CMC’
cd gbsa_xfin; ./Run.gbsa
diffing mdout.gbsa.save with mdout
PASSED
cd perturb_methane; ./Run.perturb_methane_to_nothing

Amber 6 GIBBS test:

plain:
diffing gibbs_1.out.save with gibbs_1.out
PASSED
diffing gibbs_1.statistics.save with gibbs_1.statistics
PASSED
dyn:
diffing gibbs_2.out.save with gibbs_2.out
possible FAILURE: check gibbs_2.out.dif
diffing gibbs_2.statistics.save with gibbs_2.statistics
PASSED
cd nmode; ./Run.ala-dipeptide

NMODE: find normal modes
diffing vibs.out.save with vibs.out
possible FAILURE: check vibs.out.dif

NMODE: find Langevin modes
diffing lvibs.out.save with lvibs.out
PASSED
diffing lmode.head.save with lmode.head
possible FAILURE: check lmode.head.dif

cd prowat; ./Run.plast
diffing mdout.plast.save with mdout
PASSED
cd dhfr; ./Run.dhfr.classic
diffing mdout.dhfr_classic.save with mdout
possible FAILURE: check mdout.dif
cd leap; ./Run

Running leap tests on ./tleap -> ../../exe/teLeap

building force field libraries:

’91 ff..

possible FAILURE: check all_amino91.lib.dif
possible FAILURE: check all_aminoct91.lib.dif
possible FAILURE: check all_aminont91.lib.dif
all_nucleic91.lib PASSED
ions91.lib PASSED

’94 ff..

possible FAILURE: check all_amino94.lib.dif
possible FAILURE: check all_aminoct94.lib.dif
possible FAILURE: check all_aminont94.lib.dif
all_nucleic94.lib PASSED
ions94.lib PASSED

loadpdb and saveamberparm: 91 ff..

- aminoan91
comparing topology to earlier leap version..
all_aminoan91.top PASSED
comparing sander energies
sander_aminoan91.out PASSED
- aminonc91
comparing topology to earlier leap version..
all_aminonc91.top PASSED
comparing sander energies
sander_aminonc91.out PASSED
- dna91
comparing topology to earlier leap version..
all_dna91.top PASSED
comparing sander energies
sander_dna91.out PASSED
- rna91
comparing topology to earlier leap version..
all_rna91.top PASSED
comparing sander energies
sander_rna91.out PASSED

loadpdb and saveamberparm: 94 ff..

- aminoan94
comparing topology to earlier leap version..
all_aminoan94.top PASSED
comparing sander energies
sander_aminoan94.out PASSED
- aminonc94
comparing topology to earlier leap version..
all_aminonc94.top PASSED
comparing sander energies
sander_aminonc94.out PASSED
- dna94
comparing topology to earlier leap version..
all_dna94.top PASSED
comparing sander energies
sander_dna94.out PASSED
- rna94
comparing topology to earlier leap version..
all_rna94.top PASSED
comparing sander energies
sander_rna94.out PASSED

--------------------------------------------------------------
Notes:
- If all tests PASSED, you can ’rm *.log *.out *.lib *.top’
- For a discussion of energy differences (sander*.dif)
see 0README.
- Solvation cases can result in different numbers of
waters on different machines owing to the effect of
precision on distance cutoff.
--------------------------------------------------------------

cd resp; ./Run.ade
RESP stage 1:
diffing ade_1st.out.save with ade_1st.out
possible FAILURE: check ade_1st.out.dif
diffing ade_1st.pch.save with ade_1st.pch
PASSED
diffing ade_1st_calc.esp.save with ade_1st_calc.esp
possible FAILURE: check ade_1st_calc.esp.dif
RESP stage 2:
diffing ade_1st.chg.save with ade_1st.chg
PASSED
diffing ade_2nd.out.save with ade_2nd.out
PASSED
diffing ade_2nd.pch.save with ade_2nd.pch
PASSED
diffing ade_2nd.chg.save with ade_2nd.chg
PASSED
No errors detected

This test validation is based on the comparison of pre-calculated data for standard compounds. The errors detected above are just ’logical’ since some tests are a little architecture-dependant (the previous calculations have been performed on SGI-based machines (MIPS processor)).

There are also some tests where the result in non predictable (like in Monte-Carlo calculations).

Prep, Link, Edit, Parm (PLEP) installation

Grab the plep.tar.gz archive from AMBER’s web site.

Unpack the archive under the src directory, and move the subdirectories into the src tree:

cd src/
tar -zxvf plep.tar.gz
cd plep
mv edit ..
mv prep ..
mv link ..
mv parm ..
<code>

Go into each sub-directory (prep, link, edit, parm) and compile each subprogram:

<code>
cd edit
make install

Rename the resulting programs prep, link, edit, parm into their corresponding name +4.1 (the original AMBER version where they come from):

cd ../../exe
mv prep prep4.1
mv edit edit4.1
mv link link4.1
mv parm parm4.1

This will eliminate the confusion between AMBER programs and regular GNU/Linux tools (at least link). The 4.1 convention is not mandatory, this is just what i use :-).

Comment on this article