From: jprocter Date: Tue, 19 Jun 2012 10:49:04 +0000 (+0100) Subject: JAL-975 - ensure we only submit ungapped, padded alignment data to AACon - otherwise... X-Git-Tag: Jalview_2_9~452 X-Git-Url: http://source.jalview.org/gitweb/?a=commitdiff_plain;h=f9dac76937139e7b03fc25abfb4b53faa4823521;p=jalview.git JAL-975 - ensure we only submit ungapped, padded alignment data to AACon - otherwise jobs fail. --- diff --git a/src/jalview/ws/jws2/AAConsClient.java b/src/jalview/ws/jws2/AAConsClient.java index 7aaac5b..c76ea1c 100644 --- a/src/jalview/ws/jws2/AAConsClient.java +++ b/src/jalview/ws/jws2/AAConsClient.java @@ -23,10 +23,11 @@ public class AAConsClient extends JabawsAlignCalcWorker WsParamSetI preset, List paramset) { super(service, alignFrame, preset, paramset); - submitGaps=true; - alignedSeqs=true; - nucleotidesAllowed=false; - proteinAllowed=true; + submitGaps = true; + alignedSeqs = true; + nucleotidesAllowed = false; + proteinAllowed = true; + gapMap=new boolean[0]; } public String getServiceActionText() @@ -98,6 +99,14 @@ public class AAConsClient extends JabawsAlignCalcWorker x = val; } } + // if we're at a gapped column then skip to next ungapped position + if (gapMap != null && gapMap.length > 0) + { + while (!gapMap[i]) + { + elm[i++]=new Annotation("", "" , ' ', Float.NaN); + } + } elm[i] = new Annotation("", "" + val, ' ', val); } diff --git a/src/jalview/ws/jws2/JabawsAlignCalcWorker.java b/src/jalview/ws/jws2/JabawsAlignCalcWorker.java index 9a1557c..7ef85d3 100644 --- a/src/jalview/ws/jws2/JabawsAlignCalcWorker.java +++ b/src/jalview/ws/jws2/JabawsAlignCalcWorker.java @@ -334,10 +334,10 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker protected boolean bySequence = false; Map seqNames; - + boolean[] gapMap; + int realw; public List getInputSequences(AlignmentI alignment) { - if (alignment == null || alignment.getWidth() <= 0 || alignment.getSequences() == null // || (alignedSeqs && !alignment.isAligned() && !submitGaps) @@ -354,9 +354,9 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker { seqNames = new HashMap(); } + gapMap=new boolean[0]; for (SequenceI sq : ((List) alignment.getSequences())) { - if (sq.getEnd() - sq.getStart() > minlen - 1) { String newname = SeqsetUtils.unique_name(seqs.size() + 1); @@ -366,10 +366,28 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker seqNames.put(newname, sq); } FastaSequence seq; + if (submitGaps) + { + seqs.add(seq = new compbio.data.sequence.FastaSequence(newname,sq.getSequenceAsString())); + if (gapMap==null || gapMap.length ln) { ln = seq.getSequence().length(); @@ -378,6 +396,14 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker } if (alignedSeqs && submitGaps) { + realw = 0; + for (int i=0;ipp) + { + padded[i++]=orig[pp]; + } else { + padded[i++]='-'; + } } - seqs.set(p, new compbio.data.sequence.FastaSequence(sq.getId(), - new String(padded))); } + seqs.set(p, new compbio.data.sequence.FastaSequence(sq.getId(), + new String(padded))); } - } return seqs; }