Fix problem with new table column names: ProgrammeName -> ProgramName, Version -...
[proteocache.git] / datadb / compbio / cassandra / JpredParserHTTP.java
index 453f01f..825689e 100644 (file)
@@ -13,6 +13,8 @@ import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 import compbio.cassandra.JpredParser;
 import compbio.data.sequence.FastaReader;
@@ -93,6 +95,7 @@ public class JpredParserHTTP implements JpredParser {
                }
                return protein;
        }
+
        private String parseSeqFile(final InputStream stream, String jobid) throws FileNotFoundException {
                final FastaReader fr = new FastaReader(stream);
                String protein = "";
@@ -105,12 +108,17 @@ public class JpredParserHTTP implements JpredParser {
                return protein;
        }
 
-       private String parseLogFile(final InputStream stream) throws IOException {
+       private String parseLogFile(final InputStream stream, JpredJob job) throws IOException {
                String out = "";
                BufferedReader buffer = new BufferedReader(new InputStreamReader(stream));
                String line;
+               if (null != (out = buffer.readLine()) && (out.contains("version"))) {
+                       Matcher matcher = Pattern.compile("((\\d|\\.)+)").matcher(out);
+                       if (matcher.find())
+                               job.setProgramVersion(matcher.group(0));
+               }
                while (null != (line = buffer.readLine())) {
-                       out += line;
+                       out += line;            
                }
                return out;
        }
@@ -123,6 +131,7 @@ public class JpredParserHTTP implements JpredParser {
                boolean LogfileExists = false;
                JpredJob job = new JpredJob(jobinfo[jobinfo.length - 1], jobinfo[0], jobinfo[1]);
                job.setIP(jobinfo[2]);
+               job.setProgramName("Jpred");
                Date currDate = new Date();
                String maindir = dirprefix + "/" + job.getJobID() + "/";
 
@@ -139,7 +148,7 @@ public class JpredParserHTTP implements JpredParser {
                        if (199 < httpConnection_conciseurl.getResponseCode() && httpConnection_conciseurl.getResponseCode() < 300) {
                                ConcisefileExists = true;
                                running = false;
-                               try {
+                               try {                           
                                        job.setProtein(parsePredictions(conciseurl.openStream(), job.getJobID()));
                                } catch (IOException e) {
                                        e.printStackTrace();
@@ -150,7 +159,7 @@ public class JpredParserHTTP implements JpredParser {
                        }
                        if (199 < httpConnection_logurl.getResponseCode() && httpConnection_logurl.getResponseCode() < 300) {
                                LogfileExists = true;
-                               job.setLog(parseLogFile(logurl.openStream()));
+                               job.setLog(parseLogFile(logurl.openStream(), job));
                        } else {
                                // The job has not been started at all...
                                job.setExecutionStatus("FAIL");