[med-svn] [prottest] 03/08: Imported Upstream version 3.4.2+dfsg

Andreas Tille tille at debian.org
Tue May 10 09:52:56 UTC 2016


This is an automated email from the git hooks/post-receive script.

tille pushed a commit to branch master
in repository prottest.

commit d45fe9161f627e7193b7d32e92c3baa325bdb2cd
Author: Andreas Tille <tille at debian.org>
Date:   Mon May 9 21:05:26 2016 +0200

    Imported Upstream version 3.4.2+dfsg
---
 COPYING                                            |   0
 INSTALL                                            |   0
 README.md                                          |  10 +-
 build.xml                                          | 109 +++-
 buildconf/build-impl.xml                           | 707 ---------------------
 buildconf/project.properties                       |  80 ---
 manifest.mf                                        |   2 +-
 .../services/org.jdesktop.application.Application  |   0
 .../java/es/uvigo/darwin/prottest/ProtTest.java    |  40 +-
 .../uvigo/darwin/prottest/consensus/Consensus.java |   0
 .../uvigo/darwin/prottest/consensus/package.html   |   0
 .../darwin/prottest/exe/AminoAcidRunEstimator.java |   0
 .../prottest/exe/ExternalExecutionManager.java     |   0
 .../darwin/prottest/exe/ExternalExecutor.java      |   0
 .../prottest/exe/ParallelModelEstimator.java       |   0
 .../prottest/exe/PhyMLv3AminoAcidRunEstimator.java | 108 +++-
 .../darwin/prottest/exe/PhymlStreamGobbler.java    |   0
 .../prottest/exe/RaxMLAminoAcidRunEstimator.java   |  16 +-
 .../darwin/prottest/exe/RaxMLStreamGobbler.java    |   0
 .../es/uvigo/darwin/prottest/exe/RunEstimator.java |   0
 .../darwin/prottest/exe/RunEstimatorImpl.java      |   0
 .../uvigo/darwin/prottest/exe/StreamGobbler.java   |   0
 .../java/es/uvigo/darwin/prottest/exe/package.html |   0
 .../prottest/exe/util/TemporaryFileManager.java    |   0
 .../es/uvigo/darwin/prottest/exe/util/package.html |   0
 .../darwin/prottest/facade/ProtTestFacade.java     |   0
 .../darwin/prottest/facade/ProtTestFacadeImpl.java |   0
 .../darwin/prottest/facade/ProtTestFacadeMPJ.java  |   0
 .../prottest/facade/ProtTestFacadeSequential.java  |   0
 .../prottest/facade/ProtTestFacadeThread.java      |   0
 .../uvigo/darwin/prottest/facade/TreeFacade.java   |   0
 .../darwin/prottest/facade/TreeFacadeImpl.java     |   0
 .../es/uvigo/darwin/prottest/facade/package.html   |   0
 .../facade/strategy/DistributionStrategy.java      |   0
 .../prottest/facade/strategy/Distributor.java      |   0
 .../strategy/DynamicDistributionStrategy.java      |   0
 .../strategy/HybridDistributionStrategy.java       |   0
 .../ImprovedDynamicDistributionStrategy.java       |   0
 .../facade/strategy/MultipleDistributor.java       |   0
 .../strategy/StaticDistributionStrategy.java       |   0
 .../darwin/prottest/facade/strategy/package.html   |   0
 .../facade/thread/ThreadPoolSynchronizer.java      |   0
 .../darwin/prottest/facade/thread/package.html     |   0
 .../prottest/facade/util/ProtTestParameterVO.java  |   0
 .../prottest/facade/util/SelectionChunk.java       |   0
 .../uvigo/darwin/prottest/facade/util/package.html |   0
 .../global/AminoAcidApplicationGlobals.java        |   0
 .../darwin/prottest/global/ApplicationGlobals.java |   0
 .../prottest/global/ProtTestConsoleParameters.java |   2 +
 .../darwin/prottest/global/ProtTestConstants.java  |   0
 .../global/RaxmlAminoAcidApplicationGlobals.java   |   0
 .../global/options/ApplicationOptions.java         |  39 +-
 .../options/SerializableApplicationOptions.java    |   0
 .../darwin/prottest/global/options/package.html    |   0
 .../es/uvigo/darwin/prottest/global/package.html   |   0
 .../darwin/prottest/model/AminoAcidModel.java      |   0
 .../java/es/uvigo/darwin/prottest/model/Model.java |   0
 .../es/uvigo/darwin/prottest/model/package.html    |   0
 .../prottest/model/state/ModelEmptyLkState.java    |   0
 .../prottest/model/state/ModelFilledLkState.java   |   0
 .../darwin/prottest/model/state/ModelLkState.java  |   0
 .../uvigo/darwin/prottest/model/state/package.html |   0
 .../prottest/observer/ModelUpdaterObserver.java    |   0
 .../prottest/observer/ObservableModelUpdater.java  |   0
 .../es/uvigo/darwin/prottest/observer/package.html |   0
 .../java/es/uvigo/darwin/prottest/package.html     |   0
 .../es/uvigo/darwin/prottest/selection/AIC.java    |   0
 .../es/uvigo/darwin/prottest/selection/AICc.java   |   0
 .../es/uvigo/darwin/prottest/selection/BIC.java    |   0
 .../es/uvigo/darwin/prottest/selection/DT.java     |   0
 .../prottest/selection/InformationCriterion.java   |   0
 .../es/uvigo/darwin/prottest/selection/LNL.java    |   0
 .../selection/model/AICSelectionModel.java         |   0
 .../selection/model/AICcSelectionModel.java        |   0
 .../selection/model/BICSelectionModel.java         |   0
 .../prottest/selection/model/DTSelectionModel.java |   0
 .../selection/model/LNLSelectionModel.java         |   0
 .../prottest/selection/model/SelectionModel.java   |   0
 .../darwin/prottest/selection/model/package.html   |   0
 .../uvigo/darwin/prottest/selection/package.html   |   0
 .../selection/printer/AminoAcidPrintFramework.java |   0
 .../prottest/selection/printer/PrintFramework.java |   0
 .../darwin/prottest/selection/printer/package.html |   0
 .../java/es/uvigo/darwin/prottest/taxa/Taxon.java  |   0
 .../uvigo/darwin/prottest/taxa/TaxonomicLevel.java |   0
 .../es/uvigo/darwin/prottest/taxa/package.html     |   0
 .../darwin/prottest/tree/TreeDistancesCache.java   |   0
 .../prottest/tree/TreeEuclideanDistancesCache.java |   0
 .../es/uvigo/darwin/prottest/tree/TreeUtils.java   |   0
 .../uvigo/darwin/prottest/tree/WeightedTree.java   |   0
 .../es/uvigo/darwin/prottest/tree/package.html     |   0
 .../es/uvigo/darwin/prottest/util/FixedBitSet.java |   0
 .../darwin/prottest/util/ProtTestAlignment.java    |   0
 .../uvigo/darwin/prottest/util/StatFramework.java  |   0
 .../es/uvigo/darwin/prottest/util/Utilities.java   |   0
 .../argumentparser/AminoAcidArgumentParser.java    |   0
 .../argumentparser/ProtTestArgumentParser.java     |  18 +-
 .../prottest/util/argumentparser/package.html      |   0
 .../prottest/util/attributable/Attributable.java   |   0
 .../util/attributable/AttributableHelper.java      |   0
 .../darwin/prottest/util/attributable/package.html |   0
 .../util/checkpoint/CheckPointManager.java         |   0
 .../darwin/prottest/util/checkpoint/package.html   |   0
 .../util/checkpoint/status/ApplicationStatus.java  |   0
 .../util/checkpoint/status/ProtTestStatus.java     |   0
 .../prottest/util/checkpoint/status/package.html   |   0
 .../prottest/util/collection/ModelCollection.java  |   0
 .../util/collection/ParallelModelCollection.java   |   0
 .../util/collection/ParallelModelQueue.java        |   0
 .../util/collection/SingleModelCollection.java     |   0
 .../darwin/prottest/util/collection/package.html   |   0
 .../AminoAcidModelNaturalComparator.java           |   0
 .../prottest/util/comparator/LKComparator.java     |   0
 .../comparator/ModelDistributionHeuristic.java     |   0
 .../util/comparator/ModelWeightComparator.java     |   0
 .../darwin/prottest/util/comparator/package.html   |   0
 .../util/exception/AlignmentParseException.java    |   0
 .../prottest/util/exception/ImportException.java   |   0
 .../util/exception/ModelOptimizationException.java |   0
 .../util/exception/ProtTestCheckedException.java   |   0
 .../util/exception/ProtTestInternalException.java  |   0
 .../util/exception/TreeFormatException.java        |   0
 .../prottest/util/factory/ProtTestFactory.java     |   0
 .../darwin/prottest/util/factory/package.html      |   0
 .../prottest/util/fileio/AlignmentReader.java      |   2 +-
 .../darwin/prottest/util/fileio/ImportHelper.java  |   0
 .../darwin/prottest/util/fileio/NexusExporter.java |   0
 .../darwin/prottest/util/fileio/NexusImporter.java |   0
 .../prottest/util/fileio/NexusTreeReader.java      |   0
 .../util/fileio/SimpleNewickTreeReader.java        |   0
 .../darwin/prottest/util/fileio/TreeReader.java    |   0
 .../util/logging/ProtTestLogFormatter.java         |   0
 .../prottest/util/logging/ProtTestLogger.java      |   0
 .../es/uvigo/darwin/prottest/util/package.html     |   0
 .../util/printer/ProtTestFormattedOutput.java      |   0
 .../prottest/util/printer/ProtTestPrinter.java     |  35 +-
 .../java/es/uvigo/darwin/xprottest/CreditsBox.java |   0
 .../es/uvigo/darwin/xprottest/PreferencesView.java |   0
 .../uvigo/darwin/xprottest/XProtTestAboutBox.java  |   0
 .../es/uvigo/darwin/xprottest/XProtTestApp.java    |   0
 .../es/uvigo/darwin/xprottest/XProtTestView.java   |  77 ++-
 .../darwin/xprottest/analysis/FrequenciesView.java |   0
 .../uvigo/darwin/xprottest/analysis/TreeView.java  |   0
 .../darwin/xprottest/analysis/TreeWrapper.java     |   0
 .../xprottest/analysis/consensus/Consensus.java    |   0
 .../consensus/resources/Consensus.properties       |   0
 .../analysis/resources/FrequenciesView.properties  |   0
 .../analysis/resources/TreeView.properties         |   0
 .../darwin/xprottest/compute/OptionsView.java      |   0
 .../darwin/xprottest/compute/RunningFrame.java     |   0
 .../compute/resources/OptionsView.properties       |   0
 .../compute/resources/RunningFrame.properties      |   0
 .../xprottest/resources/CreditsBox.properties      |   0
 .../xprottest/resources/PreferencesView.properties |   0
 .../resources/XProtTestAboutBox.properties         |   0
 .../xprottest/resources/XProtTestApp.properties    |   4 +-
 .../xprottest/resources/XProtTestView.properties   |   0
 .../es/uvigo/darwin/xprottest/resources/about.png  | Bin 8187 -> 32741 bytes
 .../xprottest/resources/busyicons/busy-icon0.png   | Bin
 .../xprottest/resources/busyicons/busy-icon1.png   | Bin
 .../xprottest/resources/busyicons/busy-icon10.png  | Bin
 .../xprottest/resources/busyicons/busy-icon11.png  | Bin
 .../xprottest/resources/busyicons/busy-icon12.png  | Bin
 .../xprottest/resources/busyicons/busy-icon13.png  | Bin
 .../xprottest/resources/busyicons/busy-icon14.png  | Bin
 .../xprottest/resources/busyicons/busy-icon2.png   | Bin
 .../xprottest/resources/busyicons/busy-icon3.png   | Bin
 .../xprottest/resources/busyicons/busy-icon4.png   | Bin
 .../xprottest/resources/busyicons/busy-icon5.png   | Bin
 .../xprottest/resources/busyicons/busy-icon6.png   | Bin
 .../xprottest/resources/busyicons/busy-icon7.png   | Bin
 .../xprottest/resources/busyicons/busy-icon8.png   | Bin
 .../xprottest/resources/busyicons/busy-icon9.png   | Bin
 .../xprottest/resources/busyicons/idle-icon.png    | Bin
 .../darwin/xprottest/resources/prottestlogo.gif    | Bin 11850 -> 29447 bytes
 .../es/uvigo/darwin/xprottest/resources/splash.png | Bin 21747 -> 0 bytes
 .../darwin/xprottest/results/Bundle.properties     |   0
 .../darwin/xprottest/results/ErrorLogView.java     |   0
 .../darwin/xprottest/results/ResultsView.java      |   0
 .../results/resources/ErrorLogView.properties      |   0
 .../results/resources/ResultsView.properties       |   0
 .../darwin/xprottest/util/BrowserLauncher.java     | 583 -----------------
 .../util/OptimizationStrategyWrapper.java          |   0
 .../darwin/xprottest/util/TextAreaAppender.java    |   0
 .../darwin/xprottest/util/TextAreaWriter.java      |   0
 src/main/resources/CHANGELOG                       |  11 +-
 src/main/resources/COPYING                         |   0
 src/main/resources/README                          |  35 +-
 src/main/resources/THIRDPARTYLICENSES              |   0
 src/main/resources/bin/README                      |  10 +
 src/main/resources/examples/COX2_PF0016/alignment  |   0
 src/main/resources/examples/COX2_PF0016/tree       |   0
 src/main/resources/examples/HIV1.2008.pol.nex      |   0
 .../examples/Ribosomal_L5_PF00673/alignment        |   0
 .../resources/examples/Ribosomal_L5_PF00673/tree   |   0
 src/main/resources/filecluster8.conf.template      |   0
 src/main/resources/icon.png                        | Bin 0 -> 44845 bytes
 src/main/resources/machines                        |   0
 src/main/resources/models/FLU                      |   0
 src/main/resources/prottest.properties             |   0
 src/main/resources/prottest3                       |   9 +
 src/main/resources/runProtTestHPC.sh               |   3 +-
 src/main/resources/runXProtTestHPC.bat             |   2 +-
 src/main/resources/runXProtTestHPC.sh              |   3 +-
 204 files changed, 405 insertions(+), 1500 deletions(-)

diff --git a/COPYING b/COPYING
old mode 100755
new mode 100644
diff --git a/INSTALL b/INSTALL
old mode 100755
new mode 100644
diff --git a/README.md b/README.md
index 399ffcc..98cad56 100644
--- a/README.md
+++ b/README.md
@@ -14,9 +14,11 @@ In addition, given that ProtTest uses Phyml intensively, we encourage users to c
 
     Guindon S, Gascuel O. 2003. A simple, fast, and accurate algorithm to estimate large phylogenies by maximum likelihood. Syst Biol. 52: 696-704. Phyml 
 
+--------
 Discussion group
+--------
 
-For technical doubts, bug reports or comments, please use the ProtTest forum.
+For technical doubts, bug reports or comments, please use the ProtTest forum: http://groups.google.com/group/prottest
 
 --------
 Download
@@ -29,6 +31,12 @@ https://drive.google.com/folderview?id=0ByrkKOPtF_n_dVBBbDVBOEM5b1U
 News!
 --------
 
+08/05/2016 - ProtTest 3.4.2 is out. It includes the following updates:
+
+    Removed dependency on Netbeans libraries
+    Check for global binaries on PATH env variable
+    Added prottest3 script for running both GUI and console interfaces
+
 25/10/2015 - ProtTest 3.4.1 is out. It includes the following updates:
 
     Fixed bug with number of categories which might induce an error with certain PhyML versions.
diff --git a/build.xml b/build.xml
index 3c418a9..2e6be2a 100755
--- a/build.xml
+++ b/build.xml
@@ -1,36 +1,77 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- You may freely edit this file. See commented blocks below for -->
-<!-- some examples of how to customize the build. -->
-<!-- (If you delete it and reopen the project it will be recreated.) -->
-<project name="ProtTest" default="default" basedir=".">
-    <description>Builds, tests, and runs the project ProtTest.</description>
-    <import file="buildconf/build-impl.xml"/>
-
-    <property name="src.resources.dir" value="src/main/resources"/>
-    <property name="prottest.lib" value="lib"/>
-
-    <target name="-post-jar">
-        <mkdir dir="${dist.dir}/bin"/>
-	<copy todir="${dist.dir}/bin">
-            <fileset dir="${dist.dir}/bin">
-	      	<include name="**/*"/>
-            </fileset>
-	</copy>
-	<copy todir="${dist.dir}">
-            <fileset dir="${src.resources.dir}">
-  	  	<include name="**/*"/>
-            </fileset>
-  	</copy>
-	<mkdir dir="${dist.dir}/lib"/>
-	<copy todir="${dist.dir}/lib">
-            <fileset dir="${prottest.lib}">
-  	  	<include name="**/*"/>
-            </fileset>
-  	</copy>
-	<chmod perm="755" dir="${dist.dir}/bin" includes="*"/>
-	<chmod perm="755" dir="${dist.dir}" includes="runProtTestHPC.sh"/>
-	<chmod perm="755" dir="${dist.dir}" includes="runXProtTestHPC.sh"/>
-                
-        <delete file="${dist.dir}/README.TXT"/>
-    </target>
+<project name="prottest-3.4.2" default="jar" basedir=".">
+
+	<property name="src.dir" location="src/main/java" />
+	<property name="build.base.dir" location="build" />
+  <property name="build.dir" location="${build.base.dir}/classes" />
+	<property name="lib.dir" location="lib" />
+	<property name="dist.dir" location="dist" />
+  <property name="exe.dir" location="${dist.dir}/bin" />
+	<property name="log.dir" location="${dist.dir}/log" />
+	<property name="src.resources.dir" location="src/main/resources" />
+	<property name="html.template.dir" location="${src.resources.dir}/resources" />
+
+	<property name="jarfile" location="${dist.dir}/${ant.project.name}.jar" />
+	<property name="compile.debug" value="false" />
+
+	<fileset id="lib.jars" dir="${lib.dir}">
+		<include name="**/*.jar" />
+	</fileset>
+
+	<path id="lib.path">
+		<fileset refid="lib.jars" />
+	</path>
+
+	<!-- Stub install target.  Install should depend on the 'jar' target,
+         and copy the built objects to the 'dist' directory. -->
+	<target name="install" description="Install jar" depends="jar">
+	</target>
+
+	<target name="compile" description="Compile code">
+		<mkdir dir="${build.dir}" />
+		<mkdir dir="${lib.dir}" />
+		<property environment="env" />
+		<property name="java6.boot.classpath" value="${env.JAVA6_BOOTCLASSES}" />
+		<javac srcdir="${src.dir}" destdir="${build.dir}" includeAntRuntime="no" 
+			target="1.6" source="1.6" bootclasspath="${java5.boot.classpath}"
+			classpathref="lib.path" debug="${compile.debug}">
+    </javac>
+	</target>
+
+	<target name="jar" depends="compile" description="Build jar">
+		<mkdir dir="${dist.dir}" />
+    <jar jarfile="${jarfile}" basedir="${build.dir}" manifest="manifest.mf">
+	    <fileset id="jar.additional" dir="${src.dir}">
+		    <include name="**/*.properties" />
+		    <include name="**/*.png" />
+		    <include name="**/*.gif" />
+		    <include name="**/*.html" />
+    	</fileset>
+      <!-- Merge library jars into final jar file-->
+      <!--<zipgroupfileset refid="lib.jars"/>-->
+		</jar>
+		<mkdir dir="${dist.dir}/lib" />
+		<copy todir="${dist.dir}/lib">
+			<fileset id="lib.jars" dir="${lib.dir}">
+				<include name="**/*.jar" />
+			</fileset>
+		</copy>
+		<copy todir="${dist.dir}">
+			<fileset dir="${src.resources.dir}">
+				<include name="**/*" />
+			</fileset>
+		</copy>
+		<mkdir dir="${log.dir}" />
+		<chmod perm="755" dir="${dist.dir}" includes="*.sh *.bat prottest3" />
+    <chmod perm="644" dir="${exe.dir}" includes="*" />
+	</target>
+
+	<target name="run" depends="jar" description="Run jar file">
+		<java jar="${jarfile}" fork="yes" failonerror="true" />
+	</target>
+
+	<target name="clean" description="Remove build and dist directories">
+		<delete dir="${build.base.dir}" />
+		<delete dir="${dist.dir}" />
+	</target>
 </project>
