From 424e935319103a35bea321a15911ad51fc78ebaf Mon Sep 17 00:00:00 2001 From: Daniel Barton Date: Sat, 3 Aug 2013 12:18:32 +0100 Subject: [PATCH] Basic Testing Setup, no getResults method yet --- conf/Executable.properties | 1 + conf/settings/RNAalifoldParameters.xml | 221 ++++++++++++++++++++ log/log4j.properties | 38 ++-- runner/compbio/runner/structure/RNAalifold.java | 29 ++- testsrc/compbio/metadata/AllTestSuit.java | 2 +- .../structure/RNAalifoldParametersTester.java | 202 ++++++++++++++++++ .../compbio/runner/structure/RNAalifoldTester.java | 42 +++- testsrc/testdata/RNAalifoldParameters.xml | 221 ++++++++++++++++++++ testsrc/testdata/unfolded_RF00031.aln | 126 +++++++++++ 9 files changed, 845 insertions(+), 37 deletions(-) create mode 100644 conf/settings/RNAalifoldParameters.xml create mode 100644 testsrc/compbio/runner/structure/RNAalifoldParametersTester.java create mode 100644 testsrc/testdata/RNAalifoldParameters.xml create mode 100644 testsrc/testdata/unfolded_RF00031.aln diff --git a/conf/Executable.properties b/conf/Executable.properties index 55ffc28..7944081 100644 --- a/conf/Executable.properties +++ b/conf/Executable.properties @@ -198,4 +198,5 @@ aacon.presets.file=conf/settings/AAConPresets.xml ##### RNAALIFOLD CONFIGURATION ###### # just the windows binary at the moment local.rnaalifold.bin.windows=binaries/windows/ViennaRNA/RNAalifold.exe +rnaalifold.parameters.file=conf/settings/RNAalifoldParamteres.xml diff --git a/conf/settings/RNAalifoldParameters.xml b/conf/settings/RNAalifoldParameters.xml new file mode 100644 index 0000000..b0e8df0 --- /dev/null +++ b/conf/settings/RNAalifoldParameters.xml @@ -0,0 +1,221 @@ + + + compbio.runner.structure.RNAalifold + + Endgaps + Score pairs with endgaps same as gap-gap pairs + -E + --endgaps + -E + + + Most Informative Sequence + Ouput Set of nucleotides with frequency > average + --mis + + + Partition Function + Output partition function and probability matrix + -p + + + color + Consensus structure plot is colored + --color + + + Alignment + Output structure annotated alignment + --aln + + + No Postscript + Do not produce postscript output + --noPS + + + Partition Function + Output partition function and probability matrix + -p + + + Circular + Assume circular RNA molecule + -c + --circ + -c + + + + G-Quadruplex + Incorporate G-Quadruplex formation into prediction algorithm + -g + --gquad + -g + + + Dangling End Preset + dangling energies will be added for the bases adjacent to a helix on both sides + -d2 + + + No LP + Produce Structures without lonely pairs + --noLP + + + No GU + Do not allow GU pairs + --noGU + + + No Closing GU + Do not allow GU pairs at the end of sequences + --noClosingGU + + + old + Use old energy evaluation, treating gaps as characters + --old + + + Ribosum Scoring + Use Ribosum Scoring Matrix + -r + --ribosum_scoring + -r + + + + + MEA structure + Maximum Expected Accuracy Structure + --MEA + 1 + + Float + + + + + Stochastic Backtrack + Compute a number of random structures + -s + + + 5 + + Int + + + + stochBT_en + Print Backtrack structures + --stochBT_en + 5 + + Int + + + + scaling factor + In calculating pf use scale*mfe as estimate for ensemble free energy] + -S + + 1.07 + + Float + + + + bppmThreshold + Threshold for base pair probabilities + --bppmThreshold + 1e-6 + + + Temperature + Rescale Energy parameterss to Temperature + -T + + 37 + + Double + + + + Dangling End + How to treat Dangling End energies for bases adjacent to helices + -d + + 2 + + Int + + + + cfactor + weight of covariance term + --cfactor + 1.0 + + Double + + + + nfactor + penalty for non-compatible sequences in covariance term + --nfactor + 1.0 + + Double + + + + + + + + + + + + + + + + + + + + + + Allow Pairs + allow pairs in addition to AU, GC and GU + --nsp + -GA + + String + + + + betaScale + Set scaling of Boltzmann factors + --betaScale + 1.0 + + Double + + + \ No newline at end of file diff --git a/log/log4j.properties b/log/log4j.properties index cd2a406..316f154 100644 --- a/log/log4j.properties +++ b/log/log4j.properties @@ -17,12 +17,16 @@ org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = FINE ## Uncomment this if you would like the system to log messages into stdout -#log4j.rootLogger=TRACE, rootfile -#log4j.appender.rootfile=org.apache.log4j.RollingFileAppender -#log4j.appender.rootfile.File=JABAWSLogFilename.log -#log4j.appender.rootfile.Target=System.out -#log4j.appender.rootfile.layout=org.apache.log4j.PatternLayout -#log4j.appender.rootfile.layout.ConversionPattern=%t %d %m%n +log4j.rootLogger=INFO, rootfile, stdout +log4j.appender.rootfile=org.apache.log4j.RollingFileAppender +log4j.appender.rootfile.File=JABAWSLogFilename.log +log4j.appender.rootfile.layout=org.apache.log4j.PatternLayout +log4j.appender.rootfile.layout.ConversionPattern=%-5p [%t]: %m%n + +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.Target=System.out +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=%-5p [%t] %-45C: %m%n ## Uncomment to enable JWS2 activity logging to the file #log4j.logger.compbio=TRACE, ACTIVITY @@ -50,18 +54,18 @@ org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = FINE #log4j.appender.stdout.layout.ConversionPattern=%m%n #log4j.rootLogger=info, stdout -log4j.rootLogger=ERROR, R -log4j.appender.R=org.apache.log4j.FileAppender -log4j.appender.R.File=${catalina.base}/logs/JABAWSErrorFile.log -log4j.appender.R.layout=org.apache.log4j.PatternLayout -log4j.appender.R.layout.ConversionPattern=%m%n %d{MM-dd@HH:mm:ss} %-5p (%13F:%L) %3x - +#log4j.rootLogger=ERROR, R +#log4j.appender.R=org.apache.log4j.FileAppender +#log4j.appender.R.File=${catalina.base}/logs/JABAWSErrorFile.log +#log4j.appender.R.layout=org.apache.log4j.PatternLayout +#log4j.appender.R.layout.ConversionPattern=%m%n %d{MM-dd@HH:mm:ss} %-5p (%13F:%L) %3x - -# %d{ABSOLUTE} %5p %c{1}:%L - -log4j.logger.compbio=WARN, B -log4j.appender.B=org.apache.log4j.FileAppender -log4j.appender.B.File=${catalina.base}/logs/engine.log -log4j.appender.B.layout=org.apache.log4j.PatternLayout -log4j.appender.B.layout.ConversionPattern=%m%n %d{MM-dd@HH:mm:ss} %-5p (%13F:%L) %3x - +## %d{ABSOLUTE} %5p %c{1}:%L - +#log4j.logger.compbio=WARN, B +#log4j.appender.B=org.apache.log4j.FileAppender +#log4j.appender.B.File=${catalina.base}/logs/engine.log +#log4j.appender.B.layout=org.apache.log4j.PatternLayout +#log4j.appender.B.layout.ConversionPattern=%m%n %d{MM-dd@HH:mm:ss} %-5p (%13F:%L) %3x - # %d{ABSOLUTE} %5p %c{1}:%L - #log4j.logger.compbio.engine.local.LocalExecutorService=INFO, C diff --git a/runner/compbio/runner/structure/RNAalifold.java b/runner/compbio/runner/structure/RNAalifold.java index 43a0975..ff89fcb 100644 --- a/runner/compbio/runner/structure/RNAalifold.java +++ b/runner/compbio/runner/structure/RNAalifold.java @@ -1,7 +1,5 @@ package compbio.runner.structure; -import java.util.Scanner; //temp -import java.io.File; //temp import java.io.FileNotFoundException; import java.io.IOException; @@ -12,40 +10,39 @@ import org.apache.log4j.Logger; 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 { +public class RNAalifold extends SkeletalExecutable + implements PipedExecutable { + + + + 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; } diff --git a/testsrc/compbio/metadata/AllTestSuit.java b/testsrc/compbio/metadata/AllTestSuit.java index efbdcce..bbb7fbd 100644 --- a/testsrc/compbio/metadata/AllTestSuit.java +++ b/testsrc/compbio/metadata/AllTestSuit.java @@ -73,6 +73,6 @@ public class AllTestSuit { public static final String test_input_large = AllTestSuit.TEST_DATA_PATH_ABSOLUTE + "1000x3000Dna.fasta"; - public static final String test_input_rna = AllTestSuit.TEST_DATA_PATH_ABSOLUTE + "unfolded_RF00031.aln"; + public static final String test_input_aln = AllTestSuit.TEST_DATA_PATH_ABSOLUTE + "unfolded_RF00031.aln"; } diff --git a/testsrc/compbio/runner/structure/RNAalifoldParametersTester.java b/testsrc/compbio/runner/structure/RNAalifoldParametersTester.java new file mode 100644 index 0000000..9c15537 --- /dev/null +++ b/testsrc/compbio/runner/structure/RNAalifoldParametersTester.java @@ -0,0 +1,202 @@ +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 rnaalifoldConfig = null; + OptionCombinator rnaalifoldOpc = null; + + @BeforeMethod(groups = { AllTestSuit.test_group_runner }) + @SuppressWarnings("unchecked") + public void setup() { + try { + RunnerConfigMarshaller rnaalifoldmarsh = + new RunnerConfigMarshaller(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 confRNAalifold = Configurator + .configureExecutable(rnaalifold); + LocalRunner lr = new LocalRunner(confRNAalifold); + lr.executeJob(); + confRNAalifold = (ConfiguredExecutable) 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> params = rnaalifoldOpc.getAllParameters(); + Collections.shuffle(params); + test(params); + } + + @Test(groups = { AllTestSuit.test_group_runner }) + public void testArguments() { + List> options = rnaalifoldOpc.getAllOptions(); + options.addAll(rnaalifoldOpc.getAllParameters()); + Collections.shuffle(options); + test(options); + } + + void test(Map, String> paramValue) { + List> paramList = new ArrayList>(paramValue + .keySet()); + for (int i = 0; i < paramValue.size(); i++) { + List args = rnaalifoldOpc.parametersToCommandString(paramList, + paramValue); + singleTest(args); + Collections.shuffle(paramList); + } + log.info("NUMBER OF COMBINATION TESTED: " + paramValue.size()); + } + + void test(List> params) { + for (int i = 0; i < params.size(); i++) { + List args = rnaalifoldOpc.argumentsToCommandString(params); + singleTest(args); + Collections.shuffle(params); + } + log.info("NUMBER OF COMBINATION TESTED: " + params.size()); + } + + void singleTest(List params) { + try { + log.info("Using arguments: " + params); + RNAalifold rnaalifold = new RNAalifold(); + rnaalifold.setInput(AllTestSuit.test_input_aln).setOutput(test_outfile); + + ConfiguredExecutable confRNAalifold = Configurator + .configureExecutable(rnaalifold, ExecProvider.Local); + // Add options to the executable + confRNAalifold.addParameters(params); + LocalRunner lr = new LocalRunner(confRNAalifold); + lr.executeJob(); + confRNAalifold = (ConfiguredExecutable) 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()); + } + } + +} diff --git a/testsrc/compbio/runner/structure/RNAalifoldTester.java b/testsrc/compbio/runner/structure/RNAalifoldTester.java index 6a5056a..123f4b2 100644 --- a/testsrc/compbio/runner/structure/RNAalifoldTester.java +++ b/testsrc/compbio/runner/structure/RNAalifoldTester.java @@ -16,6 +16,7 @@ import java.text.ParseException; import javax.xml.bind.ValidationException; +import org.apache.log4j.*; import org.ggf.drmaa.DrmaaException; import org.ggf.drmaa.JobInfo; import org.testng.annotations.BeforeMethod; @@ -46,26 +47,61 @@ import compbio.metadata.LimitsManager; 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 confRNAalifold = Configurator + .configureExecutable(rnaalifold, Executable.ExecProvider.Local); + LocalRunner lr = new LocalRunner(confRNAalifold); + lr.executeJob(); + confRNAalifold = (ConfiguredExecutable) 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 confRNAalifold = Configurator .configureExecutable(rnaalifold); AsyncExecutor lr = new AsyncLocalRunner(); lr.submitJob(confRNAalifold); + Thread.sleep(3000); LocalExecutorService.shutDown(); diff --git a/testsrc/testdata/RNAalifoldParameters.xml b/testsrc/testdata/RNAalifoldParameters.xml new file mode 100644 index 0000000..b0e8df0 --- /dev/null +++ b/testsrc/testdata/RNAalifoldParameters.xml @@ -0,0 +1,221 @@ + + + compbio.runner.structure.RNAalifold + + Endgaps + Score pairs with endgaps same as gap-gap pairs + -E + --endgaps + -E + + + Most Informative Sequence + Ouput Set of nucleotides with frequency > average + --mis + + + Partition Function + Output partition function and probability matrix + -p + + + color + Consensus structure plot is colored + --color + + + Alignment + Output structure annotated alignment + --aln + + + No Postscript + Do not produce postscript output + --noPS + + + Partition Function + Output partition function and probability matrix + -p + + + Circular + Assume circular RNA molecule + -c + --circ + -c + + + + G-Quadruplex + Incorporate G-Quadruplex formation into prediction algorithm + -g + --gquad + -g + + + Dangling End Preset + dangling energies will be added for the bases adjacent to a helix on both sides + -d2 + + + No LP + Produce Structures without lonely pairs + --noLP + + + No GU + Do not allow GU pairs + --noGU + + + No Closing GU + Do not allow GU pairs at the end of sequences + --noClosingGU + + + old + Use old energy evaluation, treating gaps as characters + --old + + + Ribosum Scoring + Use Ribosum Scoring Matrix + -r + --ribosum_scoring + -r + + + + + MEA structure + Maximum Expected Accuracy Structure + --MEA + 1 + + Float + + + + + Stochastic Backtrack + Compute a number of random structures + -s + + + 5 + + Int + + + + stochBT_en + Print Backtrack structures + --stochBT_en + 5 + + Int + + + + scaling factor + In calculating pf use scale*mfe as estimate for ensemble free energy] + -S + + 1.07 + + Float + + + + bppmThreshold + Threshold for base pair probabilities + --bppmThreshold + 1e-6 + + + Temperature + Rescale Energy parameterss to Temperature + -T + + 37 + + Double + + + + Dangling End + How to treat Dangling End energies for bases adjacent to helices + -d + + 2 + + Int + + + + cfactor + weight of covariance term + --cfactor + 1.0 + + Double + + + + nfactor + penalty for non-compatible sequences in covariance term + --nfactor + 1.0 + + Double + + + + + + + + + + + + + + + + + + + + + + Allow Pairs + allow pairs in addition to AU, GC and GU + --nsp + -GA + + String + + + + betaScale + Set scaling of Boltzmann factors + --betaScale + 1.0 + + Double + + + \ No newline at end of file diff --git a/testsrc/testdata/unfolded_RF00031.aln b/testsrc/testdata/unfolded_RF00031.aln new file mode 100644 index 0000000..69a7850 --- /dev/null +++ b/testsrc/testdata/unfolded_RF00031.aln @@ -0,0 +1,126 @@ +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 + -- 1.7.10.2