X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2Fjws1%2FJPredThread.java;h=796c2afb846351d49d6d9c4eff50c2a617f6dfee;hb=23304093bd85722ad85393516357e565616cbf0b;hp=a0036fe2a164b2af437833c848ecad5b2ec5c15b;hpb=add30afdc46a14e61ccf55881fa91b9ca9abfe80;p=jalview.git diff --git a/src/jalview/ws/jws1/JPredThread.java b/src/jalview/ws/jws1/JPredThread.java index a0036fe..796c2af 100644 --- a/src/jalview/ws/jws1/JPredThread.java +++ b/src/jalview/ws/jws1/JPredThread.java @@ -1,6 +1,6 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.5) - * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7) + * Copyright (C) 2011 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle * * This file is part of Jalview. * @@ -100,8 +100,8 @@ class JPredThread extends JWS1Thread implements WSClientI jalview.bin.Cache.log.debug("Parsing output from JNet job."); // JPredFile prediction = new JPredFile("C:/JalviewX/files/jpred.txt", // "File"); - jalview.io.JPredFile prediction = new jalview.io.JPredFile(result - .getPredfile(), "Paste"); + jalview.io.JPredFile prediction = new jalview.io.JPredFile( + result.getPredfile(), "Paste"); SequenceI[] preds = prediction.getSeqsAsArray(); jalview.bin.Cache.log.debug("Got prediction profile."); @@ -110,8 +110,8 @@ class JPredThread extends JWS1Thread implements WSClientI jalview.bin.Cache.log.debug("Getting associated alignment."); // we ignore the returned alignment if we only predicted on a single // sequence - String format = new jalview.io.IdentifyFile().Identify(result - .getAligfile(), "Paste"); + String format = new jalview.io.IdentifyFile().Identify( + result.getAligfile(), "Paste"); if (jalview.io.FormatAdapter.isValidFormat(format)) { @@ -180,8 +180,8 @@ class JPredThread extends JWS1Thread implements WSClientI profileseq.setSequence(sqs[msaIndex].getSequenceAsString()); } - if (!jalview.analysis.SeqsetUtils.SeqCharacterUnhash(al - .getSequenceAt(FirstSeq), SequenceInfo)) + if (!jalview.analysis.SeqsetUtils.SeqCharacterUnhash( + al.getSequenceAt(FirstSeq), SequenceInfo)) { throw (new Exception( "Couldn't recover sequence properties for JNet Query sequence!")); @@ -197,7 +197,7 @@ class JPredThread extends JWS1Thread implements WSClientI { // Adjust input view for gaps // propagate insertions into profile - alcsel = propagateInsertions(profileseq, al, input); + alcsel = ColumnSelection.propagateInsertions(profileseq, al, input); } } } @@ -255,105 +255,13 @@ class JPredThread extends JWS1Thread implements WSClientI } } - /** - * Add gaps into the sequences aligned to profileseq under the given - * AlignmentView - * - * @param profileseq - * @param al - * @param input - */ - private ColumnSelection propagateInsertions(SequenceI profileseq, - Alignment al, AlignmentView input) - { - char gc = al.getGapCharacter(); - Object[] alandcolsel = input.getAlignmentAndColumnSelection(gc); - ColumnSelection nview = (ColumnSelection) alandcolsel[1]; - SequenceI origseq; - nview.pruneDeletions(ShiftList - .parseMap((origseq = ((SequenceI[]) alandcolsel[0])[0]) - .gapMap())); // recover original prediction sequence's - // mapping to view. - int[] viscontigs = nview.getVisibleContigs(0, profileseq.getLength()); - int spos = 0; - int offset = 0; - // input.pruneDeletions(ShiftList.parseMap(((SequenceI[]) - // alandcolsel[0])[0].gapMap())) - // add profile to visible contigs - for (int v = 0; v < viscontigs.length; v += 2) - { - if (viscontigs[v] > spos) - { - StringBuffer sb = new StringBuffer(); - for (int s = 0, ns = viscontigs[v] - spos; s < ns; s++) - { - sb.append(gc); - } - for (int s = 0, ns = al.getHeight(); s < ns; s++) - { - SequenceI sqobj = al.getSequenceAt(s); - if (sqobj != profileseq) - { - String sq = al.getSequenceAt(s).getSequenceAsString(); - if (sq.length() <= spos + offset) - { - // pad sequence - int diff = spos + offset - sq.length() - 1; - if (diff > 0) - { - // pad gaps - sq = sq + sb; - while ((diff = spos + offset - sq.length() - 1) > 0) - { - sq = sq - + ((diff >= sb.length()) ? sb.toString() : sb - .substring(0, diff)); - } - } - sq += sb.toString(); - } - else - { - al.getSequenceAt(s).setSequence( - sq.substring(0, spos + offset) + sb.toString() - + sq.substring(spos + offset)); - } - } - } - // offset+=sb.length(); - } - spos = viscontigs[v + 1] + 1; - } - if ((offset + spos) < profileseq.getLength()) - { - StringBuffer sb = new StringBuffer(); - for (int s = 0, ns = profileseq.getLength() - spos - offset; s < ns; s++) - { - sb.append(gc); - } - for (int s = 1, ns = al.getHeight(); s < ns; s++) - { - String sq = al.getSequenceAt(s).getSequenceAsString(); - // pad sequence - int diff = origseq.getLength() - sq.length(); - while (diff > 0) - { - sq = sq - + ((diff >= sb.length()) ? sb.toString() : sb - .substring(0, diff)); - diff = origseq.getLength() - sq.length(); - } - } - } - return nview; - } public JPredJob(Hashtable SequenceInfo, SequenceI seq, int[] delMap) { super(); this.predMap = delMap; - String sq = AlignSeq.extractGaps(Comparison.GapChars, seq - .getSequenceAsString()); + String sq = AlignSeq.extractGaps(Comparison.GapChars, + seq.getSequenceAsString()); if (sq.length() >= 20) { this.SequenceInfo = SequenceInfo; @@ -470,14 +378,12 @@ class JPredThread extends JWS1Thread implements WSClientI wsInfo.setStatus(WebserviceInfo.STATE_STOPPED_SERVERERROR); if (e.getMessage().indexOf("Exception") > -1) { - wsInfo - .setStatus(j.getJobnum(), - WebserviceInfo.STATE_STOPPED_SERVERERROR); - wsInfo - .setProgressText( - j.getJobnum(), - "Failed to submit the prediction. (Just close the window)\n" - + "It is most likely that there is a problem with the server.\n"); + wsInfo.setStatus(j.getJobnum(), + WebserviceInfo.STATE_STOPPED_SERVERERROR); + wsInfo.setProgressText( + j.getJobnum(), + "Failed to submit the prediction. (Just close the window)\n" + + "It is most likely that there is a problem with the server.\n"); System.err .println("JPredWS Client: Failed to submit the prediction. Quite possibly because of a server error - see below)\n" + e.getMessage() + "\n"); @@ -492,8 +398,8 @@ class JPredThread extends JWS1Thread implements WSClientI "Failed to submit the prediction:\n" + e.getMessage() + wsInfo.getProgressText()); - jalview.bin.Cache.log.debug("Failed Submission of job " + j.getJobnum(), - e); + jalview.bin.Cache.log.debug( + "Failed Submission of job " + j.getJobnum(), e); } j.setAllowedServerExceptions(-1); @@ -585,7 +491,8 @@ class JPredThread extends JWS1Thread implements WSClientI { jalview.bin.Cache.log.error( "JNet Client: JPred Annotation Parse Error", e); - wsInfo.setStatus(j.getJobnum(), WebserviceInfo.STATE_STOPPED_ERROR); + wsInfo.setStatus(j.getJobnum(), + WebserviceInfo.STATE_STOPPED_ERROR); wsInfo.appendProgressText(j.getJobnum(), OutputHeader + "\n" + j.result.getStatus() + "\nInvalid JNet job result data!\n" + e.getMessage()); @@ -646,7 +553,7 @@ class JPredThread extends JWS1Thread implements WSClientI public void pollJob(AWsJob job) throws Exception { - ((JPredJob)job).result = server.getresult(job.getJobId()); + ((JPredJob) job).result = server.getresult(job.getJobId()); } public boolean isCancellable()