##### RNAALIFOLD CONFIGURATION ######\r
# just the windows binary at the moment\r
local.rnaalifold.bin.windows=binaries/windows/ViennaRNA/RNAalifold.exe\r
+rnaalifold.parameters.file=conf/settings/RNAalifoldParamteres.xml\r
\r
--- /dev/null
+<?xml version="1.0" encoding="US-ASCII" standalone="yes"?>
+<runnerConfig>
+ <runnerClassName>compbio.runner.structure.RNAalifold</runnerClassName>
+ <options isRequired='false'>
+ <name>Endgaps</name>
+ <description>Score pairs with endgaps same as gap-gap pairs</description>
+ <optionNames>-E</optionNames>
+ <optionNames>--endgaps</optionNames>
+ <defaultValue>-E</defaultValue>
+ </options>
+ <options isRequired='false'>
+ <name>Most Informative Sequence</name>
+ <description>Ouput Set of nucleotides with frequency > average</description>
+ <optionNames>--mis</optionNames>
+ </options>
+ <options isRequired='false'>
+ <name>Partition Function</name>
+ <description>Output partition function and probability matrix</description>
+ <optionNames>-p</optionNames>
+ </options>
+ <options isRequired='false'>
+ <name>color</name>
+ <description>Consensus structure plot is colored</description>
+ <optionNames>--color</optionNames>
+ </options>
+ <options isRequired='false'>
+ <name>Alignment</name>
+ <description>Output structure annotated alignment</description>
+ <optionNames>--aln</optionNames>
+ </options>
+ <options isRequired='false'>
+ <name>No Postscript</name>
+ <description>Do not produce postscript output</description>
+ <optionNames>--noPS</optionNames>
+ </options>
+ <options isRequired='false'>
+ <name>Partition Function</name>
+ <description>Output partition function and probability matrix</description>
+ <optionNames>-p</optionNames>
+ </options>
+ <options isRequired='false'>
+ <name>Circular</name>
+ <description>Assume circular RNA molecule</description>
+ <optionNames>-c</optionNames>
+ <optionNames>--circ</optionNames>
+ <defaultValue>-c</defaultValue>
+ </options>
+ <!-- Not Currently available with circular structures (-c) -->
+ <options isRequired='false'>
+ <name>G-Quadruplex</name>
+ <description>Incorporate G-Quadruplex formation into prediction algorithm</description>
+ <optionNames>-g</optionNames>
+ <optionNames>--gquad</optionNames>
+ <defaultValue>-g</defaultValue>
+ </options>
+ <options isRequired='false'>
+ <name>Dangling End Preset</name>
+ <description>dangling energies will be added for the bases adjacent to a helix on both sides</description>
+ <optionNames>-d2</optionNames>
+ </options>
+ <options isRequired='false'>
+ <name>No LP</name>
+ <description>Produce Structures without lonely pairs</description>
+ <optionNames>--noLP</optionNames>
+ </options>
+ <options isRequired='false'>
+ <name>No GU</name>
+ <description>Do not allow GU pairs</description>
+ <optionNames>--noGU</optionNames>
+ </options>
+ <options isRequired='false'>
+ <name>No Closing GU</name>
+ <description>Do not allow GU pairs at the end of sequences</description>
+ <optionNames>--noClosingGU</optionNames>
+ </options>
+ <options isRequired='false'>
+ <name>old</name>
+ <description>Use old energy evaluation, treating gaps as characters</description>
+ <optionNames>--old</optionNames>
+ </options>
+ <options isRequired='false'>
+ <name>Ribosum Scoring</name>
+ <description>Use Ribosum Scoring Matrix</description>
+ <optionNames>-r</optionNames>
+ <optionNames>--ribosum_scoring</optionNames>
+ <defaultValue>-r</defaultValue>
+ </options>
+<!-- Constraints are entered on the command line followed by the input .aln file
+ Causing problems for a batch RNAalifold execution system -->
+<!--
+ <option isRequired='false'>
+ <name>Constraints</name>
+ <description>Structures calculated subject to constraints</description>
+ <optionNames>-C</optionNames>
+ <validValue>
+ <type>String</type>
+ </validValue>
+ </option> -->
+ <parameters isRequired='false'>
+ <name>MEA structure</name>
+ <description>Maximum Expected Accuracy Structure</description>
+ <optionNames>--MEA</optionNames>
+ <defaultValue>1</defaultValue>
+ <validValue>
+ <type>Float</type>
+ </validValue>
+ </parameters>
+<!-- ?Will Jabaws recognize that arguments for the following params must
+be of the form -s INT and &dash-stochBT=INT -->
+ <parameters isRequired='false'>
+ <name>Stochastic Backtrack</name>
+ <description>Compute a number of random structures</description>
+ <optionNames>-s</optionNames>
+ <!-- Having multiple optionNames requires a default value but
+ in a parameter defaultValue refers to the argument -->
+<!-- <optionNames>-stochBT</optionNames> -->
+ <defaultValue>5</defaultValue> <!-- arbitrary -->
+ <validValue>
+ <type>Int</type>
+ </validValue>
+ </parameters>
+ <parameters isRequired='false'>
+ <name>stochBT_en</name>
+ <description>Print Backtrack structures</description>
+ <optionNames>--stochBT_en</optionNames>
+ <defaultValue>5</defaultValue> <!-- arbitrary -->
+ <validValue>
+ <type>Int</type>
+ </validValue>
+ </parameters>
+ <parameters isRequired='false'>
+ <name>scaling factor</name>
+ <description>In calculating pf use scale*mfe as estimate for ensemble free energy]</description>
+ <optionNames>-S</optionNames>
+<!-- <optionNames>-pfScale</optionNames> -->
+ <defaultValue>1.07</defaultValue>
+ <validValue>
+ <type>Float</type>
+ </validValue>
+ </parameters>
+ <parameters isRequired='false'>
+ <name>bppmThreshold</name>
+ <description>Threshold for base pair probabilities</description>
+ <optionNames>--bppmThreshold</optionNames>
+ <defaultValue>1e-6</defaultValue>
+ </parameters>
+ <parameters isRequired='false'>
+ <name>Temperature</name>
+ <description>Rescale Energy parameterss to Temperature</description>
+ <optionNames>-T</optionNames>
+<!-- <optionNames>-temp</optionNames> -->
+ <defaultValue>37</defaultValue>
+ <validValue>
+ <type>Double</type>
+ </validValue>
+ </parameters>
+ <parameters isRequired='false'>
+ <name>Dangling End</name>
+ <description>How to treat Dangling End energies for bases adjacent to helices</description>
+ <optionNames>-d</optionNames>
+<!-- <optionNames>-dangles</optionNames> -->
+ <defaultValue>2</defaultValue>
+ <validValue>
+ <type>Int</type>
+ </validValue>
+ </parameters>
+ <parameters isRequired='false'>
+ <name>cfactor</name>
+ <description>weight of covariance term</description>
+ <optionNames>--cfactor</optionNames>
+ <defaultValue>1.0</defaultValue>
+ <validValue>
+ <type>Double</type>
+ </validValue>
+ </parameters>
+ <parameters isRequired='false'>
+ <name>nfactor</name>
+ <description>penalty for non-compatible sequences in covariance term</description>
+ <optionNames>--nfactor</optionNames>
+ <defaultValue>1.0</defaultValue>
+ <validValue>
+ <type>Double</type>
+ </validValue>
+ </parameters>
+
+<!-- How to deal with default/possible values for parameter files? -->
+<!-- <parameters isRequired='false'> -->
+<!-- <name>Ribosum File</name> -->
+<!-- <description>Use Specified Ribosum Matrix</description> -->
+<!-- <optionNames>-R</optionNames> -->
+<!-- <optionNames>-ribosum_file</optionNames> --> <!-- commentx2 -->
+<!-- </parameters> -->
+<!-- <parameters isRequired='false'> -->
+<!-- <name>Paramfile</name> -->
+<!-- <description>Use Energy parameters from a file</description> -->
+<!-- <optionNames>-P</optionNames> -->
+<!-- <optionNames>-paramFile</optionNames> --> <!-- commentx2 -->
+<!-- <validValue> -->
+<!-- <type>String</type> -->
+<!-- </validValue> -->
+<!-- </parameters> -->
+
+ <parameters isRequired='false'>
+ <name>Allow Pairs</name>
+ <descrition>allow pairs in addition to AU, GC and GU</descrition>
+ <optionNames>--nsp</optionNames>
+ <defaultValue>-GA</defaultValue>
+ <validValue>
+ <type>String</type>
+ </validValue>
+ </parameters>
+ <parameters isRequired='false'>
+ <name>betaScale</name>
+ <description>Set scaling of Boltzmann factors</description>
+ <optionNames>--betaScale</optionNames>
+ <defaultValue>1.0</defaultValue>
+ <validValue>
+ <type>Double</type>
+ </validValue>
+ </parameters>
+</runnerConfig>
\ No newline at end of file
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = FINE\r
\r
## Uncomment this if you would like the system to log messages into stdout\r
-#log4j.rootLogger=TRACE, rootfile\r
-#log4j.appender.rootfile=org.apache.log4j.RollingFileAppender\r
-#log4j.appender.rootfile.File=JABAWSLogFilename.log\r
-#log4j.appender.rootfile.Target=System.out\r
-#log4j.appender.rootfile.layout=org.apache.log4j.PatternLayout\r
-#log4j.appender.rootfile.layout.ConversionPattern=%t %d %m%n\r
+log4j.rootLogger=INFO, rootfile, stdout\r
+log4j.appender.rootfile=org.apache.log4j.RollingFileAppender\r
+log4j.appender.rootfile.File=JABAWSLogFilename.log\r
+log4j.appender.rootfile.layout=org.apache.log4j.PatternLayout\r
+log4j.appender.rootfile.layout.ConversionPattern=%-5p [%t]: %m%n\r
+\r
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender\r
+log4j.appender.stdout.Target=System.out\r
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout\r
+log4j.appender.stdout.layout.ConversionPattern=%-5p [%t] %-45C: %m%n\r
\r
## Uncomment to enable JWS2 activity logging to the file\r
#log4j.logger.compbio=TRACE, ACTIVITY\r
#log4j.appender.stdout.layout.ConversionPattern=%m%n\r
#log4j.rootLogger=info, stdout\r
\r
-log4j.rootLogger=ERROR, R\r
-log4j.appender.R=org.apache.log4j.FileAppender\r
-log4j.appender.R.File=${catalina.base}/logs/JABAWSErrorFile.log\r
-log4j.appender.R.layout=org.apache.log4j.PatternLayout\r
-log4j.appender.R.layout.ConversionPattern=%m%n %d{MM-dd@HH:mm:ss} %-5p (%13F:%L) %3x - \r
+#log4j.rootLogger=ERROR, R\r
+#log4j.appender.R=org.apache.log4j.FileAppender\r
+#log4j.appender.R.File=${catalina.base}/logs/JABAWSErrorFile.log\r
+#log4j.appender.R.layout=org.apache.log4j.PatternLayout\r
+#log4j.appender.R.layout.ConversionPattern=%m%n %d{MM-dd@HH:mm:ss} %-5p (%13F:%L) %3x - \r
\r
-# %d{ABSOLUTE} %5p %c{1}:%L -\r
-log4j.logger.compbio=WARN, B\r
-log4j.appender.B=org.apache.log4j.FileAppender\r
-log4j.appender.B.File=${catalina.base}/logs/engine.log\r
-log4j.appender.B.layout=org.apache.log4j.PatternLayout\r
-log4j.appender.B.layout.ConversionPattern=%m%n %d{MM-dd@HH:mm:ss} %-5p (%13F:%L) %3x - \r
+## %d{ABSOLUTE} %5p %c{1}:%L -\r
+#log4j.logger.compbio=WARN, B\r
+#log4j.appender.B=org.apache.log4j.FileAppender\r
+#log4j.appender.B.File=${catalina.base}/logs/engine.log\r
+#log4j.appender.B.layout=org.apache.log4j.PatternLayout\r
+#log4j.appender.B.layout.ConversionPattern=%m%n %d{MM-dd@HH:mm:ss} %-5p (%13F:%L) %3x - \r
\r
# %d{ABSOLUTE} %5p %c{1}:%L -\r
#log4j.logger.compbio.engine.local.LocalExecutorService=INFO, C\r
package compbio.runner.structure;
-import java.util.Scanner; //temp
-import java.io.File; //temp
import java.io.FileNotFoundException;
import java.io.IOException;
import compbio.data.sequence.Alignment;
import compbio.data.sequence.UnknownFileFormatException;
+import compbio.engine.client.PipedExecutable;
import compbio.engine.client.SkeletalExecutable;
import compbio.metadata.ResultNotAvailableException;
import compbio.runner.Util;
-public class RNAalifold extends SkeletalExecutable<RNAalifold> {
+public class RNAalifold extends SkeletalExecutable<RNAalifold>
+ implements PipedExecutable<RNAalifold> {
+
+
+
+ private static Logger log = Logger.getLogger(RNAalifold.class);
+
@SuppressWarnings("unchecked")
@Override
- //temp
+ // PlaceHolder method
public String getResults(String resultFile)
throws ResultNotAvailableException {
- Scanner s;
- try {
- System.out.println("testfrom RNAalifold.getResults");
- s = new Scanner(new File(resultFile));
- System.out.println(s.nextLine());
- return "null";
- } catch (FileNotFoundException e) {
- System.out.println("file not found");
- throw new ResultNotAvailableException(e);
- }
+ return "null";
}
@Override
public RNAalifold setOutput(String outFile) {
- System.out.println("Set ouput file: " + outFile.toString());
+ log.info("Set ouput file: " + outFile.toString());
super.setOutput(outFile);
return this;
}
@Override
public RNAalifold setInput(String inFile) {
- System.out.println("Set input file: " + inFile.toString());
+ log.info("Set input file: " + inFile.toString());
+ cbuilder.setLast(inFile);
super.setInput(inFile);
return this;
}
\r
public static final String test_input_large = AllTestSuit.TEST_DATA_PATH_ABSOLUTE + "1000x3000Dna.fasta";\r
\r
- public static final String test_input_rna = AllTestSuit.TEST_DATA_PATH_ABSOLUTE + "unfolded_RF00031.aln";\r
+ public static final String test_input_aln = AllTestSuit.TEST_DATA_PATH_ABSOLUTE + "unfolded_RF00031.aln";\r
\r
}\r
--- /dev/null
+package compbio.runner.structure;
+
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertTrue;
+import static org.testng.Assert.fail;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.ValidationException;
+
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import compbio.engine.Configurator;
+import compbio.engine.client.ConfiguredExecutable;
+import compbio.engine.client.Executable.ExecProvider;
+import compbio.engine.conf.RunnerConfigMarshaller;
+import compbio.engine.local.ExecutableWrapper;
+import compbio.engine.local.LocalRunner;
+import compbio.metadata.AllTestSuit;
+import compbio.metadata.JobExecutionException;
+import compbio.metadata.JobSubmissionException;
+import compbio.metadata.Option;
+import compbio.metadata.Parameter;
+import compbio.metadata.Preset;
+import compbio.metadata.PresetManager;
+import compbio.metadata.ResultNotAvailableException;
+import compbio.metadata.RunnerConfig;
+import compbio.runner.OptionCombinator;
+import compbio.runner.structure.RNAalifold;
+import compbio.util.FileUtil;
+
+
+public class RNAalifoldParametersTester {
+
+
+ // should be: AllTestSuit.TEST_DATA_PATH + "RNAalifoldParameters.xml"
+ static final String rnaalifoldConfigFile =
+ AllTestSuit.TEST_DATA_PATH + "RNAalifoldParameters.xml";
+ public static String test_outfile = "rnaalifold.out.txt";
+
+ private static Logger log = Logger
+ .getLogger(AllTestSuit.RUNNER_TEST_LOGGER);
+
+ static {
+ log.setLevel(Level.INFO);
+ }
+
+ RunnerConfig<RNAalifold> rnaalifoldConfig = null;
+ OptionCombinator rnaalifoldOpc = null;
+
+ @BeforeMethod(groups = { AllTestSuit.test_group_runner })
+ @SuppressWarnings("unchecked")
+ public void setup() {
+ try {
+ RunnerConfigMarshaller<RNAalifold> rnaalifoldmarsh =
+ new RunnerConfigMarshaller<RNAalifold>(RunnerConfig.class);
+ rnaalifoldConfig = rnaalifoldmarsh.read(new FileInputStream(new File(
+ rnaalifoldConfigFile)), RunnerConfig.class);
+ rnaalifoldOpc = new OptionCombinator(rnaalifoldConfig);
+
+ log.info("Num options: " + rnaalifoldOpc.getAllOptions().size());
+ log.info("Num params: " + rnaalifoldOpc.getAllParameters().size());
+
+
+ } catch (JAXBException e) {
+ e.printStackTrace();
+ fail(e.getLocalizedMessage());
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ fail(e.getLocalizedMessage());
+ }
+ }
+
+ @Test
+ public void testConfiguration() {
+ try {
+ this.rnaalifoldConfig.validate();
+ } catch (ValidationException e) {
+ e.printStackTrace();
+ fail(e.getLocalizedMessage());
+ } catch (IllegalStateException e) {
+ e.printStackTrace();
+ fail(e.getLocalizedMessage());
+ }
+ }
+
+ @Test(groups = { AllTestSuit.test_group_runner })
+ public void testDefaultParameters() {
+ RNAalifold rnaalifold = new RNAalifold();
+ rnaalifold.setInput(AllTestSuit.test_input_aln).setOutput(test_outfile);
+
+ try {
+ // For local execution use relavive
+ ConfiguredExecutable<RNAalifold> confRNAalifold = Configurator
+ .configureExecutable(rnaalifold);
+ LocalRunner lr = new LocalRunner(confRNAalifold);
+ lr.executeJob();
+ confRNAalifold = (ConfiguredExecutable<RNAalifold>) lr.waitForResult();
+ assertNotNull(confRNAalifold.getResults());
+ } catch (JobSubmissionException e) {
+ e.printStackTrace();
+ fail(e.getLocalizedMessage());
+ } catch (JobExecutionException e) {
+ e.printStackTrace();
+ fail(e.getLocalizedMessage());
+ } catch (ResultNotAvailableException e) {
+ e.printStackTrace();
+ fail(e.getLocalizedMessage());
+ }
+ }
+
+ @Test(groups = { AllTestSuit.test_group_runner })
+ public void testOptions() {
+ test(rnaalifoldOpc.getAllOptions());
+ }
+
+ @Test(groups = { AllTestSuit.test_group_runner })
+ public void testParameters() {
+ List<Parameter<?>> params = rnaalifoldOpc.getAllParameters();
+ Collections.shuffle(params);
+ test(params);
+ }
+
+ @Test(groups = { AllTestSuit.test_group_runner })
+ public void testArguments() {
+ List<Option<?>> options = rnaalifoldOpc.getAllOptions();
+ options.addAll(rnaalifoldOpc.getAllParameters());
+ Collections.shuffle(options);
+ test(options);
+ }
+
+ void test(Map<Parameter<?>, String> paramValue) {
+ List<Parameter<?>> paramList = new ArrayList<Parameter<?>>(paramValue
+ .keySet());
+ for (int i = 0; i < paramValue.size(); i++) {
+ List<String> args = rnaalifoldOpc.parametersToCommandString(paramList,
+ paramValue);
+ singleTest(args);
+ Collections.shuffle(paramList);
+ }
+ log.info("NUMBER OF COMBINATION TESTED: " + paramValue.size());
+ }
+
+ void test(List<? extends Option<?>> params) {
+ for (int i = 0; i < params.size(); i++) {
+ List<String> args = rnaalifoldOpc.argumentsToCommandString(params);
+ singleTest(args);
+ Collections.shuffle(params);
+ }
+ log.info("NUMBER OF COMBINATION TESTED: " + params.size());
+ }
+
+ void singleTest(List<String> params) {
+ try {
+ log.info("Using arguments: " + params);
+ RNAalifold rnaalifold = new RNAalifold();
+ rnaalifold.setInput(AllTestSuit.test_input_aln).setOutput(test_outfile);
+
+ ConfiguredExecutable<RNAalifold> confRNAalifold = Configurator
+ .configureExecutable(rnaalifold, ExecProvider.Local);
+ // Add options to the executable
+ confRNAalifold.addParameters(params);
+ LocalRunner lr = new LocalRunner(confRNAalifold);
+ lr.executeJob();
+ confRNAalifold = (ConfiguredExecutable<RNAalifold>) lr.waitForResult();
+ assertNotNull(confRNAalifold.getResults());
+ File errors = new File(confRNAalifold.getWorkDirectory(),
+ ExecutableWrapper.PROC_ERR_FILE);
+ if (errors.length() != 0) {
+ log.error("PROBLEMS:\n " + FileUtil.readFileToString(errors));
+ }
+ assertTrue(errors.length() == 0, "Run with arguments : " + params
+ + " FAILED!");
+ Collections.shuffle(params);
+ } catch (JobSubmissionException e) {
+ e.printStackTrace();
+ fail(e.getLocalizedMessage());
+ } catch (JobExecutionException e) {
+ e.printStackTrace();
+ fail(e.getLocalizedMessage());
+ } catch (IOException e) {
+ e.printStackTrace();
+ fail(e.getLocalizedMessage());
+ } catch (ResultNotAvailableException e) {
+ e.printStackTrace();
+ fail(e.getLocalizedMessage());
+ }
+ }
+
+}
import javax.xml.bind.ValidationException;
+import org.apache.log4j.*;
import org.ggf.drmaa.DrmaaException;
import org.ggf.drmaa.JobInfo;
import org.testng.annotations.BeforeMethod;
import compbio.metadata.PresetManager;
import compbio.metadata.ResultNotAvailableException;
import compbio.metadata.RunnerConfig;
+import compbio.runner.msa.ClustalW;
import compbio.runner.structure.RNAalifold;
public class RNAalifoldTester {
+ private static Logger log = Logger
+ .getLogger(AllTestSuit.RUNNER_TEST_LOGGER);
+
+
private RNAalifold rnaalifold;
+ static final String rnaalifoldConfigFile = AllTestSuit.TEST_DATA_PATH
+ + "RNAalifoldParameters.xml";
public static String test_outfile = "rnaalifold.out";
+ @Test(groups = { AllTestSuit.test_group_runner })
+ public void testRunLocally() {
+ RNAalifold rnaalifold = new RNAalifold();
+ rnaalifold.setInput(AllTestSuit.test_input).setOutput(test_outfile);
+ try{
+
+ ConfiguredExecutable<RNAalifold> confRNAalifold = Configurator
+ .configureExecutable(rnaalifold, Executable.ExecProvider.Local);
+ LocalRunner lr = new LocalRunner(confRNAalifold);
+ lr.executeJob();
+ confRNAalifold = (ConfiguredExecutable<RNAalifold>) lr.waitForResult();
+ // getResults method still to come
+ assertNotNull(confRNAalifold.getResults());
+ } catch (JobSubmissionException e) {
+ e.printStackTrace();
+ fail(e.getLocalizedMessage());
+ } catch (JobExecutionException e) {
+ e.printStackTrace();
+ fail(e.getLocalizedMessage());
+ } catch (ResultNotAvailableException e) {
+ e.printStackTrace();
+ fail(e.getLocalizedMessage());
+ }
+ }
+
+
public static void main(String[] args) throws JobSubmissionException,
JobExecutionException, InterruptedException {
+
- System.out.println("Run RNAalifold.main()");
-
+ log.warn("Logger test :- Run RNAalifold.main()");
+
RNAalifold rnaalifold = new RNAalifold();
- rnaalifold.setInput(AllTestSuit.test_input_rna).setOutput("test_outfile");
+ rnaalifold.setInput(AllTestSuit.test_input_aln).setOutput("test_outfile.txt");
ConfiguredExecutable<RNAalifold> confRNAalifold = Configurator
.configureExecutable(rnaalifold);
AsyncExecutor lr = new AsyncLocalRunner();
lr.submitJob(confRNAalifold);
+
Thread.sleep(3000);
LocalExecutorService.shutDown();
--- /dev/null
+<?xml version="1.0" encoding="US-ASCII" standalone="yes"?>
+<runnerConfig>
+ <runnerClassName>compbio.runner.structure.RNAalifold</runnerClassName>
+ <options isRequired='false'>
+ <name>Endgaps</name>
+ <description>Score pairs with endgaps same as gap-gap pairs</description>
+ <optionNames>-E</optionNames>
+ <optionNames>--endgaps</optionNames>
+ <defaultValue>-E</defaultValue>
+ </options>
+ <options isRequired='false'>
+ <name>Most Informative Sequence</name>
+ <description>Ouput Set of nucleotides with frequency > average</description>
+ <optionNames>--mis</optionNames>
+ </options>
+ <options isRequired='false'>
+ <name>Partition Function</name>
+ <description>Output partition function and probability matrix</description>
+ <optionNames>-p</optionNames>
+ </options>
+ <options isRequired='false'>
+ <name>color</name>
+ <description>Consensus structure plot is colored</description>
+ <optionNames>--color</optionNames>
+ </options>
+ <options isRequired='false'>
+ <name>Alignment</name>
+ <description>Output structure annotated alignment</description>
+ <optionNames>--aln</optionNames>
+ </options>
+ <options isRequired='false'>
+ <name>No Postscript</name>
+ <description>Do not produce postscript output</description>
+ <optionNames>--noPS</optionNames>
+ </options>
+ <options isRequired='false'>
+ <name>Partition Function</name>
+ <description>Output partition function and probability matrix</description>
+ <optionNames>-p</optionNames>
+ </options>
+ <options isRequired='false'>
+ <name>Circular</name>
+ <description>Assume circular RNA molecule</description>
+ <optionNames>-c</optionNames>
+ <optionNames>--circ</optionNames>
+ <defaultValue>-c</defaultValue>
+ </options>
+ <!-- Not Currently available with circular structures (-c) -->
+ <options isRequired='false'>
+ <name>G-Quadruplex</name>
+ <description>Incorporate G-Quadruplex formation into prediction algorithm</description>
+ <optionNames>-g</optionNames>
+ <optionNames>--gquad</optionNames>
+ <defaultValue>-g</defaultValue>
+ </options>
+ <options isRequired='false'>
+ <name>Dangling End Preset</name>
+ <description>dangling energies will be added for the bases adjacent to a helix on both sides</description>
+ <optionNames>-d2</optionNames>
+ </options>
+ <options isRequired='false'>
+ <name>No LP</name>
+ <description>Produce Structures without lonely pairs</description>
+ <optionNames>--noLP</optionNames>
+ </options>
+ <options isRequired='false'>
+ <name>No GU</name>
+ <description>Do not allow GU pairs</description>
+ <optionNames>--noGU</optionNames>
+ </options>
+ <options isRequired='false'>
+ <name>No Closing GU</name>
+ <description>Do not allow GU pairs at the end of sequences</description>
+ <optionNames>--noClosingGU</optionNames>
+ </options>
+ <options isRequired='false'>
+ <name>old</name>
+ <description>Use old energy evaluation, treating gaps as characters</description>
+ <optionNames>--old</optionNames>
+ </options>
+ <options isRequired='false'>
+ <name>Ribosum Scoring</name>
+ <description>Use Ribosum Scoring Matrix</description>
+ <optionNames>-r</optionNames>
+ <optionNames>--ribosum_scoring</optionNames>
+ <defaultValue>-r</defaultValue>
+ </options>
+<!-- Constraints are entered on the command line followed by the input .aln file
+ Causing problems for a batch RNAalifold execution system -->
+<!--
+ <option isRequired='false'>
+ <name>Constraints</name>
+ <description>Structures calculated subject to constraints</description>
+ <optionNames>-C</optionNames>
+ <validValue>
+ <type>String</type>
+ </validValue>
+ </option> -->
+ <parameters isRequired='false'>
+ <name>MEA structure</name>
+ <description>Maximum Expected Accuracy Structure</description>
+ <optionNames>--MEA</optionNames>
+ <defaultValue>1</defaultValue>
+ <validValue>
+ <type>Float</type>
+ </validValue>
+ </parameters>
+<!-- ?Will Jabaws recognize that arguments for the following params must
+be of the form -s INT and &dash-stochBT=INT -->
+ <parameters isRequired='false'>
+ <name>Stochastic Backtrack</name>
+ <description>Compute a number of random structures</description>
+ <optionNames>-s</optionNames>
+ <!-- Having multiple optionNames requires a default value but
+ in a parameter defaultValue refers to the argument -->
+<!-- <optionNames>-stochBT</optionNames> -->
+ <defaultValue>5</defaultValue> <!-- arbitrary -->
+ <validValue>
+ <type>Int</type>
+ </validValue>
+ </parameters>
+ <parameters isRequired='false'>
+ <name>stochBT_en</name>
+ <description>Print Backtrack structures</description>
+ <optionNames>--stochBT_en</optionNames>
+ <defaultValue>5</defaultValue> <!-- arbitrary -->
+ <validValue>
+ <type>Int</type>
+ </validValue>
+ </parameters>
+ <parameters isRequired='false'>
+ <name>scaling factor</name>
+ <description>In calculating pf use scale*mfe as estimate for ensemble free energy]</description>
+ <optionNames>-S</optionNames>
+<!-- <optionNames>-pfScale</optionNames> -->
+ <defaultValue>1.07</defaultValue>
+ <validValue>
+ <type>Float</type>
+ </validValue>
+ </parameters>
+ <parameters isRequired='false'>
+ <name>bppmThreshold</name>
+ <description>Threshold for base pair probabilities</description>
+ <optionNames>--bppmThreshold</optionNames>
+ <defaultValue>1e-6</defaultValue>
+ </parameters>
+ <parameters isRequired='false'>
+ <name>Temperature</name>
+ <description>Rescale Energy parameterss to Temperature</description>
+ <optionNames>-T</optionNames>
+<!-- <optionNames>-temp</optionNames> -->
+ <defaultValue>37</defaultValue>
+ <validValue>
+ <type>Double</type>
+ </validValue>
+ </parameters>
+ <parameters isRequired='false'>
+ <name>Dangling End</name>
+ <description>How to treat Dangling End energies for bases adjacent to helices</description>
+ <optionNames>-d</optionNames>
+<!-- <optionNames>-dangles</optionNames> -->
+ <defaultValue>2</defaultValue>
+ <validValue>
+ <type>Int</type>
+ </validValue>
+ </parameters>
+ <parameters isRequired='false'>
+ <name>cfactor</name>
+ <description>weight of covariance term</description>
+ <optionNames>--cfactor</optionNames>
+ <defaultValue>1.0</defaultValue>
+ <validValue>
+ <type>Double</type>
+ </validValue>
+ </parameters>
+ <parameters isRequired='false'>
+ <name>nfactor</name>
+ <description>penalty for non-compatible sequences in covariance term</description>
+ <optionNames>--nfactor</optionNames>
+ <defaultValue>1.0</defaultValue>
+ <validValue>
+ <type>Double</type>
+ </validValue>
+ </parameters>
+
+<!-- How to deal with default/possible values for parameter files? -->
+<!-- <parameters isRequired='false'> -->
+<!-- <name>Ribosum File</name> -->
+<!-- <description>Use Specified Ribosum Matrix</description> -->
+<!-- <optionNames>-R</optionNames> -->
+<!-- <optionNames>-ribosum_file</optionNames> --> <!-- commentx2 -->
+<!-- </parameters> -->
+<!-- <parameters isRequired='false'> -->
+<!-- <name>Paramfile</name> -->
+<!-- <description>Use Energy parameters from a file</description> -->
+<!-- <optionNames>-P</optionNames> -->
+<!-- <optionNames>-paramFile</optionNames> --> <!-- commentx2 -->
+<!-- <validValue> -->
+<!-- <type>String</type> -->
+<!-- </validValue> -->
+<!-- </parameters> -->
+
+ <parameters isRequired='false'>
+ <name>Allow Pairs</name>
+ <descrition>allow pairs in addition to AU, GC and GU</descrition>
+ <optionNames>--nsp</optionNames>
+ <defaultValue>-GA</defaultValue>
+ <validValue>
+ <type>String</type>
+ </validValue>
+ </parameters>
+ <parameters isRequired='false'>
+ <name>betaScale</name>
+ <description>Set scaling of Boltzmann factors</description>
+ <optionNames>--betaScale</optionNames>
+ <defaultValue>1.0</defaultValue>
+ <validValue>
+ <type>Double</type>
+ </validValue>
+ </parameters>
+</runnerConfig>
\ No newline at end of file
--- /dev/null
+CLUSTAL
+
+B.taurus.1/1-64 C-UUGCGUU--AAUGAGAACAGAAACG-UAAA--CUAUAA-CCUAG-G---------GGU
+D.melanogaster.3/1-68 G-UGGCGCU--UAUGACGCAGUUGUCU-UAAA-CUCGAAC--UCGA-GC--------GGG
+D.melanogaster.2/1-63 C-AUUCAACU-UAUGAGGAUUAUUUCU-UAAA-GGCCUCU---GGC--U-------CGGA
+D.melanogaster.1/1-65 G-AGCC-CU---AUGAUCGAUGAUUGG-CAAA-UCCUCUC--GAGG--A-------ACCG
+R.norvegicus.7/1-66 C-CGGCACU--CAUGACGGUCUGCCUG-AAAA-CCAGCCC--GCUG-GU--------GGG
+R.norvegicus.6/1-67 G-CCGCUUC---AUGACAGGAAGGACU-GAAA-UGUCUCA-AAGAC--C-----UGUGGU
+R.norvegicus.5/1-62 G-UUUUUCC---AUGACGGUGUUUCCUCUAAA--UUUAC----AUG-----------GAG
+R.norvegicus.4/1-61 G-UCAGAUG---AUGACGGCCUGUGCA-GAAA-CCCCCAC-GUGGG--C--------UGC
+R.norvegicus.3/1-67 U-UUGCAUU--AAUGAGGAUUACACAG-AAAA-CCUUUGU--UAAGGGU--------UUG
+R.norvegicus.2/1-64 G-UUACAUU--GAUGAGAACAGAAACA-UAAA--CUAUGA-CCUAG-G---------GGU
+R.norvegicus.1/1-61 A-UAUUUGUU-UAUGAUGGUCACAGUG-UAAA--GUUCA----CAC-----------AGC
+O.aries.1/1-68 G-ACGCUUC---AUGACAGGAAGGACU-GAAA-UGUCUCU-UGGAC-GC------CUGGU
+M.musculus.9/1-66 C-CGGCACU--CAUGAAGGUCUGCUUG-AAAA-CCAGCCU--GCUG-GU--------GGG
+M.musculus.8/1-67 U-UUGCAUU--AAUGAGGAUUACACAG-AAAA-CCUUUGU--UAAG-GA-------CUUG
+O.niloticus.3/1-65 G-UGUCUCU---GUGAAGUUCGGUUUU-UAAA-AGGGUCA---UCC--A-------GAAA
+M.musculus.7/1-64 G-UGUCUCU---AUGAAGGAGGGGCCC-GAAG-CCCUUGU---GGG--C--------GGG
+O.niloticus.2/1-61 U-GUUUAUU--AAUGACGGCUACAGAU-UAAA--CCUUU----AGC-----------CUC
+M.musculus.6/1-61 G-UCAGAUG---AUGAUGGCCUGGGCA-GAAA-CCCCAUG--UGGG--C--------CGC
+O.niloticus.1/1-59 G-UUUCUCA---GUGAAGGCUACAGAU-UAAA--CCUCU----GGC-----------CUC
+M.musculus.5/1-66 G-CCGCUUC---AUGACAGGAAGGACU-GAAA-UGUCUUA---GAC--C-----UGUGGU
+M.musculus.4/1-65 G-UGUGCGA---AUGAUAACUACUGAC-GAAA-GAGCUGU-CUGCU--C-------AGUC
+M.musculus.3/1-64 G-GUUCUUC--CAUGAUGGUGUUUCCUCUAAA--UUUGC----ACG-----------GAG
+M.musculus.2/1-64 G-UUACAUU--AAUGAGAACAGAAACA-UAAA--CUAUGA-CCUAG-G---------GGU
+M.musculus.1/1-64 G-UCACCGA---AUGAUCUGCUCUGGU-CAAA-UCCUUCU---AUG--C------CAGCC
+C.elegans.1/1-64 G-AGGCAGCUUUGUGACGACCUUUGGC-UAAA-CUCCAUC--GUGA-GC--------GCC
+H.sapiens.15/1-63 U-UUUCAUC--UAUGAGGGUGUUUCCUCUAAA--CCUACG---AGG-----------GAG
+H.sapiens.14/1-62 C-ACUGCUG---AUGACGAACUAUCUC-UAAC-UGGUCUU--GACC--A-------CGAG
+H.sapiens.13/1-64 G-UCACUGC---AUGAUCCGCUCUGGU-CAAA-CCCUUCC---AGG--C------CAGCC
+H.sapiens.12/1-67 C-UCUGUUA---AUGACGUCUCUCCCUCUAAA-CCCCAUU-AAGGA--C--------UGG
+D.rerio.1/1-66 A-UGUGGUCUUUAUGAAGGCAGGUGCA-GAAA-CUAUGCA---CUA-GU--------GGU
+H.sapiens.11/1-63 G-CCGGAUG---AUGACGACCUGGGUG-GAAA-CCUACCC-UGUGG--G--------CAC
+H.sapiens.10/1-62 C-CGGCACU--CAUGACGGCCUGCCUG-CAAA--CCUGC----UGG--U--------GGG
+S.mansoni.1/1-67 C-UCGCUAU---AUGACGAUGGCAAUC-UCAA--AUGUU----CAU--U--------GGU
+S.scrofa.4/1-64 C-UGGCACC--CAUGACAGUCUGCCUA-AAAA-CCAGCC----CUG-GU--------GGG
+S.scrofa.3/1-63 A-UUUUAUC--CAUGAAAGUGUUUCCUCUAAA--CCUAU----GUG-----------GAG
+S.scrofa.2/1-65 C-UGGCACC--CAUGACAGUCUGCCUA-AAAA-CCAGCCC---CUG-GU--------GGG
+S.scrofa.1/1-68 G-ACGCUUC---AUGACAGGAAGGACU-GAAA-UGUCUUG-UGGAC-GC------CUGGU
+H.sapiens.9/1-58 U-AUUUGUU--UAUGAUGGCCACAGCC-UAAA--GUACA----CAC-----------GGC
+H.sapiens.8/1-67 U-UUGCUUU--AAUGAGAAUAGAAACG-UAAA--CUAUGA-CCUAG-G---------GGU
+X.laevis.1/1-67 G-UGUUUGCA-AAUGACGACCGAUUUU-GAAA-UGGUCUCACGGCC--A-------AAAA
+H.sapiens.7/1-70 U-GGCGUCUU-CAUGAGGGAGGGGCCC--AAA-GCCCUUG--UGGG--C--------GGA
+H.sapiens.6/1-66 G-UGUGCGG---AUGAUAACUACUGAC-GAAAGAGUCAUC---GAC--C-----UCAGUU
+H.sapiens.5/1-57 U-UCACAGA---AUGAUGGCACCUUCC-UAA---ACCCU----CAU-----------GGG
+H.sapiens.4/1-71 G-ACUGACAU-UAUGAAGGCCUGUACU-GAAG-ACAGCAA--GCUG--U-------UAGU
+H.sapiens.3/1-68 G-ACGCUUC---AUGAUAGGAAGGACU-GAAA-AGUCUUG-UGGAC--A-----CCUGGU
+H.sapiens.2/1-65 G-UGUGCGG---AUGAUAACUACUGAC-GAAA-GAGUCAU-CGACU--C-------AGUU
+H.sapiens.1/1-63 G-CCAGAUG---AUGACGACCUGGGUG-GAAA-CCUACCC-UGUGG--G--------CAC
+M.musculus.14/1-67 C-UCUGAUA---AUGAUGUCUCUCCCU-CUAA-CUCCCAGUAAGGA--C--------UGG
+M.musculus.13/1-60 C-AUGCGUC--CAUGAAGUCACUGGCC-UCAA-GCCCAA----GUG-GU--------GGG
+M.musculus.12/1-65 C-UCAGCAG--GAUGAUGAGAAGGGCU-GAAA-UGCUGCC--AAAC--C-------AGGU
+M.musculus.11/1-63 U-AUUUGUG--UAUGAUGGUCACAGUG-UAAA--GUUCC----CAC-----------AGC
+M.musculus.10/1-66 C-CGGCACU--CAUGAAGGUCUGCCUG-AAAA-CCAGCCU--GCUG-GU--------GGG
+B.taurus.7/1-61 U-UUUGCCC---AUGAAGGUGUUCCCUCUAAA--CCUAC----GUG-----------GAG
+B.taurus.6/1-67 G-AUGCGUC--CAUGAAGUCACCAGCC-CCAA-GCCCCUC---GUG-GU--------GGG
+B.taurus.5/1-61 G-CCAGAUG---AUGAGGACCUGUGCG-GAAA-CCCCCCG--CGGG--C--------UGC
+B.taurus.4/1-64 ACUUGCGUU--AAUGAGAACAGAAACG-UAAA--CUAUAA-CCUAG-G---------GGU
+G.gallus.3/1-73 U-AUUUCUU--UGUGAUGACCGAUUUU-GAAA-UGGGUUU---CUC--UAAUGCCAGGAA
+B.taurus.3/1-66 C-CCGGUGCC-UAUGACGGUCUGUCUG-AAAA-CCAGCCC---CUG-GU--------GGG
+G.gallus.2/1-60 U-AUUUGUC---AUGACAGUCACAGCA-UAAA--GCGCA----GAC-----------GGC
+B.taurus.2/1-64 C-UUGCGUU--AAUGAGAACAGAAACG-AAAA--CUAUAA-CCUAG-G---------GGU
+G.gallus.1/1-63 G-UGUGUUU---AUGAAGAGCACUAAC-AAAA-GAGUAAU-UGACU--C-------AGUU
+
+B.taurus.1/1-64 UUC-U-G-UUGGAU--GGUUG-------GCAAC
+D.melanogaster.3/1-68 CAA-U-U-GCUGAU---UACG---AUUAACCAC
+D.melanogaster.2/1-63 AAU-A-G-UCUGAA---CCU--------UAUUG
+D.melanogaster.1/1-65 AUC-G-U-UGAGAA--CCCCU-----UUGCCUU
+R.norvegicus.7/1-66 GCA-G-U-CCCGAG-GACCUG-------GCGUG
+R.norvegicus.6/1-67 CUU-U-C-UUCGAU--GUUCU-------GCGGC
+R.norvegicus.5/1-62 AAA-C-A-CCUGAU-UUCCAG------AAAAAU
+R.norvegicus.4/1-61 -CA-G-G-UUUGAA---CCC--------CUGGC
+R.norvegicus.3/1-67 UGUCG-A-UCUGCU--AAUUG-------GCAAA
+R.norvegicus.2/1-64 UUC-U-G-UUGGAU--AGCUC-------GUAAU
+R.norvegicus.1/1-61 UGU-G-A-CUUGAU--UUUUA-------AAAAU
+O.aries.1/1-68 CCU-U-C-CUUGAU--GUUCU------CACGGC
+M.musculus.9/1-66 GCA-G-U-CCUGAG-GACCUG-------GCGUG
+M.musculus.8/1-67 UGU-AGA-UCUGAU--AAUUG-------GCAAA
+O.niloticus.3/1-65 ACC-G-ACACUGAU--GUUUC------CGACAC
+M.musculus.7/1-64 CCU-C-C-CCUGAG---CCCG----UCUGUGGU
+O.niloticus.2/1-61 UGG-A-G-CCAGAU--GCAUU------CAAACA
+M.musculus.6/1-61 CCA-G-G-UUUGAA---CCC--------CUGGC
+O.niloticus.1/1-59 UGG-A-G-CCAGAU--GCAUU-------GAAAC
+M.musculus.5/1-66 CUU-U-C-CUCGAU--GUUCC------UGCGGC
+M.musculus.4/1-65 UGU-G-G-UUGGAU---GUAG------UCACAC
+M.musculus.3/1-64 AAA-C-A-CCUGAU-UUCCAG-----GAAAAUC
+M.musculus.2/1-64 UUC-U-G-UUGGAU--AGCUU-------GUAAU
+M.musculus.1/1-64 AGG-G-U-GGUGAU--GACCC-------GUGAC
+C.elegans.1/1-64 UCU-G-G-UCUGAU---GC---------GCCUC
+H.sapiens.15/1-63 GAA-C-A-CCUGAU---CUUA-----CAGAAAA
+H.sapiens.14/1-62 CUA-G-U-UCUGAA---UU-G-------CAGGG
+H.sapiens.13/1-64 AGA-G-U-GGGGAU--GGUCU-------GUGAC
+H.sapiens.12/1-67 GAG-A-G-GCAGAGCAAGCCU-------CAGAG
+D.rerio.1/1-66 GUC-U-G-UCUGAU--GUUUG-------GCCAU
+H.sapiens.11/1-63 CCA-U-G-UCCGAG---CCCC-------CUGGC
+H.sapiens.10/1-62 GCA-G-A-CCCGAA-AAUCCA-------GCGUG
+S.mansoni.1/1-67 UGC-C-A-UUUGAU--GAAAUCAGUUUUGUGUG
+S.scrofa.4/1-64 GCA-G-A-CUCGAG-AACCUG-------GCGUG
+S.scrofa.3/1-63 GAA-C-A-CCUGAU-GUCCAG------GAAAAU
+S.scrofa.2/1-65 GCA-G-A-CUCGAG-AACCUG-------GCGUG
+S.scrofa.1/1-68 CCU-U-C-CCUGAU--GUUCU------CAUGGC
+H.sapiens.9/1-58 UGU-G-A-CUUGAU---UCA--------AAAGA
+H.sapiens.8/1-67 UUC-U-G-UUGGAU-AAUUAG-----CAGUUUA
+X.laevis.1/1-67 CUC-GUG-UCCGAC---AUC--------AACCC
+H.sapiens.7/1-70 CCU-C-C-CCUGAG---CCUGUCUGAGGGGCCA
+H.sapiens.6/1-66 AGU-G-G-UUGGAU---GUAG------UCACAU
+H.sapiens.5/1-57 UGG-U-G-UCUGAG--AGGC--------GUGAA
+H.sapiens.4/1-71 ACA-G-A-CCAGAU--GCUUU--CUUGGCAGGC
+H.sapiens.3/1-68 CUU-U-C-CCUGAU--GUUCU------CGUGGC
+H.sapiens.2/1-65 AGU-G-G-UUGGAU---GUAG------UCACAU
+H.sapiens.1/1-63 CCA-U-G-UCCGAG---CCCC-------CUGGC
+M.musculus.14/1-67 GAG-A-G-GCUGAACAAACCU-------CAGAG
+M.musculus.13/1-60 CAG-U-G-ACAGAA---GA---------GCUGC
+M.musculus.12/1-65 CCU-U-U-UCUGAU--GGUGG-------CUGGG
+M.musculus.11/1-63 UGU-G-A-CUUGAU--UUUUA----AAAAUGUC
+M.musculus.10/1-66 GCA-G-U-CCUGAG-GACCUG-------GCGUG
+B.taurus.7/1-61 GAA-U-G-CCUGAU-GUCCAG-------GAAAA
+B.taurus.6/1-67 UGG-U-G-AUGGAA-CCGUCA-----AAGCAGU
+B.taurus.5/1-61 CCA-U-G-UCUGAG---CCC--------CUGGC
+B.taurus.4/1-64 UUC-U-G-UUGGAU--GGUUG-------GCAA-
+G.gallus.3/1-73 AUC-GUG-UCUGAU---GUUG-----UCAAGUA
+B.taurus.3/1-66 GCA-G-A-CCUGAG-AACCUG-------GCGUG
+G.gallus.2/1-60 UGU-G-A-CCUGAU--UUUAG------AAAAUA
+B.taurus.2/1-64 UUC-U-G-UUGGAU--GGUUG-------GCAAC
+G.gallus.1/1-63 GGU-G-U-UCAGAU--GCU---------CUCAC
+