From c1e5e6f8c46bee0a7db6a643222bec916b7178da Mon Sep 17 00:00:00 2001 From: pvtroshin Date: Mon, 7 Feb 2011 15:06:27 +0000 Subject: [PATCH] GlobPlot service, runner and result parser Some rearrangements for disembl to reuse methods git-svn-id: link to svn.lifesci.dundee.ac.uk/svn/barton/ptroshin/JABA2@3709 e3abac25-378b-4346-85de-24260fe3988d --- binaries/src/disembl/DisEMBL.py | 35 +- binaries/src/globplot/GlobPipe.py | 25 +- .../compbio/data/sequence/DisemblResultAnnot.java | 5 - datamodel/compbio/data/sequence/Range.java | 57 + datamodel/compbio/data/sequence/Score.java | 73 +- datamodel/compbio/data/sequence/SequenceUtil.java | 207 ++- runner/compbio/runner/disorder/GlobPlot.java | 145 ++ .../compbio/data/sequence/SequenceUtilTester.java | 87 +- .../compbio/runner/disorder/GlobPlotTester.java | 312 ++++ testsrc/testdata/disembl.out | 12 + testsrc/testdata/globplot.out | 1580 ++++++++++++++++++++ webservices/compbio/ws/server/GlobPlotWS.java | 157 ++ 12 files changed, 2601 insertions(+), 94 deletions(-) delete mode 100644 datamodel/compbio/data/sequence/DisemblResultAnnot.java create mode 100644 datamodel/compbio/data/sequence/Range.java create mode 100644 runner/compbio/runner/disorder/GlobPlot.java create mode 100644 testsrc/compbio/runner/disorder/GlobPlotTester.java create mode 100644 testsrc/testdata/globplot.out create mode 100644 webservices/compbio/ws/server/GlobPlotWS.java diff --git a/binaries/src/disembl/DisEMBL.py b/binaries/src/disembl/DisEMBL.py index d9618e2..7298e83 100644 --- a/binaries/src/disembl/DisEMBL.py +++ b/binaries/src/disembl/DisEMBL.py @@ -118,13 +118,8 @@ def reportSlicesTXT(slices, sequence): if i > 0: sys.stdout.write(', ') sys.stdout.write( str(slices[i][0]+1) + '-' + str(slices[i][1]+1) ) - s = s + upper(sequence[slices[i][0]:(slices[i][1]+1)]) - if i < len(slices)-1: - s = s + lower(sequence[(slices[i][1]+1):(slices[i+1][0])]) - elif slices[i][1] < len(sequence)-1: - s = s + lower(sequence[(slices[i][1]+1):(len(sequence))]) + print '' - print s @@ -144,7 +139,6 @@ def runDisEMBLpipeline(): except: print '\nDisEMBL.py sequence_file \n' print 'A default run would be: ./DisEMBL.py fasta_file' - print 'Mode: "default"(nothing) or "scores" which will give scores per residue in TAB seperated format' raise SystemExit #db = sys.stdin parser = Fasta.RecordParser() @@ -159,22 +153,17 @@ def runDisEMBLpipeline(): REM465_smooth = SavitzkyGolay(smooth_frame,0,REM465_raw) COILS_smooth = SavitzkyGolay(smooth_frame,0,COILS_raw) HOTLOOPS_smooth = SavitzkyGolay(smooth_frame,0,HOTLOOPS_raw) - if mode == 'default': - sys.stdout.write('> '+cur_record.title+'_COILS ') - reportSlicesTXT( getSlices(COILS_smooth, fold_coils, join_frame, peak_frame, 0.43), sequence ) - sys.stdout.write('> '+cur_record.title+'_REM465 ') - reportSlicesTXT( getSlices(REM465_smooth, fold_rem465, join_frame, peak_frame, 0.50), sequence ) - sys.stdout.write('> '+cur_record.title+'_HOTLOOPS ') - reportSlicesTXT( getSlices(HOTLOOPS_smooth, fold_hotloops, join_frame, peak_frame, 0.086), sequence ) - sys.stdout.write('\n') - elif mode == 'scores': - sys.stdout.write('> '+cur_record.title+'\n') - sys.stdout.write('# RESIDUE COILS REM465 HOTLOOPS\n') - for i in range(len(REM465_smooth)): - sys.stdout.write(sequence[i]+'\t'+fpformat.fix(COILS_smooth[i],5)+'\t'+fpformat.fix(REM465_smooth[i],5)+'\t'+fpformat.fix(HOTLOOPS_smooth[i],5)+'\n') - else: - sys.stderr.write('Wrong mode given: '+mode+'\n') - raise SystemExit + + sys.stdout.write('> '+cur_record.title+'\n') + sys.stdout.write('# COILS ') + reportSlicesTXT( getSlices(COILS_smooth, fold_coils, join_frame, peak_frame, 0.43), sequence ) + sys.stdout.write('# REM465 ') + reportSlicesTXT( getSlices(REM465_smooth, fold_rem465, join_frame, peak_frame, 0.50), sequence ) + sys.stdout.write('# HOTLOOPS ') + reportSlicesTXT( getSlices(HOTLOOPS_smooth, fold_hotloops, join_frame, peak_frame, 0.086), sequence ) + sys.stdout.write('# RESIDUE COILS REM465 HOTLOOPS\n') + for i in range(len(REM465_smooth)): + sys.stdout.write(sequence[i]+'\t'+fpformat.fix(COILS_smooth[i],5)+'\t'+fpformat.fix(REM465_smooth[i],5)+'\t'+fpformat.fix(HOTLOOPS_smooth[i],5)+'\n') except AttributeError: break file.close() diff --git a/binaries/src/globplot/GlobPipe.py b/binaries/src/globplot/GlobPipe.py index 71be8a7..b15a28d 100644 --- a/binaries/src/globplot/GlobPipe.py +++ b/binaries/src/globplot/GlobPipe.py @@ -123,9 +123,9 @@ def SavitzkyGolay(window,derivative,datalist): def reportSlicesTXT(slices, sequence, maskFlag): if maskFlag == 'DOM': - coordstr = '|GlobDoms:' + coordstr = 'GlobDoms ' elif maskFlag == 'DIS': - coordstr = '|Disorder:' + coordstr = 'Disorder ' else: raise SystemExit if slices == []: @@ -163,18 +163,16 @@ def reportSlicesTXT(slices, sequence, maskFlag): def runGlobPlot(): try: - smoothFrame = int(sys.argv[1]) - DOM_joinFrame = int(sys.argv[2]) - DOM_peakFrame = int(sys.argv[3]) - DIS_joinFrame = int(sys.argv[4]) - DIS_peakFrame = int(sys.argv[5]) - file = str(sys.argv[6]) + smoothFrame = 10 + DOM_joinFrame = 15 + DOM_peakFrame = 74 + DIS_joinFrame = 4 + DIS_peakFrame = 5 + file = str(sys.argv[1]) db = open(file,'r') except: print 'Usage:' - print ' ./GlobPipe.py SmoothFrame DOMjoinFrame DOMpeakFrame DISjoinFrame DISpeakFrame FASTAfile' - print ' Optimised for ELM: ./GlobPlot.py 10 8 75 8 8 sequence_file' - print ' Webserver settings: ./GlobPlot.py 10 15 74 4 5 sequence_file' + print ' ./GlobPipe.py FASTAfile' raise SystemExit parser = Fasta.RecordParser() iterator = Fasta.Iterator(db,parser) @@ -209,9 +207,12 @@ def runGlobPlot(): globdoms, globdis = getSlices(dydx_vector, DOM_joinFrame, DOM_peakFrame, DIS_joinFrame, DIS_peakFrame) s_domMask, coordstrDOM = reportSlicesTXT(globdoms, seq, 'DOM') s_final, coordstrDIS = reportSlicesTXT(globdis, s_domMask, 'DIS') - sys.stdout.write('>'+cur_record.title+coordstrDOM+coordstrDIS+'\n') + sys.stdout.write('>'+cur_record.title+'\n') + sys.stdout.write('# '+coordstrDOM+'\n') + sys.stdout.write('# '+coordstrDIS+'\n') # UNCOMMENT THIS IF NEED TO PRODUCE PER RESEDUE VALUES + sys.stdout.write('# RESIDUE' + '\t' + 'DYDX' + '\t' + 'RAW' + '\t' +'SMOOTHED\n') for i in range(len(dydx_vector)): # dydx (positive values seems to indicate disorder in rows more than ~6 chars) raw smoothed sys.stdout.write(seq[i]+'\t'+fpformat.fix(dydx_vector[i],4)+ '\t'+fpformat.fix(smooth[i],4)+'\t'+fpformat.fix(sum_vector[i],4)+ '\n') diff --git a/datamodel/compbio/data/sequence/DisemblResultAnnot.java b/datamodel/compbio/data/sequence/DisemblResultAnnot.java deleted file mode 100644 index c5f026c..0000000 --- a/datamodel/compbio/data/sequence/DisemblResultAnnot.java +++ /dev/null @@ -1,5 +0,0 @@ -package compbio.data.sequence; - -public enum DisemblResultAnnot { - COILS, REM465, HOTLOOPS -} diff --git a/datamodel/compbio/data/sequence/Range.java b/datamodel/compbio/data/sequence/Range.java new file mode 100644 index 0000000..839ae28 --- /dev/null +++ b/datamodel/compbio/data/sequence/Range.java @@ -0,0 +1,57 @@ +package compbio.data.sequence; + +public class Range implements Comparable { + + public final int from; + public final int to; + + public Range(int from, int to) { + this.from = from; + this.to = to; + } + + public Range(String[] twoElementAr) { + if (twoElementAr == null || twoElementAr.length != 2) { + throw new IllegalArgumentException(); + } + this.from = Integer.parseInt(twoElementAr[0].trim()); + this.to = Integer.parseInt(twoElementAr[1].trim()); + } + + @Override + public String toString() { + return "[" + from + ", " + to + "]"; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + from; + result = prime * result + to; + return result; + } + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + Range other = (Range) obj; + if (from != other.from) + return false; + if (to != other.to) + return false; + return true; + } + + @Override + public int compareTo(Range o) { + if (o == null) + return 1; + return new Integer(this.from).compareTo(new Integer(o.from)); + } + +} diff --git a/datamodel/compbio/data/sequence/Score.java b/datamodel/compbio/data/sequence/Score.java index 8a110ee..39bb398 100644 --- a/datamodel/compbio/data/sequence/Score.java +++ b/datamodel/compbio/data/sequence/Score.java @@ -6,10 +6,12 @@ import java.io.OutputStream; import java.io.OutputStreamWriter; import java.text.NumberFormat; import java.util.ArrayList; -import java.util.Arrays; +import java.util.Collections; import java.util.List; import java.util.Locale; import java.util.Set; +import java.util.SortedSet; +import java.util.TreeSet; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; @@ -36,7 +38,9 @@ public class Score { private Enum method; - private List scores; + private SortedSet ranges = new TreeSet(); + + private List scores = Collections.emptyList(); private Score() { // JaXB default constructor @@ -57,6 +61,28 @@ public class Score { this.scores = new ArrayList(scores); } + /** + * @param method + * the ConservationMethod with which {@code scores} were + * calculated + * @param scores + * the actual conservation values for each column of the + * alignment + * @param ranges + * The set of ranges i.e. parts of the sequence with specific + * function, usually can be calculated based on scores + */ + public Score(Enum method, List scores, SortedSet ranges) { + this.method = method; + this.ranges = ranges; + this.scores = scores; + } + + public Score(Enum method, SortedSet ranges) { + this.method = method; + this.ranges = ranges; + } + public Score(Enum method, float[] scores) { this.method = method; this.scores = toList(scores); @@ -87,25 +113,35 @@ public class Score { return scores; } + /** + * Return Ranges if any Collections.EMPTY_SET otherwise + * + * @return + */ + public SortedSet getRanges() { + return ranges; + } + + public void setRanges(SortedSet ranges) { + this.ranges = ranges; + } + @Override public String toString() { - return "Score [method=" + method + ", scores=" + scores + "]"; + return "Score [method=" + method + ", ranges=" + ranges + ", scores=" + + scores + "]"; } @Override public int hashCode() { - final int prime = 31; + final int prime = 7; int result = 1; result = prime * result + ((method == null) ? 0 : method.hashCode()); + result = prime * result + ((ranges == null) ? 0 : ranges.hashCode()); result = prime * result + ((scores == null) ? 0 : scores.hashCode()); return result; } - /* - * TODO test ! (non-Javadoc) - * - * @see java.lang.Object#equals(java.lang.Object) - */ @Override public boolean equals(Object obj) { if (this == obj) @@ -115,15 +151,20 @@ public class Score { if (getClass() != obj.getClass()) return false; Score other = (Score) obj; - if (method != other.method) + if (method == null) { + if (other.method != null) + return false; + } else if (!method.equals(other.method)) return false; - if (scores == other.scores) { - return true; - } - if (scores == null) { + if (ranges == null) { + if (other.ranges != null) + return false; + } else if (!ranges.equals(other.ranges)) return false; - } - if (!Arrays.deepEquals(scores.toArray(), other.scores.toArray())) + if (scores == null) { + if (other.scores != null) + return false; + } else if (!scores.equals(other.scores)) return false; return true; } diff --git a/datamodel/compbio/data/sequence/SequenceUtil.java b/datamodel/compbio/data/sequence/SequenceUtil.java index a636c3a..7e6c672 100644 --- a/datamodel/compbio/data/sequence/SequenceUtil.java +++ b/datamodel/compbio/data/sequence/SequenceUtil.java @@ -31,10 +31,14 @@ import java.util.List; import java.util.Map; import java.util.Scanner; import java.util.Set; +import java.util.SortedSet; +import java.util.TreeSet; import java.util.logging.Level; import java.util.regex.Matcher; import java.util.regex.Pattern; +import compbio.util.Util; + /** * Utility class for operations on sequences * @@ -404,35 +408,37 @@ public final class SequenceUtil { /** * - * TODO complete! + > Foobar_dundeefriends * - * >Sequence name + * # COILS 34-41, 50-58, 83-91, 118-127, 160-169, 191-220, 243-252, 287-343 * - * RESIDUE COILS REM465 HOTLOOPS + * # REM465 355-368 * - * M 0.86010 0.88512 0.37094 + * # HOTLOOPS 190-204 * - * T 0.79983 0.85864 0.44331 .... - - * >Next Sequence name - * RESIDUE COILS REM465 HOTLOOPS + * # RESIDUE COILS REM465 HOTLOOPS * * M 0.86010 0.88512 0.37094 * + * T 0.79983 0.85864 0.44331 + * + * >Next Sequence name + * * * @param input * @return * @throws IOException * @throws UnknownFileFormatException */ - public static Map> readDisembl(final InputStream input) - throws IOException, UnknownFileFormatException { + public static Map> readDisembl( + final InputStream input) throws IOException, + UnknownFileFormatException { Scanner scan = new Scanner(input); scan.useDelimiter(">"); if (!scan.hasNext()) { throw new UnknownFileFormatException( - "In Disembl score format each sequence score is expected " + - "to start from the line: >Sequence name " + "In Disembl score format each sequence score is expected " + + "to start from the line: >Sequence name " + " No such line was found!"); } @@ -441,31 +447,40 @@ public final class SequenceUtil { while (scan.hasNext()) { seqCounter++; String singleSeq = scan.next(); - Scanner scansingle = new Scanner(singleSeq); - if(!scansingle.hasNextLine()) { - throw new RuntimeException("The input looks like an incomplete disembl file - cannot parse!"); - } - + Scanner scansingle = new Scanner(singleSeq); + if (!scansingle.hasNextLine()) { + throw new RuntimeException( + "The input looks like an incomplete disembl file - cannot parse!"); + } + StringBuffer seqbuffer = new StringBuffer(); ArrayList coils = new ArrayList(); ArrayList rem = new ArrayList(); ArrayList hotloops = new ArrayList(); String sequenceName = scansingle.nextLine().trim(); - String title = scansingle.nextLine(); + SortedSet coilsR = parseRanges(DisemblResult.COILS, + scansingle.nextLine()); + SortedSet rem465R = parseRanges(DisemblResult.REM465, + scansingle.nextLine()); + SortedSet loopsR = parseRanges(DisemblResult.HOTLOOPS, + scansingle.nextLine()); + + String title = scansingle.nextLine(); assert title.startsWith("# RESIDUE COILS REM465 HOTLOOPS") : ">Sequence_name must follow column title: # RESIDUE COILS REM465 HOTLOOPS!"; - + while (scansingle.hasNext()) { seqbuffer.append(scansingle.next()); coils.add(scansingle.nextFloat()); rem.add(scansingle.nextFloat()); hotloops.add(scansingle.nextFloat()); } - FastaSequence fs = new FastaSequence(sequenceName,seqbuffer.toString()); + FastaSequence fs = new FastaSequence(sequenceName, + seqbuffer.toString()); Set scores = new HashSet(); - scores.add(new Score(DisemblResultAnnot.COILS, coils)); - scores.add(new Score(DisemblResultAnnot.HOTLOOPS, hotloops)); - scores.add(new Score(DisemblResultAnnot.REM465, rem)); + scores.add(new Score(DisemblResult.COILS, coils, coilsR)); + scores.add(new Score(DisemblResult.HOTLOOPS, hotloops, rem465R)); + scores.add(new Score(DisemblResult.REM465, rem, loopsR)); results.put(fs, scores); scansingle.close(); @@ -474,15 +489,134 @@ public final class SequenceUtil { input.close(); return results; } - - public static Map> removeSequences(Map> disemblResults) { + + /** + * Parsing: + * + * # COILS 34-41, 50-58, 83-91, 118-127, 160-169, 191-220, 243-252, 287-343, + * 350-391, 429-485, 497-506, 539-547 + * + * # REM465 355-368 + * + * # HOTLOOPS 190-204 + * + * @param lines + * @return + */ + private static SortedSet parseRanges(Enum resultType, String lines) { + SortedSet ranges = new TreeSet(); + Scanner scan = new Scanner(lines); + + assert scan.hasNext(); + assert "#".equals(scan.next()); // pass delimiter # + String type = scan.next(); // pass enum name e.g. COILS + assert resultType.toString().equalsIgnoreCase(type) : "Unknown result type: " + + resultType.toString(); + + // beginning of the ranges + scan.useDelimiter(","); + while (scan.hasNext()) { + String range = scan.next(); + if (!Util.isEmpty(range)) { + ranges.add(new Range(range.split("-"))); + } + } + return ranges; + } + + public static Map> removeSequences( + Map> disemblResults) { Map> seqNameScores = new HashMap>(); - for(Map.Entry> dres: disemblResults.entrySet()) { - seqNameScores.put(dres.getKey().getId(),dres.getValue()); + for (Map.Entry> dres : disemblResults + .entrySet()) { + seqNameScores.put(dres.getKey().getId(), dres.getValue()); } return seqNameScores; } - + + /** + * + > Foobar_dundeefriends + * + * # COILS 34-41, 50-58, 83-91, 118-127, 160-169, 191-220, 243-252, 287-343 + * + * # REM465 355-368 + * + * # HOTLOOPS 190-204 + * + * # RESIDUE COILS REM465 HOTLOOPS + * + * M 0.86010 0.88512 0.37094 + * + * T 0.79983 0.85864 0.44331 + * + * >Next Sequence name + * + * + * @param input + * @return + * @throws IOException + * @throws UnknownFileFormatException + */ + public static Map> readGlobPlot( + final InputStream input) throws IOException, + UnknownFileFormatException { + Scanner scan = new Scanner(input); + scan.useDelimiter(">"); + if (!scan.hasNext()) { + throw new UnknownFileFormatException( + "In GlobPlot score format each sequence score is expected " + + "to start from the line: >Sequence name " + + " No such line was found!"); + } + + Map> results = new HashMap>(); + int seqCounter = 0; + while (scan.hasNext()) { + seqCounter++; + String singleSeq = scan.next(); + Scanner scansingle = new Scanner(singleSeq); + if (!scansingle.hasNextLine()) { + throw new RuntimeException( + "The input looks like an incomplete GlobPlot file - cannot parse!"); + } + + StringBuffer seqbuffer = new StringBuffer(); + ArrayList dydxScore = new ArrayList(); + ArrayList rawScore = new ArrayList(); + ArrayList smoothedScore = new ArrayList(); + + String sequenceName = scansingle.nextLine().trim(); + SortedSet domsR = parseRanges(GlobProtResult.GlobDoms, + scansingle.nextLine()); + SortedSet disorderR = parseRanges(GlobProtResult.Disorder, + scansingle.nextLine()); + + String title = scansingle.nextLine(); + assert title.startsWith("# RESIDUE DYDX") : ">Sequence_name must follow column title: # RESIDUE DYDX RAW SMOOTHED!"; + + while (scansingle.hasNext()) { + seqbuffer.append(scansingle.next()); + dydxScore.add(scansingle.nextFloat()); + rawScore.add(scansingle.nextFloat()); + smoothedScore.add(scansingle.nextFloat()); + } + FastaSequence fs = new FastaSequence(sequenceName, + seqbuffer.toString()); + Set scores = new HashSet(); + scores.add(new Score(GlobProtResult.Disorder, disorderR)); + scores.add(new Score(GlobProtResult.GlobDoms, domsR)); + scores.add(new Score(GlobProtResult.Dydx, dydxScore)); + scores.add(new Score(GlobProtResult.RawScore, rawScore)); + scores.add(new Score(GlobProtResult.SmoothedScore, smoothedScore)); + results.put(fs, scores); + + scansingle.close(); + } + + input.close(); + return results; + } /** * Read AACon result with no alignment files. This method leaves incoming * the InputStream results open! @@ -554,3 +688,20 @@ public final class SequenceUtil { } } + +enum DisemblResult { + /** These contains ranges and scores */ + COILS, REM465, HOTLOOPS +} +enum GlobProtResult { + /** This a range with no scores */ + GlobDoms, + /** This a range with no scores */ + Disorder, + /** This a score with no range */ + Dydx, + /** This a score with no range */ + SmoothedScore, + /** This a score with no range */ + RawScore +} \ No newline at end of file diff --git a/runner/compbio/runner/disorder/GlobPlot.java b/runner/compbio/runner/disorder/GlobPlot.java new file mode 100644 index 0000000..6decede --- /dev/null +++ b/runner/compbio/runner/disorder/GlobPlot.java @@ -0,0 +1,145 @@ +/* + * Copyright (c) 2011 Peter Troshin JAva Bioinformatics Analysis Web Services + * (JABAWS) @version: 2.0 This library is free software; you can redistribute it + * and/or modify it under the terms of the Apache License version 2 as published + * by the Apache Software Foundation This library is distributed in the hope + * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * Apache License for more details. A copy of the license is in + * apache_license.txt. It is also available here: + * @see: http://www.apache.org/licenses/LICENSE-2.0.txt Any republication or + * derived work distributed in source code form must include this copyright and + * license notice. + */ + +package compbio.runner.disorder; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.util.Map; +import java.util.Set; + +import org.apache.log4j.Logger; + +import compbio.data.sequence.Score; +import compbio.data.sequence.SequenceUtil; +import compbio.data.sequence.UnknownFileFormatException; +import compbio.engine.client.Executable; +import compbio.engine.client.PipedExecutable; +import compbio.engine.client.SkeletalExecutable; +import compbio.metadata.Limit; +import compbio.metadata.LimitsManager; +import compbio.metadata.ResultNotAvailableException; +import compbio.runner.Util; + +/** + * ./GlobPipe.py SmoothFrame DOMjoinFrame DOMpeakFrame DISjoinFrame DISpeakFrame + * + * FASTAfile' Optimised for ELM: ./GlobPlot.py 10 8 75 8 8 sequence_file' + * Webserver settings: ./GlobPlot.py 10 15 74 4 5 sequence_file' + * + * Hard-coded values are 10 15 74 4 5. + * + * Changing these values are not recommended by developers, apart from smoothing + * window. However, the binary, GlobPlot depends on - Tisean which is not happy + * with arbitrary changes to these values, so changing them can lead to + * problems. May be we can offer preset? + * + * This is not a standard GlobPlot! The script has been modified! + * + */ +public class GlobPlot extends SkeletalExecutable + implements + PipedExecutable { + + private static Logger log = Logger.getLogger(GlobPlot.class); + + // Cache for Limits information + private static LimitsManager limits; + + public static final String KEY_VALUE_SEPARATOR = Util.SPACE; + + /* The parameter list there must not contain same values! */ + public GlobPlot() { + // remove default input to prevent it to appear in the parameters list + // that could happen if the parameters are set first + // super.setInput(""); + } + + @SuppressWarnings("unchecked") + public Map> getResults(String workDirectory) + throws ResultNotAvailableException { + + InputStream inStream = null; + Map> results = null; + // How about getting ranges? + try { + inStream = new FileInputStream(new File(workDirectory, getOutput())); + results = SequenceUtil.removeSequences(SequenceUtil + .readDisembl(inStream)); + inStream.close(); + } catch (FileNotFoundException e) { + log.error(e.getMessage(), e.getCause()); + throw new ResultNotAvailableException(e); + } catch (IOException e) { + log.error(e.getMessage(), e.getCause()); + throw new ResultNotAvailableException(e); + } catch (UnknownFileFormatException e) { + log.error(e.getMessage(), e.getCause()); + throw new ResultNotAvailableException(e); + } catch (NullPointerException e) { + log.error(e.getMessage(), e.getCause()); + throw new ResultNotAvailableException(e); + } + + return results; + } + + @Override + public GlobPlot setInput(String inFile) { + super.setInput(inFile); + cbuilder.setLast(inFile); + return this; + } + + @Override + public Limit getLimit(String presetName) { + if (limits == null) { + limits = getLimits(); + } + + Limit limit = null; + if (limits != null) { + // this returns default limit if preset is undefined! + limit = limits.getLimitByName(presetName); + } + // If limit is not defined for a particular preset, then return default + // limit + if (limit == null) { + log.debug("Limit for the preset " + presetName + + " is not found. Using default"); + limit = limits.getDefaultLimit(); + } + return limit; + } + + @Override + public LimitsManager getLimits() { + // synchronise on static field + synchronized (log) { + if (limits == null) { + limits = Util.getLimits(this.getClass()); + } + } + return limits; + } + + @Override + public Class> getType() { + return this.getClass(); + } + +} diff --git a/testsrc/compbio/data/sequence/SequenceUtilTester.java b/testsrc/compbio/data/sequence/SequenceUtilTester.java index edb57a4..9a8c5a0 100644 --- a/testsrc/compbio/data/sequence/SequenceUtilTester.java +++ b/testsrc/compbio/data/sequence/SequenceUtilTester.java @@ -149,11 +149,11 @@ public class SequenceUtilTester { /** * This test tests the loading of horizontally formatted Jronn output file * - * First seq + * First seq * - * M 0.86010 0.88512 0.37094 + * M 0.86010 0.88512 0.37094 * - * T 0.79983 0.85864 0.44331 + * T 0.79983 0.85864 0.44331 * */ @SuppressWarnings("unchecked") @@ -163,18 +163,85 @@ public class SequenceUtilTester { FileInputStream fio; try { fio = new FileInputStream(AllTestSuit.TEST_DATA_PATH - + "scores.out"); + + "disembl.out"); Map> aseqs = SequenceUtil .readDisembl(fio); assertNotNull(aseqs); - assertEquals(aseqs.size(), 3); + assertEquals(aseqs.size(), 3); System.out.println(aseqs); - for(FastaSequence fs: aseqs.keySet()) { - assertTrue(" Foobar_dundeefriends Foobar dundeefriends ".contains(fs.getId())); - Set scores = aseqs.get(fs); - assertEquals(scores.size(),3); + for (FastaSequence fs : aseqs.keySet()) { + assertTrue(" Foobar_dundeefriends Foobar dundeefriends " + .contains(fs.getId())); + Set scores = aseqs.get(fs); + assertEquals(scores.size(), 3); } - fio.close(); + fio.close(); + } catch (FileNotFoundException e) { + e.printStackTrace(); + fail(e.getLocalizedMessage()); + } catch (IOException e) { + e.printStackTrace(); + fail(e.getLocalizedMessage()); + } catch (UnknownFileFormatException e) { + e.printStackTrace(); + fail(e.getLocalizedMessage()); + } + } + + /** + * This test tests the loading of horizontally formatted Jronn output file + * + * First sequence: + * + * >Foobar_dundeefriends + * + * # GlobDoms 2-358, 373-568 + * + * # Disorder 1-5, 206-218, 243-250, 288-300, 313-324, 359-372, 475-481 + * + * # RESIDUE DYDX RAW SMOOTHED + * + * M 0.0044 -0.2259 -0.2259 + * + * T -0.1308 -0.2170 -0.2170 + * + * ............ + * + * > Second sequence + */ + @SuppressWarnings("unchecked") + @Test + public void testReadGlobPlotResults() { + + FileInputStream fio; + try { + fio = new FileInputStream(AllTestSuit.TEST_DATA_PATH + + "globplot.out"); + Map> aseqs = SequenceUtil + .readGlobPlot(fio); + assertNotNull(aseqs); + assertEquals(aseqs.size(), 3); + + FastaSequence fsdf = null; + Set scores = null; + for (FastaSequence fs : aseqs.keySet()) { + if ("Foobar_dundeefriends".contains(fs.getId())) { + fsdf = fs; + scores = aseqs.get(fs); + } + assertEquals(scores.size(), 5); + } + for (Score score : scores) { + if (score.getMethod() == GlobProtResult.Disorder) { + assertEquals(score.getRanges().size(), 7); + assertTrue(score.getScores().isEmpty()); + } + if (score.getMethod() == GlobProtResult.Dydx) { + assertFalse(score.getScores().isEmpty()); + assertTrue(score.getRanges().isEmpty()); + } + } + fio.close(); } catch (FileNotFoundException e) { e.printStackTrace(); fail(e.getLocalizedMessage()); diff --git a/testsrc/compbio/runner/disorder/GlobPlotTester.java b/testsrc/compbio/runner/disorder/GlobPlotTester.java new file mode 100644 index 0000000..ffafe26 --- /dev/null +++ b/testsrc/compbio/runner/disorder/GlobPlotTester.java @@ -0,0 +1,312 @@ +/* Copyright (c) 2009 Peter Troshin + * + * JAva Bioinformatics Analysis Web Services (JABAWS) @version: 1.0 + * + * This library is free software; you can redistribute it and/or modify it under the terms of the + * Apache License version 2 as published by the Apache Software Foundation + * + * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without + * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Apache + * License for more details. + * + * A copy of the license is in apache_license.txt. It is also available here: + * @see: http://www.apache.org/licenses/LICENSE-2.0.txt + * + * Any republication or derived work distributed in source code form + * must include this copyright and license notice. + */ + +package compbio.runner.disorder; + +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertFalse; +import static org.testng.Assert.assertNotNull; +import static org.testng.Assert.assertNull; +import static org.testng.Assert.assertTrue; +import static org.testng.Assert.fail; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.text.ParseException; +import java.util.Map; +import java.util.Set; + +import javax.xml.bind.ValidationException; + +import org.ggf.drmaa.DrmaaException; +import org.ggf.drmaa.JobInfo; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; + +import compbio.data.sequence.Score; +import compbio.engine.AsyncExecutor; +import compbio.engine.Configurator; +import compbio.engine.SyncExecutor; +import compbio.engine.client.ConfExecutable; +import compbio.engine.client.ConfiguredExecutable; +import compbio.engine.client.Executable; +import compbio.engine.client.RunConfiguration; +import compbio.engine.cluster.drmaa.ClusterUtil; +import compbio.engine.cluster.drmaa.JobRunner; +import compbio.engine.cluster.drmaa.StatisticManager; +import compbio.engine.local.LocalRunner; +import compbio.metadata.AllTestSuit; +import compbio.metadata.JobExecutionException; +import compbio.metadata.JobStatus; +import compbio.metadata.JobSubmissionException; +import compbio.metadata.LimitsManager; +import compbio.metadata.PresetManager; +import compbio.metadata.ResultNotAvailableException; +import compbio.metadata.RunnerConfig; +import compbio.util.SysPrefs; + +public class GlobPlotTester { + + public static String test_outfile = "TO1381.globprot.out"; + + private GlobPlot globprot; + + @BeforeMethod(alwaysRun = true) + void init() { + globprot = new GlobPlot(); + globprot.setInput(AllTestSuit.test_input).setOutput(test_outfile); + } + + @Test(groups = {AllTestSuit.test_group_cluster, + AllTestSuit.test_group_runner}) + public void testRunOnCluster() { + assertFalse(SysPrefs.isWindows, + "Cluster execution can only be in unix environment"); + try { + ConfiguredExecutable confGlobPlot = Configurator + .configureExecutable(globprot, + Executable.ExecProvider.Cluster); + JobRunner runner = JobRunner.getInstance(confGlobPlot); + + assertNotNull(runner, "Runner is NULL"); + runner.executeJob(); + // assertNotNull("JobId is null", jobId1); + JobStatus status = runner.getJobStatus(); + assertTrue(status == JobStatus.PENDING + || status == JobStatus.RUNNING, + "Status of the process is wrong!"); + JobInfo info = runner.getJobInfo(); + assertNotNull(info, "JobInfo is null"); + StatisticManager sm = new StatisticManager(info); + assertNotNull(sm, "Statictic manager is null"); + try { + + String exits = sm.getExitStatus(); + assertNotNull("Exit status is null", exits); + // cut 4 trailing zeros from the number + int exitsInt = ClusterUtil.CLUSTER_STAT_IN_SEC.parse(exits) + .intValue(); + assertEquals(0, exitsInt); + System.out.println(sm.getAllStats()); + + } catch (ParseException e) { + e.printStackTrace(); + fail("Parse Exception: " + e.getMessage()); + } + // assertFalse(runner.cleanup()); + assertTrue(sm.hasExited()); + assertFalse(sm.wasAborted()); + assertFalse(sm.hasDump()); + assertFalse(sm.hasSignaled()); + + } catch (JobSubmissionException e) { + e.printStackTrace(); + fail("DrmaaException caught:" + e.getMessage()); + } catch (JobExecutionException e) { + e.printStackTrace(); + fail("DrmaaException caught:" + e.getMessage()); + } catch (DrmaaException e) { + e.printStackTrace(); + fail("DrmaaException caught:" + e.getMessage()); + } + } + + /** + * This tests fails from time to time depending on the cluster load or some + * other factors. Any client code has to adjust for this issue + */ + @Test(groups = {AllTestSuit.test_group_cluster, + AllTestSuit.test_group_runner}) + public void testRunOnClusterAsync() { + assertFalse(SysPrefs.isWindows, + "Cluster execution can only be in unix environment"); + try { + ConfiguredExecutable confGlobPlot = Configurator + .configureExecutable(globprot, + Executable.ExecProvider.Cluster); + AsyncExecutor aengine = Configurator.getAsyncEngine(confGlobPlot); + String jobId = aengine.submitJob(confGlobPlot); + assertNotNull(jobId, "Runner is NULL"); + // let drmaa to start + Thread.sleep(500); + JobStatus status = aengine.getJobStatus(jobId); + while (status != JobStatus.FINISHED) { + System.out.println("Job Status: " + status); + Thread.sleep(1000); + status = aengine.getJobStatus(jobId); + ConfiguredExecutable result = (ConfiguredExecutable) aengine + .getResults(jobId); + assertNotNull(result); + System.out.println("RES:" + result); + // Some times the job could be removed from the cluster + // accounting + // before it has been reported to finish. Make sure + // to stop waiting in such case + if (status == JobStatus.UNDEFINED) { + break; + } + } + } catch (JobSubmissionException e) { + e.printStackTrace(); + fail("DrmaaException caught:" + e.getMessage()); + } catch (InterruptedException e) { + e.printStackTrace(); + fail(e.getMessage()); + } catch (ResultNotAvailableException e) { + e.printStackTrace(); + fail(e.getMessage()); + } + } + + @Test(groups = {AllTestSuit.test_group_runner}) + public void testRunLocally() { + try { + ConfiguredExecutable confGlobPlot = Configurator + .configureExecutable(globprot, + Executable.ExecProvider.Local); + + // For local execution use relative + LocalRunner lr = new LocalRunner(confGlobPlot); + lr.executeJob(); + ConfiguredExecutable al1 = lr.waitForResult(); + assertNotNull(al1.getResults()); + Map> al2 = confGlobPlot.getResults(); + assertNotNull(al2); + assertEquals(al2.size(), 3); + assertEquals(al1.getResults(), al2); + } catch (JobSubmissionException e) { + e.printStackTrace(); + fail(e.getLocalizedMessage()); + } catch (ResultNotAvailableException e) { + e.printStackTrace(); + fail(e.getLocalizedMessage()); + } catch (JobExecutionException e) { + e.printStackTrace(); + fail(e.getLocalizedMessage()); + } + } + + @Test(groups = {AllTestSuit.test_group_runner}) + public void readStatistics() { + // No execution statistics is available! + } + + @Test(groups = {AllTestSuit.test_group_runner}) + public void testPersistance() { + try { + GlobPlot disembl = new GlobPlot(); + disembl.setError("errrr.txt").setInput(AllTestSuit.test_input) + .setOutput("outtt.txt"); + assertEquals(disembl.getInput(), AllTestSuit.test_input); + assertEquals(disembl.getError(), "errrr.txt"); + assertEquals(disembl.getOutput(), "outtt.txt"); + ConfiguredExecutable cGlobPlot = Configurator + .configureExecutable(disembl, Executable.ExecProvider.Local); + + SyncExecutor sexec = Configurator.getSyncEngine(cGlobPlot); + sexec.executeJob(); + ConfiguredExecutable al = sexec.waitForResult(); + assertNotNull(al.getResults()); + // Save run configuration + assertTrue(cGlobPlot.saveRunConfiguration()); + + // See if loaded configuration is the same as saved + RunConfiguration loadedRun = RunConfiguration + .load(new FileInputStream(new File(cGlobPlot + .getWorkDirectory(), RunConfiguration.rconfigFile))); + assertEquals( + ((ConfExecutable) cGlobPlot) + .getRunConfiguration(), + loadedRun); + // Load run configuration as ConfExecutable + ConfiguredExecutable resurrectedCGlobPlot = (ConfiguredExecutable) cGlobPlot + .loadRunConfiguration(new FileInputStream(new File( + cGlobPlot.getWorkDirectory(), + RunConfiguration.rconfigFile))); + assertNotNull(resurrectedCGlobPlot); + assertEquals(resurrectedCGlobPlot.getExecutable().getInput(), + AllTestSuit.test_input); + assertEquals(resurrectedCGlobPlot.getExecutable().getError(), + "errrr.txt"); + assertEquals(resurrectedCGlobPlot.getExecutable().getOutput(), + "outtt.txt"); + // See in details whether executables are the same + assertEquals(resurrectedCGlobPlot.getExecutable(), disembl); + + ConfiguredExecutable resGlobPlot = Configurator + .configureExecutable(resurrectedCGlobPlot.getExecutable(), + Executable.ExecProvider.Local); + + sexec = Configurator.getSyncEngine(resGlobPlot, + Executable.ExecProvider.Local); + sexec.executeJob(); + al = sexec.waitForResult(); + assertNotNull(al); + + } catch (JobSubmissionException e) { + e.printStackTrace(); + fail(e.getMessage()); + } catch (JobExecutionException e) { + e.printStackTrace(); + fail(e.getMessage()); + } catch (FileNotFoundException e) { + e.printStackTrace(); + fail(e.getMessage()); + } catch (IOException e) { + e.printStackTrace(); + fail(e.getMessage()); + } catch (ResultNotAvailableException e) { + e.printStackTrace(); + fail(e.getMessage()); + } + } + + @Test(groups = {AllTestSuit.test_group_runner}) + public void testConfigurationLoading() { + try { + RunnerConfig disemblConfig = ConfExecutable + .getRunnerOptions(GlobPlot.class); + assertNotNull(disemblConfig); + // There is no disembl parameters + assertTrue(disemblConfig.getArguments().size() == 0); + + PresetManager disemblPresets = ConfExecutable + .getRunnerPresets(GlobPlot.class); + assertNull(disemblPresets); // there is no presets + + LimitsManager disemblLimits = ConfExecutable + .getRunnerLimits(GlobPlot.class); + assertNotNull(disemblLimits); + assertTrue(disemblLimits.getLimits().size() > 0); + disemblLimits.validate(disemblPresets); + + } catch (FileNotFoundException e) { + e.printStackTrace(); + fail(e.getLocalizedMessage()); + } catch (IOException e) { + e.printStackTrace(); + fail(e.getLocalizedMessage()); + } catch (ValidationException e) { + e.printStackTrace(); + fail(e.getLocalizedMessage()); + } + } + +} diff --git a/testsrc/testdata/disembl.out b/testsrc/testdata/disembl.out index 06011cc..cb9301d 100644 --- a/testsrc/testdata/disembl.out +++ b/testsrc/testdata/disembl.out @@ -1,3 +1,7 @@ +> Foobar_dundeefriends +# COILS 34-41, 50-58, 83-91, 118-127, 160-169, 191-220, 243-252, 287-343, 350-391, 429-485, 497-506, 539-547 +# REM465 355-368 +# HOTLOOPS # RESIDUE COILS REM465 HOTLOOPS M 0.86010 0.88512 0.37094 T 0.79983 0.85864 0.44331 @@ -567,6 +571,10 @@ W 0.36015 0.55044 0.05833 L 0.47985 0.62475 0.12977 G 0.69681 0.58187 0.22957 I 0.79530 0.62112 0.21132 +> Foobar +# COILS 32-40, 65-73, 85-133, 156-165, 200-256, 263-304, 342-398, 410-419, 452-460 +# REM465 1-11, 268-281 +# HOTLOOPS 100-118 # RESIDUE COILS REM465 HOTLOOPS M 0.79892 0.92921 0.40349 G 0.74423 0.81900 0.43658 @@ -1049,6 +1057,10 @@ W 0.36015 0.55044 0.05833 L 0.47985 0.62475 0.12977 G 0.69681 0.58187 0.22957 I 0.79530 0.62112 0.21132 +> dundeefriends +# COILS 33-40, 49-57, 82-90, 99-112, 132-141, 163-192, 215-224, 259-315, 322-363, 401-457, 469-478 +# REM465 327-340 +# HOTLOOPS 162-176 # RESIDUE COILS REM465 HOTLOOPS M 0.86010 0.88512 0.37094 T 0.79983 0.85864 0.44331 diff --git a/testsrc/testdata/globplot.out b/testsrc/testdata/globplot.out new file mode 100644 index 0000000..b64de45 --- /dev/null +++ b/testsrc/testdata/globplot.out @@ -0,0 +1,1580 @@ +>Foobar_dundeefriends +# GlobDoms 2-358, 373-568 +# Disorder 1-5, 206-218, 243-250, 288-300, 313-324, 359-372, 475-481 +# RESIDUE DYDX RAW SMOOTHED +M 0.0044 -0.2259 -0.2259 +T -0.1308 -0.2170 -0.2170 +A 0.1138 -0.4786 -0.4786 +D 0.2166 -0.2509 -0.2509 +G 0.2762 0.1823 0.1823 +P -0.0883 0.7346 0.7346 +R -0.1023 0.5580 0.5580 +E -0.1690 0.3533 0.3533 +L -0.1690 0.0154 0.0154 +L -0.1690 -0.3225 -0.3225 +Q -0.1314 -0.5263 -0.5102 +L -0.1346 -0.7549 -0.8481 +R -0.1387 -0.9758 -1.0247 +A -0.1494 -1.2063 -1.2863 +A -0.1578 -1.4255 -1.5478 +V -0.1602 -1.6093 -1.9340 +R -0.1552 -1.7255 -2.1106 +H -0.1505 -1.8260 -2.1118 +R -0.1481 -1.9080 -2.2884 +P -0.1487 -1.9932 -1.7361 +Q -0.1459 -2.1165 -1.9238 +D -0.1448 -2.2294 -1.6961 +F -0.1465 -2.3529 -1.9217 +V -0.1509 -2.4723 -2.3079 +A -0.1487 -2.6447 -2.5694 +W -0.1496 -2.8181 -2.8128 +L -0.1467 -3.0481 -3.1507 +M -0.1408 -3.2963 -3.3766 +L -0.1328 -3.5276 -3.7146 +A -0.1251 -3.7526 -3.9761 +D -0.1112 -3.8916 -3.7485 +A -0.0914 -4.0331 -4.0100 +E -0.0691 -4.0904 -4.2147 +L -0.0503 -4.0958 -4.5526 +G -0.0377 -4.0708 -4.1194 +M -0.0316 -4.0132 -4.3453 +G -0.0287 -3.9483 -3.9121 +D -0.0304 -3.8935 -3.6844 +T -0.0274 -3.8847 -3.6756 +T -0.0321 -3.8781 -3.6667 +A -0.0425 -3.8906 -3.9282 +G -0.0526 -3.8880 -3.4950 +E -0.0642 -3.9316 -3.6997 +M -0.0698 -4.0514 -3.9256 +A -0.0736 -4.2387 -4.1871 +V -0.0714 -4.3968 -4.5733 +Q -0.0648 -4.6000 -4.7610 +R -0.0553 -4.7368 -4.9376 +G -0.0456 -4.8141 -4.5043 +L -0.0400 -4.8435 -4.8423 +A -0.0362 -4.8415 -5.1038 +L -0.0366 -4.8415 -5.4418 +H -0.0336 -4.7825 -5.4430 +P -0.0253 -4.7554 -4.8907 +G -0.0207 -4.7156 -4.4574 +H -0.0230 -4.6639 -4.4586 +P -0.0313 -4.6408 -3.9063 +E -0.0438 -4.6396 -4.1110 +A -0.0569 -4.6841 -4.3726 +V -0.0648 -4.7102 -4.7587 +A -0.0777 -4.7733 -5.0203 +R -0.0945 -4.8800 -5.1969 +L -0.1142 -5.0570 -5.5348 +G -0.1358 -5.2672 -5.1016 +R -0.1503 -5.4680 -5.2782 +V -0.1591 -5.6478 -5.6643 +R -0.1675 -5.8306 -5.8409 +W -0.1690 -5.9581 -6.0843 +T -0.1725 -6.0822 -6.0754 +Q -0.1786 -6.2127 -6.2631 +Q -0.1870 -6.3760 -6.4508 +R -0.1963 -6.5669 -6.6274 +H -0.2063 -6.7759 -6.6286 +A -0.2139 -7.0418 -6.8901 +E -0.2076 -7.2945 -7.0948 +A -0.2022 -7.5264 -7.3563 +A -0.2007 -7.7587 -7.6179 +V -0.1896 -8.0276 -8.0041 +L -0.1806 -8.2740 -8.3420 +L -0.1675 -8.4920 -8.6799 +Q -0.1460 -8.7199 -8.8676 +Q -0.1186 -8.9311 -9.0553 +A -0.0970 -9.0628 -9.3168 +S -0.0763 -9.1225 -9.1739 +D -0.0608 -9.1310 -8.9463 +A -0.0485 -9.1019 -9.2078 +A -0.0413 -9.0427 -9.4694 +P -0.0292 -9.0094 -8.9171 +E -0.0203 -8.9775 -9.1218 +H -0.0180 -8.9371 -9.1230 +P -0.0234 -8.9005 -8.5707 +G -0.0325 -8.8808 -8.1374 +I -0.0396 -8.9116 -8.5597 +A -0.0529 -8.9681 -8.8212 +L -0.0574 -9.0678 -9.1591 +W -0.0603 -9.1470 -9.4025 +L -0.0692 -9.2411 -9.7404 +G -0.0832 -9.3680 -9.3072 +H -0.0916 -9.4644 -9.3084 +A -0.1041 -9.5829 -9.5700 +L -0.1176 -9.7153 -9.9079 +E -0.1241 -9.8142 -10.1126 +D -0.1241 -9.8709 -9.8850 +A -0.1282 -9.9483 -10.1465 +G -0.1316 -10.0546 -9.7133 +Q -0.1381 -10.1852 -9.9010 +A -0.1478 -10.3348 -10.1625 +E -0.1585 -10.5346 -10.3672 +A -0.1622 -10.7075 -10.6287 +A -0.1661 -10.8657 -10.8903 +A -0.1736 -11.0327 -11.1518 +A -0.1740 -11.2739 -11.4133 +A -0.1765 -11.5188 -11.6749 +Y -0.1748 -11.7334 -11.8824 +T -0.1657 -11.9933 -11.8735 +R -0.1500 -12.1756 -12.0501 +A -0.1386 -12.3069 -12.3116 +H -0.1266 -12.4283 -12.3128 +Q -0.1172 -12.5187 -12.5005 +L -0.1100 -12.5936 -12.8385 +L -0.1072 -12.6504 -13.1764 +P -0.1086 -12.6999 -12.6241 +E -0.1068 -12.7843 -12.8288 +E -0.1085 -12.8699 -13.0334 +P -0.1121 -12.9644 -12.4811 +Y -0.1146 -13.0533 -12.6886 +I -0.1184 -13.1500 -13.1109 +T -0.1268 -13.2566 -13.1020 +A -0.1318 -13.3789 -13.3635 +Q -0.1328 -13.5388 -13.5512 +L -0.1387 -13.7143 -13.8891 +L -0.1487 -13.9215 -14.2271 +N -0.1515 -14.0861 -13.9972 +W -0.1578 -14.2523 -14.2406 +R -0.1600 -14.4605 -14.4172 +R -0.1559 -14.5985 -14.5937 +R -0.1545 -14.7201 -14.7703 +L -0.1524 -14.8781 -15.1083 +C -0.1495 -15.0103 -15.1234 +D -0.1483 -15.1427 -14.8958 +W -0.1504 -15.2619 -15.1392 +R -0.1551 -15.4013 -15.3158 +A -0.1635 -15.5628 -15.5773 +L -0.1678 -15.7048 -15.9152 +D -0.1757 -15.8518 -15.6876 +V -0.1843 -16.0133 -16.0738 +L -0.1926 -16.1954 -16.4117 +S -0.1926 -16.4320 -16.2688 +A -0.1980 -16.6718 -16.5304 +Q -0.1934 -16.9450 -16.7180 +V -0.1850 -17.1666 -17.1042 +R -0.1806 -17.3618 -17.2808 +A -0.1765 -17.5442 -17.5423 +A -0.1643 -17.7649 -17.8039 +V -0.1560 -17.9679 -18.1901 +A -0.1443 -18.1104 -18.4516 +Q -0.1368 -18.2403 -18.6393 +G -0.1345 -18.3579 -18.2061 +V -0.1243 -18.4598 -18.5922 +G -0.1164 -18.5430 -18.1590 +A -0.1043 -18.6311 -18.4205 +V -0.0978 -18.7048 -18.8067 +E -0.0886 -18.7817 -19.0114 +P -0.0838 -18.8410 -18.4591 +F -0.0832 -18.8935 -18.6847 +A -0.0880 -18.9645 -18.9462 +F -0.0963 -19.0573 -19.1718 +L -0.1093 -19.1660 -19.5097 +S -0.1167 -19.2503 -19.3668 +E -0.1263 -19.3827 -19.5715 +D -0.1299 -19.4815 -19.3439 +A -0.1356 -19.5982 -19.6054 +S -0.1427 -19.7595 -19.4625 +A -0.1517 -19.9432 -19.7241 +A -0.1528 -20.0807 -19.9856 +E -0.1552 -20.2254 -20.1903 +Q -0.1603 -20.3794 -20.3780 +L -0.1698 -20.5376 -20.7159 +A -0.1828 -20.7297 -20.9774 +C -0.1927 -20.9215 -20.9926 +A -0.1986 -21.1583 -21.2541 +R -0.2017 -21.3621 -21.4307 +T -0.2054 -21.5805 -21.4218 +R -0.1946 -21.8196 -21.5984 +A -0.1872 -22.0304 -21.8600 +Q -0.1821 -22.2253 -22.0476 +A -0.1679 -22.4506 -22.3092 +I -0.1523 -22.6526 -22.7314 +A -0.1403 -22.8316 -22.9930 +A -0.1336 -22.9780 -23.2545 +S -0.1259 -23.0946 -23.1116 +V -0.1163 -23.2186 -23.4978 +R -0.1072 -23.3246 -23.6744 +P -0.0893 -23.4273 -23.1221 +L -0.0641 -23.5283 -23.4600 +A -0.0453 -23.5684 -23.7215 +P -0.0298 -23.5663 -23.1692 +T -0.0213 -23.5249 -23.1603 +R -0.0113 -23.5220 -23.3369 +V -0.0072 -23.5040 -23.7231 +R -0.0111 -23.4767 -23.8997 +S -0.0102 -23.4531 -23.7568 +K -0.0109 -23.4738 -23.8569 +G -0.0084 -23.5363 -23.4237 +P -0.0016 -23.5309 -22.8714 +L 0.0063 -23.5629 -23.2093 +R 0.0063 -23.5848 -23.3859 +V 0.0136 -23.5575 -23.7721 +G 0.0282 -23.5419 -23.3388 +F 0.0398 -23.5068 -23.5644 +V 0.0505 -23.5029 -23.9506 +S 0.0523 -23.4715 -23.8077 +N 0.0501 -23.4058 -23.5778 +G 0.0454 -23.3568 -23.1446 +F 0.0406 -23.2606 -23.3702 +G 0.0400 -23.1123 -22.9369 +A 0.0311 -22.9758 -23.1985 +H 0.0176 -22.8641 -23.1997 +P -0.0032 -22.8087 -22.6474 +T -0.0205 -22.7510 -22.6385 +G -0.0439 -22.7364 -22.2053 +L -0.0735 -22.8028 -22.5432 +L -0.1019 -22.9191 -22.8812 +T -0.1274 -23.0739 -22.8723 +V -0.1467 -23.2403 -23.2584 +A -0.1590 -23.5027 -23.5200 +L -0.1598 -23.7667 -23.8579 +F -0.1663 -24.0344 -24.0835 +E -0.1727 -24.3050 -24.2882 +A -0.1714 -24.5257 -24.5497 +L -0.1661 -24.7373 -24.8876 +Q -0.1552 -24.8728 -25.0753 +R -0.1472 -24.9927 -25.2519 +R -0.1427 -25.1024 -25.4285 +Q -0.1335 -25.1947 -25.6162 +P -0.1233 -25.3008 -25.0639 +D -0.1072 -25.4241 -24.8362 +L -0.0901 -25.5466 -25.1742 +Q -0.0710 -25.6561 -25.3619 +M -0.0475 -25.7581 -25.5878 +H -0.0250 -25.8314 -25.5890 +L -0.0069 -25.8787 -25.9269 +F 0.0040 -25.8787 -26.1525 +A 0.0101 -25.8574 -26.4140 +T 0.0139 -25.8368 -26.4051 +S 0.0125 -25.8141 -26.2623 +G 0.0145 -25.7262 -25.8290 +D 0.0173 -25.5971 -25.6014 +D 0.0144 -25.4789 -25.3738 +G 0.0068 -25.3685 -24.9405 +S -0.0006 -25.3037 -24.7977 +T -0.0069 -25.2567 -24.7888 +L -0.0214 -25.2360 -25.1267 +R -0.0381 -25.2708 -25.3033 +T -0.0549 -25.3831 -25.2944 +R -0.0765 -25.5151 -25.4710 +L -0.0953 -25.6884 -25.8090 +A -0.1106 -25.8544 -26.0705 +Q -0.1253 -26.0173 -26.2582 +A -0.1288 -26.2179 -26.5197 +S -0.1239 -26.3853 -26.3768 +T -0.1187 -26.5054 -26.3679 +L -0.1134 -26.5926 -26.7059 +H -0.1091 -26.6929 -26.7071 +D -0.1076 -26.7797 -26.4795 +V -0.1038 -26.8519 -26.8656 +T -0.0991 -26.9263 -26.8568 +A -0.1015 -26.9916 -27.1183 +L -0.1065 -27.0724 -27.4562 +G -0.1110 -27.1786 -27.0230 +H -0.1162 -27.3159 -27.0242 +L -0.1111 -27.4743 -27.3622 +A -0.1091 -27.5925 -27.6237 +T -0.1060 -27.7451 -27.6148 +A -0.1053 -27.8685 -27.8764 +K -0.1031 -27.9475 -27.9765 +H -0.1060 -28.0390 -27.9777 +I -0.1028 -28.1459 -28.3999 +R -0.1049 -28.2461 -28.5765 +H -0.1113 -28.3685 -28.5777 +H -0.1031 -28.4886 -28.5789 +G -0.0954 -28.5713 -28.1457 +I -0.0839 -28.6855 -28.5679 +D -0.0686 -28.8162 -28.3403 +L -0.0463 -28.9301 -28.6782 +L -0.0217 -29.0352 -29.0162 +F -0.0011 -29.0778 -29.2418 +D 0.0265 -29.0999 -29.0141 +L 0.0443 -29.0805 -29.3521 +R 0.0533 -29.0122 -29.5287 +G 0.0585 -28.9098 -29.0954 +W 0.0595 -28.7809 -29.3388 +G 0.0620 -28.5919 -28.9056 +G 0.0568 -28.4241 -28.4723 +G 0.0623 -28.2793 -28.0391 +G 0.0595 -28.1365 -27.6059 +R 0.0589 -28.0622 -27.7825 +P 0.0487 -27.9900 -27.2302 +E 0.0382 -27.9138 -27.4349 +V 0.0173 -27.8738 -27.8210 +F -0.0038 -27.9160 -28.0466 +A -0.0228 -27.9597 -28.3081 +L -0.0499 -28.0548 -28.6461 +R -0.0743 -28.1644 -28.8227 +P -0.0944 -28.2838 -28.2704 +A -0.0994 -28.4432 -28.5319 +P -0.0911 -28.5985 -27.9796 +V -0.0837 -28.7475 -28.3658 +Q -0.0652 -28.8342 -28.5534 +V -0.0423 -28.9150 -28.9396 +N -0.0272 -28.9569 -28.7097 +W -0.0074 -29.0112 -28.9531 +L 0.0053 -29.0259 -29.2910 +A 0.0100 -29.0268 -29.5526 +Y 0.0148 -29.0449 -29.7601 +P 0.0239 -28.9906 -29.2078 +G 0.0244 -28.9152 -28.7745 +T 0.0286 -28.7696 -28.7657 +S 0.0343 -28.6707 -28.6228 +G 0.0407 -28.5865 -28.1895 +A 0.0380 -28.5067 -28.4511 +P 0.0353 -28.4008 -27.8988 +W 0.0260 -28.3088 -28.1421 +M 0.0077 -28.2515 -28.3680 +D -0.0069 -28.2944 -28.1404 +Y -0.0181 -28.4246 -28.3479 +V -0.0265 -28.5206 -28.7341 +L -0.0339 -28.5809 -29.0720 +G -0.0435 -28.6470 -28.6388 +D -0.0433 -28.7546 -28.4112 +A -0.0399 -28.8101 -28.6727 +F -0.0419 -28.8677 -28.8983 +A -0.0335 -28.8878 -29.1598 +L -0.0298 -28.8953 -29.4978 +P -0.0281 -28.9123 -28.9454 +P -0.0271 -28.8815 -28.3931 +A -0.0317 -28.8459 -28.6547 +L -0.0421 -28.8442 -28.9926 +E -0.0600 -28.8783 -29.1973 +P -0.0725 -28.9058 -28.6450 +F -0.0736 -28.9652 -28.8705 +Y -0.0796 -29.0336 -29.0780 +S -0.0895 -29.1221 -28.9352 +E -0.1034 -29.2457 -29.1398 +H -0.1127 -29.4629 -29.1411 +V -0.1114 -29.6606 -29.5272 +L -0.0976 -29.8158 -29.8652 +R -0.0856 -29.9581 -30.0418 +L -0.0749 -30.1066 -30.3797 +Q -0.0685 -30.2356 -30.5674 +G -0.0583 -30.2758 -30.1341 +A -0.0542 -30.2865 -30.3957 +F -0.0541 -30.2879 -30.6213 +Q -0.0522 -30.2616 -30.8089 +P -0.0431 -30.2762 -30.2566 +S -0.0250 -30.2966 -30.1137 +D -0.0094 -30.3129 -29.8861 +T -0.0004 -30.3098 -29.8772 +S 0.0064 -30.3003 -29.7343 +R 0.0060 -30.2935 -29.9109 +V 0.0026 -30.3039 -30.2971 +V 0.0106 -30.3086 -30.6833 +A 0.0101 -30.2983 -30.9448 +E 0.0133 -30.3408 -31.1495 +P 0.0098 -30.3825 -30.5972 +P 0.0105 -30.3742 -30.0449 +S 0.0186 -30.3758 -29.9020 +R 0.0242 -30.3158 -30.0786 +T 0.0251 -30.2191 -30.0697 +Q 0.0242 -30.0878 -30.2574 +C 0.0218 -29.9722 -30.2725 +G 0.0148 -29.8952 -29.8393 +L -0.0001 -29.8574 -30.1772 +P -0.0155 -29.8933 -29.6249 +E -0.0310 -29.9994 -29.8296 +Q -0.0377 -30.1038 -30.0173 +G -0.0395 -30.1641 -29.5841 +V -0.0399 -30.2095 -29.9702 +V -0.0462 -30.2518 -30.3564 +L -0.0482 -30.3205 -30.6943 +C -0.0449 -30.4410 -30.7095 +C -0.0442 -30.5439 -30.7246 +F -0.0353 -30.6140 -30.9502 +N -0.0337 -30.6789 -30.7203 +N -0.0272 -30.6747 -30.4905 +S -0.0244 -30.6608 -30.3476 +Y -0.0258 -30.6426 -30.5551 +K -0.0240 -30.5681 -30.6552 +L -0.0286 -30.5061 -30.9931 +N -0.0415 -30.4661 -30.7632 +P -0.0612 -30.4671 -30.2109 +Q -0.0812 -30.5064 -30.3986 +S -0.1015 -30.5828 -30.2557 +M -0.1273 -30.7056 -30.4816 +A -0.1397 -30.8997 -30.7431 +R -0.1432 -31.1137 -30.9197 +M -0.1404 -31.3286 -31.1456 +L -0.1429 -31.5302 -31.4836 +A -0.1485 -31.7249 -31.7451 +V -0.1590 -31.9466 -32.1313 +L -0.1676 -32.1513 -32.4692 +R -0.1690 -32.3044 -32.6458 +E -0.1664 -32.4797 -32.8505 +V -0.1516 -32.6542 -33.2367 +P -0.1289 -32.8377 -32.6843 +D -0.1012 -33.0080 -32.4567 +S -0.0766 -33.1103 -32.3138 +V -0.0564 -33.1536 -32.7000 +L -0.0358 -33.1865 -33.0379 +W -0.0209 -33.1747 -33.2813 +L -0.0123 -33.1484 -33.6193 +L -0.0117 -33.1105 -33.9572 +S -0.0146 -33.0756 -33.8143 +G -0.0227 -33.0506 -33.3811 +P -0.0379 -33.0664 -32.8288 +G -0.0476 -33.0547 -32.3955 +E -0.0519 -33.0441 -32.6002 +A -0.0550 -33.0136 -32.8618 +D -0.0632 -33.0117 -32.6341 +A -0.0679 -33.0817 -32.8957 +R -0.0793 -33.1616 -33.0723 +L -0.0907 -33.3112 -33.4102 +R -0.1092 -33.5039 -33.5868 +A -0.1271 -33.7185 -33.8483 +F -0.1395 -33.9271 -34.0739 +A -0.1462 -34.0954 -34.3354 +H -0.1482 -34.2155 -34.3367 +A -0.1516 -34.3410 -34.5982 +Q -0.1572 -34.4803 -34.7859 +G -0.1478 -34.6382 -34.3526 +V -0.1394 -34.7855 -34.7388 +D -0.1341 -34.9039 -34.5112 +A -0.1224 -35.0652 -34.7727 +Q -0.1103 -35.2091 -34.9604 +R -0.0921 -35.3737 -35.1370 +L -0.0779 -35.5003 -35.4749 +V -0.0686 -35.6012 -35.8611 +F -0.0622 -35.6581 -36.0867 +M -0.0610 -35.7054 -36.3126 +P -0.0628 -35.7543 -35.7603 +K -0.0593 -35.7548 -35.8604 +L -0.0607 -35.7677 -36.1983 +P -0.0565 -35.7606 -35.6460 +H -0.0566 -35.7483 -35.6472 +P -0.0537 -35.7625 -35.0949 +Q -0.0554 -35.7634 -35.2825 +Y -0.0624 -35.7836 -35.4901 +L -0.0771 -35.8344 -35.8280 +A -0.0897 -35.9524 -36.0895 +R -0.1038 -36.1211 -36.2661 +Y -0.1087 -36.2737 -36.4736 +R -0.1058 -36.4759 -36.6502 +H -0.1092 -36.6882 -36.6514 +A -0.1007 -36.8707 -36.9130 +D -0.0941 -37.0154 -36.6853 +L -0.0778 -37.0913 -37.0233 +F -0.0616 -37.1405 -37.2488 +L -0.0460 -37.1652 -37.5868 +D -0.0365 -37.1639 -37.3592 +T -0.0271 -37.1682 -37.3503 +H -0.0159 -37.1756 -37.3515 +P -0.0102 -37.1578 -36.7992 +Y -0.0105 -37.1216 -37.0067 +N -0.0129 -37.0712 -36.7768 +A -0.0174 -37.0491 -37.0383 +H -0.0120 -37.0407 -37.0396 +T -0.0108 -37.0473 -37.0307 +T -0.0052 -37.1016 -37.0218 +A -0.0101 -37.1516 -37.2833 +S -0.0167 -37.1752 -37.1405 +D -0.0229 -37.2149 -36.9128 +A -0.0288 -37.2704 -37.1744 +L -0.0194 -37.3216 -37.5123 +W -0.0072 -37.3920 -37.7557 +T 0.0049 -37.4004 -37.7468 +G 0.0133 -37.4023 -37.3136 +C 0.0184 -37.3712 -37.3287 +P 0.0200 -37.3122 -36.7764 +V 0.0185 -37.2334 -37.1626 +L 0.0115 -37.1714 -37.5005 +T 0.0021 -37.0919 -37.4916 +T -0.0065 -36.9996 -37.4828 +P -0.0113 -36.9745 -36.9304 +G -0.0183 -36.9990 -36.4972 +E -0.0329 -37.0438 -36.7019 +T -0.0441 -37.1370 -36.6930 +F -0.0490 -37.2191 -36.9186 +A -0.0535 -37.3141 -37.1801 +A -0.0539 -37.3509 -37.4417 +R -0.0524 -37.4456 -37.6183 +V -0.0595 -37.5473 -38.0044 +A -0.0627 -37.6777 -38.2660 +G -0.0681 -37.8036 -37.8327 +S -0.0678 -37.8796 -37.6899 +L -0.0566 -37.9264 -38.0278 +N -0.0514 -37.9395 -37.7979 +H -0.0473 -37.9213 -37.7991 +H -0.0408 -37.9226 -37.8003 +L -0.0332 -37.9414 -38.1383 +G -0.0313 -37.9483 -37.7051 +L -0.0341 -37.9503 -38.0430 +D -0.0438 -37.9795 -37.8154 +E -0.0611 -38.0338 -38.0200 +M -0.0742 -38.0760 -38.2459 +N -0.0842 -38.1298 -38.0161 +V -0.0998 -38.2214 -38.4022 +A -0.1147 -38.3068 -38.6638 +D -0.1296 -38.4109 -38.4361 +D -0.1453 -38.5293 -38.2085 +A -0.1652 -38.6979 -38.4701 +A -0.1729 -38.8802 -38.7316 +F -0.1782 -39.1199 -38.9572 +V -0.1695 -39.3787 -39.3433 +A -0.1638 -39.6151 -39.6049 +K -0.1615 -39.8389 -39.7050 +A -0.1569 -40.0131 -39.9665 +V -0.1537 -40.2059 -40.3527 +A -0.1540 -40.3951 -40.6142 +L -0.1519 -40.5413 -40.9522 +A -0.1423 -40.6562 -41.2137 +S -0.1352 -40.7501 -41.0708 +D -0.1296 -40.8341 -40.8432 +P -0.1277 -40.8971 -40.2909 +A -0.1237 -40.9970 -40.5524 +A -0.1246 -41.0840 -40.8139 +L -0.1272 -41.1581 -41.1519 +T -0.1315 -41.2471 -41.1430 +A -0.1393 -41.3665 -41.4045 +L -0.1496 -41.5127 -41.7425 +H -0.1589 -41.7184 -41.7437 +A -0.1630 -41.9912 -42.0052 +R -0.1678 -42.2370 -42.1818 +V -0.1691 -42.4577 -42.5680 +D -0.1616 -42.6159 -42.3404 +V -0.1561 -42.7603 -42.7265 +L -0.1468 -42.9214 -43.0645 +R -0.1327 -43.1088 -43.2411 +R -0.1185 -43.2437 -43.4177 +E -0.1082 -43.3476 -43.6223 +S -0.0964 -43.4646 -43.4795 +G -0.0792 -43.5616 -43.0462 +V -0.0664 -43.6236 -43.4324 +F -0.0484 -43.6908 -43.6580 +E -0.0379 -43.7311 -43.8627 +M -0.0273 -43.7039 -44.0886 +D -0.0246 -43.6635 -43.8609 +G -0.0273 -43.6339 -43.4277 +F -0.0342 -43.6103 -43.6533 +A -0.0462 -43.5988 -43.9148 +D -0.0625 -43.6188 -43.6872 +D -0.0769 -43.6544 -43.4596 +F -0.0850 -43.6743 -43.6851 +G -0.0952 -43.7451 -43.2519 +A -0.1003 -43.8827 -43.5134 +L -0.1095 -44.0355 -43.8514 +L -0.1243 -44.2104 -44.1893 +Q -0.1281 -44.4236 -44.3770 +A -0.1293 -44.5813 -44.6385 +L -0.1308 -44.9765 -44.9765 +A -0.0883 -45.2380 -45.2380 +R -0.0883 -45.4146 -45.4146 +R -0.0006 -45.5912 -45.5912 +H 0.2166 -45.5924 -45.5924 +G -0.1217 -45.1592 -45.1592 +W -0.1690 -45.4026 -45.4026 +L 0.2166 -45.7405 -45.7405 +G -0.2111 -45.3073 -45.3073 +I -0.2111 -45.7295 -45.7295 + + +>Foobar +# GlobDoms 5-271, 286-481 +# Disorder 1-6, 119-131, 156-163, 201-213, 226-237, 272-285, 388-394 +# RESIDUE DYDX RAW SMOOTHED +M 0.2166 -0.2259 -0.2259 +G 0.1138 0.2073 0.2073 +D 0.0044 0.4350 0.4350 +T 0.0044 0.4438 0.4438 +T -0.1308 0.4527 0.4527 +A 0.2166 0.1912 0.1912 +G -0.1023 0.6244 0.6244 +E -0.1130 0.4197 0.4197 +M -0.1308 0.1938 0.1938 +A -0.1308 -0.0677 -0.0677 +V -0.1150 -0.1599 -0.4539 +Q -0.1308 -0.3499 -0.6416 +R -0.1417 -0.5234 -0.8182 +G -0.1489 -0.6885 -0.3849 +L -0.1559 -0.8519 -0.7229 +A -0.1621 -1.0123 -0.9844 +L -0.1728 -1.1849 -1.3224 +H -0.1771 -1.3208 -1.3236 +Q -0.1834 -1.4605 -1.5112 +Q -0.1896 -1.6186 -1.6989 +R -0.1965 -1.7985 -1.8755 +H -0.2067 -2.0090 -1.8767 +A -0.2124 -2.2634 -2.1383 +E -0.2128 -2.5547 -2.3430 +A -0.2060 -2.7877 -2.6045 +A -0.2022 -3.0129 -2.8660 +V -0.1897 -3.2763 -3.2522 +L -0.1806 -3.5222 -3.5901 +L -0.1675 -3.7401 -3.9281 +Q -0.1460 -3.9681 -4.1158 +Q -0.1186 -4.1793 -4.3034 +A -0.0970 -4.3110 -4.5650 +S -0.0763 -4.3706 -4.4221 +D -0.0608 -4.3792 -4.1945 +A -0.0485 -4.3500 -4.4560 +A -0.0413 -4.2909 -4.7175 +P -0.0348 -4.2332 -4.1652 +E -0.0344 -4.1760 -4.3699 +H -0.0407 -4.1261 -4.3711 +P -0.0518 -4.1078 -3.8188 +G -0.0603 -4.1441 -3.3856 +I -0.0729 -4.2017 -3.8078 +A -0.0817 -4.3363 -4.0694 +L -0.0898 -4.4683 -4.4073 +W -0.0965 -4.5837 -4.6507 +L -0.1075 -4.7254 -4.9886 +H -0.1235 -4.9011 -4.9898 +A -0.1330 -5.0502 -5.2513 +L -0.1457 -5.2230 -5.5893 +E -0.1586 -5.4092 -5.7940 +D -0.1628 -5.5620 -5.5663 +A -0.1561 -5.6809 -5.8279 +G -0.1527 -5.8049 -5.3947 +Q -0.1516 -5.9234 -5.5823 +A -0.1507 -6.0636 -5.8439 +E -0.1513 -6.2074 -6.0486 +A -0.1569 -6.3592 -6.3101 +A -0.1627 -6.5009 -6.5716 +A -0.1603 -6.7057 -6.8332 +A -0.1619 -6.9191 -7.0947 +Y -0.1655 -7.1390 -7.3022 +T -0.1553 -7.3740 -7.2933 +R -0.1484 -7.5915 -7.4699 +A -0.1379 -7.7253 -7.7315 +H -0.1259 -7.8449 -7.7327 +Q -0.1172 -7.9385 -7.9204 +L -0.1100 -8.0134 -8.2583 +L -0.1072 -8.0702 -8.5962 +P -0.1086 -8.1197 -8.0439 +E -0.1068 -8.2041 -8.2486 +E -0.1087 -8.2887 -8.4533 +P -0.1153 -8.3711 -7.9010 +Y -0.1215 -8.4500 -8.1085 +I -0.1288 -8.5452 -8.5307 +T -0.1302 -8.7014 -8.5218 +A -0.1336 -8.8360 -8.7834 +Q -0.1305 -9.0158 -8.9710 +L -0.1329 -9.2002 -9.3090 +L -0.1425 -9.3962 -9.6469 +N -0.1442 -9.5517 -9.4170 +A -0.1379 -9.7560 -9.6786 +V -0.1347 -9.9469 -10.0647 +A -0.1243 -10.0620 -10.3263 +Q -0.1161 -10.1523 -10.5139 +G -0.1144 -10.2362 -10.0807 +V -0.1070 -10.3184 -10.4669 +G -0.1025 -10.3897 -10.0337 +A -0.0943 -10.4751 -10.2952 +V -0.0914 -10.5520 -10.6814 +E -0.0886 -10.6564 -10.8861 +P -0.0838 -10.7157 -10.3338 +F -0.0832 -10.7682 -10.5593 +A -0.0880 -10.8391 -10.8209 +F -0.0921 -10.9504 -11.0464 +L -0.1017 -11.0647 -11.3844 +S -0.1052 -11.1515 -11.2415 +E -0.1039 -11.3088 -11.4462 +D -0.0989 -11.4025 -11.2185 +A -0.0981 -11.4888 -11.4801 +S -0.0928 -11.6352 -11.3372 +A -0.0885 -11.7850 -11.5987 +A -0.0773 -11.8627 -11.8603 +E -0.0720 -11.9079 -12.0650 +S -0.0701 -11.9501 -11.9221 +V -0.0671 -12.0129 -12.3083 +R -0.0683 -12.0906 -12.4848 +P -0.0601 -12.1805 -11.9325 +L -0.0464 -12.2976 -12.2705 +A -0.0336 -12.3405 -12.5320 +P -0.0257 -12.3633 -11.9797 +T -0.0199 -12.3308 -11.9708 +R -0.0106 -12.3293 -12.1474 +V -0.0072 -12.3145 -12.5336 +R -0.0111 -12.2871 -12.7102 +S -0.0102 -12.2636 -12.5673 +K -0.0109 -12.2842 -12.6674 +G -0.0084 -12.3468 -12.2341 +P -0.0016 -12.3414 -11.6818 +L 0.0063 -12.3733 -12.0198 +R 0.0063 -12.3953 -12.1964 +V 0.0136 -12.3679 -12.5825 +G 0.0282 -12.3523 -12.1493 +F 0.0398 -12.3173 -12.3749 +V 0.0505 -12.3133 -12.7611 +S 0.0523 -12.2819 -12.6182 +N 0.0501 -12.2163 -12.3883 +G 0.0454 -12.1672 -11.9551 +F 0.0406 -12.0710 -12.1806 +G 0.0400 -11.9227 -11.7474 +A 0.0311 -11.7863 -12.0089 +H 0.0176 -11.6746 -12.0102 +P -0.0032 -11.6191 -11.4578 +T -0.0205 -11.5614 -11.4490 +G -0.0439 -11.5468 -11.0157 +L -0.0735 -11.6133 -11.3537 +L -0.1019 -11.7296 -11.6916 +T -0.1274 -11.8844 -11.6827 +V -0.1467 -12.0508 -12.0689 +A -0.1590 -12.3132 -12.3304 +L -0.1598 -12.5772 -12.6684 +F -0.1663 -12.8449 -12.8940 +E -0.1727 -13.1155 -13.0986 +A -0.1714 -13.3362 -13.3602 +L -0.1661 -13.5478 -13.6981 +Q -0.1552 -13.6833 -13.8858 +R -0.1472 -13.8031 -14.0624 +R -0.1427 -13.9128 -14.2390 +Q -0.1335 -14.0052 -14.4266 +P -0.1233 -14.1113 -13.8743 +D -0.1072 -14.2346 -13.6467 +L -0.0901 -14.3570 -13.9846 +Q -0.0710 -14.4666 -14.1723 +M -0.0475 -14.5685 -14.3982 +H -0.0250 -14.6419 -14.3994 +L -0.0069 -14.6892 -14.7374 +F 0.0040 -14.6892 -14.9629 +A 0.0101 -14.6678 -15.2245 +T 0.0139 -14.6473 -15.2156 +S 0.0125 -14.6245 -15.0727 +G 0.0145 -14.5367 -14.6395 +D 0.0173 -14.4076 -14.4119 +D 0.0144 -14.2894 -14.1842 +G 0.0068 -14.1790 -13.7510 +S -0.0006 -14.1141 -13.6081 +T -0.0069 -14.0672 -13.5992 +L -0.0214 -14.0465 -13.9372 +R -0.0381 -14.0812 -14.1138 +T -0.0549 -14.1935 -14.1049 +R -0.0765 -14.3256 -14.2815 +L -0.0953 -14.4988 -14.6194 +A -0.1106 -14.6648 -14.8810 +Q -0.1253 -14.8277 -15.0686 +A -0.1288 -15.0284 -15.3302 +S -0.1239 -15.1958 -15.1873 +T -0.1187 -15.3158 -15.1784 +L -0.1134 -15.4030 -15.5163 +H -0.1091 -15.5033 -15.5176 +D -0.1076 -15.5901 -15.2899 +V -0.1038 -15.6624 -15.6761 +T -0.0991 -15.7367 -15.6672 +A -0.1015 -15.8020 -15.9288 +L -0.1065 -15.8828 -16.2667 +G -0.1110 -15.9891 -15.8335 +H -0.1162 -16.1264 -15.8347 +L -0.1111 -16.2847 -16.1726 +A -0.1091 -16.4029 -16.4342 +T -0.1060 -16.5555 -16.4253 +A -0.1053 -16.6790 -16.6868 +K -0.1031 -16.7579 -16.7869 +H -0.1060 -16.8494 -16.7881 +I -0.1028 -16.9564 -17.2104 +R -0.1049 -17.0565 -17.3870 +H -0.1113 -17.1789 -17.3882 +H -0.1031 -17.2991 -17.3894 +G -0.0954 -17.3817 -16.9562 +I -0.0839 -17.4960 -17.3784 +D -0.0686 -17.6266 -17.1508 +L -0.0463 -17.7406 -17.4887 +L -0.0217 -17.8457 -17.8266 +F -0.0011 -17.8883 -18.0522 +D 0.0265 -17.9103 -17.8246 +L 0.0443 -17.8910 -18.1625 +R 0.0533 -17.8227 -18.3391 +G 0.0585 -17.7203 -17.9059 +W 0.0595 -17.5914 -18.1493 +G 0.0620 -17.4024 -17.7160 +G 0.0568 -17.2345 -17.2828 +G 0.0623 -17.0897 -16.8496 +G 0.0595 -16.9469 -16.4164 +R 0.0589 -16.8727 -16.5930 +P 0.0487 -16.8005 -16.0406 +E 0.0382 -16.7243 -16.2453 +V 0.0173 -16.6843 -16.6315 +F -0.0038 -16.7264 -16.8571 +A -0.0228 -16.7702 -17.1186 +L -0.0499 -16.8652 -17.4565 +R -0.0743 -16.9749 -17.6331 +P -0.0944 -17.0942 -17.0808 +A -0.0994 -17.2537 -17.3424 +P -0.0911 -17.4090 -16.7900 +V -0.0837 -17.5579 -17.1762 +Q -0.0652 -17.6447 -17.3639 +V -0.0423 -17.7254 -17.7501 +N -0.0272 -17.7674 -17.5202 +W -0.0074 -17.8217 -17.7636 +L 0.0053 -17.8364 -18.1015 +A 0.0100 -17.8373 -18.3630 +Y 0.0148 -17.8553 -18.5705 +P 0.0239 -17.8010 -18.0182 +G 0.0244 -17.7257 -17.5850 +T 0.0286 -17.5801 -17.5761 +S 0.0343 -17.4811 -17.4332 +G 0.0407 -17.3969 -17.0000 +A 0.0380 -17.3171 -17.2615 +P 0.0353 -17.2113 -16.7092 +W 0.0260 -17.1192 -16.9526 +M 0.0077 -17.0620 -17.1785 +D -0.0069 -17.1048 -16.9509 +Y -0.0181 -17.2350 -17.1584 +V -0.0265 -17.3311 -17.5446 +L -0.0339 -17.3913 -17.8825 +G -0.0435 -17.4575 -17.4493 +D -0.0433 -17.5651 -17.2216 +A -0.0399 -17.6206 -17.4832 +F -0.0419 -17.6782 -17.7087 +A -0.0335 -17.6983 -17.9703 +L -0.0298 -17.7058 -18.3082 +P -0.0281 -17.7228 -17.7559 +P -0.0271 -17.6920 -17.2036 +A -0.0317 -17.6564 -17.4651 +L -0.0421 -17.6547 -17.8031 +E -0.0600 -17.6888 -18.0077 +P -0.0725 -17.7162 -17.4554 +F -0.0736 -17.7757 -17.6810 +Y -0.0796 -17.8441 -17.8885 +S -0.0895 -17.9325 -17.7456 +E -0.1034 -18.0562 -17.9503 +H -0.1127 -18.2734 -17.9515 +V -0.1114 -18.4711 -18.3377 +L -0.0976 -18.6263 -18.6756 +R -0.0856 -18.7686 -18.8522 +L -0.0749 -18.9170 -19.1902 +Q -0.0685 -19.0460 -19.3778 +G -0.0583 -19.0863 -18.9446 +A -0.0542 -19.0969 -19.2061 +F -0.0541 -19.0983 -19.4317 +Q -0.0522 -19.0720 -19.6194 +P -0.0431 -19.0866 -19.0671 +S -0.0250 -19.1071 -18.9242 +D -0.0094 -19.1233 -18.6966 +T -0.0004 -19.1203 -18.6877 +S 0.0064 -19.1107 -18.5448 +R 0.0060 -19.1039 -18.7214 +V 0.0026 -19.1144 -19.1076 +V 0.0106 -19.1190 -19.4937 +A 0.0101 -19.1087 -19.7553 +E 0.0133 -19.1513 -19.9600 +P 0.0098 -19.1930 -19.4077 +P 0.0105 -19.1846 -18.8553 +S 0.0186 -19.1862 -18.7125 +R 0.0242 -19.1262 -18.8890 +T 0.0251 -19.0296 -18.8802 +Q 0.0242 -18.8983 -19.0678 +C 0.0218 -18.7826 -19.0830 +G 0.0148 -18.7056 -18.6498 +L -0.0001 -18.6679 -18.9877 +P -0.0155 -18.7037 -18.4354 +E -0.0310 -18.8098 -18.6401 +Q -0.0377 -18.9143 -18.8277 +G -0.0395 -18.9745 -18.3945 +V -0.0399 -19.0200 -18.7807 +V -0.0462 -19.0622 -19.1669 +L -0.0482 -19.1309 -19.5048 +C -0.0449 -19.2514 -19.5200 +C -0.0442 -19.3544 -19.5351 +F -0.0353 -19.4244 -19.7607 +N -0.0337 -19.4893 -19.5308 +N -0.0272 -19.4852 -19.3009 +S -0.0244 -19.4713 -19.1580 +Y -0.0258 -19.4530 -19.3655 +K -0.0240 -19.3785 -19.4656 +L -0.0286 -19.3165 -19.8036 +N -0.0415 -19.2765 -19.5737 +P -0.0612 -19.2776 -19.0214 +Q -0.0812 -19.3169 -19.2090 +S -0.1015 -19.3932 -19.0662 +M -0.1273 -19.5160 -19.2921 +A -0.1397 -19.7101 -19.5536 +R -0.1432 -19.9242 -19.7302 +M -0.1404 -20.1391 -19.9561 +L -0.1429 -20.3407 -20.2940 +A -0.1485 -20.5353 -20.5556 +V -0.1590 -20.7571 -20.9417 +L -0.1676 -20.9618 -21.2797 +R -0.1690 -21.1148 -21.4563 +E -0.1664 -21.2902 -21.6609 +V -0.1516 -21.4646 -22.0471 +P -0.1289 -21.6482 -21.4948 +D -0.1012 -21.8184 -21.2672 +S -0.0766 -21.9208 -21.1243 +V -0.0564 -21.9641 -21.5105 +L -0.0358 -21.9969 -21.8484 +W -0.0209 -21.9852 -22.0918 +L -0.0123 -21.9589 -22.4297 +L -0.0117 -21.9210 -22.7676 +S -0.0146 -21.8861 -22.6248 +G -0.0227 -21.8610 -22.1915 +P -0.0379 -21.8769 -21.6392 +G -0.0476 -21.8652 -21.2060 +E -0.0519 -21.8545 -21.4107 +A -0.0550 -21.8240 -21.6722 +D -0.0632 -21.8221 -21.4446 +A -0.0679 -21.8921 -21.7061 +R -0.0793 -21.9720 -21.8827 +L -0.0907 -22.1216 -22.2207 +R -0.1092 -22.3144 -22.3972 +A -0.1271 -22.5289 -22.6588 +F -0.1395 -22.7375 -22.8844 +A -0.1462 -22.9059 -23.1459 +H -0.1482 -23.0260 -23.1471 +A -0.1516 -23.1515 -23.4087 +Q -0.1572 -23.2907 -23.5963 +G -0.1478 -23.4487 -23.1631 +V -0.1394 -23.5960 -23.5493 +D -0.1341 -23.7144 -23.3216 +A -0.1224 -23.8756 -23.5832 +Q -0.1103 -24.0195 -23.7709 +R -0.0921 -24.1841 -23.9475 +L -0.0779 -24.3107 -24.2854 +V -0.0686 -24.4117 -24.6716 +F -0.0622 -24.4686 -24.8971 +M -0.0610 -24.5159 -25.1230 +P -0.0628 -24.5648 -24.5707 +K -0.0593 -24.5652 -24.6708 +L -0.0607 -24.5782 -25.0087 +P -0.0565 -24.5711 -24.4564 +H -0.0566 -24.5588 -24.4576 +P -0.0537 -24.5729 -23.9053 +Q -0.0554 -24.5739 -24.0930 +Y -0.0624 -24.5940 -24.3005 +L -0.0771 -24.6449 -24.6384 +A -0.0897 -24.7629 -24.9000 +R -0.1038 -24.9315 -25.0766 +Y -0.1087 -25.0841 -25.2841 +R -0.1058 -25.2864 -25.4607 +H -0.1092 -25.4986 -25.4619 +A -0.1007 -25.6811 -25.7234 +D -0.0941 -25.8258 -25.4958 +L -0.0778 -25.9017 -25.8337 +F -0.0616 -25.9510 -26.0593 +L -0.0460 -25.9757 -26.3972 +D -0.0365 -25.9744 -26.1696 +T -0.0271 -25.9786 -26.1607 +H -0.0159 -25.9860 -26.1620 +P -0.0102 -25.9683 -25.6096 +Y -0.0105 -25.9321 -25.8171 +N -0.0129 -25.8817 -25.5873 +A -0.0174 -25.8596 -25.8488 +H -0.0120 -25.8512 -25.8500 +T -0.0108 -25.8578 -25.8411 +T -0.0052 -25.9121 -25.8323 +A -0.0101 -25.9621 -26.0938 +S -0.0167 -25.9857 -25.9509 +D -0.0229 -26.0253 -25.7233 +A -0.0288 -26.0809 -25.9848 +L -0.0194 -26.1321 -26.3228 +W -0.0072 -26.2024 -26.5661 +T 0.0049 -26.2108 -26.5573 +G 0.0133 -26.2128 -26.1240 +C 0.0184 -26.1817 -26.1392 +P 0.0200 -26.1226 -25.5869 +V 0.0185 -26.0439 -25.9730 +L 0.0115 -25.9819 -26.3110 +T 0.0021 -25.9023 -26.3021 +T -0.0065 -25.8101 -26.2932 +P -0.0113 -25.7849 -25.7409 +G -0.0183 -25.8094 -25.3077 +E -0.0329 -25.8543 -25.5124 +T -0.0441 -25.9475 -25.5035 +F -0.0490 -26.0296 -25.7291 +A -0.0535 -26.1246 -25.9906 +A -0.0539 -26.1614 -26.2521 +R -0.0524 -26.2561 -26.4287 +V -0.0595 -26.3578 -26.8149 +A -0.0627 -26.4882 -27.0764 +G -0.0681 -26.6140 -26.6432 +S -0.0678 -26.6900 -26.5003 +L -0.0566 -26.7369 -26.8383 +N -0.0514 -26.7500 -26.6084 +H -0.0473 -26.7318 -26.6096 +H -0.0408 -26.7330 -26.6108 +L -0.0332 -26.7519 -26.9487 +G -0.0313 -26.7588 -26.5155 +L -0.0341 -26.7607 -26.8535 +D -0.0438 -26.7900 -26.6258 +E -0.0611 -26.8442 -26.8305 +M -0.0742 -26.8865 -27.0564 +N -0.0842 -26.9402 -26.8265 +V -0.0998 -27.0318 -27.2127 +A -0.1147 -27.1172 -27.4742 +D -0.1296 -27.2214 -27.2466 +D -0.1453 -27.3397 -27.0190 +A -0.1652 -27.5083 -27.2805 +A -0.1729 -27.6907 -27.5421 +F -0.1782 -27.9304 -27.7676 +V -0.1695 -28.1891 -28.1538 +A -0.1638 -28.4256 -28.4153 +K -0.1615 -28.6494 -28.5154 +A -0.1569 -28.8235 -28.7770 +V -0.1537 -29.0164 -29.1631 +A -0.1540 -29.2056 -29.4247 +L -0.1519 -29.3517 -29.7626 +A -0.1423 -29.4666 -30.0242 +S -0.1352 -29.5605 -29.8813 +D -0.1296 -29.6446 -29.6536 +P -0.1277 -29.7076 -29.1013 +A -0.1237 -29.8075 -29.3629 +A -0.1246 -29.8944 -29.6244 +L -0.1272 -29.9686 -29.9623 +T -0.1315 -30.0576 -29.9535 +A -0.1393 -30.1770 -30.2150 +L -0.1496 -30.3232 -30.5529 +H -0.1589 -30.5289 -30.5541 +A -0.1630 -30.8017 -30.8157 +R -0.1678 -31.0474 -30.9923 +V -0.1691 -31.2681 -31.3785 +D -0.1616 -31.4264 -31.1508 +V -0.1561 -31.5708 -31.5370 +L -0.1468 -31.7319 -31.8749 +R -0.1327 -31.9193 -32.0515 +R -0.1185 -32.0541 -32.2281 +E -0.1082 -32.1580 -32.4328 +S -0.0964 -32.2750 -32.2899 +G -0.0792 -32.3721 -31.8567 +V -0.0664 -32.4340 -32.2429 +F -0.0484 -32.5013 -32.4684 +E -0.0379 -32.5416 -32.6731 +M -0.0273 -32.5144 -32.8990 +D -0.0246 -32.4739 -32.6714 +G -0.0273 -32.4444 -32.2382 +F -0.0342 -32.4207 -32.4637 +A -0.0462 -32.4092 -32.7253 +D -0.0625 -32.4292 -32.4977 +D -0.0769 -32.4649 -32.2700 +F -0.0850 -32.4848 -32.4956 +G -0.0952 -32.5555 -32.0624 +A -0.1003 -32.6932 -32.3239 +L -0.1095 -32.8460 -32.6618 +L -0.1243 -33.0209 -32.9998 +Q -0.1281 -33.2341 -33.1875 +A -0.1293 -33.3918 -33.4490 +L -0.1308 -33.7869 -33.7869 +A -0.0883 -34.0485 -34.0485 +R -0.0883 -34.2251 -34.2251 +R -0.0006 -34.4016 -34.4016 +H 0.2166 -34.4029 -34.4029 +G -0.1217 -33.9696 -33.9696 +W -0.1690 -34.2130 -34.2130 +L 0.2166 -34.5510 -34.5510 +G -0.2111 -34.1177 -34.1177 +I -0.2111 -34.5400 -34.5400 + + +>dundeefriends +# GlobDoms 2-330, 345-513 +# Disorder 1-5, 178-190, 215-222, 260-272, 285-296, 331-344, 447-453 +# RESIDUE DYDX RAW SMOOTHED +M 0.0044 -0.2259 -0.2259 +T -0.1308 -0.2170 -0.2170 +A 0.1138 -0.4786 -0.4786 +D 0.2166 -0.2509 -0.2509 +G 0.2762 0.1823 0.1823 +P -0.0883 0.7346 0.7346 +R -0.1023 0.5580 0.5580 +E -0.1690 0.3533 0.3533 +L -0.1690 0.0154 0.0154 +L -0.1690 -0.3225 -0.3225 +Q -0.1314 -0.5263 -0.5102 +L -0.1346 -0.7549 -0.8481 +R -0.1408 -0.9669 -1.0247 +A -0.1517 -1.2003 -1.2863 +A -0.1601 -1.4240 -1.5478 +V -0.1637 -1.6071 -1.9340 +R -0.1582 -1.7315 -2.1106 +H -0.1547 -1.8330 -2.1118 +R -0.1522 -1.9226 -2.2884 +P -0.1462 -2.0425 -1.7361 +Q -0.1439 -2.1574 -1.9238 +D -0.1424 -2.2663 -1.6961 +V -0.1456 -2.3773 -2.0823 +A -0.1411 -2.5309 -2.3438 +W -0.1397 -2.6796 -2.5872 +L -0.1326 -2.8678 -2.9251 +M -0.1254 -3.0823 -3.1511 +L -0.1185 -3.2925 -3.4890 +A -0.1099 -3.4840 -3.7505 +D -0.1054 -3.6527 -3.5229 +A -0.0856 -3.7822 -3.7844 +E -0.0691 -3.8648 -3.9891 +L -0.0503 -3.8702 -4.3270 +G -0.0377 -3.8452 -3.8938 +M -0.0316 -3.7876 -4.1197 +G -0.0287 -3.7227 -3.6865 +D -0.0304 -3.6679 -3.4589 +T -0.0274 -3.6592 -3.4500 +T -0.0321 -3.6526 -3.4411 +A -0.0425 -3.6650 -3.7027 +G -0.0526 -3.6624 -3.2694 +E -0.0642 -3.7060 -3.4741 +M -0.0698 -3.8258 -3.7000 +A -0.0736 -4.0132 -3.9616 +V -0.0714 -4.1712 -4.3477 +Q -0.0648 -4.3744 -4.5354 +R -0.0553 -4.5112 -4.7120 +G -0.0456 -4.5885 -4.2788 +L -0.0400 -4.6179 -4.6167 +A -0.0362 -4.6159 -4.8782 +L -0.0366 -4.6159 -5.2162 +H -0.0336 -4.5570 -5.2174 +P -0.0253 -4.5299 -4.6651 +G -0.0207 -4.4900 -4.2319 +H -0.0230 -4.4384 -4.2331 +P -0.0313 -4.4152 -3.6808 +E -0.0438 -4.4140 -3.8854 +A -0.0569 -4.4585 -4.1470 +V -0.0648 -4.4846 -4.5332 +A -0.0777 -4.5478 -4.7947 +R -0.0945 -4.6545 -4.9713 +L -0.1142 -4.8315 -5.3092 +G -0.1358 -5.0416 -4.8760 +R -0.1503 -5.2424 -5.0526 +V -0.1591 -5.4223 -5.4388 +R -0.1675 -5.6050 -5.6154 +W -0.1690 -5.7325 -5.8587 +T -0.1725 -5.8566 -5.8499 +Q -0.1786 -5.9872 -6.0375 +Q -0.1870 -6.1504 -6.2252 +R -0.1963 -6.3413 -6.4018 +H -0.2063 -6.5504 -6.4030 +A -0.2139 -6.8162 -6.6646 +E -0.2076 -7.0689 -6.8692 +A -0.2022 -7.3008 -7.1308 +A -0.2007 -7.5331 -7.3923 +V -0.1896 -7.8020 -7.7785 +L -0.1806 -8.0485 -8.1164 +L -0.1675 -8.2664 -8.4544 +Q -0.1460 -8.4944 -8.6420 +Q -0.1186 -8.7056 -8.8297 +A -0.0970 -8.8373 -9.0912 +S -0.0763 -8.8969 -8.9484 +D -0.0608 -8.9055 -8.7207 +A -0.0485 -8.8763 -8.9823 +A -0.0413 -8.8171 -9.2438 +P -0.0292 -8.7838 -8.6915 +E -0.0203 -8.7519 -8.8962 +H -0.0180 -8.7115 -8.8974 +P -0.0234 -8.6749 -8.3451 +G -0.0325 -8.6552 -7.9119 +I -0.0396 -8.6860 -8.3341 +A -0.0495 -8.7570 -8.5956 +L -0.0590 -8.8286 -8.9336 +W -0.0685 -8.8831 -9.1769 +L -0.0842 -8.9639 -9.5149 +G -0.0944 -9.1361 -9.0816 +H -0.0985 -9.2717 -9.0829 +A -0.1063 -9.4221 -9.3444 +L -0.1049 -9.6207 -9.6823 +E -0.0972 -9.7528 -9.8870 +D -0.0865 -9.8000 -9.6594 +H -0.0785 -9.8548 -9.6606 +Q -0.0748 -9.8949 -9.8483 +L -0.0757 -9.9424 -10.1862 +L -0.0819 -9.9918 -10.5242 +P -0.0872 -10.0966 -9.9718 +E -0.0895 -10.1519 -10.1765 +E -0.0931 -10.1902 -10.3812 +P -0.0952 -10.2650 -9.8289 +Y -0.1026 -10.3573 -10.0364 +I -0.1126 -10.4726 -10.4586 +T -0.1215 -10.5673 -10.4498 +A -0.1291 -10.6702 -10.7113 +Q -0.1390 -10.7898 -10.8990 +L -0.1532 -10.9452 -11.2369 +D -0.1734 -11.1404 -11.0093 +V -0.1853 -11.3172 -11.3954 +L -0.1975 -11.5256 -11.7334 +S -0.2022 -11.8014 -11.5905 +A -0.1999 -12.0123 -11.8520 +Q -0.1896 -12.2537 -12.0397 +V -0.1843 -12.4871 -12.4259 +R -0.1796 -12.6793 -12.6025 +A -0.1765 -12.8659 -12.8640 +A -0.1643 -13.0866 -13.1256 +V -0.1560 -13.2895 -13.5117 +A -0.1443 -13.4320 -13.7733 +Q -0.1368 -13.5620 -13.9609 +G -0.1345 -13.6796 -13.5277 +V -0.1243 -13.7814 -13.9139 +G -0.1164 -13.8646 -13.4807 +A -0.1043 -13.9528 -13.7422 +V -0.0978 -14.0264 -14.1284 +E -0.0886 -14.1034 -14.3331 +P -0.0838 -14.1627 -13.7807 +F -0.0832 -14.2152 -14.0063 +A -0.0880 -14.2861 -14.2679 +F -0.0963 -14.3790 -14.4934 +L -0.1093 -14.4877 -14.8314 +S -0.1167 -14.5719 -14.6885 +E -0.1263 -14.7044 -14.8932 +D -0.1299 -14.8032 -14.6655 +A -0.1356 -14.9199 -14.9271 +S -0.1427 -15.0812 -14.7842 +A -0.1517 -15.2648 -15.0457 +A -0.1528 -15.4024 -15.3073 +E -0.1552 -15.5470 -15.5120 +Q -0.1603 -15.7011 -15.6996 +L -0.1698 -15.8593 -16.0376 +A -0.1828 -16.0514 -16.2991 +C -0.1927 -16.2432 -16.3143 +A -0.1986 -16.4800 -16.5758 +R -0.2017 -16.6837 -16.7524 +T -0.2054 -16.9022 -16.7435 +R -0.1946 -17.1413 -16.9201 +A -0.1872 -17.3520 -17.1816 +Q -0.1821 -17.5470 -17.3693 +A -0.1679 -17.7722 -17.6309 +I -0.1523 -17.9742 -18.0531 +A -0.1403 -18.1532 -18.3146 +A -0.1336 -18.2997 -18.5762 +S -0.1259 -18.4163 -18.4333 +V -0.1163 -18.5403 -18.8195 +R -0.1072 -18.6463 -18.9960 +P -0.0893 -18.7490 -18.4437 +L -0.0641 -18.8500 -18.7817 +A -0.0453 -18.8901 -19.0432 +P -0.0298 -18.8880 -18.4909 +T -0.0213 -18.8466 -18.4820 +R -0.0113 -18.8437 -18.6586 +V -0.0072 -18.8257 -19.0448 +R -0.0111 -18.7983 -19.2214 +S -0.0102 -18.7748 -19.0785 +K -0.0109 -18.7954 -19.1786 +G -0.0084 -18.8580 -18.7454 +P -0.0016 -18.8526 -18.1930 +L 0.0063 -18.8845 -18.5310 +R 0.0063 -18.9065 -18.7076 +V 0.0136 -18.8791 -19.0937 +G 0.0282 -18.8636 -18.6605 +F 0.0398 -18.8285 -18.8861 +V 0.0505 -18.8245 -19.2723 +S 0.0523 -18.7931 -19.1294 +N 0.0501 -18.7275 -18.8995 +G 0.0454 -18.6785 -18.4663 +F 0.0406 -18.5822 -18.6918 +G 0.0400 -18.4339 -18.2586 +A 0.0311 -18.2975 -18.5202 +H 0.0176 -18.1858 -18.5214 +P -0.0032 -18.1303 -17.9691 +T -0.0205 -18.0726 -17.9602 +G -0.0439 -18.0581 -17.5270 +L -0.0735 -18.1245 -17.8649 +L -0.1019 -18.2408 -18.2028 +T -0.1274 -18.3956 -18.1939 +V -0.1467 -18.5620 -18.5801 +A -0.1590 -18.8244 -18.8417 +L -0.1598 -19.0884 -19.1796 +F -0.1663 -19.3561 -19.4052 +E -0.1727 -19.6267 -19.6098 +A -0.1714 -19.8474 -19.8714 +L -0.1661 -20.0590 -20.2093 +Q -0.1552 -20.1945 -20.3970 +R -0.1472 -20.3143 -20.5736 +R -0.1427 -20.4240 -20.7502 +Q -0.1335 -20.5164 -20.9379 +P -0.1233 -20.6225 -20.3855 +D -0.1072 -20.7458 -20.1579 +L -0.0901 -20.8682 -20.4958 +Q -0.0710 -20.9778 -20.6835 +M -0.0475 -21.0797 -20.9094 +H -0.0250 -21.1531 -20.9106 +L -0.0069 -21.2004 -21.2486 +F 0.0040 -21.2004 -21.4741 +A 0.0101 -21.1790 -21.7357 +T 0.0139 -21.1585 -21.7268 +S 0.0125 -21.1358 -21.5839 +G 0.0145 -21.0479 -21.1507 +D 0.0173 -20.9188 -20.9231 +D 0.0144 -20.8006 -20.6954 +G 0.0068 -20.6902 -20.2622 +S -0.0006 -20.6253 -20.1193 +T -0.0069 -20.5784 -20.1105 +L -0.0214 -20.5577 -20.4484 +R -0.0381 -20.5924 -20.6250 +T -0.0549 -20.7048 -20.6161 +R -0.0765 -20.8368 -20.7927 +L -0.0953 -21.0101 -21.1306 +A -0.1106 -21.1761 -21.3922 +Q -0.1253 -21.3389 -21.5798 +A -0.1288 -21.5396 -21.8414 +S -0.1239 -21.7070 -21.6985 +T -0.1187 -21.8270 -21.6896 +L -0.1134 -21.9142 -22.0276 +H -0.1091 -22.0145 -22.0288 +D -0.1076 -22.1013 -21.8011 +V -0.1038 -22.1736 -22.1873 +T -0.0991 -22.2479 -22.1784 +A -0.1015 -22.3133 -22.4400 +L -0.1065 -22.3941 -22.7779 +G -0.1110 -22.5003 -22.3447 +H -0.1162 -22.6376 -22.3459 +L -0.1111 -22.7959 -22.6838 +A -0.1091 -22.9141 -22.9454 +T -0.1060 -23.0667 -22.9365 +A -0.1053 -23.1902 -23.1980 +K -0.1031 -23.2691 -23.2981 +H -0.1060 -23.3606 -23.2993 +I -0.1028 -23.4676 -23.7216 +R -0.1049 -23.5677 -23.8982 +H -0.1113 -23.6901 -23.8994 +H -0.1031 -23.8103 -23.9006 +G -0.0954 -23.8929 -23.4674 +I -0.0839 -24.0072 -23.8896 +D -0.0686 -24.1378 -23.6620 +L -0.0463 -24.2518 -23.9999 +L -0.0217 -24.3569 -24.3378 +F -0.0011 -24.3995 -24.5634 +D 0.0265 -24.4215 -24.3358 +L 0.0443 -24.4022 -24.6737 +R 0.0533 -24.3339 -24.8503 +G 0.0585 -24.2315 -24.4171 +W 0.0595 -24.1026 -24.6605 +G 0.0620 -23.9136 -24.2272 +G 0.0568 -23.7458 -23.7940 +G 0.0623 -23.6009 -23.3608 +G 0.0595 -23.4582 -22.9276 +R 0.0589 -23.3839 -23.1042 +P 0.0487 -23.3117 -22.5518 +E 0.0382 -23.2355 -22.7565 +V 0.0173 -23.1955 -23.1427 +F -0.0038 -23.2376 -23.3683 +A -0.0228 -23.2814 -23.6298 +L -0.0499 -23.3764 -23.9677 +R -0.0743 -23.4861 -24.1443 +P -0.0944 -23.6054 -23.5920 +A -0.0994 -23.7649 -23.8536 +P -0.0911 -23.9202 -23.3012 +V -0.0837 -24.0691 -23.6874 +Q -0.0652 -24.1559 -23.8751 +V -0.0423 -24.2366 -24.2613 +N -0.0272 -24.2786 -24.0314 +W -0.0074 -24.3329 -24.2748 +L 0.0053 -24.3476 -24.6127 +A 0.0100 -24.3485 -24.8742 +Y 0.0148 -24.3665 -25.0817 +P 0.0239 -24.3122 -24.5294 +G 0.0244 -24.2369 -24.0962 +T 0.0286 -24.0913 -24.0873 +S 0.0343 -23.9923 -23.9444 +G 0.0407 -23.9081 -23.5112 +A 0.0380 -23.8283 -23.7727 +P 0.0353 -23.7225 -23.2204 +W 0.0260 -23.6304 -23.4638 +M 0.0077 -23.5731 -23.6897 +D -0.0069 -23.6161 -23.4621 +Y -0.0181 -23.7462 -23.6696 +V -0.0265 -23.8423 -24.0558 +L -0.0339 -23.9025 -24.3937 +G -0.0435 -23.9687 -23.9605 +D -0.0433 -24.0763 -23.7328 +A -0.0399 -24.1318 -23.9944 +F -0.0419 -24.1894 -24.2200 +A -0.0335 -24.2095 -24.4815 +L -0.0298 -24.2170 -24.8194 +P -0.0281 -24.2340 -24.2671 +P -0.0271 -24.2032 -23.7148 +A -0.0317 -24.1676 -23.9763 +L -0.0421 -24.1659 -24.3143 +E -0.0600 -24.2000 -24.5189 +P -0.0725 -24.2275 -23.9666 +F -0.0736 -24.2869 -24.1922 +Y -0.0796 -24.3553 -24.3997 +S -0.0895 -24.4437 -24.2568 +E -0.1034 -24.5674 -24.4615 +H -0.1127 -24.7846 -24.4627 +V -0.1114 -24.9823 -24.8489 +L -0.0976 -25.1375 -25.1868 +R -0.0856 -25.2798 -25.3634 +L -0.0749 -25.4282 -25.7014 +Q -0.0685 -25.5573 -25.8890 +G -0.0583 -25.5975 -25.4558 +A -0.0542 -25.6081 -25.7174 +F -0.0541 -25.6095 -25.9429 +Q -0.0522 -25.5833 -26.1306 +P -0.0431 -25.5979 -25.5783 +S -0.0250 -25.6183 -25.4354 +D -0.0094 -25.6345 -25.2078 +T -0.0004 -25.6315 -25.1989 +S 0.0064 -25.6219 -25.0560 +R 0.0060 -25.6151 -25.2326 +V 0.0026 -25.6256 -25.6188 +V 0.0106 -25.6303 -26.0050 +A 0.0101 -25.6199 -26.2665 +E 0.0133 -25.6625 -26.4712 +P 0.0098 -25.7042 -25.9189 +P 0.0105 -25.6959 -25.3665 +S 0.0186 -25.6975 -25.2237 +R 0.0242 -25.6375 -25.4003 +T 0.0251 -25.5408 -25.3914 +Q 0.0242 -25.4095 -25.5791 +C 0.0218 -25.2938 -25.5942 +G 0.0148 -25.2169 -25.1610 +L -0.0001 -25.1791 -25.4989 +P -0.0155 -25.2149 -24.9466 +E -0.0310 -25.3210 -25.1513 +Q -0.0377 -25.4255 -25.3390 +G -0.0395 -25.4857 -24.9057 +V -0.0399 -25.5312 -25.2919 +V -0.0462 -25.5734 -25.6781 +L -0.0482 -25.6422 -26.0160 +C -0.0449 -25.7627 -26.0312 +C -0.0442 -25.8656 -26.0463 +F -0.0353 -25.9356 -26.2719 +N -0.0337 -26.0005 -26.0420 +N -0.0272 -25.9964 -25.8121 +S -0.0244 -25.9825 -25.6692 +Y -0.0258 -25.9642 -25.8767 +K -0.0240 -25.8897 -25.9768 +L -0.0286 -25.8278 -26.3148 +N -0.0415 -25.7877 -26.0849 +P -0.0612 -25.7888 -25.5326 +Q -0.0812 -25.8281 -25.7202 +S -0.1015 -25.9045 -25.5774 +M -0.1273 -26.0272 -25.8033 +A -0.1397 -26.2213 -26.0648 +R -0.1432 -26.4354 -26.2414 +M -0.1404 -26.6503 -26.4673 +L -0.1429 -26.8519 -26.8052 +A -0.1485 -27.0465 -27.0668 +V -0.1590 -27.2683 -27.4529 +L -0.1676 -27.4730 -27.7909 +R -0.1690 -27.6260 -27.9675 +E -0.1664 -27.8014 -28.1722 +V -0.1516 -27.9759 -28.5583 +P -0.1289 -28.1594 -28.0060 +D -0.1012 -28.3296 -27.7784 +S -0.0766 -28.4320 -27.6355 +V -0.0564 -28.4753 -28.0217 +L -0.0358 -28.5082 -28.3596 +W -0.0209 -28.4964 -28.6030 +L -0.0123 -28.4701 -28.9409 +L -0.0117 -28.4322 -29.2789 +S -0.0146 -28.3973 -29.1360 +G -0.0227 -28.3722 -28.7027 +P -0.0379 -28.3881 -28.1504 +G -0.0476 -28.3764 -27.7172 +E -0.0519 -28.3657 -27.9219 +A -0.0550 -28.3352 -28.1834 +D -0.0632 -28.3333 -27.9558 +A -0.0679 -28.4033 -28.2173 +R -0.0793 -28.4833 -28.3939 +L -0.0907 -28.6328 -28.7319 +R -0.1092 -28.8256 -28.9085 +A -0.1271 -29.0401 -29.1700 +F -0.1395 -29.2488 -29.3956 +A -0.1462 -29.4171 -29.6571 +H -0.1482 -29.5372 -29.6583 +A -0.1516 -29.6627 -29.9199 +Q -0.1572 -29.8020 -30.1075 +G -0.1478 -29.9599 -29.6743 +V -0.1394 -30.1072 -30.0605 +D -0.1341 -30.2256 -29.8329 +A -0.1224 -30.3868 -30.0944 +Q -0.1103 -30.5308 -30.2821 +R -0.0921 -30.6954 -30.4587 +L -0.0779 -30.8219 -30.7966 +V -0.0686 -30.9229 -31.1828 +F -0.0622 -30.9798 -31.4083 +M -0.0610 -31.0271 -31.6342 +P -0.0628 -31.0760 -31.0819 +K -0.0593 -31.0764 -31.1820 +L -0.0607 -31.0894 -31.5200 +P -0.0565 -31.0823 -30.9676 +H -0.0566 -31.0700 -30.9689 +P -0.0537 -31.0841 -30.4165 +Q -0.0554 -31.0851 -30.6042 +Y -0.0624 -31.1052 -30.8117 +L -0.0771 -31.1561 -31.1497 +A -0.0897 -31.2741 -31.4112 +R -0.1038 -31.4427 -31.5878 +Y -0.1087 -31.5953 -31.7953 +R -0.1058 -31.7976 -31.9719 +H -0.1092 -32.0099 -31.9731 +A -0.1007 -32.1924 -32.2346 +D -0.0941 -32.3370 -32.0070 +L -0.0778 -32.4130 -32.3449 +F -0.0616 -32.4622 -32.5705 +L -0.0460 -32.4869 -32.9084 +D -0.0365 -32.4856 -32.6808 +T -0.0271 -32.4898 -32.6719 +H -0.0159 -32.4973 -32.6732 +P -0.0102 -32.4795 -32.1208 +Y -0.0105 -32.4433 -32.3283 +N -0.0129 -32.3929 -32.0985 +A -0.0174 -32.3708 -32.3600 +H -0.0120 -32.3624 -32.3612 +T -0.0108 -32.3690 -32.3523 +T -0.0052 -32.4233 -32.3435 +A -0.0101 -32.4733 -32.6050 +S -0.0167 -32.4969 -32.4621 +D -0.0229 -32.5365 -32.2345 +A -0.0288 -32.5921 -32.4960 +L -0.0194 -32.6433 -32.8340 +W -0.0072 -32.7137 -33.0773 +T 0.0049 -32.7220 -33.0685 +G 0.0133 -32.7240 -32.6352 +C 0.0184 -32.6929 -32.6504 +P 0.0200 -32.6338 -32.0981 +V 0.0185 -32.5551 -32.4842 +L 0.0115 -32.4931 -32.8222 +T 0.0021 -32.4135 -32.8133 +T -0.0065 -32.3213 -32.8044 +P -0.0113 -32.2961 -32.2521 +G -0.0183 -32.3206 -31.8189 +E -0.0329 -32.3655 -32.0236 +T -0.0441 -32.4587 -32.0147 +F -0.0490 -32.5408 -32.2403 +A -0.0535 -32.6358 -32.5018 +A -0.0539 -32.6726 -32.7633 +R -0.0524 -32.7673 -32.9399 +V -0.0595 -32.8690 -33.3261 +A -0.0627 -32.9994 -33.5876 +G -0.0681 -33.1252 -33.1544 +S -0.0678 -33.2012 -33.0115 +L -0.0566 -33.2481 -33.3495 +N -0.0514 -33.2612 -33.1196 +H -0.0473 -33.2430 -33.1208 +H -0.0408 -33.2442 -33.1220 +L -0.0332 -33.2631 -33.4599 +G -0.0313 -33.2700 -33.0267 +L -0.0341 -33.2719 -33.3647 +D -0.0438 -33.3012 -33.1370 +E -0.0611 -33.3554 -33.3417 +M -0.0742 -33.3977 -33.5676 +N -0.0842 -33.4514 -33.3377 +V -0.0998 -33.5430 -33.7239 +A -0.1147 -33.6285 -33.9854 +D -0.1296 -33.7326 -33.7578 +D -0.1453 -33.8509 -33.5302 +A -0.1652 -34.0195 -33.7917 +A -0.1729 -34.2019 -34.0533 +F -0.1782 -34.4416 -34.2788 +V -0.1695 -34.7003 -34.6650 +A -0.1638 -34.9368 -34.9265 +K -0.1615 -35.1606 -35.0266 +A -0.1569 -35.3347 -35.2882 +V -0.1537 -35.5276 -35.6744 +A -0.1540 -35.7168 -35.9359 +L -0.1519 -35.8629 -36.2738 +A -0.1423 -35.9778 -36.5354 +S -0.1352 -36.0717 -36.3925 +D -0.1296 -36.1558 -36.1648 +P -0.1277 -36.2188 -35.6125 +A -0.1237 -36.3187 -35.8741 +A -0.1246 -36.4057 -36.1356 +L -0.1272 -36.4798 -36.4735 +T -0.1315 -36.5688 -36.4647 +A -0.1393 -36.6882 -36.7262 +L -0.1496 -36.8344 -37.0641 +H -0.1589 -37.0401 -37.0654 +A -0.1742 -37.2651 -37.3269 +R -0.1931 -37.5035 -37.5035 +V 0.1138 -37.8897 -37.8897 +D -0.1931 -37.6620 -37.6620 +V -0.1690 -38.0482 -38.0482 +L -0.0883 -38.3861 -38.3861 +R -0.0883 -38.5627 -38.5627 +R -0.1023 -38.7393 -38.7393 +E 0.0714 -38.9440 -38.9440 +S -0.2111 -38.8011 -38.8011 +I -0.2111 -39.2234 -39.2234 + + diff --git a/webservices/compbio/ws/server/GlobPlotWS.java b/webservices/compbio/ws/server/GlobPlotWS.java new file mode 100644 index 0000000..df402fa --- /dev/null +++ b/webservices/compbio/ws/server/GlobPlotWS.java @@ -0,0 +1,157 @@ +package compbio.ws.server; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; + +import javax.annotation.Resource; +import javax.jws.WebService; +import javax.xml.ws.WebServiceContext; + +import org.apache.log4j.Logger; + +import compbio.data.msa.SequenceAnnotation; +import compbio.data.sequence.FastaSequence; +import compbio.data.sequence.Score; +import compbio.engine.AsyncExecutor; +import compbio.engine.Configurator; +import compbio.engine.client.ConfiguredExecutable; +import compbio.metadata.ChunkHolder; +import compbio.metadata.JobStatus; +import compbio.metadata.JobSubmissionException; +import compbio.metadata.Limit; +import compbio.metadata.LimitExceededException; +import compbio.metadata.LimitsManager; +import compbio.metadata.Option; +import compbio.metadata.Preset; +import compbio.metadata.PresetManager; +import compbio.metadata.ResultNotAvailableException; +import compbio.metadata.RunnerConfig; +import compbio.metadata.UnsupportedRuntimeException; +import compbio.metadata.WrongParameterException; +import compbio.runner.Util; +import compbio.runner.disorder.GlobPlot; + +@WebService(endpointInterface = "compbio.data.msa.SequenceAnnotation", targetNamespace = "http://msa.data.compbio/01/12/2010/", serviceName = "GlobPlotWS") +public class GlobPlotWS implements SequenceAnnotation { + + // Ask for resource injection + @Resource + WebServiceContext wsContext; + + private static Logger statLog = Logger.getLogger("GlobPlotWS-stats"); + + private static Logger log = Logger.getLogger(GlobPlotWS.class); + + private static final RunnerConfig globPlotOptions = Util + .getSupportedOptions(GlobPlot.class); + + private static final PresetManager globPlotPresets = Util + .getPresets(GlobPlot.class); + + ConfiguredExecutable init(List sequences) + throws JobSubmissionException { + GlobPlot globPlot = new GlobPlot(); + globPlot.setInput("fasta.in").setOutput("globPlot.out"); + return Configurator.configureExecutable(globPlot, sequences); + } + + @Override + public HashMap> getAnnotation(String jobId) + throws ResultNotAvailableException { + WSUtil.validateJobId(jobId); + AsyncExecutor asyncEngine = Configurator.getAsyncEngine(jobId); + ConfiguredExecutable globPlot = (ConfiguredExecutable) asyncEngine + .getResults(jobId); + HashMap> mas = globPlot.getResults(); + log.trace(jobId + " getConservation : " + mas); + return mas; + } + + @Override + public Limit getLimit(String presetName) { + return new GlobPlot().getLimit(presetName); + } + + @Override + public LimitsManager getLimits() { + return new GlobPlot().getLimits(); + } + + @Override + public ChunkHolder pullExecStatistics(String jobId, long position) { + // Execution stat is not supported + return new ChunkHolder("", -1); + } + + @Override + public boolean cancelJob(String jobId) { + WSUtil.validateJobId(jobId); + return WSUtil.cancelJob(jobId); + } + + @Override + public JobStatus getJobStatus(String jobId) { + WSUtil.validateJobId(jobId); + return WSUtil.getJobStatus(jobId); + } + + @Override + public PresetManager getPresets() { + return globPlotPresets; + } + + @Override + public RunnerConfig getRunnerOptions() { + return globPlotOptions; + } + + String analize(List sequences, + ConfiguredExecutable confExec, Logger log, String method, + Limit limit) throws JobSubmissionException { + if (limit != null && limit.isExceeded(sequences)) { + throw LimitExceededException.newLimitExceeded(limit, sequences); + } + + compbio.runner.Util.writeInput(sequences, confExec); + AsyncExecutor engine = Configurator.getAsyncEngine(confExec); + String jobId = engine.submitJob(confExec); + return jobId; + } + + @Override + public String analize(List sequences) + throws UnsupportedRuntimeException, LimitExceededException, + JobSubmissionException { + WSUtil.validateFastaInput(sequences); + ConfiguredExecutable confGlobPlot = init(sequences); + + return analize(sequences, confGlobPlot, null, "analize", getLimit("")); + } + + /* + * No options are supported, thus the result of this call will be as simple + * call to analize without parameters + */ + @Override + public String customAnalize(List sequences, + List> options) throws UnsupportedRuntimeException, + LimitExceededException, JobSubmissionException, + WrongParameterException { + return analize(sequences); + } + + /* + * No presets are supported, thus the result of this call will be as simple + * call to analize without parameters + */ + @Override + public String presetAnalize(List sequences, + Preset preset) throws UnsupportedRuntimeException, + LimitExceededException, JobSubmissionException, + WrongParameterException { + + return analize(sequences); + } + +} -- 1.7.10.2