\r
import compbio.data.sequence.Alignment;\r
import compbio.data.sequence.UnknownFileFormatException;\r
+\r
import compbio.engine.client.PipedExecutable;\r
import compbio.engine.client.SkeletalExecutable;\r
import compbio.metadata.ResultNotAvailableException;\r
import compbio.runner.Util;\r
\r
+/**\r
+ * \r
+ * @author pvtroshin\r
+ *\r
+ */\r
public class Mafft extends SkeletalExecutable<Mafft>\r
implements\r
PipedExecutable<Mafft> {\r
-\r
+ /*\r
+ * TODO get rid of piping: Mafft now supports --out option for output file. \r
+ * TODO enable multithreading support\r
+ */\r
+ \r
+ /**\r
+ * Number of cores to use, not used if "mafft.cluster.cpunum" property \r
+ * is not defined and in case of local execution \r
+ */\r
+ private int ncoreNumber = 0;\r
+ \r
+ /*\r
+ * Number of cores parameter name\r
+ */\r
+ private final static String ncorePrm = "--thread";\r
+ \r
private static Logger log = Logger.getLogger(Mafft.class);\r
\r
private static String autoOption = "--auto";\r
return this;\r
}\r
\r
+\r
+ public void setNCore(int ncoreNumber) {\r
+ if (ncoreNumber < 1 || ncoreNumber > 100) {\r
+ throw new IndexOutOfBoundsException(\r
+ "Number of cores must be within 1 and 100 ");\r
+ }\r
+ this.ncoreNumber = ncoreNumber;\r
+ cbuilder.setParam(ncorePrm, Integer.toString(getNCore()));\r
+ }\r
+\r
+ int getNCore() {\r
+ return ncoreNumber;\r
+ }\r
+ \r
+ \r
@SuppressWarnings("unchecked")\r
@Override\r
public Class<Mafft> getType() {\r