/*
Copyright (C) 2009 Diego Darriba
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package es.uvigo.darwin.prottest.facade.util;
import java.util.Collection;
import pal.alignment.Alignment;
/**
* A value object containing all parameters of a ProtTest-HPC execution.
*
* @author Diego Darriba López
*
* @since 3.0
*/
public class ProtTestParameterVO {
/** The alignment */
private Alignment alignment;
/** The path of the file which contains the alignment */
private String alignmentFilePath;
/** The path of the file which contains the starting topology, if exists */
private String treeFilePath;
/** The matrices of the models to optimize. */
private Collection<String> matrices;
/** The distributions of the models to optimize. */
private Collection<String> distributions;
/** The number of transition categories. It is only useful if the distribution is gamma */
public int ncat;
/** Boolean value to consider or not the empirical amino-acid frequencies. */
private boolean plusF;
/** The starting topology strategy mode */
private int strategyMode;
/**
* Gets the path of the alignment file.
*
* @return the path of the alignment file
*/
public String getAlignmentFilePath() {
return alignmentFilePath;
}
/**
* Gets the alignment.
*
* @return the alignment
*/
public Alignment getAlignment() {
return alignment;
}
/**
* Gets the path of the starting user topology file, if it exists.
*
* @return the path of the starting user topology file
*/
public String getTreeFilePath() {
return treeFilePath;
}
/**
* Gets the set of substitution matrix names.
*
* @return a collection of the substitution matrix names
*/
public Collection<String> getMatrices() {
return matrices;
}
/**
* Gets the set of distributions in consideration.
*
* @return a collection of the distribution manes.
*/
public Collection<String> getDistributions() {
return distributions;
}
/**
* Gets the number of rate categories, if the distribution +G is considered.
*
* @return the number of rate categories
*/
public int getNcat() {
return ncat;
}
/**
* Gets the state of the empirical frequencies consideration.
*
* @return true, if empirical frequencies are considered
*/
public boolean isPlusF() {
return plusF;
}
/**
* Gets the starting topology strategy mode.
* @return the starting topology strategy mode
*/
public int getStrategyMode() {
return strategyMode;
}
/**
* Instantiates a new ProtTestParameterVO.
*
* @param alignmentFilePath the path of the file which contains the alignment
* @param alignment the alignment
* @param treeFilePath the path of the file which contains the starting topology, if exists
* @param matrices the matrices of the models to optimize
* @param distributions the distributions of the models to optimize
* @param plusF boolean value to consider or not the empirical amino-acid frequencies
* @param ncat the number of transition categories. It is only useful if the distribution is gamma
* @param strategyMode the starting topology strategy mode
*/
public ProtTestParameterVO(String alignmentFilePath, Alignment alignment, String treeFilePath,
Collection<String> matrices, Collection<String> distributions, boolean plusF,
int ncat, int strategyMode) {
this.alignmentFilePath = alignmentFilePath;
this.alignment = alignment;
this.treeFilePath = treeFilePath;
this.matrices = matrices;
this.distributions = distributions;
this.plusF = plusF;
this.ncat = ncat;
this.strategyMode = strategyMode;
}
}