diff --git a/buildconf/build-impl.xml b/buildconf/build-impl.xml
deleted file mode 100755
index 87cdf6d..0000000
--- a/buildconf/build-impl.xml
+++ /dev/null
@@ -1,707 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-*** GENERATED FROM project.xml - DO NOT EDIT  ***
-***         EDIT ../build.xml INSTEAD         ***
-
-For the purpose of easier reading the script
-is divided into following sections:
-
-  - initialization
-  - compilation
-  - jar
-  - execution
-  - debugging
-  - javadoc
-  - junit compilation
-  - junit execution
-  - junit debugging
-  - applet
-  - cleanup
-
-        -->
-<project xmlns:j2seproject1="http://www.netbeans.org/ns/j2se-project/1" xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3" xmlns:jaxrpc="http://www.netbeans.org/ns/j2se-project/jax-rpc" basedir=".." default="default" name="ProtTest-HPC-impl">
-    <fail message="Please build using Ant 1.7.1 or higher.">
-        <condition>
-            <not>
-                <antversion atleast="1.7.1"/>
-            </not>
-        </condition>
-    </fail>
-    <target depends="jar,javadoc" description="Build and test whole project." name="default"/>
-    <!-- 
-                ======================
-                INITIALIZATION SECTION 
-                ======================
-            -->
-    <target name="-pre-init">
-        <!-- Empty placeholder for easier customization. -->
-        <!-- You can override this target in the ../build.xml file. -->
-    </target>
-    <target depends="-pre-init" name="-init-user">
-        <property file="${user.properties.file}"/>
-        <!-- The two properties below are usually overridden -->
-        <!-- by the active platform. Just a fallback. -->
-        <property name="default.javac.source" value="1.4"/>
-        <property name="default.javac.target" value="1.4"/>
-    </target>
-    <target depends="-pre-init,-init-user" name="-init-project">
-        <property file="buildconf/configs/${config}.properties"/>
-        <property file="buildconf/project.properties"/>
-    </target>
-    <target depends="-pre-init,-init-user,-init-project,-init-macrodef-property" name="-do-init">
-        <available file="${manifest.file}" property="manifest.available"/>
-        <available file="${application.splash}" property="splashscreen.available"/>
-        <condition property="main.class.available">
-            <and>
-                <isset property="main.class"/>
-                <not>
-                    <equals arg1="${main.class}" arg2="" trim="true"/>
-                </not>
-            </and>
-        </condition>
-        <condition property="manifest.available+main.class">
-            <and>
-                <isset property="manifest.available"/>
-                <isset property="main.class.available"/>
-            </and>
-        </condition>
-        <condition property="do.mkdist">
-            <and>
-                <isset property="libs.CopyLibs.classpath"/>
-                <not>
-                    <istrue value="${mkdist.disabled}"/>
-                </not>
-            </and>
-        </condition>
-        <condition property="manifest.available+main.class+mkdist.available">
-            <and>
-                <istrue value="${manifest.available+main.class}"/>
-                <isset property="do.mkdist"/>
-            </and>
-        </condition>
-        <condition property="manifest.available+main.class+mkdist.available+splashscreen.available">
-            <and>
-                <istrue value="${manifest.available+main.class+mkdist.available}"/>
-                <istrue value="${splashscreen.available}"/>
-            </and>
-        </condition>
-        <condition property="do.archive">
-            <not>
-                <istrue value="${jar.archive.disabled}"/>
-            </not>
-        </condition>
-        <condition property="do.archive+manifest.available">
-            <and>
-                <isset property="manifest.available"/>
-                <istrue value="${do.archive}"/>
-            </and>
-        </condition>
-        <condition property="do.archive+manifest.available+main.class">
-            <and>
-                <istrue value="${manifest.available+main.class}"/>
-                <istrue value="${do.archive}"/>
-            </and>
-        </condition>
-        <condition property="do.archive+manifest.available+main.class+mkdist.available">
-            <and>
-                <istrue value="${manifest.available+main.class+mkdist.available}"/>
-                <istrue value="${do.archive}"/>
-            </and>
-        </condition>
-        <condition property="do.archive+manifest.available+main.class+mkdist.available+splashscreen.available">
-            <and>
-                <istrue value="${manifest.available+main.class+mkdist.available+splashscreen.available}"/>
-                <istrue value="${do.archive}"/>
-            </and>
-        </condition>
-        <condition property="have.tests">
-            <or/>
-        </condition>
-        <condition property="have.sources">
-            <or>
-                <available file="${src.java.dir}"/>
-            </or>
-        </condition>
-        <condition property="netbeans.home+have.tests">
-            <and>
-                <isset property="netbeans.home"/>
-                <isset property="have.tests"/>
-            </and>
-        </condition>
-        <condition property="no.javadoc.preview">
-            <and>
-                <isset property="javadoc.preview"/>
-                <isfalse value="${javadoc.preview}"/>
-            </and>
-        </condition>
-        <property name="run.jvmargs" value=""/>
-        <property name="javac.compilerargs" value=""/>
-        <property name="work.dir" value="${basedir}"/>
-        <condition property="no.deps">
-            <and>
-                <istrue value="${no.dependencies}"/>
-            </and>
-        </condition>
-        <property name="javac.debug" value="true"/>
-        <property name="javadoc.preview" value="true"/>
-        <property name="application.args" value=""/>
-        <property name="source.encoding" value="${file.encoding}"/>
-        <property name="runtime.encoding" value="${source.encoding}"/>
-        <condition property="javadoc.encoding.used" value="${javadoc.encoding}">
-            <and>
-                <isset property="javadoc.encoding"/>
-                <not>
-                    <equals arg1="${javadoc.encoding}" arg2=""/>
-                </not>
-            </and>
-        </condition>
-        <property name="javadoc.encoding.used" value="${source.encoding}"/>
-        <property name="includes" value="**"/>
-        <property name="excludes" value=""/>
-        <property name="do.depend" value="false"/>
-        <condition property="do.depend.true">
-            <istrue value="${do.depend}"/>
-        </condition>
-        <path id="endorsed.classpath.path" path="${endorsed.classpath}"/>
-        <condition else="" property="endorsed.classpath.cmd.line.arg" value="-Xbootclasspath/p:'${toString:endorsed.classpath.path}'">
-            <length length="0" string="${endorsed.classpath}" when="greater"/>
-        </condition>
-        <property name="javac.fork" value="false"/>
-        <property name="jar.index" value="false"/>
-        <available file="${meta.inf.dir}/persistence.xml" property="has.persistence.xml"/>
-    </target>
-    <target name="-post-init">
-        <!-- Empty placeholder for easier customization. -->
-        <!-- You can override this target in the ../build.xml file. -->
-    </target>
-    <target depends="-pre-init,-init-user,-init-project,-do-init" name="-init-check">
-        <fail unless="src.java.dir">Must set src.java.dir</fail>
-        <fail unless="build.dir">Must set build.dir</fail>
-        <fail unless="dist.dir">Must set dist.dir</fail>
-        <fail unless="build.classes.dir">Must set build.classes.dir</fail>
-        <fail unless="dist.javadoc.dir">Must set dist.javadoc.dir</fail>
-        <fail unless="build.test.classes.dir">Must set build.test.classes.dir</fail>
-        <fail unless="build.test.results.dir">Must set build.test.results.dir</fail>
-        <fail unless="build.classes.excludes">Must set build.classes.excludes</fail>
-        <fail unless="dist.jar">Must set dist.jar</fail>
-    </target>
-    <target name="-init-macrodef-property">
-        <macrodef name="property" uri="http://www.netbeans.org/ns/j2se-project/1">
-            <attribute name="name"/>
-            <attribute name="value"/>
-            <sequential>
-                <property name="@{name}" value="${@{value}}"/>
-            </sequential>
-        </macrodef>
-    </target>
-    <target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-macrodef-javac-with-processors">
-        <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">
-            <attribute default="${src.java.dir}" name="srcdir"/>
-            <attribute default="${build.classes.dir}" name="destdir"/>
-            <attribute default="${javac.classpath}" name="classpath"/>
-            <attribute default="${javac.processorpath}" name="processorpath"/>
-            <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/>
-            <attribute default="${includes}" name="includes"/>
-            <attribute default="${excludes}" name="excludes"/>
-            <attribute default="${javac.debug}" name="debug"/>
-            <attribute default="${empty.dir}" name="sourcepath"/>
-            <attribute default="${empty.dir}" name="gensrcdir"/>
-            <element name="customize" optional="true"/>
-            <sequential>
-                <property location="${build.dir}/empty" name="empty.dir"/>
-                <mkdir dir="${empty.dir}"/>
-                <mkdir dir="@{apgeneratedsrcdir}"/>
-                <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" fork="${javac.fork}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}">
-                    <src>
-                        <dirset dir="@{gensrcdir}" erroronmissingdir="false">
-                            <include name="*"/>
-                        </dirset>
-                    </src>
-                    <classpath>
-                        <path path="@{classpath}"/>
-                    </classpath>
-                    <compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
-                    <compilerarg line="${javac.compilerargs}"/>
-                    <compilerarg value="-processorpath"/>
-                    <compilerarg path="@{processorpath}:${empty.dir}"/>
-                    <compilerarg line="${ap.processors.internal}"/>
-                    <compilerarg line="${annotation.processing.processor.options}"/>
-                    <compilerarg value="-s"/>
-                    <compilerarg path="@{apgeneratedsrcdir}"/>
-                    <compilerarg line="${ap.proc.none.internal}"/>
-                    <customize/>
-                </javac>
-            </sequential>
-        </macrodef>
-    </target>
-    <target depends="-init-ap-cmdline-properties" name="-init-macrodef-javac-without-processors" unless="ap.supported.internal">
-        <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">
-            <attribute default="${src.java.dir}" name="srcdir"/>
-            <attribute default="${build.classes.dir}" name="destdir"/>
-            <attribute default="${javac.classpath}" name="classpath"/>
-            <attribute default="${javac.processorpath}" name="processorpath"/>
-            <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/>
-            <attribute default="${includes}" name="includes"/>
-            <attribute default="${excludes}" name="excludes"/>
-            <attribute default="${javac.debug}" name="debug"/>
-            <attribute default="${empty.dir}" name="sourcepath"/>
-            <attribute default="${empty.dir}" name="gensrcdir"/>
-            <element name="customize" optional="true"/>
-            <sequential>
-                <property location="${build.dir}/empty" name="empty.dir"/>
-                <mkdir dir="${empty.dir}"/>
-                <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" fork="${javac.fork}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}">
-                    <src>
-                        <dirset dir="@{gensrcdir}" erroronmissingdir="false">
-                            <include name="*"/>
-                        </dirset>
-                    </src>
-                    <classpath>
-                        <path path="@{classpath}"/>
-                    </classpath>
-                    <compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
-                    <compilerarg line="${javac.compilerargs}"/>
-                    <customize/>
-                </javac>
-            </sequential>
-        </macrodef>
-    </target>
-    <target depends="-init-macrodef-javac-with-processors,-init-macrodef-javac-without-processors" name="-init-macrodef-javac">
-        <macrodef name="depend" uri="http://www.netbeans.org/ns/j2se-project/3">
-            <attribute default="${src.java.dir}" name="srcdir"/>
-            <attribute default="${build.classes.dir}" name="destdir"/>
-            <attribute default="${javac.classpath}" name="classpath"/>
-            <sequential>
-                <depend cache="${build.dir}/depcache" destdir="@{destdir}" excludes="${excludes}" includes="${includes}" srcdir="@{srcdir}">
-                    <classpath>
-                        <path path="@{classpath}"/>
-                    </classpath>
-                </depend>
-            </sequential>
-        </macrodef>
-        <macrodef name="force-recompile" uri="http://www.netbeans.org/ns/j2se-project/3">
-            <attribute default="${build.classes.dir}" name="destdir"/>
-            <sequential>
-                <fail unless="javac.includes">Must set javac.includes</fail>
-                <pathconvert pathsep="," property="javac.includes.binary">
-                    <path>
-                        <filelist dir="@{destdir}" files="${javac.includes}"/>
-                    </path>
-                    <globmapper from="*.java" to="*.class"/>
-                </pathconvert>
-                <delete>
-                    <files includes="${javac.includes.binary}"/>
-                </delete>
-            </sequential>
-        </macrodef>
-    </target>
-    <target name="-init-macrodef-junit">
-        <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
-            <attribute default="${includes}" name="includes"/>
-            <attribute default="${excludes}" name="excludes"/>
-            <attribute default="**" name="testincludes"/>
-            <sequential>
-                <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" showoutput="true" tempdir="${build.dir}">
-                    <batchtest todir="${build.test.results.dir}"/>
-                    <classpath>
-                        <path path="${run.test.classpath}"/>
-                    </classpath>
-                    <syspropertyset>
-                        <propertyref prefix="test-sys-prop."/>
-                        <mapper from="test-sys-prop.*" to="*" type="glob"/>
-                    </syspropertyset>
-                    <formatter type="brief" usefile="false"/>
-                    <formatter type="xml"/>
-                    <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
-                    <jvmarg line="${run.jvmargs}"/>
-                </junit>
-            </sequential>
-        </macrodef>
-    </target>
-    <target depends="-init-debug-args" name="-init-macrodef-nbjpda">
-        <macrodef name="nbjpdastart" uri="http://www.netbeans.org/ns/j2se-project/1">
-            <attribute default="${main.class}" name="name"/>
-            <attribute default="${debug.classpath}" name="classpath"/>
-            <attribute default="" name="stopclassname"/>
-            <sequential>
-                <nbjpdastart addressproperty="jpda.address" name="@{name}" stopclassname="@{stopclassname}" transport="${debug-transport}">
-                    <classpath>
-                        <path path="@{classpath}"/>
-                    </classpath>
-                </nbjpdastart>
-            </sequential>
-        </macrodef>
-        <macrodef name="nbjpdareload" uri="http://www.netbeans.org/ns/j2se-project/1">
-            <attribute default="${build.classes.dir}" name="dir"/>
-            <sequential>
-                <nbjpdareload>
-                    <fileset dir="@{dir}" includes="${fix.classes}">
-                        <include name="${fix.includes}*.class"/>
-                    </fileset>
-                </nbjpdareload>
-            </sequential>
-        </macrodef>
-    </target>
-    <target name="-init-debug-args">
-        <property name="version-output" value="java version "${ant.java.version}"/>
-        <condition property="have-jdk-older-than-1.4">
-            <or>
-                <contains string="${version-output}" substring="java version "1.0"/>
-                <contains string="${version-output}" substring="java version "1.1"/>
-                <contains string="${version-output}" substring="java version "1.2"/>
-                <contains string="${version-output}" substring="java version "1.3"/>
-            </or>
-        </condition>
-        <condition else="-Xdebug" property="debug-args-line" value="-Xdebug -Xnoagent -Djava.compiler=none">
-            <istrue value="${have-jdk-older-than-1.4}"/>
-        </condition>
-        <condition else="dt_socket" property="debug-transport-by-os" value="dt_shmem">
-            <os family="windows"/>
-        </condition>
-        <condition else="${debug-transport-by-os}" property="debug-transport" value="${debug.transport}">
-            <isset property="debug.transport"/>
-        </condition>
-    </target>
-    <target depends="-init-debug-args" name="-init-macrodef-debug">
-        <macrodef name="debug" uri="http://www.netbeans.org/ns/j2se-project/3">
-            <attribute default="${main.class}" name="classname"/>
-            <attribute default="${debug.classpath}" name="classpath"/>
-            <element name="customize" optional="true"/>
-            <sequential>
-                <java classname="@{classname}" dir="${work.dir}" fork="true">
-                    <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
-                    <jvmarg line="${debug-args-line}"/>
-                    <jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
-                    <jvmarg value="-Dfile.encoding=${runtime.encoding}"/>
-                    <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/>
-                    <jvmarg line="${run.jvmargs}"/>
-                    <classpath>
-                        <path path="@{classpath}"/>
-                    </classpath>
-                    <syspropertyset>
-                        <propertyref prefix="run-sys-prop."/>
-                        <mapper from="run-sys-prop.*" to="*" type="glob"/>
-                    </syspropertyset>
-                    <customize/>
-                </java>
-            </sequential>
-        </macrodef>
-    </target>
-    <target name="-init-macrodef-java">
-        <macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1">
-            <attribute default="${main.class}" name="classname"/>
-            <attribute default="${run.classpath}" name="classpath"/>
-            <element name="customize" optional="true"/>
-            <sequential>
-                <java classname="@{classname}" dir="${work.dir}" fork="true">
-                    <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
-                    <jvmarg value="-Dfile.encoding=${runtime.encoding}"/>
-                    <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/>
-                    <jvmarg line="${run.jvmargs}"/>
-                    <classpath>
-                        <path path="@{classpath}"/>
-                    </classpath>
-                    <syspropertyset>
-                        <propertyref prefix="run-sys-prop."/>
-                        <mapper from="run-sys-prop.*" to="*" type="glob"/>
-                    </syspropertyset>
-                    <customize/>
-                </java>
-            </sequential>
-        </macrodef>
-    </target>
-    <target name="-init-macrodef-copylibs">
-        <macrodef name="copylibs" uri="http://www.netbeans.org/ns/j2se-project/3">
-            <element name="customize" optional="true"/>
-            <sequential>
-                <property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
-                <pathconvert property="run.classpath.without.build.classes.dir">
-                    <path path="${run.classpath}"/>
-                    <map from="${build.classes.dir.resolved}" to=""/>
-                </pathconvert>
-                <pathconvert pathsep=" " property="jar.classpath">
-                    <path path="${run.classpath.without.build.classes.dir}"/>
-                    <chainedmapper>
-                        <flattenmapper/>
-                        <globmapper from="*" to="lib/*"/>
-                    </chainedmapper>
-                </pathconvert>
-                <taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/>
-                <copylibs compress="${jar.compress}" index="${jar.index}" jarfile="${dist.jar}" manifest="${manifest.file}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
-                    <fileset dir="${build.classes.dir}"/>
-                    <manifest>
-                        <attribute name="Class-Path" value="${jar.classpath}"/>
-                        <customize/>
-                    </manifest>
-                </copylibs>
-            </sequential>
-        </macrodef>
-    </target>
-    <target name="-init-presetdef-jar">
-        <presetdef name="jar" uri="http://www.netbeans.org/ns/j2se-project/1">
-            <jar compress="${jar.compress}" index="${jar.index}" jarfile="${dist.jar}">
-                <j2seproject1:fileset dir="${build.classes.dir}"/>
-            </jar>
-        </presetdef>
-    </target>
-    <target name="-init-ap-cmdline-properties">
-        <property name="annotation.processing.enabled" value="true"/>
-        <property name="annotation.processing.processors.list" value=""/>
-        <property name="annotation.processing.processor.options" value=""/>
-        <property name="annotation.processing.run.all.processors" value="true"/>
-        <property name="javac.processorpath" value="${javac.classpath}"/>
-        <property name="javac.test.processorpath" value="${javac.test.classpath}"/>
-        <condition property="ap.supported.internal" value="true">
-            <not>
-                <matches pattern="1\.[0-5](\..*)?" string="${javac.source}"/>
-            </not>
-        </condition>
-    </target>
-    <target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-ap-cmdline-supported">
-        <condition else="" property="ap.processors.internal" value="-processor ${annotation.processing.processors.list}">
-            <isfalse value="${annotation.processing.run.all.processors}"/>
-        </condition>
-        <condition else="" property="ap.proc.none.internal" value="-proc:none">
-            <isfalse value="${annotation.processing.enabled}"/>
-        </condition>
-    </target>
-    <target depends="-init-ap-cmdline-properties,-init-ap-cmdline-supported" name="-init-ap-cmdline">
-        <property name="ap.cmd.line.internal" value=""/>
-    </target>
-    <target depends="-pre-init,-init-user,-init-project,-do-init,-post-init,-init-check,-init-macrodef-property,-init-macrodef-javac,-init-macrodef-junit,-init-macrodef-nbjpda,-init-macrodef-debug,-init-macrodef-java,-init-presetdef-jar,-init-ap-cmdline" name="init"/>
-    <!--
-                ===================
-                COMPILATION SECTION
-                ===================
-            -->
-    <target name="-deps-jar-init" unless="built-jar.properties">
-        <property location="${build.dir}/built-jar.properties" name="built-jar.properties"/>
-        <delete file="${built-jar.properties}" quiet="true"/>
-    </target>
-    <target if="already.built.jar.${basedir}" name="-warn-already-built-jar">
-        <echo level="warn" message="Cycle detected: ProtTest-HPC was already built"/>
-    </target>
-    <target depends="init,-deps-jar-init" name="deps-jar" unless="no.deps">
-        <mkdir dir="${build.dir}"/>
-        <touch file="${built-jar.properties}" verbose="false"/>
-        <property file="${built-jar.properties}" prefix="already.built.jar."/>
-        <antcall target="-warn-already-built-jar"/>
-        <propertyfile file="${built-jar.properties}">
-            <entry key="${basedir}" value=""/>
-        </propertyfile>
-    </target>
-    <target depends="init,-check-automatic-build,-clean-after-automatic-build" name="-verify-automatic-build"/>
-    <target depends="init" name="-check-automatic-build">
-        <available file="${build.classes.dir}/.netbeans_automatic_build" property="netbeans.automatic.build"/>
-    </target>
-    <target depends="init" if="netbeans.automatic.build" name="-clean-after-automatic-build">
-        <antcall target="clean"/>
-    </target>
-    <target depends="init,deps-jar" name="-pre-pre-compile">
-        <mkdir dir="${build.classes.dir}"/>
-    </target>
-    <target name="-pre-compile">
-        <!-- Empty placeholder for easier customization. -->
-        <!-- You can override this target in the ../build.xml file. -->
-    </target>
-    <target if="do.depend.true" name="-compile-depend">
-        <pathconvert property="build.generated.subdirs">
-            <dirset dir="${build.generated.sources.dir}" erroronmissingdir="false">
-                <include name="*"/>
-            </dirset>
-        </pathconvert>
-        <j2seproject3:depend srcdir="${src.java.dir}:${build.generated.subdirs}"/>
-    </target>
-    <target depends="init,deps-jar,-pre-pre-compile,-pre-compile, -copy-persistence-xml,-compile-depend" if="have.sources" name="-do-compile">
-        <j2seproject3:javac gensrcdir="${build.generated.sources.dir}"/>
-        <copy todir="${build.classes.dir}">
-            <fileset dir="${src.java.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
-        </copy>
-    </target>
-    <target if="has.persistence.xml" name="-copy-persistence-xml">
-        <mkdir dir="${build.classes.dir}/META-INF"/>
-        <copy todir="${build.classes.dir}/META-INF">
-            <fileset dir="${meta.inf.dir}" includes="persistence.xml"/>
-        </copy>
-    </target>
-    <target name="-post-compile">
-        <!-- Empty placeholder for easier customization. -->
-        <!-- You can override this target in the ../build.xml file. -->
-    </target>
-    <target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile,-do-compile,-post-compile" description="Compile project." name="compile"/>
-    <target name="-pre-compile-single">
-        <!-- Empty placeholder for easier customization. -->
-        <!-- You can override this target in the ../build.xml file. -->
-    </target>
-    <target depends="init,deps-jar,-pre-pre-compile" name="-do-compile-single">
-        <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
-        <j2seproject3:force-recompile/>
-        <j2seproject3:javac excludes="" gensrcdir="${build.generated.sources.dir}" includes="${javac.includes}" sourcepath="${src.java.dir}"/>
-    </target>
-    <target name="-post-compile-single">
-        <!-- Empty placeholder for easier customization. -->
-        <!-- You can override this target in the ../build.xml file. -->
-    </target>
-    <target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile-single,-do-compile-single,-post-compile-single" name="compile-single"/>
-    <!--
-                ====================
-                JAR BUILDING SECTION
-                ====================
-            -->
-    <target depends="init" name="-pre-pre-jar">
-        <dirname file="${dist.jar}" property="dist.jar.dir"/>
-        <mkdir dir="${dist.jar.dir}"/>
-    </target>
-    <target name="-pre-jar">
-        <!-- Empty placeholder for easier customization. -->
-        <!-- You can override this target in the ../build.xml file. -->
-    </target>
-    <target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive" name="-do-jar-without-manifest" unless="manifest.available">
-        <j2seproject1:jar/>
-    </target>
-    <target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive+manifest.available" name="-do-jar-with-manifest" unless="manifest.available+main.class">
-        <j2seproject1:jar manifest="${manifest.file}"/>
-    </target>
-    <target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive+manifest.available+main.class" name="-do-jar-with-mainclass" unless="manifest.available+main.class+mkdist.available">
-        <j2seproject1:jar manifest="${manifest.file}">
-            <j2seproject1:manifest>
-                <j2seproject1:attribute name="Main-Class" value="${main.class}"/>
-            </j2seproject1:manifest>
-        </j2seproject1:jar>
-        <echo>To run this application from the command line without Ant, try:</echo>
-        <property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
-        <property location="${dist.jar}" name="dist.jar.resolved"/>
-        <pathconvert property="run.classpath.with.dist.jar">
-            <path path="${run.classpath}"/>
-            <map from="${build.classes.dir.resolved}" to="${dist.jar.resolved}"/>
-        </pathconvert>
-        <echo>java -cp "${run.classpath.with.dist.jar}" ${main.class}</echo>
-    </target>
-    <target depends="init,compile,-pre-pre-jar,-pre-jar,-init-macrodef-copylibs" if="do.archive+manifest.available+main.class+mkdist.available+splashscreen.available" name="-do-jar-with-libraries-and-splashscreen">
-        <basename file="${application.splash}" property="splashscreen.basename"/>
-        <mkdir dir="${build.classes.dir}/META-INF"/>
-        <copy failonerror="false" file="${application.splash}" todir="${build.classes.dir}/META-INF"/>
-        <j2seproject3:copylibs>
-            <customize>
-                <attribute name="Main-Class" value="${main.class}"/>
-                <attribute name="SplashScreen-Image" value="META-INF/${splashscreen.basename}"/>
-            </customize>
-        </j2seproject3:copylibs>
-        <echo>To run this application from the command line without Ant, try:</echo>
-        <property location="${dist.jar}" name="dist.jar.resolved"/>
-        <echo>java -jar "${dist.jar.resolved}"</echo>
-    </target>
-    <target depends="init,compile,-pre-pre-jar,-pre-jar,-init-macrodef-copylibs" if="do.archive+manifest.available+main.class+mkdist.available" name="-do-jar-with-libraries" unless="splashscreen.available">
-        <j2seproject3:copylibs>
-            <customize>
-                <attribute name="Main-Class" value="${main.class}"/>
-            </customize>
-        </j2seproject3:copylibs>
-        <echo>To run this application from the command line without Ant, try:</echo>
-        <property location="${dist.jar}" name="dist.jar.resolved"/>
-        <echo>java -jar "${dist.jar.resolved}"</echo>
-    </target>
-    <target name="-post-jar">
-        <!-- Empty placeholder for easier customization. -->
-        <!-- You can override this target in the ../build.xml file. -->
-    </target>
-    <target depends="init,compile,-pre-jar,-do-jar-with-manifest,-do-jar-without-manifest,-do-jar-with-mainclass,-do-jar-with-libraries-and-splashscreen,-do-jar-with-libraries,-post-jar" description="Build JAR." name="jar"/>
-    <!--
-                =================
-                EXECUTION SECTION
-                =================
-            -->
-    <target depends="init,compile" description="Run a main class." name="run">
-        <j2seproject1:java>
-            <customize>
-                <arg line="${application.args}"/>
-            </customize>
-        </j2seproject1:java>
-    </target>
-    <target name="-do-not-recompile">
-        <property name="javac.includes.binary" value=""/>
-    </target>
-    <target depends="init,compile-single" name="run-single">
-        <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
-        <j2seproject1:java classname="${run.class}"/>
-    </target>
-    
-    <!--
-                ===============
-                JAVADOC SECTION
-                ===============
-            -->
-    <target depends="init" if="have.sources" name="-javadoc-build">
-        <mkdir dir="${dist.javadoc.dir}"/>
-        <javadoc additionalparam="${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}">
-            <classpath>
-                <path path="${javac.classpath}"/>
-            </classpath>
-            <fileset dir="${src.java.dir}" excludes="${excludes}" includes="${includes}">
-                <filename name="**/*.java"/>
-            </fileset>
-            <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
-                <include name="**/*.java"/>
-            </fileset>
-        </javadoc>
-        <copy todir="${dist.javadoc.dir}">
-            <fileset dir="${src.java.dir}" excludes="${excludes}" includes="${includes}">
-                <filename name="**/doc-files/**"/>
-            </fileset>
-            <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
-                <include name="**/doc-files/**"/>
-            </fileset>
-        </copy>
-    </target>
-    <target depends="init,-javadoc-build" if="netbeans.home" name="-javadoc-browse" unless="no.javadoc.preview">
-        <nbbrowse file="${dist.javadoc.dir}/index.html"/>
-    </target>
-    <target depends="init,-javadoc-build,-javadoc-browse" description="Build Javadoc." name="javadoc"/>
-   
-    <!--
-                ===============
-                CLEANUP SECTION
-                ===============
-            -->
-    <target name="-deps-clean-init" unless="built-clean.properties">
-        <property location="${build.dir}/built-clean.properties" name="built-clean.properties"/>
-        <delete file="${built-clean.properties}" quiet="true"/>
-    </target>
-    <target if="already.built.clean.${basedir}" name="-warn-already-built-clean">
-        <echo level="warn" message="Cycle detected: ProtTest-HPC was already built"/>
-    </target>
-    <target depends="init,-deps-clean-init" name="deps-clean" unless="no.deps">
-        <mkdir dir="${build.dir}"/>
-        <touch file="${built-clean.properties}" verbose="false"/>
-        <property file="${built-clean.properties}" prefix="already.built.clean."/>
-        <antcall target="-warn-already-built-clean"/>
-        <propertyfile file="${built-clean.properties}">
-            <entry key="${basedir}" value=""/>
-        </propertyfile>
-    </target>
-    <target depends="init" name="-do-clean">
-        <delete dir="${build.dir}"/>
-        <delete dir="${dist.dir}" followsymlinks="false" includeemptydirs="true"/>
-    </target>
-    <target name="-post-clean">
-        <!-- Empty placeholder for easier customization. -->
-        <!-- You can override this target in the ../build.xml file. -->
-    </target>
-    <target depends="init,deps-clean,-do-clean,-post-clean" description="Clean build products." name="clean"/>
-    <target name="-check-call-dep">
-        <property file="${call.built.properties}" prefix="already.built."/>
-        <condition property="should.call.dep">
-            <not>
-                <isset property="already.built.${call.subproject}"/>
-            </not>
-        </condition>
-    </target>
-    <target depends="-check-call-dep" if="should.call.dep" name="-maybe-call-dep">
-        <ant antfile="${call.script}" inheritall="false" target="${call.target}">
-            <propertyset>
-                <propertyref prefix="transfer."/>
-                <mapper from="transfer.*" to="*" type="glob"/>
-            </propertyset>
-        </ant>
-    </target>
-</project>
diff --git a/buildconf/project.properties b/buildconf/project.properties
deleted file mode 100755
index 1785c89..0000000
--- a/buildconf/project.properties
+++ /dev/null
@@ -1,80 +0,0 @@
-application.version=3.4.1
-application.homepage=http://darwin.uvigo.es
-application.title=ProtTest
-application.vendor=Diego Darriba
-build.classes.dir=${build.dir}/classes
-build.classes.excludes=**/*.java,**/*.form
-# This directory is removed when the project is cleaned:
-build.dir=build
-build.generated.dir=${build.dir}/generated
-# Only compile against the classpath explicitly listed here:
-build.sysclasspath=ignore
-build.test.classes.dir=${build.dir}/test/classes
-build.test.results.dir=${build.dir}/test/results
-debug.classpath=\
-    ${run.classpath}
-debug.test.classpath=\
-    ${run.test.classpath}
-# This directory is removed when the project is cleaned:
-dist.dir=dist
-dist.jar=${dist.dir}/prottest-${application.version}.jar
-dist.javadoc.dir=${dist.dir}/javadoc
-excludes=
-file.reference.AbsoluteLayout.jar=lib/AbsoluteLayout.jar
-file.reference.appframework-1.0.3.jar=lib/appframework-1.0.3.jar
-file.reference.alter.jar=lib/alter.jar
-file.reference.mpj.jar=lib/mpj.jar
-file.reference.pal.jar=lib/pal.jar
-file.reference.ProtTest-HPC-src=src
-file.reference.swing-worker-1.1.jar=lib/swing-worker-1.1.jar
-includes=**
-jar.compress=false
-javac.classpath=\
-    ${file.reference.AbsoluteLayout.jar}:\
-    ${file.reference.appframework-1.0.3.jar}:\
-    ${file.reference.mpj.jar}:\
-    ${file.reference.pal.jar}:\
-    ${file.reference.alter.jar}:\
-    ${file.reference.swing-worker-1.1.jar}
-# Space-separated list of extra javac options
-javac.compilerargs=
-javac.deprecation=true
-javac.source=1.5
-javac.target=1.6
-javac.test.classpath=\
-    ${javac.classpath}:\
-    ${build.classes.dir}:\
-    ${libs.junit_4.classpath}
-javadoc.additionalparam=
-javadoc.author=false
-javadoc.encoding=${source.encoding}
-javadoc.noindex=false
-javadoc.nonavbar=false
-javadoc.notree=false
-javadoc.private=false
-javadoc.splitindex=true
-javadoc.use=true
-javadoc.version=false
-javadoc.windowtitle=
-# Property libs.absolutelayout.classpath is set here just to make sharing of project simpler.
-# The library definition has always preference over this property.
-libs.absolutelayout.classpath=lib/AbsoluteLayout.jar
-#libs.CopyLibs.classpath=lib/org-netbeans-modules-java-j2seproject-copylibstask.jar
-libs.CopyLibs.classpath=lib/copylibs.jar
-main.class=es.uvigo.darwin.prottest.ProtTest
-manifest.file=manifest.mf
-meta.inf.dir=${src.dir}/META-INF
-platform.active=default_platform
-run.classpath=\
-    ${javac.classpath}:\
-    ${build.classes.dir}
-# Space-separated list of JVM arguments used when running the project
-# (you may also define separate properties like run-sys-prop.name=value instead of -Dname=value
-# or test-sys-prop.name=value to set system properties for unit tests):
-run.jvmargs=
-run.test.classpath=\
-    ${javac.test.classpath}:\
-    ${build.test.classes.dir}
-source.encoding=UTF-8
-src.java.dir=src/main/java
-test.java.dir=src/test/java
diff --git a/manifest.mf b/manifest.mf
index cd51d93..be3ae49 100755
--- a/manifest.mf
+++ b/manifest.mf
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Ant-Version: Apache Ant 1.7.1
 Created-By: 19.0-b09 (Sun Microsystems Inc.)
 Main-Class: es.uvigo.darwin.prottest.ProtTest
