public String getSequenceAsString();
/**
- * get a range on the seuqence as a string
+ * get a range on the sequence as a string
*
* @param start
- * DOCUMENT ME!
+ * position relative to start of sequence including gaps (from 0)
* @param end
- * DOCUMENT ME!
+ * position relative to start of sequence including gaps (from 0)
*
- * @return DOCUMENT ME!
+ * @return String containing all gap and symbols in specified range
*/
public String getSequenceAsString(int start, int end);
/**
- * DOCUMENT ME!
+ * Get the sequence as a character array
*
- * @return DOCUMENT ME!
+ * @return seqeunce and any gaps
*/
public char[] getSequence();
import jalview.api.AlignViewportI;
import jalview.api.AlignmentViewPanel;
import jalview.gui.AlignFrame;
-import jalview.workers.AlignCalcWorker;
import jalview.ws.jws2.dm.AAConSettings;
import jalview.ws.jws2.jabaws2.Jws2Instance;
import jalview.ws.params.WsParamSetI;
import java.util.List;
-import compbio.data.msa.SequenceAnnotation;
import compbio.metadata.Argument;
public abstract class JabawsAlignCalcWorker extends JabawsCalcWorker
super(service, alignFrame, preset, paramset);
}
-
-
-
/**
* Recover any existing parameters for this service
*/
import jalview.api.AlignmentViewPanel;
import jalview.datamodel.AlignmentAnnotation;
import jalview.datamodel.AlignmentI;
+import jalview.datamodel.AnnotatedCollectionI;
import jalview.datamodel.Annotation;
import jalview.datamodel.SequenceI;
import jalview.gui.AlignFrame;
return;
}
List<compbio.data.sequence.FastaSequence> seqs = getInputSequences(alignViewport
- .getAlignment());
+ .getAlignment(), bySequence ? alignViewport.getSelectionGroup() : null);
if (seqs == null)
{
protected Map<String, SequenceI> seqNames;
protected boolean[] gapMap;
int realw;
+ int start,end;
- public List<FastaSequence> getInputSequences(AlignmentI alignment)
+ public List<FastaSequence> getInputSequences(AlignmentI alignment, AnnotatedCollectionI inputSeqs)
{
if (alignment == null || alignment.getWidth() <= 0
|| alignment.getSequences() == null
- // || (alignedSeqs && !alignment.isAligned() && !submitGaps)
|| alignment.isNucleotide() ? !nucleotidesAllowed
: !proteinAllowed)
{
return null;
}
+ if (inputSeqs==null || inputSeqs.getWidth()<=0 || inputSeqs.getSequences()==null || inputSeqs.getSequences().size()<1)
+ {
+ inputSeqs = alignment;
+ }
+
List<compbio.data.sequence.FastaSequence> seqs = new ArrayList<compbio.data.sequence.FastaSequence>();
-
+
int minlen = 10;
int ln = -1;
if (bySequence)
seqNames = new HashMap<String, SequenceI>();
}
gapMap = new boolean[0];
+ start=inputSeqs.getStartRes();
+ end=inputSeqs.getEndRes();
+
+
for (SequenceI sq : ((List<SequenceI>) alignment.getSequences()))
{
- if (sq.getEnd() - sq.getStart() > minlen - 1)
+ if (bySequence ? sq.findPosition(end+1) -sq.findPosition(start+1) > minlen - 1 : sq.getEnd() - sq.getStart() > minlen - 1)
{
String newname = SeqsetUtils.unique_name(seqs.size() + 1);
// make new input sequence with or without gaps
{
seqs.add(seq = new compbio.data.sequence.FastaSequence(newname,
AlignSeq.extractGaps(jalview.util.Comparison.GapChars,
- sq.getSequenceAsString())));
+ sq.getSequenceAsString(start,end+1))));
}
if (seq.getSequence().length() > ln)
{