Further work on GlobPlot
authorpvtroshin <pvtroshin@e3abac25-378b-4346-85de-24260fe3988d>
Tue, 8 Feb 2011 17:21:44 +0000 (17:21 +0000)
committerpvtroshin <pvtroshin@e3abac25-378b-4346-85de-24260fe3988d>
Tue, 8 Feb 2011 17:21:44 +0000 (17:21 +0000)
git-svn-id: link to svn.lifesci.dundee.ac.uk/svn/barton/ptroshin/JABA2@3718 e3abac25-378b-4346-85de-24260fe3988d

binaries/src/compilebin.sh
binaries/src/globplot/GlobPlot.py [moved from binaries/src/globplot/GlobPipe.py with 100% similarity]
binaries/src/setexecflag.sh
conf/Executable.properties
conf/settings/GlobPlotLimits.xml [new file with mode: 0644]
how_to_add_new_webservice.txt [new file with mode: 0644]
testsrc/compbio/data/sequence/SequenceUtilTester.java

index 3cc20b2..8a0ecd2 100644 (file)
@@ -67,5 +67,10 @@ echo "DONE"
 chmod +x sav_gol
 cd ..
 
-
+echo "Compiling GlobPlot..."
+cd globplot
+echo "DONE"
+# TODO deal with the links
+chmod +x GlobPlot.py
+cd ..
 
index d125079..33d1b65 100644 (file)
@@ -22,3 +22,5 @@ chmod +x tcoffee/t_coffee_source/t_coffee
 echo "Setting executable flag for DisEMBL..."
 chmod +x disembl/disembl disembl/sav_gol disembl/DisEMBL.py 
 
+echo "Setting executable flag for GlobPlot..."
+chmod +x globplot/GlobPlot.py 
index 548507c..1562c56 100644 (file)
@@ -72,7 +72,7 @@ jronn.cluster.cpunum=4
 jronn.cluster.settings=-q 64bit-pri.q -pe smp 4 -l h_vmem=1700M -l ram=1700M -l h_cpu=24:00:00\r
 \r
 \r
-### Disembl configuration Tisean - Disembl dependancy cannot be redistributed (!) ### \r
+### Disembl configuration Tisean - Disembl dependancy ### \r
 #local.disembl.bin.windows= \r
 local.disembl.bin=binaries/src/disembl/DisEMBL.py\r
 cluster.disembl.bin=/homes/pvtroshin/workspace/jaba2/binaries/src/disembl/DisEMBL.py\r
@@ -80,6 +80,15 @@ disembl.parameters.file=conf/settings/DisemblParameters.xml
 disembl.limits.file=conf/settings/DisemblLimits.xml\r
 disembl.cluster.settings=-l h_cpu=24:00:00 -l h_vmem=6000M -l ram=6000M\r
 \r
+### GlobPlot configuration Tisean - GlobPlot and Disembl dependancy ### \r
+#local.disembl.bin.windows= \r
+local.globplot.bin=binaries/src/globplot/GlobPlot.py\r
+cluster.globplot.bin=/homes/pvtroshin/workspace/jaba2/binaries/src/globplot/GlobPlot.py\r
+globplot.parameters.file=conf/settings/GlobPlotParameters.xml\r
+globplot.limits.file=conf/settings/GlobPlotLimits.xml\r
+globplot.cluster.settings=-l h_cpu=24:00:00 -l h_vmem=6000M -l ram=6000M\r
+\r
+\r
 ### AACon configuration ###\r
 local.aacon.bin.windows=D:\\Java\\jdk1.6.0_14\\bin\\java.exe \r
 local.aacon.bin=/sw/java/latest/bin/java\r
diff --git a/conf/settings/GlobPlotLimits.xml b/conf/settings/GlobPlotLimits.xml
new file mode 100644 (file)
index 0000000..7621169
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="US-ASCII" standalone="yes"?>\r
+<limits>\r
+ <runnerClassName>compbio.runner.disorder.GlobPlot</runnerClassName>\r
+       <limit isDefault="true">\r
+               <seqNumber>5000</seqNumber>\r
+               <seqLength>1000</seqLength>\r
+       </limit>\r
+       <limit isDefault="false">\r
+               <preset># LocalEngineExecutionLimit #</preset>\r
+               <seqNumber>200</seqNumber>\r
+               <seqLength>400</seqLength>\r
+       </limit>\r
+</limits>\r
diff --git a/how_to_add_new_webservice.txt b/how_to_add_new_webservice.txt
new file mode 100644 (file)
index 0000000..d795d35
--- /dev/null
@@ -0,0 +1,41 @@
+How To add a new executable\r
+\r
+1) Add executable to the binaries folder. If it has source code and can be recompiled for different platforms include it under binaries/src \r
+Edit binaries/src setexecutableflag.sh and compilebin.sh scripts accordingly. \r
+\r
+2) Make sure all the dependencies of the software being installed are satisfied. If there are other binaries they should be included as well. Keep the dependant binaries in subfolder for the main executable. Update compily and setexecflag scripts accordigly. \r
+\r
+3) Make sure executable \r
+   - Does not have any hard links to its dependencies, e.g. is able to run from any installation folder and does not contain any hardcoded paths. (TODO examples...) \r
+\r
+4) Describe executable in conf/Exectuable.properties. \r
+\r
+5) Add <ExecutableName>Limit.xml, <ExecutableName>Parameters.xml and <ExecutableName>Presets.xml. All but Limits are optional. \r
+\r
+6) Create a Java wrapper class for your executable. Create it within runner source directory.\r
+\r
+7) Create a testcase suit for your wrapper and run the test cases. \r
+\r
+8) Create parser for the output files of your executable. Suggested location compbio.data.sequence.SequenceUtil  \r
+\r
+9) Test the parser\r
+\r
+10) Decide which interface your executable is going to match. \r
+    For example it what the executable produces can be represented as Annotations \r
+    to the sequence file or alignment, then SequenceAnnotation interface might be appropriate. \r
+    For multiple sequence alignment an Msa interface should be used. \r
+\r
+11) If matching interface is found, then implement a web service confirming to it within \r
+    a webservices source folder \r
+\r
+12) Register web service in WEB-INF/ web.xml and sun-jaxws.xml\r
+\r
+13) Modify the client to work with your web service. \r
+\r
+14) Test. \r
+\r
+15) Testing on the cluster...\r
+\r
+\r
+\r
+\r
index 9a8c5a0..7f45855 100644 (file)
@@ -232,11 +232,12 @@ public class SequenceUtilTester {
                                assertEquals(scores.size(), 5);\r
                        }\r
                        for (Score score : scores) {\r
-                               if (score.getMethod() == GlobProtResult.Disorder) {\r
+                               \r
+                               if (score.getMethod() == (Enum<?>) GlobProtResult.Disorder) {\r
                                        assertEquals(score.getRanges().size(), 7);\r
                                        assertTrue(score.getScores().isEmpty());\r
                                }\r
-                               if (score.getMethod() == GlobProtResult.Dydx) {\r
+                               if (score.getMethod() == (Enum<?>)GlobProtResult.Dydx) {\r
                                        assertFalse(score.getScores().isEmpty());\r
                                        assertTrue(score.getRanges().isEmpty());\r
                                }\r