-Class-Path: lib/AbsoluteLayout.jar lib/appframework-1.0.3.jar lib/mpj.
+Class-Path: lib/appframework-1.0.3.jar lib/mpj.
  jar lib/pal.jar lib/alter.jar lib/swing-worker-1.1.jar
 X-COMMENT: Main-Class will be added automatically by build
 
diff --git a/src/main/java/META-INF/services/org.jdesktop.application.Application b/src/main/java/META-INF/services/org.jdesktop.application.Application
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/ProtTest.java b/src/main/java/es/uvigo/darwin/prottest/ProtTest.java
old mode 100755
new mode 100644
index 52a3d72..a3b42d7
--- a/src/main/java/es/uvigo/darwin/prottest/ProtTest.java
+++ b/src/main/java/es/uvigo/darwin/prottest/ProtTest.java
@@ -17,10 +17,18 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 package es.uvigo.darwin.prottest;
 
-import static es.uvigo.darwin.prottest.global.ApplicationGlobals.*;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+import java.util.logging.Handler;
+import java.util.logging.Level;
 
-import es.uvigo.darwin.prottest.consensus.Consensus;
 import mpi.MPI;
+import pal.misc.Identifier;
+import pal.tree.Tree;
+import es.uvigo.darwin.prottest.consensus.Consensus;
+import es.uvigo.darwin.prottest.exe.PhyMLv3AminoAcidRunEstimator;
 import es.uvigo.darwin.prottest.facade.ProtTestFacade;
 import es.uvigo.darwin.prottest.facade.ProtTestFacadeMPJ;
 import es.uvigo.darwin.prottest.facade.ProtTestFacadeSequential;
@@ -46,14 +54,6 @@ import es.uvigo.darwin.prottest.util.exception.ProtTestInternalException;
 import es.uvigo.darwin.prottest.util.factory.ProtTestFactory;
 import es.uvigo.darwin.prottest.util.logging.ProtTestLogger;
 import es.uvigo.darwin.prottest.util.printer.ProtTestPrinter;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-import java.util.logging.Handler;
-import java.util.logging.Level;
-import pal.misc.Identifier;
-import pal.tree.Tree;
 
 /**
  * This is the main class of ProtTest. It calls the methods in the
@@ -64,9 +64,9 @@ import pal.tree.Tree;
 public class ProtTest {
 
     /** The Constant versionNumber. */
-    public static final String versionNumber = "3.4.1";
+    public static final String versionNumber = "3.4.2";
     /** The Constant versionDate. */
-    public static final String versionDate = "23th January 2014";
+    public static final String versionDate = "8th May 2016";
     /** The MPJ rank of the process. It is only useful if MPJ is running.*/
     public static int MPJ_ME;
     /** The MPJ size of the communicator. It is only useful if MPJ is running.*/
@@ -75,6 +75,10 @@ public class ProtTest {
     public static boolean MPJ_RUN;
     /** The ProtTest factory. */
     private static ProtTestFactory factory;
+    
+    public static final String URL_MANUAL = "http://darwin.uvigo.es/download/prottest_manual.pdf";
+    public static final String URL_HOMEPAGE = "http://github.com/ddarriba/prottest3";
+    public static final String URL_DISCUSSION_GROUP = "https://groups.google.com/group/prottest";
 
     /**
      * The main method. It initializes the MPJ runtime environment, parses 
@@ -85,7 +89,7 @@ public class ProtTest {
      */
     public static void main(String[] args) {
 
-        try {
+    	try {
             args = ProtTestFactory.initialize(args);
         } catch (IllegalArgumentException e) {
             System.out.println("Illegal argument: " + e.getMessage());
@@ -93,6 +97,12 @@ public class ProtTest {
         }
         factory = ProtTestFactory.getInstance();
 
+        // Checking PhyML binary
+        if (!PhyMLv3AminoAcidRunEstimator.checkBinary())
+        {
+        	finalize(1);
+        }
+        
         // initializing MPJ environment (if available)
         try {
             String[] argsApp = MPI.Init(args);
@@ -120,8 +130,8 @@ public class ProtTest {
                     getValue(ProtTestArgumentParser.PARAM_NUM_THREADS));
         } catch (IllegalArgumentException e) {
             if (MPJ_ME == 0) {
-                System.err.println("\n" + e.getMessage() + "\n");
-                ApplicationOptions.usage();
+                System.err.println("\n" + e.getMessage());
+                System.err.println("Run with -h for help.\n");
             }
             finalize(1);
         } catch (ProtTestInternalException e) {
diff --git a/src/main/java/es/uvigo/darwin/prottest/consensus/Consensus.java b/src/main/java/es/uvigo/darwin/prottest/consensus/Consensus.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/consensus/package.html b/src/main/java/es/uvigo/darwin/prottest/consensus/package.html
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/exe/AminoAcidRunEstimator.java b/src/main/java/es/uvigo/darwin/prottest/exe/AminoAcidRunEstimator.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/exe/ExternalExecutionManager.java b/src/main/java/es/uvigo/darwin/prottest/exe/ExternalExecutionManager.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/exe/ExternalExecutor.java b/src/main/java/es/uvigo/darwin/prottest/exe/ExternalExecutor.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/exe/ParallelModelEstimator.java b/src/main/java/es/uvigo/darwin/prottest/exe/ParallelModelEstimator.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/exe/PhyMLv3AminoAcidRunEstimator.java b/src/main/java/es/uvigo/darwin/prottest/exe/PhyMLv3AminoAcidRunEstimator.java
old mode 100755
new mode 100644
index 7967ace..870e99e
--- a/src/main/java/es/uvigo/darwin/prottest/exe/PhyMLv3AminoAcidRunEstimator.java
+++ b/src/main/java/es/uvigo/darwin/prottest/exe/PhyMLv3AminoAcidRunEstimator.java
@@ -55,7 +55,7 @@ import es.uvigo.darwin.prottest.util.exception.TreeFormatException;
  * @since 3.0
  */
 public class PhyMLv3AminoAcidRunEstimator extends AminoAcidRunEstimator {
-
+	
     /** The PhyML implemented matrices. */
     public static String[] IMPLEMENTED_MATRICES = {
         "JTT",
@@ -74,14 +74,65 @@ public class PhyMLv3AminoAcidRunEstimator extends AminoAcidRunEstimator {
         "HIVw"
     };
     /** Suffix for temporary statistic files. */
-    private static final String STATS_FILE_SUFFIX = "_phyml_stats.txt";
+    private static final String STATS_FILE_SUFFIX = "_phyml_stats";
     /** Suffix for temporary tree files. */
-    private static final String TREE_FILE_SUFFIX = "_phyml_tree.txt";
+    private static final String TREE_FILE_SUFFIX = "_phyml_tree";
     /** Alignment filename. */
     private String workAlignment;
     /** Custom model substitution matrix file**/
     private File modelFile;
 
+    public static File phymlBinary;
+	public static String phymlBinaryStr;
+	
+	private File statsFile;
+	private File treeFile;
+	
+	public static boolean checkBinary() {
+		boolean canExecute = false;
+    	if (!PhyMLv3AminoAcidRunEstimator.phymlBinary.exists()) {
+			System.err.println("ERROR: PhyML binary not found: " + 
+					PhyMLv3AminoAcidRunEstimator.phymlBinary.getAbsolutePath() + "\n");
+		} else if (!PhyMLv3AminoAcidRunEstimator.phymlBinary.canExecute()) {
+			System.err.println("ERROR: PhyML binary exists, but it cannot be executed: " + 
+					PhyMLv3AminoAcidRunEstimator.phymlBinary.getAbsolutePath() + "\n");
+		} else {
+			canExecute = true;
+		}
+    	
+		return canExecute;
+	}
+	
+	static {
+		boolean phymlGlobal = APPLICATION_PROPERTIES.getProperty("global-phyml-exe", "false").equalsIgnoreCase("true");
+		
+        File exeFilesDir = new File(APPLICATION_PROPERTIES.getProperty("exe-dir", ApplicationGlobals.PATH));
+        if (!exeFilesDir.isAbsolute()) {
+        	exeFilesDir = new File(ApplicationGlobals.PATH + File.separator + APPLICATION_PROPERTIES.getProperty("exe-dir", "bin"));	
+        }
+        
+        phymlBinary = new File(exeFilesDir.getAbsolutePath() + File.separator + "phyml");
+       	
+        if (phymlGlobal) {
+        	String[] pathList = System.getenv("PATH").split(":");
+        	for (String path : pathList)
+        	{
+	        	phymlBinary = new File(path + "/phyml");
+	        	if (phymlBinary.exists() && phymlBinary.canExecute()) {
+	        		phymlBinaryStr = phymlBinary.getAbsolutePath();
+	        		break;
+	        	}
+        	}
+        } else {
+            if (phymlBinary.exists() && phymlBinary.canExecute()) {
+            	phymlBinaryStr = phymlBinary.getAbsolutePath();
+            } else {
+            	phymlBinaryStr = exeFilesDir.getAbsolutePath() + File.separator + getPhymlVersion();
+            }
+            phymlBinary = new File(phymlBinaryStr);
+        }
+	}
+	
     /**
      * Instantiates a new optimizer for amino-acid models
      * using PhyML.
@@ -164,6 +215,7 @@ public class PhyMLv3AminoAcidRunEstimator extends AminoAcidRunEstimator {
                 tr = TemporaryFileManager.getInstance().getTreeFilename(Thread.currentThread());
                 topo = "lr";
         }
+        
         try {
             Runtime runtime = Runtime.getRuntime();
 
@@ -322,6 +374,27 @@ public class PhyMLv3AminoAcidRunEstimator extends AminoAcidRunEstimator {
             throw new PhyMLExecutionException("I/O error: " + e.getMessage());
         }
 
+        statsFile = new File(workAlignment + STATS_FILE_SUFFIX);
+        if (!(statsFile.exists() && statsFile.canRead()))
+        {
+        	/* try with txt suffix */
+        	statsFile = new File(workAlignment + STATS_FILE_SUFFIX + "txt");
+        	if (!(statsFile.exists() && statsFile.canRead()))
+        		throw new StatsFileFormatException("PhyML", 
+        				"Stats file does not exist. Please check if PhyML is working.");
+        }
+        statsFile.deleteOnExit();
+        
+        treeFile = new File(workAlignment + TREE_FILE_SUFFIX);
+        if (!(treeFile.exists() && treeFile.canRead()))
+        {
+        	/* try with txt suffix */
+        	treeFile = new File(workAlignment + TREE_FILE_SUFFIX + "txt");
+        	if (!(treeFile.exists() && treeFile.canRead()))
+        		throw new TreeFormatException(
+        				"Tree file does not exist. Please check if PhyML is working correctly.");
+        }
+        treeFile.deleteOnExit();
 
         if (!(readStatsFile() && readTreeFile())) {
             return false;
@@ -341,7 +414,7 @@ public class PhyMLv3AminoAcidRunEstimator extends AminoAcidRunEstimator {
         String line;
 
         try {
-            FileReader input = new FileReader(workAlignment + STATS_FILE_SUFFIX);
+            FileReader input = new FileReader(statsFile.getAbsolutePath());
             BufferedReader br = new BufferedReader(input);
             while ((line = br.readLine()) != null) {
                 pfinerln("[DEBUG] PHYML: " + line);
@@ -405,9 +478,9 @@ public class PhyMLv3AminoAcidRunEstimator extends AminoAcidRunEstimator {
      */
     private boolean readTreeFile()
             throws TreeFormatException {
-
+        
         try {
-            model.setTree(new ReadTree(workAlignment + TREE_FILE_SUFFIX));
+            model.setTree(new ReadTree(treeFile.getAbsolutePath()));
         } catch (TreeParseException e) {
             String errorMsg = "ProtTest: wrong tree format, exiting...";
             throw new TreeFormatException(errorMsg);
@@ -415,6 +488,7 @@ public class PhyMLv3AminoAcidRunEstimator extends AminoAcidRunEstimator {
             String errorMsg = "Error: File not found (IO error), exiting...";
             throw new TreeFormatException(errorMsg);
         }
+        
         return true;
     }
 
@@ -425,14 +499,8 @@ public class PhyMLv3AminoAcidRunEstimator extends AminoAcidRunEstimator {
      */
     @Override
     protected boolean deleteTemporaryFiles() {
-        File f;
-        f = new File(workAlignment + STATS_FILE_SUFFIX);
-        f.delete();
-        f = new File(workAlignment + TREE_FILE_SUFFIX);
-        f.delete();
-        f = new File(TemporaryFileManager.getInstance().getLogFilename(Thread.currentThread()));
-        f.delete();
-        return true;
+        File f = new File(TemporaryFileManager.getInstance().getLogFilename(Thread.currentThread()));
+        return f.delete();
     }
 
     /**
@@ -440,23 +508,23 @@ public class PhyMLv3AminoAcidRunEstimator extends AminoAcidRunEstimator {
      * 
      * @return the PhyML executable name
      */
-    private String getPhymlVersion() {
+    private static String getPhymlVersion() {
         String os = System.getProperty("os.name");
         String oa = System.getProperty("os.arch");
         if (os.startsWith("Mac")) {
             if (oa.startsWith("ppc")) {
-                return "phyml-prottest-macppc";
+                return null;
             } else {
-                return "phyml-prottest-macintel";
+                return "PhyML_3.0_macOS_i386";
             }
         } else if (os.startsWith("Linux")) {
         	if (oa.contains("md64")) {
-        		return "phyml-prottest-linux64";
+        		return "PhyML_3.0_linux64";
         	} else {
-        		return "phyml-prottest-linux";
+        		return "PhyML_3.0_linux32";
         	}
         } else if (os.startsWith("Window")) {
-            return "phyml-prottest-windows.exe";
+            return "PhyML_3.0_win32.exe";
         } else {
             return null;
         }
diff --git a/src/main/java/es/uvigo/darwin/prottest/exe/PhymlStreamGobbler.java b/src/main/java/es/uvigo/darwin/prottest/exe/PhymlStreamGobbler.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/exe/RaxMLAminoAcidRunEstimator.java b/src/main/java/es/uvigo/darwin/prottest/exe/RaxMLAminoAcidRunEstimator.java
old mode 100755
new mode 100644
index bc6f6cb..580501d
--- a/src/main/java/es/uvigo/darwin/prottest/exe/RaxMLAminoAcidRunEstimator.java
+++ b/src/main/java/es/uvigo/darwin/prottest/exe/RaxMLAminoAcidRunEstimator.java
@@ -30,11 +30,13 @@ import es.uvigo.darwin.prottest.util.exception.ModelOptimizationException.PhyMLE
 import es.uvigo.darwin.prottest.util.exception.ModelOptimizationException.StatsFileFormatException;
 import es.uvigo.darwin.prottest.util.exception.ProtTestInternalException;
 import es.uvigo.darwin.prottest.util.exception.TreeFormatException;
+
 import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileReader;
 import java.io.IOException;
 import java.io.InputStreamReader;
+
 import pal.tree.ReadTree;
 import pal.tree.TreeParseException;
 
@@ -100,7 +102,8 @@ public class RaxMLAminoAcidRunEstimator extends AminoAcidRunEstimator {
     /* (non-Javadoc)
      * @see es.uvigo.darwin.prottest.exe.RunEstimator#optimizeModel(es.uvigo.darwin.prottest.global.options.ApplicationOptions)
      */
-    @Override
+    @SuppressWarnings("unused")
+	@Override
     public boolean runEstimator() throws ModelOptimizationException {
 
         //let's call Phyml with the proper command line
@@ -163,16 +166,7 @@ public class RaxMLAminoAcidRunEstimator extends AminoAcidRunEstimator {
 
                 // the model
                 str[3] = "-m";
-//                if (!Arrays.asList(RAXML_MATRICES).contains(model.getMatrix())) {
-//                    // check matrix file
-//                    if (!modelFile.exists()) {
-//                        throw new ModelNotFoundException(model.getMatrix());
-//                    }
-//                    str[9] = "custom";
-//                } else {
-                    str[4] =  modelName.toString();
-//                }
-
+                str[4] =  modelName.toString();
 //                if (APPLICATION_PROPERTIES.getProperty("phyml_thread_scheduling", "false").equalsIgnoreCase("true")) {
 //                    str[24] = "-t";
 //                    str[25] = String.valueOf(numberOfThreads);
diff --git a/src/main/java/es/uvigo/darwin/prottest/exe/RaxMLStreamGobbler.java b/src/main/java/es/uvigo/darwin/prottest/exe/RaxMLStreamGobbler.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/exe/RunEstimator.java b/src/main/java/es/uvigo/darwin/prottest/exe/RunEstimator.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/exe/RunEstimatorImpl.java b/src/main/java/es/uvigo/darwin/prottest/exe/RunEstimatorImpl.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/exe/StreamGobbler.java b/src/main/java/es/uvigo/darwin/prottest/exe/StreamGobbler.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/exe/package.html b/src/main/java/es/uvigo/darwin/prottest/exe/package.html
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/exe/util/TemporaryFileManager.java b/src/main/java/es/uvigo/darwin/prottest/exe/util/TemporaryFileManager.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/exe/util/package.html b/src/main/java/es/uvigo/darwin/prottest/exe/util/package.html
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/facade/ProtTestFacade.java b/src/main/java/es/uvigo/darwin/prottest/facade/ProtTestFacade.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/facade/ProtTestFacadeImpl.java b/src/main/java/es/uvigo/darwin/prottest/facade/ProtTestFacadeImpl.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/facade/ProtTestFacadeMPJ.java b/src/main/java/es/uvigo/darwin/prottest/facade/ProtTestFacadeMPJ.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/facade/ProtTestFacadeSequential.java b/src/main/java/es/uvigo/darwin/prottest/facade/ProtTestFacadeSequential.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/facade/ProtTestFacadeThread.java b/src/main/java/es/uvigo/darwin/prottest/facade/ProtTestFacadeThread.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/facade/TreeFacade.java b/src/main/java/es/uvigo/darwin/prottest/facade/TreeFacade.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/facade/TreeFacadeImpl.java b/src/main/java/es/uvigo/darwin/prottest/facade/TreeFacadeImpl.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/facade/package.html b/src/main/java/es/uvigo/darwin/prottest/facade/package.html
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/facade/strategy/DistributionStrategy.java b/src/main/java/es/uvigo/darwin/prottest/facade/strategy/DistributionStrategy.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/facade/strategy/Distributor.java b/src/main/java/es/uvigo/darwin/prottest/facade/strategy/Distributor.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/facade/strategy/DynamicDistributionStrategy.java b/src/main/java/es/uvigo/darwin/prottest/facade/strategy/DynamicDistributionStrategy.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/facade/strategy/HybridDistributionStrategy.java b/src/main/java/es/uvigo/darwin/prottest/facade/strategy/HybridDistributionStrategy.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/facade/strategy/ImprovedDynamicDistributionStrategy.java b/src/main/java/es/uvigo/darwin/prottest/facade/strategy/ImprovedDynamicDistributionStrategy.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/facade/strategy/MultipleDistributor.java b/src/main/java/es/uvigo/darwin/prottest/facade/strategy/MultipleDistributor.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/facade/strategy/StaticDistributionStrategy.java b/src/main/java/es/uvigo/darwin/prottest/facade/strategy/StaticDistributionStrategy.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/facade/strategy/package.html b/src/main/java/es/uvigo/darwin/prottest/facade/strategy/package.html
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/facade/thread/ThreadPoolSynchronizer.java b/src/main/java/es/uvigo/darwin/prottest/facade/thread/ThreadPoolSynchronizer.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/facade/thread/package.html b/src/main/java/es/uvigo/darwin/prottest/facade/thread/package.html
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/facade/util/ProtTestParameterVO.java b/src/main/java/es/uvigo/darwin/prottest/facade/util/ProtTestParameterVO.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/facade/util/SelectionChunk.java b/src/main/java/es/uvigo/darwin/prottest/facade/util/SelectionChunk.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/facade/util/package.html b/src/main/java/es/uvigo/darwin/prottest/facade/util/package.html
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/global/AminoAcidApplicationGlobals.java b/src/main/java/es/uvigo/darwin/prottest/global/AminoAcidApplicationGlobals.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/global/ApplicationGlobals.java b/src/main/java/es/uvigo/darwin/prottest/global/ApplicationGlobals.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/global/ProtTestConsoleParameters.java b/src/main/java/es/uvigo/darwin/prottest/global/ProtTestConsoleParameters.java
old mode 100755
new mode 100644
index 16c2024..c54a511
--- a/src/main/java/es/uvigo/darwin/prottest/global/ProtTestConsoleParameters.java
+++ b/src/main/java/es/uvigo/darwin/prottest/global/ProtTestConsoleParameters.java
@@ -71,4 +71,6 @@ public interface ProtTestConsoleParameters {
     public static final String PARAM_LOGGING = "log";
     /** Verbose mode parameter token. */
     public static final String PARAM_VERBOSE = "verbose";
+    /** Show usage help */
+    public static final String PARAM_HELP = "h";
 }
diff --git a/src/main/java/es/uvigo/darwin/prottest/global/ProtTestConstants.java b/src/main/java/es/uvigo/darwin/prottest/global/ProtTestConstants.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/global/RaxmlAminoAcidApplicationGlobals.java b/src/main/java/es/uvigo/darwin/prottest/global/RaxmlAminoAcidApplicationGlobals.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/global/options/ApplicationOptions.java b/src/main/java/es/uvigo/darwin/prottest/global/options/ApplicationOptions.java
old mode 100755
new mode 100644
index f4483e9..3770285
--- a/src/main/java/es/uvigo/darwin/prottest/global/options/ApplicationOptions.java
+++ b/src/main/java/es/uvigo/darwin/prottest/global/options/ApplicationOptions.java
@@ -107,6 +107,28 @@ public class ApplicationOptions {
     /** Tree search operation */
     private String treeSearchOperation = TREE_SEARCH_NNI;
 
+    @Override
+    public boolean equals(Object obj) {
+System.out.println("Check equals");
+        if (this == obj) return true;
+        if (obj == null) return false;
+        if (getClass() != obj.getClass()) return false;
+        ApplicationOptions other = (ApplicationOptions) obj;
+        if (align_file == null || other.align_file == null) {
+            return false;
+        } else if (!align_file.equals(other.align_file)) {
+            return false;
+        }
+        if (strategyMode != other.strategyMode) return false;
+        if (ncat != other.ncat) return false;
+        if (tree_file != other.tree_file &&
+              (tree_file == null || !tree_file.equals(other.tree_file)))
+            return false;
+        if (!alignment.equals(other.alignment)) return false;
+        if (!tree.equals(other.tree)) return false;
+        return true;
+    }
+
     /**
      * Sets the number of categories.
      * 
@@ -556,6 +578,12 @@ public class ApplicationOptions {
      */
     public void fillIn(ProtTestArgumentParser arguments) {
 
+    	if(arguments.exists(ProtTestArgumentParser.PARAM_HELP))
+        {
+        	usage();
+        	System.exit(0);
+        }
+    	
         if (arguments.exists(ProtTestArgumentParser.PARAM_ALIGNMENT_FILE)) {
             try {
                 setAlignment(arguments.getValue(ProtTestArgumentParser.PARAM_ALIGNMENT_FILE));
@@ -696,9 +724,10 @@ public class ApplicationOptions {
         println("-------------------------------------------------------------------------------------------------");
         println("Basic usage: ");
         println(" - Sequential version: ");
-        println("        java -jar prottest-2.1.jar -i alignm_file [OPTIONS]");
+        println("        java -jar prottest-"+ProtTest.versionNumber+".jar -i align_file [OPTIONS]");
+        println("        ./prottest3 -i align_file [OPTIONS]");
         println(" - Parallel version: ");
-        println("        mpjrun.sh -wdir $PWD/ -np [NUM_PROCS] -jar prottest-"+ProtTest.versionNumber+".jar -i alignm_file [OPTIONS]");
+        println("        mpjrun.sh -wdir $PWD/ -np [NUM_PROCS] -jar prottest-"+ProtTest.versionNumber+".jar -i align_file [OPTIONS]");
         println("OPTIONS:");
         println(" -i alignment_filename");
         println("            Alignment input file (required)");
@@ -768,9 +797,9 @@ public class ApplicationOptions {
         println("-------------------------------------------------------------------------------------------------");
         println("Example: ");
         println("- Sequential version:");
-        println("    java -jar prottest-"+ProtTest.versionNumber+".jar -i alignm_file -t tree_file -S 0 -all-distributions -F -AIC -BIC -tc 0.5 > output");
+        println("    java -jar prottest-"+ProtTest.versionNumber+".jar -i align_file -t tree_file -S 0 -all-distributions -F -AIC -BIC -tc 0.5 > output");
         println("- Parallel version:");
-        println("    mpjrun.sh -wdir $PWD/ -np 2 -jar prottest-"+ProtTest.versionNumber+".jar -i alignm_file -t tree_file -S 0 -all-distributions -F -AIC -BIC -tc 0.5");
+        println("    mpjrun.sh -wdir $PWD/ -np 2 -jar prottest-"+ProtTest.versionNumber+".jar -i align_file -t tree_file -S 0 -all-distributions -F -AIC -BIC -tc 0.5");
     }
 
     public void reportModelOptimization() {
@@ -828,7 +857,7 @@ public class ApplicationOptions {
         if (!(doAIC|doBIC|doAICc|doDT))
             sb.append(" lnL");
         println("      " + sb.toString());
-        println("    Sample size.................: " + sampleSize + " (not calculated yet)");
+        println("    Sample size.................: " + sampleSize);
         println("  Other options:");
         println("    Display best tree in ASCII..: " + displayASCIITree);
         println("    Display best tree in Newick.: " + displayNewickTree);
diff --git a/src/main/java/es/uvigo/darwin/prottest/global/options/SerializableApplicationOptions.java b/src/main/java/es/uvigo/darwin/prottest/global/options/SerializableApplicationOptions.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/global/options/package.html b/src/main/java/es/uvigo/darwin/prottest/global/options/package.html
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/global/package.html b/src/main/java/es/uvigo/darwin/prottest/global/package.html
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/model/AminoAcidModel.java b/src/main/java/es/uvigo/darwin/prottest/model/AminoAcidModel.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/model/Model.java b/src/main/java/es/uvigo/darwin/prottest/model/Model.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/model/package.html b/src/main/java/es/uvigo/darwin/prottest/model/package.html
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/model/state/ModelEmptyLkState.java b/src/main/java/es/uvigo/darwin/prottest/model/state/ModelEmptyLkState.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/model/state/ModelFilledLkState.java b/src/main/java/es/uvigo/darwin/prottest/model/state/ModelFilledLkState.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/model/state/ModelLkState.java b/src/main/java/es/uvigo/darwin/prottest/model/state/ModelLkState.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/model/state/package.html b/src/main/java/es/uvigo/darwin/prottest/model/state/package.html
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/observer/ModelUpdaterObserver.java b/src/main/java/es/uvigo/darwin/prottest/observer/ModelUpdaterObserver.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/observer/ObservableModelUpdater.java b/src/main/java/es/uvigo/darwin/prottest/observer/ObservableModelUpdater.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/observer/package.html b/src/main/java/es/uvigo/darwin/prottest/observer/package.html
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/package.html b/src/main/java/es/uvigo/darwin/prottest/package.html
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/selection/AIC.java b/src/main/java/es/uvigo/darwin/prottest/selection/AIC.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/selection/AICc.java b/src/main/java/es/uvigo/darwin/prottest/selection/AICc.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/selection/BIC.java b/src/main/java/es/uvigo/darwin/prottest/selection/BIC.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/selection/DT.java b/src/main/java/es/uvigo/darwin/prottest/selection/DT.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/selection/InformationCriterion.java b/src/main/java/es/uvigo/darwin/prottest/selection/InformationCriterion.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/selection/LNL.java b/src/main/java/es/uvigo/darwin/prottest/selection/LNL.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/selection/model/AICSelectionModel.java b/src/main/java/es/uvigo/darwin/prottest/selection/model/AICSelectionModel.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/selection/model/AICcSelectionModel.java b/src/main/java/es/uvigo/darwin/prottest/selection/model/AICcSelectionModel.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/selection/model/BICSelectionModel.java b/src/main/java/es/uvigo/darwin/prottest/selection/model/BICSelectionModel.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/selection/model/DTSelectionModel.java b/src/main/java/es/uvigo/darwin/prottest/selection/model/DTSelectionModel.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/selection/model/LNLSelectionModel.java b/src/main/java/es/uvigo/darwin/prottest/selection/model/LNLSelectionModel.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/selection/model/SelectionModel.java b/src/main/java/es/uvigo/darwin/prottest/selection/model/SelectionModel.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/selection/model/package.html b/src/main/java/es/uvigo/darwin/prottest/selection/model/package.html
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/selection/package.html b/src/main/java/es/uvigo/darwin/prottest/selection/package.html
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/selection/printer/AminoAcidPrintFramework.java b/src/main/java/es/uvigo/darwin/prottest/selection/printer/AminoAcidPrintFramework.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/selection/printer/PrintFramework.java b/src/main/java/es/uvigo/darwin/prottest/selection/printer/PrintFramework.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/selection/printer/package.html b/src/main/java/es/uvigo/darwin/prottest/selection/printer/package.html
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/taxa/Taxon.java b/src/main/java/es/uvigo/darwin/prottest/taxa/Taxon.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/taxa/TaxonomicLevel.java b/src/main/java/es/uvigo/darwin/prottest/taxa/TaxonomicLevel.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/taxa/package.html b/src/main/java/es/uvigo/darwin/prottest/taxa/package.html
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/tree/TreeDistancesCache.java b/src/main/java/es/uvigo/darwin/prottest/tree/TreeDistancesCache.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/tree/TreeEuclideanDistancesCache.java b/src/main/java/es/uvigo/darwin/prottest/tree/TreeEuclideanDistancesCache.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/tree/TreeUtils.java b/src/main/java/es/uvigo/darwin/prottest/tree/TreeUtils.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/tree/WeightedTree.java b/src/main/java/es/uvigo/darwin/prottest/tree/WeightedTree.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/tree/package.html b/src/main/java/es/uvigo/darwin/prottest/tree/package.html
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/FixedBitSet.java b/src/main/java/es/uvigo/darwin/prottest/util/FixedBitSet.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/ProtTestAlignment.java b/src/main/java/es/uvigo/darwin/prottest/util/ProtTestAlignment.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/StatFramework.java b/src/main/java/es/uvigo/darwin/prottest/util/StatFramework.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/Utilities.java b/src/main/java/es/uvigo/darwin/prottest/util/Utilities.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/argumentparser/AminoAcidArgumentParser.java b/src/main/java/es/uvigo/darwin/prottest/util/argumentparser/AminoAcidArgumentParser.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/argumentparser/ProtTestArgumentParser.java b/src/main/java/es/uvigo/darwin/prottest/util/argumentparser/ProtTestArgumentParser.java
old mode 100755
new mode 100644
index 36f736d..c837602
--- a/src/main/java/es/uvigo/darwin/prottest/util/argumentparser/ProtTestArgumentParser.java
+++ b/src/main/java/es/uvigo/darwin/prottest/util/argumentparser/ProtTestArgumentParser.java
@@ -17,15 +17,21 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */
 package es.uvigo.darwin.prottest.util.argumentparser;
 
-import static es.uvigo.darwin.prottest.global.ApplicationGlobals.*;
+import static es.uvigo.darwin.prottest.global.ProtTestConstants.DEFAULT_NCAT;
+import static es.uvigo.darwin.prottest.global.ProtTestConstants.DEFAULT_STRATEGY_MODE;
+import static es.uvigo.darwin.prottest.global.ProtTestConstants.DEFAULT_THREADS;
+import static es.uvigo.darwin.prottest.global.ProtTestConstants.OPTIMIZE_VALUES;
+import static es.uvigo.darwin.prottest.global.ProtTestConstants.TREE_SEARCH_BEST;
+import static es.uvigo.darwin.prottest.global.ProtTestConstants.TREE_SEARCH_NNI;
+import static es.uvigo.darwin.prottest.global.ProtTestConstants.TREE_SEARCH_SPR;
 
-import es.uvigo.darwin.prottest.global.ProtTestConsoleParameters;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 
+import es.uvigo.darwin.prottest.global.ProtTestConsoleParameters;
 import es.uvigo.darwin.prottest.global.options.ApplicationOptions;
 
 /**
@@ -53,6 +59,8 @@ public abstract class ProtTestArgumentParser
         valuesRequired = new HashMap<String, Boolean>();
         argumentValues = new HashMap<String, String[]>();
         specialArguments = new HashMap<String, Map<String, String>>();
+        
+        valuesRequired.put(PARAM_HELP, false);
         valuesRequired.put(PARAM_ALIGNMENT_FILE, true);
         valuesRequired.put(PARAM_OUTPUT_FILE, true);
         valuesRequired.put(PARAM_TREE_FILE, true);
@@ -75,7 +83,7 @@ public abstract class ProtTestArgumentParser
         
         valuesRequired.put(PARAM_TREE_SEARCH_OP, true);
         argumentValues.put(PARAM_TREE_SEARCH_OP, treeSearchOps);
-        
+
         valuesRequired.put(PARAM_NUM_THREADS, true);
         valuesRequired.put(PARAM_ALL_FRAMEWORK_COMPARISON, false);
         valuesRequired.put(PARAM_DISPLAY_NEWICK_TREE, false);
@@ -125,7 +133,7 @@ public abstract class ProtTestArgumentParser
         		|| exists(PARAM_DO_AICC) || exists(PARAM_DO_DT))) {
         	putArgument(PARAM_DO_BIC, "T", arguments);
         }
-        
+       	
         options.fillIn(this);
     }
 
@@ -159,7 +167,7 @@ public abstract class ProtTestArgumentParser
             arg = arg.substring(ARG_TOKEN.length());
             if (valuesRequired.containsKey(arg)) {
                 if (valuesRequired.get(arg)) {
-                    if (i + 1 < args.length) {
+                    if (i + 1 < args.length && !args[i+1].startsWith("-")) {
                         i++;
                         String value = args[i];
                         if (argumentValues.containsKey(arg)) {
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/argumentparser/package.html b/src/main/java/es/uvigo/darwin/prottest/util/argumentparser/package.html
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/attributable/Attributable.java b/src/main/java/es/uvigo/darwin/prottest/util/attributable/Attributable.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/attributable/AttributableHelper.java b/src/main/java/es/uvigo/darwin/prottest/util/attributable/AttributableHelper.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/attributable/package.html b/src/main/java/es/uvigo/darwin/prottest/util/attributable/package.html
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/checkpoint/CheckPointManager.java b/src/main/java/es/uvigo/darwin/prottest/util/checkpoint/CheckPointManager.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/checkpoint/package.html b/src/main/java/es/uvigo/darwin/prottest/util/checkpoint/package.html
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/checkpoint/status/ApplicationStatus.java b/src/main/java/es/uvigo/darwin/prottest/util/checkpoint/status/ApplicationStatus.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/checkpoint/status/ProtTestStatus.java b/src/main/java/es/uvigo/darwin/prottest/util/checkpoint/status/ProtTestStatus.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/checkpoint/status/package.html b/src/main/java/es/uvigo/darwin/prottest/util/checkpoint/status/package.html
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/collection/ModelCollection.java b/src/main/java/es/uvigo/darwin/prottest/util/collection/ModelCollection.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/collection/ParallelModelCollection.java b/src/main/java/es/uvigo/darwin/prottest/util/collection/ParallelModelCollection.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/collection/ParallelModelQueue.java b/src/main/java/es/uvigo/darwin/prottest/util/collection/ParallelModelQueue.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/collection/SingleModelCollection.java b/src/main/java/es/uvigo/darwin/prottest/util/collection/SingleModelCollection.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/collection/package.html b/src/main/java/es/uvigo/darwin/prottest/util/collection/package.html
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/comparator/AminoAcidModelNaturalComparator.java b/src/main/java/es/uvigo/darwin/prottest/util/comparator/AminoAcidModelNaturalComparator.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/comparator/LKComparator.java b/src/main/java/es/uvigo/darwin/prottest/util/comparator/LKComparator.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/comparator/ModelDistributionHeuristic.java b/src/main/java/es/uvigo/darwin/prottest/util/comparator/ModelDistributionHeuristic.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/comparator/ModelWeightComparator.java b/src/main/java/es/uvigo/darwin/prottest/util/comparator/ModelWeightComparator.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/comparator/package.html b/src/main/java/es/uvigo/darwin/prottest/util/comparator/package.html
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/exception/AlignmentParseException.java b/src/main/java/es/uvigo/darwin/prottest/util/exception/AlignmentParseException.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/exception/ImportException.java b/src/main/java/es/uvigo/darwin/prottest/util/exception/ImportException.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/exception/ModelOptimizationException.java b/src/main/java/es/uvigo/darwin/prottest/util/exception/ModelOptimizationException.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/exception/ProtTestCheckedException.java b/src/main/java/es/uvigo/darwin/prottest/util/exception/ProtTestCheckedException.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/exception/ProtTestInternalException.java b/src/main/java/es/uvigo/darwin/prottest/util/exception/ProtTestInternalException.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/exception/TreeFormatException.java b/src/main/java/es/uvigo/darwin/prottest/util/exception/TreeFormatException.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/factory/ProtTestFactory.java b/src/main/java/es/uvigo/darwin/prottest/util/factory/ProtTestFactory.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/factory/package.html b/src/main/java/es/uvigo/darwin/prottest/util/factory/package.html
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/fileio/AlignmentReader.java b/src/main/java/es/uvigo/darwin/prottest/util/fileio/AlignmentReader.java
old mode 100755
new mode 100644
index b39a4c1..8d08537
--- a/src/main/java/es/uvigo/darwin/prottest/util/fileio/AlignmentReader.java
+++ b/src/main/java/es/uvigo/darwin/prottest/util/fileio/AlignmentReader.java
@@ -195,7 +195,7 @@ public class AlignmentReader {
         String currString;
         int size = alignment.getSequenceCount();
         for (int i = 0; i < size; i++) {
-            currString = (String) seqNames.get(i);
+            currString = seqNames.get(i);
             for (int j = i + 1; j < size; j++) {
                 if (seqNames.get(j).equals(currString)) {
                     throw new AlignmentParseException("ERROR: There are duplicated taxa names in the alignment: " + currString);
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/fileio/ImportHelper.java b/src/main/java/es/uvigo/darwin/prottest/util/fileio/ImportHelper.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/fileio/NexusExporter.java b/src/main/java/es/uvigo/darwin/prottest/util/fileio/NexusExporter.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/fileio/NexusImporter.java b/src/main/java/es/uvigo/darwin/prottest/util/fileio/NexusImporter.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/fileio/NexusTreeReader.java b/src/main/java/es/uvigo/darwin/prottest/util/fileio/NexusTreeReader.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/fileio/SimpleNewickTreeReader.java b/src/main/java/es/uvigo/darwin/prottest/util/fileio/SimpleNewickTreeReader.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/fileio/TreeReader.java b/src/main/java/es/uvigo/darwin/prottest/util/fileio/TreeReader.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/logging/ProtTestLogFormatter.java b/src/main/java/es/uvigo/darwin/prottest/util/logging/ProtTestLogFormatter.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/logging/ProtTestLogger.java b/src/main/java/es/uvigo/darwin/prottest/util/logging/ProtTestLogger.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/package.html b/src/main/java/es/uvigo/darwin/prottest/util/package.html
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/printer/ProtTestFormattedOutput.java b/src/main/java/es/uvigo/darwin/prottest/util/printer/ProtTestFormattedOutput.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/prottest/util/printer/ProtTestPrinter.java b/src/main/java/es/uvigo/darwin/prottest/util/printer/ProtTestPrinter.java
old mode 100755
new mode 100644
index 1a7cb51..a1f0f36
--- a/src/main/java/es/uvigo/darwin/prottest/util/printer/ProtTestPrinter.java
+++ b/src/main/java/es/uvigo/darwin/prottest/util/printer/ProtTestPrinter.java
@@ -21,8 +21,10 @@ import java.io.PrintWriter;
 import java.util.Date;
 
 import es.uvigo.darwin.prottest.ProtTest;
+import es.uvigo.darwin.prottest.exe.PhyMLv3AminoAcidRunEstimator;
 import es.uvigo.darwin.prottest.global.options.ApplicationOptions;
 import es.uvigo.darwin.prottest.util.logging.ProtTestLogger;
+
 import java.io.File;
 
 /**
@@ -55,19 +57,38 @@ public class ProtTestPrinter {
      */
     public static void printHeader() {
         println("");
-        println("");
+        println(ProtTestFormattedOutput.space(94, '-'));
         println("ProtTest " + ProtTest.versionNumber
                 + ProtTestFormattedOutput.space(27 - ProtTest.versionNumber.length(), ' ') +
                                                     "Fast selection of the best-fit models of protein evolution");
-        println("(c) 2009-2010   Diego Darriba (1,2), Guillermo Taboada (2), Ramón Doallo (2), David Posada (1)");
+        println("(c) 2009-2016   Diego Darriba (1,2), Guillermo Taboada (2), Ramón Doallo (2), David Posada (1)");
         println("(1)                               Facultad de Biologia, Universidad de Vigo, 36200 Vigo, Spain");
         println("(2)                    Facultade de Informática, Universidade da Coruña, 15071 A Coruña, Spain");
-        println("Contact:                                                     ddarriba at udc.es, dposada at uvigo.es");
-        println("----------------------------------------------------------------------------------------------");
-        println("");
-        println((new Date()).toString());
-        println("OS = " + System.getProperty("os.name") +
+        println(ProtTestFormattedOutput.space(94, '-'));
+        println("Manual:" + 
+        		ProtTestFormattedOutput.space(87 - ProtTest.URL_MANUAL.length(), ' ') +
+        		ProtTest.URL_MANUAL);
+        println("Homepage:" + 
+        		ProtTestFormattedOutput.space(85 - ProtTest.URL_HOMEPAGE.length(), ' ') +
+        		ProtTest.URL_HOMEPAGE);
+        println("Discussion group:" + 
+        		ProtTestFormattedOutput.space(77 - ProtTest.URL_DISCUSSION_GROUP.length(), ' ') +
+        		ProtTest.URL_DISCUSSION_GROUP);
+        println("Contact:                                                  ddarriba at h-its.org, dposada at uvigo.es");
+        println(ProtTestFormattedOutput.space(94, '-'));
+        println("");
+        println("Version:  " + ProtTest.versionNumber + " : " + ProtTest.versionDate);
+        println("Date:     " + (new Date()).toString());
+        println("OS:       " + System.getProperty("os.name") +
                 " (" + System.getProperty("os.version") + ")");
+        println("Arch:     " + System.getProperty("os.arch"));
+        println("Java:     " + System.getProperty("java.version") +
+                " (" + System.getProperty("java.vendor") + ")");
+//        println("VM Mem.(MB)= " +
+//        		  Runtime.getRuntime().totalMemory()/(1024*1024) + " (total) " +
+//        		  Runtime.getRuntime().maxMemory()/(1024*1024) + " (max) " +
+//        		  Runtime.getRuntime().freeMemory()/(1024*1024) + " (free)");
+        println("PhyML:    " + PhyMLv3AminoAcidRunEstimator.phymlBinaryStr);
         println("");
         println("Citation: Darriba D, Taboada GL, Doallo R, Posada D. ProtTest 3: fast selection of best-fit ");
         println("          models of protein evolution. Bioinformatics, 27:1164-1165, 2011");
diff --git a/src/main/java/es/uvigo/darwin/xprottest/CreditsBox.java b/src/main/java/es/uvigo/darwin/xprottest/CreditsBox.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/PreferencesView.java b/src/main/java/es/uvigo/darwin/xprottest/PreferencesView.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/XProtTestAboutBox.java b/src/main/java/es/uvigo/darwin/xprottest/XProtTestAboutBox.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/XProtTestApp.java b/src/main/java/es/uvigo/darwin/xprottest/XProtTestApp.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/XProtTestView.java b/src/main/java/es/uvigo/darwin/xprottest/XProtTestView.java
old mode 100755
new mode 100644
index a72094a..8bca91f
--- a/src/main/java/es/uvigo/darwin/xprottest/XProtTestView.java
+++ b/src/main/java/es/uvigo/darwin/xprottest/XProtTestView.java
@@ -19,7 +19,9 @@ package es.uvigo.darwin.xprottest;
 
 import java.awt.BorderLayout;
 import java.awt.Color;
+import java.awt.Desktop;
 import java.awt.FileDialog;
+import java.awt.Image;
 import java.awt.Insets;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
@@ -29,12 +31,14 @@ import java.io.FileNotFoundException;
 import java.io.FileWriter;
 import java.io.IOException;
 import java.io.PrintWriter;
+import java.net.URI;
 import java.util.logging.Handler;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
 import javax.swing.ActionMap;
 import javax.swing.Icon;
+import javax.swing.ImageIcon;
 import javax.swing.JDialog;
 import javax.swing.JFrame;
 import javax.swing.JLabel;
@@ -81,7 +85,6 @@ import es.uvigo.darwin.xprottest.compute.OptionsView;
 import es.uvigo.darwin.xprottest.compute.RunningFrame;
 import es.uvigo.darwin.xprottest.results.ErrorLogView;
 import es.uvigo.darwin.xprottest.results.ResultsView;
-import es.uvigo.darwin.xprottest.util.BrowserLauncher;
 import es.uvigo.darwin.xprottest.util.TextAreaAppender;
 
 /**
@@ -197,6 +200,9 @@ public final class XProtTestView extends FrameView {
 
 		initComponents();
 
+		Image image = new ImageIcon("icon.png").getImage();
+	    getFrame().setIconImage(image);
+	      
 		displayWriter = new PrintWriter(new TextAreaAppender(mainTextArea));
 		lowLevelDisplayWriter = new PrintWriter(new TextAreaAppender(
 				phymlTextArea));
@@ -341,13 +347,15 @@ public final class XProtTestView extends FrameView {
 		errorMenuItem = new JMenuItem();
 		helpMenu = new JMenu();
 		manualMenuItem = new JMenuItem();
+		homepageMenuItem = new JMenuItem();
+		discgroupMenuItem = new JMenuItem();
 		aboutMenuItem = new JMenuItem();
 
 		org.jdesktop.application.ResourceMap appResourceMap = org.jdesktop.application.Application
 				.getInstance(es.uvigo.darwin.xprottest.XProtTestApp.class)
 				.getContext().getResourceMap(XProtTestView.class);
 
-		mainPanel.setSize(new java.awt.Dimension(500, 860));
+		mainPanel.setSize(new java.awt.Dimension(600, 860));
 		mainPanel.setBorder(new BorderUIResource.EmptyBorderUIResource(
 				new java.awt.Insets(20, 20, 20, 20)));
 		mainPanel.setLocation(new java.awt.Point(10, -10));
@@ -355,10 +363,7 @@ public final class XProtTestView extends FrameView {
 		mainPanel.setAutoscrolls(true);
 		mainPanel.setLayout(new BorderLayout());
 		mainPanel.setBackground(null);
-
-		// mainPanel.setBackground(resourceMap.getColor("mainPanel.background"));
 		mainPanel.setName("mainPanel");
-		// mainPanel.setPreferredSize(new java.awt.Dimension(500, 600));
 
 		mainScrollPane.setSize(590, 800);// new java.awt.Dimension(590, 600));
 		mainScrollPane.setLocation(new java.awt.Point(20, 20));
@@ -654,12 +659,24 @@ public final class XProtTestView extends FrameView {
 		helpMenu.setText(bundle.getString("item-help"));
 		helpMenu.setName("helpMenu");
 
+		homepageMenuItem.setAction(actionMap.get("openHomepage"));
+		homepageMenuItem.setMnemonic('p');
+		homepageMenuItem.setText(appResourceMap.getString("menu-homepage"));
+		homepageMenuItem.setName("homepageMenuItem");
+		helpMenu.add(homepageMenuItem);
+		
 		manualMenuItem.setAction(actionMap.get("showManual"));
 		manualMenuItem.setMnemonic('m');
 		manualMenuItem.setText(appResourceMap.getString("menu-manual"));
 		manualMenuItem.setName("manualMenuItem");
 		helpMenu.add(manualMenuItem);
-
+		
+		discgroupMenuItem.setAction(actionMap.get("openDiscussionGroup"));
+		discgroupMenuItem.setMnemonic('D');
+		discgroupMenuItem.setText(appResourceMap.getString("menu-discussiongroup"));
+		discgroupMenuItem.setName("discgroupMenuItem");
+		helpMenu.add(discgroupMenuItem);
+		
 		aboutMenuItem.setAction(actionMap.get("showAboutBox"));
 		aboutMenuItem.setText(bundle.getString("item-about-window"));
 		aboutMenuItem.setName("aboutMenuItem");
@@ -1082,14 +1099,50 @@ public final class XProtTestView extends FrameView {
 	}
 
 	@Action
+	public void openDiscussionGroup() {
+		try {
+			if (Desktop.isDesktopSupported()) {
+				Desktop desktop = Desktop.getDesktop();
+				URI prottestURI = new URI(ProtTest.URL_DISCUSSION_GROUP);
+				desktop.browse(prottestURI);
+			} else {
+				displayWriter.println("Cannot browse URL. Please open " + 
+						ProtTest.URL_DISCUSSION_GROUP + " manually.");
+			}
+		} catch (Exception e) {
+			displayWriter.println("Cannot open URL : " + e.getMessage());
+		}
+	}
+	
+	@Action
+	public void openHomepage() {
+		try {
+			if (Desktop.isDesktopSupported()) {
+				Desktop desktop = Desktop.getDesktop();
+				URI prottestURI = new URI(ProtTest.URL_HOMEPAGE);
+				desktop.browse(prottestURI);
+			} else {
+				displayWriter.println("Cannot browse URL. Please open " + 
+						ProtTest.URL_HOMEPAGE + " manually.");
+			}
+		} catch (Exception e) {
+			displayWriter.println("Cannot open URL : " + e.getMessage());
+		}
+	}
+	
+	@Action
 	public void showManual() {
 		try {
-			BrowserLauncher
-					.openURL("http://darwin.uvigo.es/download/prottest_manual.pdf");
-
-		} catch (IOException e) {
+			if (Desktop.isDesktopSupported()) {
+				Desktop desktop = Desktop.getDesktop();
+				URI prottestURI = new URI(ProtTest.URL_MANUAL);
+				desktop.browse(prottestURI);
+			} else {
+				displayWriter.println("Cannot browse URL. Please open " + 
+						ProtTest.URL_MANUAL + " manually.");
+			}
+		} catch (Exception e) {
 			displayWriter.println("Cannot open URL : " + e.getMessage());
-
 		}
 	}
 
@@ -1113,7 +1166,9 @@ public final class XProtTestView extends FrameView {
 	private JTextArea phymlTextArea;
 	private JScrollPane mainScrollPane;
 	private JTextArea mainTextArea;
+	private JMenuItem homepageMenuItem;
 	private JMenuItem manualMenuItem;
+	private JMenuItem discgroupMenuItem;
 	private JMenuBar menuBar;
 	private JMenuItem preferencesMenuItem;
 	private JMenu resultsMenu;
diff --git a/src/main/java/es/uvigo/darwin/xprottest/analysis/FrequenciesView.java b/src/main/java/es/uvigo/darwin/xprottest/analysis/FrequenciesView.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/analysis/TreeView.java b/src/main/java/es/uvigo/darwin/xprottest/analysis/TreeView.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/analysis/TreeWrapper.java b/src/main/java/es/uvigo/darwin/xprottest/analysis/TreeWrapper.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/analysis/consensus/Consensus.java b/src/main/java/es/uvigo/darwin/xprottest/analysis/consensus/Consensus.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/analysis/consensus/resources/Consensus.properties b/src/main/java/es/uvigo/darwin/xprottest/analysis/consensus/resources/Consensus.properties
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/analysis/resources/FrequenciesView.properties b/src/main/java/es/uvigo/darwin/xprottest/analysis/resources/FrequenciesView.properties
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/analysis/resources/TreeView.properties b/src/main/java/es/uvigo/darwin/xprottest/analysis/resources/TreeView.properties
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/compute/OptionsView.java b/src/main/java/es/uvigo/darwin/xprottest/compute/OptionsView.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/compute/RunningFrame.java b/src/main/java/es/uvigo/darwin/xprottest/compute/RunningFrame.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/compute/resources/OptionsView.properties b/src/main/java/es/uvigo/darwin/xprottest/compute/resources/OptionsView.properties
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/compute/resources/RunningFrame.properties b/src/main/java/es/uvigo/darwin/xprottest/compute/resources/RunningFrame.properties
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/resources/CreditsBox.properties b/src/main/java/es/uvigo/darwin/xprottest/resources/CreditsBox.properties
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/resources/PreferencesView.properties b/src/main/java/es/uvigo/darwin/xprottest/resources/PreferencesView.properties
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/resources/XProtTestAboutBox.properties b/src/main/java/es/uvigo/darwin/xprottest/resources/XProtTestAboutBox.properties
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/resources/XProtTestApp.properties b/src/main/java/es/uvigo/darwin/xprottest/resources/XProtTestApp.properties
old mode 100755
new mode 100644
index 2503ae5..d9198e8
--- a/src/main/java/es/uvigo/darwin/xprottest/resources/XProtTestApp.properties
+++ b/src/main/java/es/uvigo/darwin/xprottest/resources/XProtTestApp.properties
@@ -2,7 +2,7 @@
 
 Application.name = XProtTest
 Application.title = XProtTest
-Application.version = 3.3
+Application.version = 3.4.2
 Application.vendor = Phylogenomics
 Application.homepage = http://code.google.com/p/prottest3
 Application.citation1 = Darriba D, Taboada GL, Doallo R, Posada D. ProtTest 3: fast selection
@@ -34,5 +34,7 @@ button-accept=Accept
 button-cancel=Cancel
 Form.background=238, 238, 238
 menu-manual=ProtTest Manual
+menu-homepage=ProtTest Homepage
+menu-discussiongroup=ProtTest Discussion Group
 export-to-console=Export to main console
 txtNCat.defaultText=4
diff --git a/src/main/java/es/uvigo/darwin/xprottest/resources/XProtTestView.properties b/src/main/java/es/uvigo/darwin/xprottest/resources/XProtTestView.properties
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/resources/about.png b/src/main/java/es/uvigo/darwin/xprottest/resources/about.png
old mode 100755
new mode 100644
index c6dfe0a..cc25062
Binary files a/src/main/java/es/uvigo/darwin/xprottest/resources/about.png and b/src/main/java/es/uvigo/darwin/xprottest/resources/about.png differ
diff --git a/src/main/java/es/uvigo/darwin/xprottest/resources/busyicons/busy-icon0.png b/src/main/java/es/uvigo/darwin/xprottest/resources/busyicons/busy-icon0.png
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/resources/busyicons/busy-icon1.png b/src/main/java/es/uvigo/darwin/xprottest/resources/busyicons/busy-icon1.png
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/resources/busyicons/busy-icon10.png b/src/main/java/es/uvigo/darwin/xprottest/resources/busyicons/busy-icon10.png
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/resources/busyicons/busy-icon11.png b/src/main/java/es/uvigo/darwin/xprottest/resources/busyicons/busy-icon11.png
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/resources/busyicons/busy-icon12.png b/src/main/java/es/uvigo/darwin/xprottest/resources/busyicons/busy-icon12.png
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/resources/busyicons/busy-icon13.png b/src/main/java/es/uvigo/darwin/xprottest/resources/busyicons/busy-icon13.png
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/resources/busyicons/busy-icon14.png b/src/main/java/es/uvigo/darwin/xprottest/resources/busyicons/busy-icon14.png
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/resources/busyicons/busy-icon2.png b/src/main/java/es/uvigo/darwin/xprottest/resources/busyicons/busy-icon2.png
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/resources/busyicons/busy-icon3.png b/src/main/java/es/uvigo/darwin/xprottest/resources/busyicons/busy-icon3.png
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/resources/busyicons/busy-icon4.png b/src/main/java/es/uvigo/darwin/xprottest/resources/busyicons/busy-icon4.png
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/resources/busyicons/busy-icon5.png b/src/main/java/es/uvigo/darwin/xprottest/resources/busyicons/busy-icon5.png
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/resources/busyicons/busy-icon6.png b/src/main/java/es/uvigo/darwin/xprottest/resources/busyicons/busy-icon6.png
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/resources/busyicons/busy-icon7.png b/src/main/java/es/uvigo/darwin/xprottest/resources/busyicons/busy-icon7.png
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/resources/busyicons/busy-icon8.png b/src/main/java/es/uvigo/darwin/xprottest/resources/busyicons/busy-icon8.png
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/resources/busyicons/busy-icon9.png b/src/main/java/es/uvigo/darwin/xprottest/resources/busyicons/busy-icon9.png
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/resources/busyicons/idle-icon.png b/src/main/java/es/uvigo/darwin/xprottest/resources/busyicons/idle-icon.png
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/resources/prottestlogo.gif b/src/main/java/es/uvigo/darwin/xprottest/resources/prottestlogo.gif
old mode 100755
new mode 100644
index eaaf955..77c933b
Binary files a/src/main/java/es/uvigo/darwin/xprottest/resources/prottestlogo.gif and b/src/main/java/es/uvigo/darwin/xprottest/resources/prottestlogo.gif differ
diff --git a/src/main/java/es/uvigo/darwin/xprottest/resources/splash.png b/src/main/java/es/uvigo/darwin/xprottest/resources/splash.png
deleted file mode 100755
index a1fbdc1..0000000
Binary files a/src/main/java/es/uvigo/darwin/xprottest/resources/splash.png and /dev/null differ
diff --git a/src/main/java/es/uvigo/darwin/xprottest/results/Bundle.properties b/src/main/java/es/uvigo/darwin/xprottest/results/Bundle.properties
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/results/ErrorLogView.java b/src/main/java/es/uvigo/darwin/xprottest/results/ErrorLogView.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/results/ResultsView.java b/src/main/java/es/uvigo/darwin/xprottest/results/ResultsView.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/results/resources/ErrorLogView.properties b/src/main/java/es/uvigo/darwin/xprottest/results/resources/ErrorLogView.properties
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/results/resources/ResultsView.properties b/src/main/java/es/uvigo/darwin/xprottest/results/resources/ResultsView.properties
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/util/BrowserLauncher.java b/src/main/java/es/uvigo/darwin/xprottest/util/BrowserLauncher.java
deleted file mode 100755
index 1ee8533..0000000
--- a/src/main/java/es/uvigo/darwin/xprottest/util/BrowserLauncher.java
+++ /dev/null
@@ -1,583 +0,0 @@
-package es.uvigo.darwin.xprottest.util;
-
-import java.io.File;
-import java.io.IOException;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Field;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-
-/**
- * BrowserLauncher is a class that provides one static method, openURL, which opens the default
- * web browser for the current user of the system to the given URL.  It may support other
- * protocols depending on the system -- mailto, ftp, etc. -- but that has not been rigorously
- * tested and is not guaranteed to work.
- * <p>
- * Yes, this is platform-specific code, and yes, it may rely on classes on certain platforms
- * that are not part of the standard JDK.  What we're trying to do, though, is to take something
- * that's frequently desirable but inherently platform-specific -- opening a default browser --
- * and allow programmers (you, for example) to do so without worrying about dropping into native
- * code or doing anything else similarly evil.
- * <p>
- * Anyway, this code is completely in Java and will run on all JDK 1.1-compliant systems without
- * modification or a need for additional libraries.  All classes that are required on certain
- * platforms to allow this to run are dynamically loaded at runtime via reflection and, if not
- * found, will not cause this to do anything other than returning an error when opening the
- * browser.
- * <p>
- * There are certain system requirements for this class, as it's running through Runtime.exec(),
- * which is Java's way of making a native system call.  Currently, this requires that a Macintosh
- * have a Finder which supports the GURL event, which is true for Mac OS 8.0 and 8.1 systems that
- * have the Internet Scripting AppleScript dictionary installed in the Scripting Additions folder
- * in the Extensions folder (which is installed by default as far as I know under Mac OS 8.0 and
- * 8.1), and for all Mac OS 8.5 and later systems.  On Windows, it only runs under Win32 systems
- * (Windows 95, 98, and NT 4.0, as well as later versions of all).  On other systems, this drops
- * back from the inherently platform-sensitive concept of a default browser and simply attempts
- * to launch Netscape via a shell command.
- * <p>
- * This code is Copyright 1999-2001 by Eric Albert (ejalbert at cs.stanford.edu) and may be
- * redistributed or modified in any form without restrictions as long as the portion of this
- * comment from this paragraph through the end of the comment is not removed.  The author
- * requests that he be notified of any application, applet, or other binary that makes use of
- * this code, but that's more out of curiosity than anything and is not required.  This software
- * includes no warranty.  The author is not repsonsible for any loss of data or functionality
- * or any adverse or unexpected effects of using this software.
- * <p>
- * Credits:
- * <br>Steven Spencer, JavaWorld magazine (<a href="http://www.javaworld.com/javaworld/javatips/jw-javatip66.html">Java Tip 66</a>)
- * <br>Thanks also to Ron B. Yeh, Eric Shapiro, Ben Engber, Paul Teitlebaum, Andrea Cantatore,
- * Larry Barowski, Trevor Bedzek, Frank Miedrich, and Ron Rabakukk
- *
- * @author Eric Albert (<a href="mailto:ejalbert at cs.stanford.edu">ejalbert at cs.stanford.edu</a>)
- * @version 1.4b1 (Released June 20, 2001)
- */
-public class BrowserLauncher {
-
-	/**
-	 * The Java virtual machine that we are running on.  Actually, in most cases we only care
-	 * about the operating system, but some operating systems require us to switch on the VM. */
-	private static int jvm;
-
-	/** The browser for the system */
-	private static Object browser;
-
-	/**
-	 * Caches whether any classes, methods, and fields that are not part of the JDK and need to
-	 * be dynamically loaded at runtime loaded successfully.
-	 * <p>
-	 * Note that if this is <code>false</code>, <code>openURL()</code> will always return an
-	 * IOException.
-	 */
-	private static boolean loadedWithoutErrors;
-
-	/** The com.apple.mrj.MRJFileUtils class */
-	private static Class mrjFileUtilsClass;
-
-	/** The com.apple.mrj.MRJOSType class */
-	private static Class mrjOSTypeClass;
-
-	/** The com.apple.MacOS.AEDesc class */
-	private static Class aeDescClass;
-
-	/** The <init>(int) method of com.apple.MacOS.AETarget */
-	private static Constructor aeTargetConstructor;
-
-	/** The <init>(int, int, int) method of com.apple.MacOS.AppleEvent */
-	private static Constructor appleEventConstructor;
-
-	/** The <init>(String) method of com.apple.MacOS.AEDesc */
-	private static Constructor aeDescConstructor;
-
-	/** The findFolder method of com.apple.mrj.MRJFileUtils */
-	private static Method findFolder;
-
-	/** The getFileCreator method of com.apple.mrj.MRJFileUtils */
-	private static Method getFileCreator;
-
-	/** The getFileType method of com.apple.mrj.MRJFileUtils */
-	private static Method getFileType;
-
-	/** The openURL method of com.apple.mrj.MRJFileUtils */
-	private static Method openURL;
-
-	/** The makeOSType method of com.apple.MacOS.OSUtils */
-	private static Method makeOSType;
-
-	/** The putParameter method of com.apple.MacOS.AppleEvent */
-	private static Method putParameter;
-
-	/** The sendNoReply method of com.apple.MacOS.AppleEvent */
-	private static Method sendNoReply;
-
-	/** Actually an MRJOSType pointing to the System Folder on a Macintosh */
-	private static Object kSystemFolderType;
-
-	/** The keyDirectObject AppleEvent parameter type */
-	private static Integer keyDirectObject;
-
-	/** The kAutoGenerateReturnID AppleEvent code */
-	private static Integer kAutoGenerateReturnID;
-
-	/** The kAnyTransactionID AppleEvent code */
-	private static Integer kAnyTransactionID;
-
-	/** The linkage object required for JDirect 3 on Mac OS X. */
-	private static Object linkage;
-
-	/** The framework to reference on Mac OS X */
-	private static final String JDirect_MacOSX = "/System/Library/Frameworks/Carbon.framework/Frameworks/HIToolbox.framework/HIToolbox";
-
-	/** JVM constant for MRJ 2.0 */
-	private static final int MRJ_2_0 = 0;
-
-	/** JVM constant for MRJ 2.1 or later */
-	private static final int MRJ_2_1 = 1;
-
-	/** JVM constant for Java on Mac OS X 10.0 (MRJ 3.0) */
-	private static final int MRJ_3_0 = 3;
-
-	/** JVM constant for MRJ 3.1 */
-	private static final int MRJ_3_1 = 4;
-
-	/** JVM constant for any Windows NT JVM */
-	private static final int WINDOWS_NT = 5;
-
-	/** JVM constant for any Windows 9x JVM */
-	private static final int WINDOWS_9x = 6;
-
-	/** JVM constant for any other platform */
-	private static final int OTHER = -1;
-
-	/**
-	 * The file type of the Finder on a Macintosh.  Hardcoding "Finder" would keep non-U.S. English
-	 * systems from working properly.
-	 */
-	private static final String FINDER_TYPE = "FNDR";
-
-	/**
-	 * The creator code of the Finder on a Macintosh, which is needed to send AppleEvents to the
-	 * application.
-	 */
-	private static final String FINDER_CREATOR = "MACS";
-
-	/** The name for the AppleEvent type corresponding to a GetURL event. */
-	private static final String GURL_EVENT = "GURL";
-
-	/**
-	 * The first parameter that needs to be passed into Runtime.exec() to open the default web
-	 * browser on Windows.
-	 */
-    private static final String FIRST_WINDOWS_PARAMETER = "/c";
-
-    /** The second parameter for Runtime.exec() on Windows. */
-    private static final String SECOND_WINDOWS_PARAMETER = "start";
-
-    /**
-     * The third parameter for Runtime.exec() on Windows.  This is a "title"
-     * parameter that the command line expects.  Setting this parameter allows
-     * URLs containing spaces to work.
-     */
-    private static final String THIRD_WINDOWS_PARAMETER = "\"\"";
-
-	/**
-	 * The shell parameters for Netscape that opens a given URL in an already-open copy of Netscape
-	 * on many command-line systems.
-	 */
-	private static final String NETSCAPE_REMOTE_PARAMETER = "-remote";
-	private static final String NETSCAPE_OPEN_PARAMETER_START = "'openURL(";
-	private static final String NETSCAPE_OPEN_PARAMETER_END = ")'";
-
-	/**
-	 * The message from any exception thrown throughout the initialization process.
-	 */
-	private static String errorMessage;
-
-	/**
-	 * An initialization block that determines the operating system and loads the necessary
-	 * runtime data.
-	 */
-	static {
-		loadedWithoutErrors = true;
-		String osName = System.getProperty("os.name");
-		if (osName.startsWith("Mac OS")) {
-			String mrjVersion = System.getProperty("mrj.version");
-			String majorMRJVersion = mrjVersion.substring(0, 3);
-			try {
-				double version = Double.valueOf(majorMRJVersion).doubleValue();
-				if (version == 2) {
-					jvm = MRJ_2_0;
-				} else if (version >= 2.1 && version < 3) {
-					// Assume that all 2.x versions of MRJ work the same.  MRJ 2.1 actually
-					// works via Runtime.exec() and 2.2 supports that but has an openURL() method
-					// as well that we currently ignore.
-					jvm = MRJ_2_1;
-				} else if (version == 3.0) {
-					jvm = MRJ_3_0;
-				} else if (version >= 3.1) {
-					// Assume that all 3.1 and later versions of MRJ work the same.
-					jvm = MRJ_3_1;
-				} else {
-					loadedWithoutErrors = false;
-					errorMessage = "Unsupported MRJ version: " + version;
-				}
-			} catch (NumberFormatException nfe) {
-				loadedWithoutErrors = false;
-				errorMessage = "Invalid MRJ version: " + mrjVersion;
-			}
-		} else if (osName.startsWith("Windows")) {
-			if (osName.indexOf("9") != -1) {
-				jvm = WINDOWS_9x;
-			} else {
-				jvm = WINDOWS_NT;
-			}
-		} else {
-			jvm = OTHER;
-		}
-
-		if (loadedWithoutErrors) {	// if we haven't hit any errors yet
-			loadedWithoutErrors = loadClasses();
-		}
-	}
-
-	/**
-	 * This class should be never be instantiated; this just ensures so.
-	 */
-	private BrowserLauncher() { }
-
-	/**
-	 * Called by a static initializer to load any classes, fields, and methods required at runtime
-	 * to locate the user's web browser.
-	 * @return <code>true</code> if all intialization succeeded
-	 *			<code>false</code> if any portion of the initialization failed
-	 */
-	private static boolean loadClasses() {
-		switch (jvm) {
-			case MRJ_2_0:
-				try {
-					Class aeTargetClass = Class.forName("com.apple.MacOS.AETarget");
-					Class osUtilsClass = Class.forName("com.apple.MacOS.OSUtils");
-					Class appleEventClass = Class.forName("com.apple.MacOS.AppleEvent");
-					Class aeClass = Class.forName("com.apple.MacOS.ae");
-					aeDescClass = Class.forName("com.apple.MacOS.AEDesc");
-
-					aeTargetConstructor = aeTargetClass.getDeclaredConstructor(new Class [] { int.class });
-					appleEventConstructor = appleEventClass.getDeclaredConstructor(new Class[] { int.class, int.class, aeTargetClass, int.class, int.class });
-					aeDescConstructor = aeDescClass.getDeclaredConstructor(new Class[] { String.class });
-
-					makeOSType = osUtilsClass.getDeclaredMethod("makeOSType", new Class [] { String.class });
-					putParameter = appleEventClass.getDeclaredMethod("putParameter", new Class[] { int.class, aeDescClass });
-					sendNoReply = appleEventClass.getDeclaredMethod("sendNoReply", new Class[] { });
-
-					Field keyDirectObjectField = aeClass.getDeclaredField("keyDirectObject");
-					keyDirectObject = (Integer) keyDirectObjectField.get(null);
-					Field autoGenerateReturnIDField = appleEventClass.getDeclaredField("kAutoGenerateReturnID");
-					kAutoGenerateReturnID = (Integer) autoGenerateReturnIDField.get(null);
-					Field anyTransactionIDField = appleEventClass.getDeclaredField("kAnyTransactionID");
-					kAnyTransactionID = (Integer) anyTransactionIDField.get(null);
-				} catch (ClassNotFoundException cnfe) {
-					errorMessage = cnfe.getMessage();
-					return false;
-				} catch (NoSuchMethodException nsme) {
-					errorMessage = nsme.getMessage();
-					return false;
-				} catch (NoSuchFieldException nsfe) {
-					errorMessage = nsfe.getMessage();
-					return false;
-				} catch (IllegalAccessException iae) {
-					errorMessage = iae.getMessage();
-					return false;
-				}
-				break;
-			case MRJ_2_1:
-				try {
-					mrjFileUtilsClass = Class.forName("com.apple.mrj.MRJFileUtils");
-					mrjOSTypeClass = Class.forName("com.apple.mrj.MRJOSType");
-					Field systemFolderField = mrjFileUtilsClass.getDeclaredField("kSystemFolderType");
-					kSystemFolderType = systemFolderField.get(null);
-					findFolder = mrjFileUtilsClass.getDeclaredMethod("findFolder", new Class[] { mrjOSTypeClass });
-					getFileCreator = mrjFileUtilsClass.getDeclaredMethod("getFileCreator", new Class[] { File.class });
-					getFileType = mrjFileUtilsClass.getDeclaredMethod("getFileType", new Class[] { File.class });
-				} catch (ClassNotFoundException cnfe) {
-					errorMessage = cnfe.getMessage();
-					return false;
-				} catch (NoSuchFieldException nsfe) {
-					errorMessage = nsfe.getMessage();
-					return false;
-				} catch (NoSuchMethodException nsme) {
-					errorMessage = nsme.getMessage();
-					return false;
-				} catch (SecurityException se) {
-					errorMessage = se.getMessage();
-					return false;
-				} catch (IllegalAccessException iae) {
-					errorMessage = iae.getMessage();
-					return false;
-				}
-				break;
-			case MRJ_3_0:
-			    try {
-					Class linker = Class.forName("com.apple.mrj.jdirect.Linker");
-					Constructor constructor = linker.getConstructor(new Class[]{ Class.class });
-					linkage = constructor.newInstance(new Object[] { BrowserLauncher.class });
-				} catch (ClassNotFoundException cnfe) {
-					errorMessage = cnfe.getMessage();
-					return false;
-				} catch (NoSuchMethodException nsme) {
-					errorMessage = nsme.getMessage();
-					return false;
-				} catch (InvocationTargetException ite) {
-					errorMessage = ite.getMessage();
-					return false;
-				} catch (InstantiationException ie) {
-					errorMessage = ie.getMessage();
-					return false;
-				} catch (IllegalAccessException iae) {
-					errorMessage = iae.getMessage();
-					return false;
-				}
-				break;
-			case MRJ_3_1:
-				try {
-					mrjFileUtilsClass = Class.forName("com.apple.mrj.MRJFileUtils");
-					openURL = mrjFileUtilsClass.getDeclaredMethod("openURL", new Class[] { String.class });
-				} catch (ClassNotFoundException cnfe) {
-					errorMessage = cnfe.getMessage();
-					return false;
-				} catch (NoSuchMethodException nsme) {
-					errorMessage = nsme.getMessage();
-					return false;
-				}
-				break;
-			default:
-			    break;
-		}
-		return true;
-	}
-
-	/**
-	 * Attempts to locate the default web browser on the local system.  Caches results so it
-	 * only locates the browser once for each use of this class per JVM instance.
-	 * @return The browser for the system.  Note that this may not be what you would consider
-	 *			to be a standard web browser; instead, it's the application that gets called to
-	 *			open the default web browser.  In some cases, this will be a non-String object
-	 *			that provides the means of calling the default browser.
-	 */
-	private static Object locateBrowser() {
-		if (browser != null) {
-			return browser;
-		}
-		switch (jvm) {
-			case MRJ_2_0:
-				try {
-					Integer finderCreatorCode = (Integer) makeOSType.invoke(null, new Object[] { FINDER_CREATOR });
-					Object aeTarget = aeTargetConstructor.newInstance(new Object[] { finderCreatorCode });
-					Integer gurlType = (Integer) makeOSType.invoke(null, new Object[] { GURL_EVENT });
-					Object appleEvent = appleEventConstructor.newInstance(new Object[] { gurlType, gurlType, aeTarget, kAutoGenerateReturnID, kAnyTransactionID });
-					// Don't set browser = appleEvent because then the next time we call
-					// locateBrowser(), we'll get the same AppleEvent, to which we'll already have
-					// added the relevant parameter. Instead, regenerate the AppleEvent every time.
-					// There's probably a way to do this better; if any has any ideas, please let
-					// me know.
-					return appleEvent;
-				} catch (IllegalAccessException iae) {
-					browser = null;
-					errorMessage = iae.getMessage();
-					return browser;
-				} catch (InstantiationException ie) {
-					browser = null;
-					errorMessage = ie.getMessage();
-					return browser;
-				} catch (InvocationTargetException ite) {
-					browser = null;
-					errorMessage = ite.getMessage();
-					return browser;
-				}
-			case MRJ_2_1:
-				File systemFolder;
-				try {
-					systemFolder = (File) findFolder.invoke(null, new Object[] { kSystemFolderType });
-				} catch (IllegalArgumentException iare) {
-					browser = null;
-					errorMessage = iare.getMessage();
-					return browser;
-				} catch (IllegalAccessException iae) {
-					browser = null;
-					errorMessage = iae.getMessage();
-					return browser;
-				} catch (InvocationTargetException ite) {
-					browser = null;
-					errorMessage = ite.getTargetException().getClass() + ": " + ite.getTargetException().getMessage();
-					return browser;
-				}
-				String[] systemFolderFiles = systemFolder.list();
-				// Avoid a FilenameFilter because that can't be stopped mid-list
-				for(int i = 0; i < systemFolderFiles.length; i++) {
-					try {
-						File file = new File(systemFolder, systemFolderFiles[i]);
-						if (!file.isFile()) {
-							continue;
-						}
-						// We're looking for a file with a creator code of 'MACS' and
-						// a type of 'FNDR'.  Only requiring the type results in non-Finder
-						// applications being picked up on certain Mac OS 9 systems,
-						// especially German ones, and sending a GURL event to those
-						// applications results in a logout under Multiple Users.
-						Object fileType = getFileType.invoke(null, new Object[] { file });
-						if (FINDER_TYPE.equals(fileType.toString())) {
-							Object fileCreator = getFileCreator.invoke(null, new Object[] { file });
-							if (FINDER_CREATOR.equals(fileCreator.toString())) {
-								browser = file.toString();	// Actually the Finder, but that's OK
-								return browser;
-							}
-						}
-					} catch (IllegalArgumentException iare) {
-						browser = browser;
-						errorMessage = iare.getMessage();
-						return null;
-					} catch (IllegalAccessException iae) {
-						browser = null;
-						errorMessage = iae.getMessage();
-						return browser;
-					} catch (InvocationTargetException ite) {
-						browser = null;
-						errorMessage = ite.getTargetException().getClass() + ": " + ite.getTargetException().getMessage();
-						return browser;
-					}
-				}
-				browser = null;
-				break;
-			case MRJ_3_0:
-			case MRJ_3_1:
-				browser = "";	// Return something non-null
-				break;
-			case WINDOWS_NT:
-				browser = "cmd.exe";
-				break;
-			case WINDOWS_9x:
-				browser = "command.com";
-				break;
-			case OTHER:
-			default:
-				browser = "netscape";
-				break;
-		}
-		return browser;
-	}
-
-	/**
-	 * Attempts to open the default web browser to the given URL.
-	 * @param url The URL to open
-	 * @throws IOException If the web browser could not be located or does not run
-	 */
-	public static void openURL(String url) throws IOException {
-		if (!loadedWithoutErrors) {
-			throw new IOException("Exception in finding browser: " + errorMessage);
-		}
-		Object browser = locateBrowser();
-		if (browser == null) {
-			throw new IOException("Unable to locate browser: " + errorMessage);
-		}
-
-		switch (jvm) {
-			case MRJ_2_0:
-				Object aeDesc = null;
-				try {
-					aeDesc = aeDescConstructor.newInstance(new Object[] { url });
-					putParameter.invoke(browser, new Object[] { keyDirectObject, aeDesc });
-					sendNoReply.invoke(browser, new Object[] { });
-				} catch (InvocationTargetException ite) {
-					throw new IOException("InvocationTargetException while creating AEDesc: " + ite.getMessage());
-				} catch (IllegalAccessException iae) {
-					throw new IOException("IllegalAccessException while building AppleEvent: " + iae.getMessage());
-				} catch (InstantiationException ie) {
-					throw new IOException("InstantiationException while creating AEDesc: " + ie.getMessage());
-				} finally {
-					aeDesc = null;	// Encourage it to get disposed if it was created
-					browser = null;	// Ditto
-				}
-				break;
-			case MRJ_2_1:
-				Runtime.getRuntime().exec(new String[] { (String) browser, url } );
-				break;
-			case MRJ_3_0:
-				int[] instance = new int[1];
-				int result = ICStart(instance, 0);
-				if (result == 0) {
-					int[] selectionStart = new int[] { 0 };
-					byte[] urlBytes = url.getBytes();
-					int[] selectionEnd = new int[] { urlBytes.length };
-					result = ICLaunchURL(instance[0], new byte[] { 0 }, urlBytes,
-											urlBytes.length, selectionStart,
-											selectionEnd);
-					if (result == 0) {
-						// Ignore the return value; the URL was launched successfully
-						// regardless of what happens here.
-						ICStop(instance);
-					} else {
-						throw new IOException("Unable to launch URL: " + result);
-					}
-				} else {
-					throw new IOException("Unable to create an Internet Config instance: " + result);
-				}
-				break;
-			case MRJ_3_1:
-				try {
-					openURL.invoke(null, new Object[] { url });
-				} catch (InvocationTargetException ite) {
-					throw new IOException("InvocationTargetException while calling openURL: " + ite.getMessage());
-				} catch (IllegalAccessException iae) {
-					throw new IOException("IllegalAccessException while calling openURL: " + iae.getMessage());
-				}
-				break;
-		    case WINDOWS_NT:
-		    case WINDOWS_9x:
-		    	// Add quotes around the URL to allow ampersands and other special
-		    	// characters to work.
-				Process process = Runtime.getRuntime().exec(new String[] { (String) browser,
-																FIRST_WINDOWS_PARAMETER,
-																SECOND_WINDOWS_PARAMETER,
-																THIRD_WINDOWS_PARAMETER,
-																'"' + url + '"' });
-				// This avoids a memory leak on some versions of Java on Windows.
-				// That's hinted at in <http://developer.java.sun.com/developer/qow/archive/68/>.
-				try {
-					process.waitFor();
-					process.exitValue();
-				} catch (InterruptedException ie) {
-					throw new IOException("InterruptedException while launching browser: " + ie.getMessage());
-				}
-				break;
-			case OTHER:
-				// Assume that we're on Unix and that Netscape is installed
-
-				// First, attempt to open the URL in a currently running session of Netscape
-				process = Runtime.getRuntime().exec(new String[] { (String) browser,
-													NETSCAPE_REMOTE_PARAMETER,
-													NETSCAPE_OPEN_PARAMETER_START +
-													url +
-													NETSCAPE_OPEN_PARAMETER_END });
-				try {
-					int exitCode = process.waitFor();
-					if (exitCode != 0) {	// if Netscape was not open
-						Runtime.getRuntime().exec(new String[] { (String) browser, url });
-					}
-				} catch (InterruptedException ie) {
-					throw new IOException("InterruptedException while launching browser: " + ie.getMessage());
-				}
-				break;
-			default:
-				// This should never occur, but if it does, we'll try the simplest thing possible
-				Runtime.getRuntime().exec(new String[] { (String) browser, url });
-				break;
-		}
-	}
-
-	/**
-	 * Methods required for Mac OS X.  The presence of native methods does not cause
-	 * any problems on other platforms.
-	 */
-	private native static int ICStart(int[] instance, int signature);
-	private native static int ICStop(int[] instance);
-	private native static int ICLaunchURL(int instance, byte[] hint, byte[] data, int len,
-											int[] selectionStart, int[] selectionEnd);
-}
diff --git a/src/main/java/es/uvigo/darwin/xprottest/util/OptimizationStrategyWrapper.java b/src/main/java/es/uvigo/darwin/xprottest/util/OptimizationStrategyWrapper.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/util/TextAreaAppender.java b/src/main/java/es/uvigo/darwin/xprottest/util/TextAreaAppender.java
old mode 100755
new mode 100644
diff --git a/src/main/java/es/uvigo/darwin/xprottest/util/TextAreaWriter.java b/src/main/java/es/uvigo/darwin/xprottest/util/TextAreaWriter.java
old mode 100755
new mode 100644
diff --git a/src/main/resources/CHANGELOG b/src/main/resources/CHANGELOG
index ebe85ab..93e1697 100644
--- a/src/main/resources/CHANGELOG
+++ b/src/main/resources/CHANGELOG
@@ -1,5 +1,5 @@
 -----------------------------------------------------------------------------
-ProtTest 3 Change Log -	25/Oct/2015
+ProtTest 3 Change Log -	8/May/2016
 
 Diego Darriba (ddarriba at udc.es)
 Guillermo L. Taboada (taboada at udc.es)
@@ -11,6 +11,15 @@ David Posada (dposada at uvigo.es)
 
 -----------------------------------------------------------------------------
 
+ProtTest 3.4.2 (8/May/2016)
+
+  * Enhancement : Removed dependency on Netbeans libraries
+
+  * Enhancement : Check for global binaries on PATH env variable
+
+  * Enhancement : Added 'prottest3' script for running both GUi and console
+                  interfaces (GUI if the script is called with no args)
+
 ProtTest 3.4.1 (25/Oct/2015)
 
   * Enhancement : Removed dependency on WriterOutputStream class.
diff --git a/src/main/resources/COPYING b/src/main/resources/COPYING
old mode 100755
new mode 100644
diff --git a/src/main/resources/README b/src/main/resources/README
old mode 100755
new mode 100644
index 045a2a2..f7e74dc
--- a/src/main/resources/README
+++ b/src/main/resources/README
@@ -1,5 +1,5 @@
 -----------------------------------------------------------------------------
-ProtTest 3 Readme -	25/Oct/2015
+ProtTest 3 Readme -	8/May/2016
 
 Diego Darriba (ddarriba at udc.es)
 Guillermo L. Taboada (taboada at udc.es)
@@ -45,17 +45,17 @@ TOC
 
 Console version
 
-$ tar zvxf prottest-3.4.1-yyyymmdd.tar.gz
+$ tar zvxf prottest-3.4.2-yyyymmdd.tar.gz
 (Linux/Unix/OS X)
 $ export PROTTEST_HOME=$PWD/prottest3
 (Windows)
 $ set PROTTEST_HOME=$CWD\prottest3
 $ cd $PROTTEST_HOME
-$ java -jar prottest-3.4.1.jar -i examples/COX2_PF0016/alignment -all-matrices -all-distributions -threads 2
+$ java -jar prottest-3.4.2.jar -i examples/COX2_PF0016/alignment -all-matrices -all-distributions -threads 2
 
 Graphical version
 
-$ tar zvxf prottest-3.4.1-yyyymmdd.tar.gz
+$ tar zvxf prottest-3.4.2-yyyymmdd.tar.gz
 (Linux/Unix/OS X)
 $ export PROTTEST_HOME=$PWD/prottest3
 (Windows)
@@ -99,13 +99,14 @@ $PROTTEST_HOME/
      # some test alignments and trees
   |
   | filecluster8.conf.template  # machines file template for 8 node cluster
-  | machines			# machines file for cluster execution
-  | prottest.properties		# ProtTest3 configuration file (always required)
-  | prottest-3.4.1.jar		# ProtTest3 package
-  | README			# this README file
-  | COPYING                     # ProtTest3 licese
-  | runProtTestHPC.sh		# basic script for ProtTest3 cluster execution
-  | runXProtTestHPC.sh		# basic script for ProtTest3 graphical version
+  | machines 	            # machines file for cluster execution
+  | prottest3             # script for running ProtTest console or graphical
+  | prottest.properties   # ProtTest3 configuration file (always required)
+  | prottest-3.4.2.jar    # ProtTest3 package
+  | README                # this README file
+  | COPYING               # ProtTest3 licese
+  | runProtTestHPC.sh     # basic script for ProtTest3 cluster execution
+  | runXProtTestHPC.sh    # basic script for ProtTest3 graphical version
   
 - The ProtTest properties (prottest.properties) file must be located in the 
 ProtTest root directory. It has the execution preferences. Please refer to such
@@ -210,7 +211,10 @@ These are the parameters of the sequential execution:
 Basic execution example:
 
 	$ cd $PROTTEST_HOME
-	$ java -jar prottest-3.4.1.jar -i examples/COX2_PF0016/alignment -all-distributions -F -AIC -BIC -tc 0.5
+
+	$ java -jar prottest-3.4.2.jar -i examples/COX2_PF0016/alignment -all-distributions -F -AIC -BIC -tc 0.5
+  or
+	$ ./prottest3 -i examples/COX2_PF0016/alignment -all-distributions -F -AIC -BIC -tc 0.5
 
 
 -----------------------------------------------------------------------------
@@ -222,7 +226,7 @@ can use up to the number of cores in your machine and beyond. Following the basi
 execution example, a recommended multithread execution in a quad-core machine will be:
 
 	$ cd $PROTTEST_HOME
-	$ java -jar prottest-3.4.1.jar -i examples/COX2_PF0016/alignment -all-distributions -F -AIC -BIC -tc 0.5 -threads 4
+	$ java -jar prottest-3.4.2.jar -i examples/COX2_PF0016/alignment -all-distributions -F -AIC -BIC -tc 0.5 -threads 4
 
 It is remarkable that the substitution models will not be computed in a specific
 order, so the full output will be shown once all models have been computed. 
@@ -288,7 +292,10 @@ of the application, so it will be the best choice for running ProtTest on
 a local multicore machine.
 
 $ cd $PROTTEST_HOME
+
 $ ./runXProtTestHPC.sh
+or
+$ ./prottest3
 
 -----------------------------------------------------------------------------
 5. Frequently Asked Questions
@@ -296,7 +303,7 @@ $ ./runXProtTestHPC.sh
 
  5.1. I got this error when running ProtTest 3
 
-      ./phyml-prottest-linux: /lib/libc.so.6: version `GLIBC_2.7' not found 
+      ./PhyML_3.0_linux32: /lib/libc.so.6: version `GLIBC_2.7' not found 
 
     ---
 
diff --git a/src/main/resources/THIRDPARTYLICENSES b/src/main/resources/THIRDPARTYLICENSES
old mode 100755
new mode 100644
diff --git a/src/main/resources/bin/README b/src/main/resources/bin/README
new file mode 100644
index 0000000..3b8ba49
--- /dev/null
+++ b/src/main/resources/bin/README
@@ -0,0 +1,10 @@
+Standard installation:
+
+  Place PhyML binary here, named 'phyml'
+
+  For multi-platform jModelTest distribution use the following names:
+
+    PhyML_3.0_linux32
+    PhyML_3.0_linux64
+    PhyML_3.0_macOS_i386
+    PhyML_3.0_win32.exe
diff --git a/src/main/resources/examples/COX2_PF0016/alignment b/src/main/resources/examples/COX2_PF0016/alignment
old mode 100755
new mode 100644
diff --git a/src/main/resources/examples/COX2_PF0016/tree b/src/main/resources/examples/COX2_PF0016/tree
old mode 100755
new mode 100644
diff --git a/src/main/resources/examples/HIV1.2008.pol.nex b/src/main/resources/examples/HIV1.2008.pol.nex
old mode 100755
new mode 100644
diff --git a/src/main/resources/examples/Ribosomal_L5_PF00673/alignment b/src/main/resources/examples/Ribosomal_L5_PF00673/alignment
old mode 100755
new mode 100644
diff --git a/src/main/resources/examples/Ribosomal_L5_PF00673/tree b/src/main/resources/examples/Ribosomal_L5_PF00673/tree
old mode 100755
new mode 100644
diff --git a/src/main/resources/filecluster8.conf.template b/src/main/resources/filecluster8.conf.template
old mode 100755
new mode 100644
diff --git a/src/main/resources/icon.png b/src/main/resources/icon.png
new file mode 100755
index 0000000..72abc83
Binary files /dev/null and b/src/main/resources/icon.png differ
diff --git a/src/main/resources/machines b/src/main/resources/machines
old mode 100755
new mode 100644
diff --git a/src/main/resources/models/FLU b/src/main/resources/models/FLU
old mode 100755
new mode 100644
diff --git a/src/main/resources/prottest.properties b/src/main/resources/prottest.properties
old mode 100755
new mode 100644
diff --git a/src/main/resources/prottest3 b/src/main/resources/prottest3
new file mode 100755
index 0000000..b1784ac
--- /dev/null
+++ b/src/main/resources/prottest3
@@ -0,0 +1,9 @@
+#!/bin/sh
+if [ $# -eq 0 ]; then
+    # Run ProtTest GUI
+    ./runXProtTestHPC.sh
+else
+    # Run ProtTest console interface
+    jarfile=`find . -name "prottest-3.*.jar" | sort | tail -n 1`
+    java -jar $jarfile $*
+fi
diff --git a/src/main/resources/runProtTestHPC.sh b/src/main/resources/runProtTestHPC.sh
index 801cb69..5d7864a 100755
--- a/src/main/resources/runProtTestHPC.sh
+++ b/src/main/resources/runProtTestHPC.sh
@@ -1,4 +1,5 @@
 export MPJ_HOME=$PWD/mpj
 export NP=$1
 shift
-$MPJ_HOME/bin/mpjrun.sh -dev niodev -wdir $PWD/ -np $NP -jar prottest-3.4.1.jar  $*
+jarfile=`find . -name "prottest-3.*.jar" | sort | tail -n 1`
+$MPJ_HOME/bin/mpjrun.sh -dev niodev -wdir $PWD/ -np $NP -jar $jarfile  $*
diff --git a/src/main/resources/runXProtTestHPC.bat b/src/main/resources/runXProtTestHPC.bat
index e1bd4bf..2c3f971 100755
--- a/src/main/resources/runXProtTestHPC.bat
+++ b/src/main/resources/runXProtTestHPC.bat
@@ -1 +1 @@
-java -cp prottest-3.4.jar es.uvigo.darwin.xprottest.XProtTestApp
+java -cp prottest-3.4.2.jar es.uvigo.darwin.xprottest.XProtTestApp
diff --git a/src/main/resources/runXProtTestHPC.sh b/src/main/resources/runXProtTestHPC.sh
index 63127e6..1bf9193 100755
--- a/src/main/resources/runXProtTestHPC.sh
+++ b/src/main/resources/runXProtTestHPC.sh
@@ -1 +1,2 @@
-java -cp prottest-3.4.1.jar es.uvigo.darwin.xprottest.XProtTestApp
+jarfile=`find . -name "prottest-3.*.jar" | sort | tail -n 1`
+java -cp $jarfile es.uvigo.darwin.xprottest.XProtTestApp

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/prottest.git



More information about the debian-med-commit mailing list